Sistemas Operativos
Introduccion
Diaz Muante Jorge Ral
Administracion Procesador
Ciclo 2011-2
2
Sistemas Operativos
Descomposicin conceptual
Tipos de procesamiento
R1 R2 R3 R4 R5 X1 X2 X3 X4
6
P1 P2 P3
Concurrente
URP
Sistemas Operativos
Esquema de Ejecucin de un SO
Estados de un Proceso
Nuevo
Admision
Interrupcin
Salida
Terminado
Listo
Ejecucin
11
Transiciones de estados
Descripcin
El proceso se despacha. El CPU inicia la ejecucin de sus instrucciones Termina la solicitud hecha por el proceso o ocurre el evento que estaba esperando El proceso se interrumpe porque se decide planificar otro proceso. Ocurre porque un proceso de mas alta prioridad ha sido admitido o ha expirado el Quantum Proceso hace una solicitud a un recurso o hasta que ocurra un evento especifico. Las causas principales son: Solicita una operacin 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 La ejecucion del proceso se completa o termina. Las causas: Autoterminacion. Se encontro la ultima instruccin Terminacion de un padre. Utilizacion excesido de un recurso (time-out) Condiciones anormales durante la ejecucion Incorrecta interaccion con otro proceso. Ejm. Abrazo mortal
Ejecucin bloqueado
Ejecucion terminado
12
URP
Sistemas Operativos
El PCB: bloque control procesos La abstraccin de proceso en el SO es representada mediante una estructura de control que recibe el nombre de PCB Tiene todos los detalles de un proceso.
Id. del proceso Estado del proceso Registros de propsito general Apuntador a pila Contador de programa Informacin contable
14
Credenciales de seguridad Nombre del usuario propietario Apuntadores a la cola de procesos Mscara de seales Administracin de memoria
15
Tabla de procesos
La tabla de procesos, es una estructura en memoria que contiene la ubicacin de los PCB de todos los procesos del sistema. A travs de esta, el kernel puede conocer el estado de cada proceso, saber en parte de la memoria se encuentra, etc.
Cola listo
PCB
PCB
PCB
PCB
o
Cola listo 1
PCB PCB
PCB PCB
PCB PCB
PCB PCB
0
Estado del Proceso Process ID Parent Process ID Program Counter
1
Estado del Proceso Process ID Parent Process ID Program Counter
Process Table
4
Estado del Proceso Process ID Parent Process ID Program Counter
5 Cola listo 2
Estado del Proceso Process ID Parent Process ID Program Counter
Registros
Registros
Registros
Registros
Registros
Registros
Cola listo n
PCB
PCB
17
PCB
PCB
16
17
Posibles operaciones procesos . Suspencin de procesos, Reanudacin procesos Cambio de prioridad, Bloquear un proceso Despertar a un proceso, Dispatch un proceso Permitir que un proceso se pueda comunicar con otro
19
URP
Sistemas Operativos
Bloqueado
Bloqueado_suspendido
20 21
Listo_suspendido
Schedulers
Colas listos
Cola de listos
CPU
CPU
Cola de Listos: Contiene todos los procesos residentes en memoria principal, listos y esperando ejecutarse. Colas de dispositivos de E / S. Contiene todo los procesos esperando por dispositivo E / S Un proceso migra entre las distintas colas.
Cola de Jobs
E/S
Cola de E/S
E/S
Cola de E/S
E/S
Cola de E/S
Scheduler long-term (Job scheduler). Selecciona que procesos seran puestos en la cola de listos. Scheduler short-term (Cpu Scheduler). Selecciona que Procesos sera el siguiente en ejecutarse, asignado la CPU. El Cpu scheduler es requerido muy frecuentemente (en miliseg.) Debe ser rapido. El Job scheduler es requerido con poca frecuencia (en seg)... Puede ser lento. Este controla el grado de multiprogramacin.
24
22
return to user
exit
Preempted
wake up
fork
wake up
Sleep, Swapped
25
27
URP
Sistemas Operativos
Las interrupciones
Altera secuencia procesador ejecuta las instrucciones Interrupcin 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
Modo User
Cada interrupcion esta asociado con un codigo o rutina a traves del IDT :
1. 2. Proceso en ejecucion hasta la interrupcion Captura el estado, intercambia el control y encuentra la rutina Ejecuta la rutina respectiva Restaura el proceso interrumpido Continua la ejecucion
Interrupcion al disco (x) IDT:
4 3
Tabla de Despacho Rutina de Servicio
Modo Kernel
3. 4. 5.
Rutina de interrupcion
28
A B
A0 B0 A1 B1 A2 B2 A3 B3
Si sistema es multiprocesador:
Ncleo 1 Ncleo 2 A4 B4
Si sistema no multiprocesador
Un ncleo A0 B0 A1 B1 A2 B2 A3 B3 A4 B4
Contiene mltiples flujos de ejecucin (threads o procs. ligeros) El proceso se corresponde con un entorno de ejecucin: Un mapa de memoria Un conjunto de recursos asociados (ficheros, semforos, ...) Un conjunto de threads Proceso tiene un thread implcito: el flujo de ejecucin inicial Threads de un mismo proceso comparten: Mapa de memoria (cdigo, datos, zonas de mem. compartida, ...) Recursos asociados al proceso (ficheros, semforos, ...) 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 de procesos
31
Procesos / Hilos
MS/DOS
Tradicional UNIX
Un proceso,1 hilo
URP
Sistemas Operativos
Ejemplos Ejemplo 1. Una aplicacin. Un thread puede estar mostrando la visualizacin de mens. Otro leyendo la entrada del usuario. Mientras que otro thread ejecuta comandos del usuario. Ejemplo 2: Explorador Web. Un thread por accin requerida. Descarga de imgenes. Ingreso de datos en un formulario. Interaccin con el usuario.
Ejemplo de hilos
Ejemplo3. Word - Procesador de texto con 3 hilos