Você está na página 1de 6

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 comunicacin inter-procesos (ipc).

Introduccion
Diaz Muante Jorge Ral

Administracion Procesador
Ciclo 2011-2
2

Sistemas Operativos

Descomposicin conceptual

Tablas del sistema

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 (esttico) representada por un archivo almacenado en disco. Un proceso, sin embargo, es una instancia de un programa en ejecucin y se considera una entidad activa (dinmico). Ejemplo: Ejecutemos dos instancias de Internet Explorer. Mismo programa. Procesos separados. El CPU no trabaja con programas sino con procesos.

Tipos de procesamiento

R1 X1 R=lect. X=Ejec. P=Impr. P1 R2 X2 Secuencial

R1 R2 R3 R4 R5 X1 X2 X3 X4
6

P1 P2 P3

Concurrente

Jorge Diaz Muante

URP

Sistemas Operativos

Esquema de Ejecucin de un SO

Proceso del Nucleo


Proceso (o threads) de ncleo Ejecuta slo cdigo del S.O., siempre en modo sistema Normalmente se crean en la fase inicial del S.O. Mdulos del S.O. pueden crear ms procesos de ncleo En Windows existe conjunto de procesos trabajadores de ncleo, cuya nica misin es ejecutar peticiones de otros mdulos Labores vinculadas con gestin 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

Proceso del sistema


Procesos de usuario creados por el superusuario Ejecutan en modo usuario Pero sus llamadas al sistema son siempre atendidas En sistemas monolticos realizan labores del sistema como spooling o servicios de red (demonios de UNIX) En sistemas microkernel realizan funcionalidades clsicas del S.O. como p.e. la gestin de archivos
10

Estados de un Proceso

Nuevo

Admision

Interrupcin

Salida

Terminado

Listo

Ejecucin

Despachador Fin de E/S o evento Espera E/S o un evento

11

Estado de un Proceso El estado de un proceso es un indicador de la naturaleza de la actividad actual en un proceso


Estado Ejecucin Bloqueado Listo Terminado Descripcin En ese momento el CPU esta ejecutando las instrucciones en el cdigo del proceso Esperar hasta que se conceda una peticin de un recurso o hasta que ocurra un evento El proceso esta pendiente de usar el CPU La ejecucin del proceso ha terminado normalmente o el SSOO lo ha abortado Transicin
Listo ejecucin Bloqueado listo Ejecucin listo

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

Jorge Diaz Muante

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

Microkernel Definicion del PCB

S.O. es slo 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];

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.

Procesos en estado de listo

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

Estado del Proceso Process ID Parent Process ID Program Counter

Estado del Proceso Process ID Parent Process ID Program Counter

Registros

Registros

Registros

Registros

Registros

Registros

Cola listo n

PCB

PCB
17

PCB

PCB

Lmites de memoria Listado de archivos abiertos

Lmites de memoria Listado de archivos abiertos

Lmites de memoria Listado de archivos abiertos

Lmites de memoria Listado de archivos abiertos

Lmites de memoria Listado de archivos abiertos

Lmites de memoria Listado de archivos abiertos

16

17

Posibles operaciones procesos


Creacin 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 ejecucin. Destruccin 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 estn repartidas entre: EXIT: realiza la mayor parte de las operaciones WAIT: libera entrada de tabla de procesos
18

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

Jorge Diaz Muante

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 desconfa de los resultados parciales de un proceso Necesidad de recuperar la terminal de conrtrol Uso principal: balanceo carga del sistema Modificacin 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 ejecucin T1 T2 T3 Listo T4
suspender (suspend) reanudar (resume) suspender (suspend) reanudar (resume)
Estado de Procesos y Suspenciones

Bloqueado

Bloqueado_suspendido
20 21

Listo_suspendido

Colas de los Procesos

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

Cola(s) IO Espera I/O

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

Diagrama Estados y Transiciones de un proceso en Unix


User Running
1

Diagrama de estados de Microsoft

interrupt, interrupt return

sys. call interrupt return Kernel Running

return to user

exit

Zombie sleep reschedule process

Preempted

wake up

Ready to Run in Memory enough memory

Asleep in Memory swap out swap in swap out

fork

not enough memory


(swapping system only)

wake up

Sleep, Swapped

Ready to Run, Swapped

25

27

Jorge Diaz Muante

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

Programa # 2 Programa # 1 Llamada al Supervisor Memoria Principal 1


usuario kernel

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

Llamadas al Sistema o Supervisor (SVC)


29

Threads / Hilos / Procesos ligeros


Supongamos un proceso que realiza dos actividades paralelizables. Sera interesante convertirlo en dos procesos?

Threads / Hilos / Procesos ligeros


Concepto moderno de proceso:

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

Multithreading vs. Singlethreading


Multithreading Cuando el SO soporta mltiple threads de ejecucin, 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 mltiples procesos de usuario pero slo soporta un thread por proceso. Solaris soporta mltiples threads.

Procesos / Hilos

MS/DOS

Tradicional UNIX

Un proceso,1 hilo

Un proceso, varios hilos

Multiprocesos,1 hilo Sistemas embedded Vxworks, Java OS

Multiprocesos, multihilos Mach, OS/2, Linux, Win NT a XP, Solaris

Jorge Diaz Muante

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 ejecucin en determinados escenarios. Comparticin de recursos.

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

Jorge Diaz Muante

Você também pode gostar