C2_Administracion_Procesador_SS00.pdf
Transcript of C2_Administracion_Procesador_SS00.pdf
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
1/35
Administracion del Procesador
Your picture hereSistemas Operativos
Ciclo 2016-1
Profesor:
Diaz Muñante Jorge
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
2/35
2
Estructura del Kernel
El kernell está conformado por 5 grandes subsistemas.
El planificador de procesos (sched).
El administrador de memoria (mm).
El sistema del archivo virtual (vfs).La interface de la red (net).
La comunicación inter-procesos (ipc).
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
3/35
3
Descomposición conceptual
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
4/35
Tablas del sistema
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
5/35
Administrador del procesador
El administrador del procesador (processor manager ) está a cargo deasignar el CPU a los programas que se ejecutan (los procesos).
Para los sistemas operativos, un programa es una unidad inactiva(estático) representada por un archivo almacenado en disco.
Un proceso, sin embargo, es una instancia de un programa en ejecucióny se considera una entidad activa (dinámico).
Ejemplo:
– Ejecutemos dos instancias de Internet Explorer.
• Mismo programa.
• Procesos separados.
El CPU no trabaja con programas sino con procesos.
El numero de procesos esta limitado al numero de CPU / Core
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
6/35
6
R1
X1
P1
R2
X2
R1
R2
R3
R4
R5
X1
X2
X3
X4
P1
P2
P3Secuencial Concurrente
R=lect.X=Ejec.P=Impr.
ipos de procesamiento
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
7/35
7
Esquema de Ejecución de un SO
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
8/35
8
Modos de ejecución del Procesador
Procesador proporciona distintos modos de ejecución con diferentesprivilegios
S.O. requiere al menos 2: – Uno con privilegio total y otro con privilegio mínimo
– Incluso aunque haya más (Intel tiene 4) sólo usa 2
– Moraleja: S.O. se conforma con mínimos (más transportable)
Modo usuario (no privilegiado): – Acceso restringido a instrucciones (ej, HALT), registros (ej, RIED,
registro de estado), E/S
– Memoria: Sólo accesible direcciones lógicas de usuario
Modo sistema (núcleo o privilegiado): – Privilegio total
– Procesador se inicia en modo núcleo
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
9/35
9
Proceso del Nucleo
Proceso (o threads) de núcleo
Ejecuta sólo código del S.O., siempre en modo sistema
Normalmente se crean en la fase inicial del S.O.
– Módulos del S.O. pueden crear más procesos de núcleo
– En Windows existe conjunto de procesos “trabajadores” de núcleo,cuya única misión es ejecutar peticiones de otros módulos
Labores vinculadas con gestión de memoria y mantenimiento de cachédel Sistema de Archivos
Realiza labores del sistema que se hacen mejor en el contexto de unproceso independiente
– Se pueden realizar operaciones de bloqueo
Normalmente, alta prioridad, pero no siempre (p.e. proceso nulo)
No confundir con “procesos del sistema”
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
10/35
10
Proceso del sistema
Procesos de usuario creados por el superusuario
Ejecutan en modo usuario
– “Pero sus llamadas al sistema son siempreatendidas”
En sistemas monolíticos realizan labores del sistema como spooling oservicios de red (demonios de UNIX)
En sistemas microkernel realizan funcionalidades “clásicas” del S.O.como p.e. la gestión de archivos
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
11/35
11
Estados de un Proceso
Nuevo
Listo Ejecución
Espera
TerminadoAdmision Interrupción Salida
Fin de E/S o evento E/S o un evento
Despachador
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
12/35
12
Estado de un Proceso
El estado de un proceso es un indicador de la naturaleza de la actividadactual en un proceso
Estado Descripción
Ejecución En ese momento el CPU esta ejecutando las
instrucciones en el código del procesoBloqueado Esperar hasta que se conceda una petición de un
recurso o hasta que ocurra un evento
Listo El proceso esta pendiente de usar el CPU
Terminado La ejecución del proceso ha terminado normalmenteo el SSOO lo ha abortado
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
13/35
Transiciones de estados
Transición Descripción
Listo ejecución El proceso se despacha. El CPU inicia la ejecución de susinstrucciones
Bloqueado listo Termina la solicitud hecha por el proceso o ocurre el evento que
estaba esperando
Ejecución listo El proceso se interrumpe porque se decide planificar otro proceso.Ocurre porque un proceso de mas alta prioridad ha sido admitido o haexpirado el Quantum
Ejecución bloqueado Proceso hace una solicitud a un recurso o hasta que ocurra un evento
especifico. Las causas principales son:•Solicita una operación de E / S•Solicita memoria adicional u otro recurso•Desea espera durante un intervalo de tiempo•Espera el mensaje de otro•Desea esperar alguna accion de otro proceso
Ejecucion terminado La ejecucion del proceso se completa o termina. Las causas:•Autoterminacion. Se encontro la ultima instrucción•Terminacion de un padre.•Utilizacion excesido de un recurso (time-out)•Condiciones anormales durante la ejecucion•Incorrecta interaccion con otro proceso. Ejm. Abrazo mortal
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
14/35
14
El PCB: bloque control procesos
La abstracción de proceso en el SO es representada mediante unaestructura de control que recibe el nombre de PCB
– Tiene todos los detalles de un proceso.
Id. del proceso Credenciales de seguridad
Estado del proceso Nombre del usuario propietario
Registros de propósito general Apuntadores a la cola de procesos
Apuntador a pila Máscara de señales
Contador de programa Administración de memoria
Información contable
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
15/35
15
Microkernel – Definicion del PCB
S.O. es sólo otro programa: Usa definiciones convencionales
typedef struct PCB_t {int id; /* pid */
int estado;
contexto_t contexto_regs; /* copia de regs. */
void * pila; /* dir. inicial de la pila */
PCBptr siguiente; /* puntero a otro PCB */
void *info_mem; /* descriptor mapa memoria */
} PCB;
PCB * p_proc_actual;
PCB tabla_procs[MAX_PROC];
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
16/35
16
Tabla de procesos
La tabla de procesos, es una estructura en memoria que contiene la
ubicación de los PCB de todos los procesos del sistema. A través de
esta, el kernel puede conocer el estado de cada proceso, saber en parte
de la memoria se encuentra, etc.
Process Table
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
Listado de archivos abiertos
Límites de memoria
Registros
Program Counter
Parent Process ID
Process ID
Estado del Proceso
0 1 2 3 4 5
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
17/35
17
Posibles operaciones procesos
Creación procesos, lo cual involucra:
– nombre procesos
– insertarlo en la lista de procesos
– determinar prioridad inicial proceso
– crear su PCB
– asignarle sus recursos iniciales
– Procesos padres crean procesos hijos, y estos a su vez crean otros procesos,formando un árbol de procesos, compartiendo recursos y ejecución.
Destrucción procesos – liberar mapa de memoria (pila de usuario incluida)
– cerrar Archivos y liberar otros recursos
– eliminar PCB de cola de procesos listos
– liberar entrada de tabla de procesos – liberar pila del sistema
– activa planificador y realiza c. de contexto al proceso elegido
En UNIX estas operaciones están repartidas entre:
– EXIT: realiza la mayor parte de las operaciones – WAIT: libera entrada de tabla de procesos
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
18/35
18
Posibles operaciones procesos ….
Suspención de procesos, Reanudación procesos
Cambio de prioridad, Bloquear un proceso
Despertar a un proceso, Dispatch un proceso
Permitir que un proceso se pueda comunicar con otro
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
19/35
19
Las suspenciones y reanudaciones
Puede ser iniciada por el propio proceso o por otros
Aplicaciones
– Sistema muy sobrecargado
– Sistema funciona mal y es probable que falle, se pueden suspenderprocesos activos para reanudarlos una vez que se corrigió el problema
– Un usuario desconfía de los resultados parciales de un proceso
– Necesidad de recuperar la terminal de conrtrol
Uso principal: balanceo carga del sistema
Modificación diagrama estados, nuevas transiciones:
– suspend(procname): listo-> listo_susp – resume(procname): listo_sup -> listo
– suspend(procname): bloqueado -> bloqueado_susp
– resume(procname): bloqueado_sup -> bloqueado
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
20/35
20
En ejecuci!n
"lo#ueado $isto
1 3
2
4
$isto%suspendido"lo#ueado%suspendido
suspender &suspend'
reanudar &resume'
suspender
&suspend'
reanudar &resume'
Estado de Procesos ( Suspenciones
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
21/35
21
Colas de los Procesos
Cola de listos CPU
Cola de E/SE/S
Cola de E/SE/S
Cola de E/SE/S
Cola de Listos:Contiene todos los procesos residentes enmemoria principal, listos y esperando
ejecutarse.
Colas de dispositivos de E / S.Contiene todo los procesos esperando pordispositivo E / S
Un proceso migra entre las distintas
colas.
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
22/35
22
Colas de Procesos
S.O. enlaza PCBs en colas (PCB contiene punteros para ello)
– Procesos en el mismo estado
Cola de procesos listos
– en muchos sistemas, proceso en ejecución también está en ella
Cola de procesos bloqueados. Alternativas de diseño:
– Una para todos los bloqueados: Ineficiente – Una por evento (p. ej. Linux): gasto de memoria tolerable
– Varios eventos por cola (UNIX System V)
Si proceso en 1 cola en cada instante: basta con puntero en PCB
En Linux, colas de bloqueados: wait queues
– No usan puntero del PCB, incluyen el puntero al siguiente
Cambio de estado implica pasar el PCB de una cola a otra
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
23/35
Scheduler “long-term”
• Job scheduler • Selecciona que
procesos seránpuestos en la cola delistos.
• Requerido con pocafrecuencia (en seg)
• Puede ser lento• Controla el “grado demultiprogramacion”
Scheduler “short- term”
• Cpu Scheduler • Selecciona que
procesos será elsiguiente en ejecutarse
• Requerido muyfrecuentemente (enmiliseg.)
• Debe ser rapido
Schedulers o Planificadores
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
24/35
24
1
2
34
5
9 7
8
6
User Running
return to user
sys. callinterrupt
return
Kernel Running
Preempted
Ready to Runin Memory
interrupt,interrupt return
Zombie
exit
sleep
Asleep inMemory
swap out
Sleep, Swapped Ready to Run, Swapped
swapin
swapout
enough memory
fork
not enough memory(swapping system only)
wake up
wake up
rescheduleprocess
Diagrama Estados y Transiciones de un proceso en Unix
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
25/35
Viendo todos los procesos en *nix
ps au o ps aux
– Muestra todos los procesos ps au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
bart 3039 0.0 0.2 5916 1380 pts/2 S 14:35 0:00 /bin/bashbart 3134 0.0 0.2 5388 1380 pts/3 S 14:36 0:00 /bin/bashbart 3190 0.0 0.2 6368 1360 pts/4 S 14:37 0:00 /bin/bash
bart 3416 0.0 0.0 0 0 pts/2 W 15:07 0:00 [bash]
PID: Process idVSZ: Virtual process size (code + data + stack)RSS: Process resident size: number of KB currently in RAMTTY: Terminal
STAT: Status: R (Runnable), S (Sleep), W (paging), Z (Zombie)...
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
26/35
26
Diagrama de estados de Microsoft
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
27/35
27
Las interrupciones
Altera secuencia procesador ejecuta las instrucciones
Interrupción generada por el hardware del sistema
IA-32 tiene un IDT con 256 entradas
32 (0 - 31) predefinidas y reservadas
224 (32 - 255) definidas por el usuario
Cada interrupcion esta asociado con un codigo o rutina atraves del IDT
1. Proceso en ejecucion hasta la interrupcion
2. Captura el estado, intercambia el controly encuentra la rutina
3. Ejecuta la rutina respectiva
4. Restaura el proceso interrumpido
5. Continua la ejecucion
usuario
kernelIDT:
Interrupcion al disco (x) Rutina de interrupcion
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
28/35
Threads / Hilos / Procesos ligeros
!upongamos un proceso "ue reali#a dos actividadesparaleli#a$les% &!er'a interesante convertirlo en dosprocesos(
A
BA B¿ ?
!i sistema es multiprocesador
!i sistema no multiprocesador
A0 B0 A1 B1 A2 B2 A3 B3 A4 B4Un núcleo
A0 A1 A2 A3 A4Núcleo 1
B0 B1 B2 B3 B4Núcleo 2
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
29/35
Procesador Sun UltraSPARC T1
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
30/35
30
Concepto moderno de proceso:
Contiene múltiples flujos de ejecución (threads o procs. ligeros)
El proceso se corresponde con un entorno de ejecución: Un mapa de memoria
Un conjunto de recursos asociados (ficheros, semáforos, ...)
Un conjunto de threads
Proceso tiene un thread implícito: el flujo de ejecución inicial Threads de un mismo proceso comparten:
Mapa de memoria (código, datos, zonas de mem. compartida, ...)
Recursos asociados al proceso (ficheros, semáforos, ...)
Cada thread tiene recursos propios:
Una pila, un estado y una copia del contenido de los regs.
Colas de listos y bloqueo contienen threads en vez deprocesos
Threads / Hilos / Procesos ligeros
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
31/35
Multithreading vs. Singlethreading
Multithreading
– Cuando el SO soporta múltiple threads de ejecución,dentro de un solo proceso.
Single threading
– Cuando el SO no reconoce el concepto de thread.MS-DOS soporta un solo proceso de usuario.
Los sistemas UNIX tradicionales soportan múltiples procesos
de usuario pero sólo soporta un thread por proceso.Solaris soporta múltiples threads.
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
32/35
Procesos / Hilos
Un proceso,1 hilo Un proceso, varios hilos
Multiprocesos,1 hilo Multiprocesos, multihilos
MS/DOS Tradicional UNI
Sistemas embeddedVxworks, Java OS Mach, OS/2, Linux, Win NT a XP, Solaris
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
33/35
Beneficios de los threads
Toma menos tiempo crear un nuevo thread que un proceso.
Toma menos tiempo terminar un thread que un proceso.
Toma menos tiempo cambiar entre dos thread dentro delmismo proceso.
Capacidad de Respuesta. Continuidad de ejecución en determinados escenarios.
Compartición de recursos.
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
34/35
Ejemplos
Ejemplo 1. Una aplicación.
– Un thread puede estar mostrando la visualización de
menús.
– Otro leyendo la entrada del usuario.
– Mientras que otro thread ejecuta comandos del usuario.
Ejemplo 2: Explorador Web.
– Un thread por acción requerida.
– Descarga de imágenes.
– Ingreso de datos en un formulario.
– Interacción con el usuario.
-
8/16/2019 C2_Administracion_Procesador_SS00.pdf
35/35
Ejemplo de hilos
Ejemplo3. Word - Procesador de texto con 3 hilos