URP Sistemas Operativos Estructura del Kernel El kernell está conformado por 5 grandes subsistemas. El planificador
Views 235 Downloads 2 File size 761KB
URP
Sistemas Operativos
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).
Introduccion Diaz Muñante Jorge Raúl
Administracion Procesador
Sistemas Operativos
Ciclo 2011-2
2
Descomposición conceptual
Tablas del sistema
3
Tipos de procesamiento
Administrador del procesador El administrador del procesador (processor manager) está a cargo de asignar 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ón y 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.
R=lect. X=Ejec. P=Impr.
R1
R1
X1
R2
X1
P1
R3
X2
P1
R2
R4
X3
P2
X2
R5
X4
P3
Secuencial
Concurrente 6
Jorge Diaz Muñante
1
URP
Sistemas Operativos
Proceso del Nucleo
Esquema de Ejecución de un SO
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 un proceso independiente Se pueden realizar operaciones de bloqueo Normalmente, alta prioridad, pero no siempre (p.e. proceso nulo) No confundir con “procesos del sistema”
7
9
Proceso del sistema Procesos de usuario creados por el superusuario Ejecutan en modo usuario “Pero sus llamadas al sistema son siempre atendidas” En sistemas monolíticos realizan labores del sistema como spooling o servicios de red (demonios de UNIX) En sistemas microkernel realizan funcionalidades “clásicas” del S.O. como p.e. la gestión de archivos
Estados de un Proceso
Admision
Nuevo
Interrupción
Despachador Fin de E/S o evento
E/S o un evento Espera
11
Estado de un Proceso
Estado
Descripción
Ejecución
En ese momento el CPU esta ejecutando las instrucciones en el código del proceso
Bloqueado
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 normalmente o el SSOO lo ha abortado
Terminado
Ejecución
Listo
10
El estado de un proceso es un indicador de la naturaleza de la actividad actual en un proceso
Salida
Transiciones de estados Transición
Descripción
Listo ejecución
El proceso se despacha. El CPU inicia la ejecución de sus instrucciones
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 ha expirado 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
12
Jorge Diaz Muñante
2
URP
Sistemas Operativos
El PCB: bloque control procesos La abstracción 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
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
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];
Información contable 14
15
Tabla de procesos
Procesos en estado de “listo”
La tabla de procesos, es una estructura en memoria que contiene la ubicación de los PCB de todos los
Cola listo
PCB
PCB
PCB
PCB
PCB
PCB
PCB
PCB
PCB
PCB
PCB
PCB
PCB
procesos del sistema. A través de esta, el kernel puede conocer el estado de cada proceso, saber
o
en parte de la memoria se encuentra, etc.
0
1
2
Process Table
3
4
Cola listo 1
PCB
Cola listo 2
PCB
5
Estado del Proceso
Estado del Proceso
Estado del Proceso
Estado del Proceso
Estado del Proceso
Estado del Proceso
Process ID
Process ID
Process ID
Process ID
Process ID
Process ID
Parent Process ID
Parent Process ID
Parent Process ID
Parent Process ID
Parent Process ID
Parent Process ID
Program Counter
Program Counter
Program Counter
Program Counter
Program Counter
Registros
Registros
Registros
Registros
Registros
Registros
Límites de memoria
Límites de memoria
Límites de memoria
Límites de memoria
Límites de memoria
Límites de memoria
Listado de archivos abiertos
Listado de archivos abiertos
Listado de archivos abiertos
Listado de archivos abiertos
Listado de archivos abiertos
Listado de archivos abiertos
…
Program Counter
Cola listo n
PCB
17 16
17
Posibles operaciones procesos
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 18
Jorge Diaz Muñante
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
19
3
URP
Sistemas Operativos
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 suspender procesos 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
En ejecución
T3
Bloqueado
Listo T4
suspender (suspend)
reanudar (resume)
Listo_suspendido 21
Schedulers
Colas de los Procesos
Colas listos CPU
E/S
Cola de E/S
Cola de Listos: Contiene todos los procesos residentes en memoria principal, listos y esperando ejecutarse.
E/S
Cola de E/S
Colas de dispositivos de E / S. Contiene todo los procesos esperando por dispositivo E / S Un proceso migra entre las distintas colas.
E/S
reanudar (resume)
suspender (suspend)
Bloqueado_suspendido 20
Cola de listos
Estado de Procesos y Suspenciones
T2
T1
Cola de E/S
22
Cola de Jobs
CPU
Cola(s) IO Espera I/O
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 multiprogramación. 24
Diagrama Estados y Transiciones de un proceso en Unix
Diagrama de estados de Microsoft
User Running 1
sys. call interrupt
interrupt, interrupt return
return to user return Kernel Running
2
9
7
exit
Zombie
Preempted reschedule process
sleep
4
Ready to Run in Memory
3
wake up
Asleep in Memory
enough memory swap in
swap out
swap out
8
fork
not enough memory (swapping system only)
6
wake up
Sleep, Swapped
5
Ready to Run, Swapped
25
Jorge Diaz Muñante
27
4
URP
Sistemas Operativos
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
Programa # 2
Cada interrupcion esta asociado con un codigo o rutina a traves del IDT : 1.
Proceso en ejecucion hasta la interrupcion
2.
Captura el estado, intercambia el control y encuentra la rutina
3.
Ejecuta la rutina respectiva
Memoria Principal usuario
Restaura el proceso interrumpido
5.
Continua la ejecucion
Interrupcion al disco (x)
29
Threads / Hilos / Procesos ligeros
Supongamos un proceso que realiza dos actividades paralelizables. ¿Sería interesante convertirlo en dos procesos?
A A
B
Si sistema es multiprocesador: Núcleo 1
A0
A1
A2
A3
A4
Núcleo 2
B0
B1
B2
B3
B4
Si sistema no multiprocesador A0
B0
A1
B1
A2
B2
Servicio
Llamadas al Sistema o Supervisor (SVC)
Threads / Hilos / Procesos ligeros
¿
Modo Kernel Rutina de
2
Rutina de interrupcion
28
Un núcleo
3 Tabla de Despacho
kernel
4.
B
4 1
IDT:
Modo User
Programa # 1 Llamada al Supervisor
A3
B3
A4
?
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 de procesos
B4 31
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.
Procesos / Hilos
MS/DOS
Un proceso,1 hilo
Multiprocesos,1 hilo Sistemas embedded Vxworks, Java OS
Jorge Diaz Muñante
Tradicional UNIX
Un proceso, varios hilos
Multiprocesos, multihilos Mach, OS/2, Linux, Win NT a XP, Solaris
5
URP
Sistemas Operativos
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 del mismo proceso. Capacidad de Respuesta. Continuidad de ejecución en determinados escenarios. Compartición de recursos.
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.
Ejemplo de hilos Ejemplo3. Word - Procesador de texto con 3 hilos
Jorge Diaz Muñante
6