Вы находитесь на странице: 1из 33

Sistemas Operativos.

Gestin de Procesos
Sistemas Informticos I.E.S. Virgen de la Paloma

Introduccin (I)
2

Programa:
Algo esttico, un conjunto de instrucciones que, una vez ejecutadas, resuelven un determinado problema .

Proceso:
Algo dinmico, es una parte de un programa que se est ejecutando con todo lo que ello conlleva: valores de registros, de variables, contenido del contador de programa, etc. De un programa suelen surgir varios procesos.

Introduccin (II)
3

Componentes de un proceso:
Adems de las lneas de cdigo, un proceso precisa la imagen del proceso que podr residir en memoria secundaria, pero debe cargarse en memoria principal a la hora de ejecutarlo:
Ubicacin de variables y constantes definidas por el proceso. Pila asociada a cada proceso para gestionar las llamadas a funciones. Atributos del proceso guardados en el BCP: Bloque de control del proceso, que contiene:
Identificacin del proceso. Informacin sobre el estado del procesador. Informacin de control del proceso. Se guardan en la TBCP: Tabla de bloques de control del proceso.

Cambios de contexto: La concurrencia de procesos implica que stos entrarn y saldrn de la CPU constantemente sin haber terminado de ejecutarse.

Introduccin (III)
4

Estados de los procesos (modelo de 3 estados):


EJECUCIN: Est utilizando la CPU en este momento. LISTO: Con posibilidad de entrar en ejecucin. BLOQUEADO: Sin posibilidad de entrar en ejecucin.

En un modelo de 5 estados tenemos adems:


NUEVO: Se acaba de crear y an habiendo sido admitido por el Sistema Operativo, no est listo para la ejecucin. TERMINADO: Ha terminado su ejecucin o es abandonado por el S.O., p.e. por un error irrecuperable. Este proceso no se volver a ejecutar, pero sus tablas de valores permanecern durante un tiempo por si algn otro programa necesitase extraer alguna informacin de ellas.

Transiciones posibles (modelo de 3 estados):


Ejecucin a Bloqueado Bloqueado a Listo Ejecucin a Listo y viceversa
4

Control del proceso (I)


5

Creacin del proceso. Pasos del S.O.


Asignar al proceso un identificativo por el que lo reconocer de ahora en adelante, e incluirlo en la TBCP. Reservar espacio de memoria suficiente para almacenar la imagen del proceso. Tambin reservar sitio para el BCP. Rellenar los datos del BCP. Todos los valores a 0, el contador de programa que apuntar a la primera instruccin del programa, los punteros de pila que darn los lmites de la pila del proceso, el estado se inicializar a listo, la prioridad la ms baja, a menos que haya una solicitud para un valor mayor, etc. Establecer los enlaces adecuados de este proceso con otros. Crear las estructuras de datos vinculadas al propio proceso.

Control del proceso (II)


6

Cambios de contexto.

Se produce cuando un proceso no puede seguir ejecutndose, el S.O. lo detecta e intenta resolver la situacin, bien para volver a reanudar el mismo proceso o para cambiar a otro. Conlleva las siguientes acciones:
Salvar el contexto del proceso que abandona la ejecucin (registros del procesador). Cambiar el estado del proceso que abandona, que ya no ser en ejecucin sino que, dependiendo del motivo del cambio pasar a listo, bloqueado, terminado, etc. modificando su BCP. Mover el BCP a la cola que corresponda (dependiendo de su estado). Solicitar otro proceso para la ejecucin. Actualizar el BCP del proceso que ahora entrar en ejecucin. Actualizar las estructuras de datos necesarias para la gestin de memoria. Volcar en el procesador el contexto del proceso que ahora pasa a ejecutarse.

Procesos e Hilos
7

Proceso: Unidad de recursos Hilo: Lnea de ejecucin o proceso ligero. Ventajas:


La mayora de la informacin del BCP es compartida por los hilos. El S.O. tarda mucho menos en crear, intercambiar y terminar hilos. Los cambios entre hilos no incluyen el intercambio de informacin de administracin de la memoria. Al compartir memoria, la comunicacin entre hilos en inmediata. Varios hilos de un proceso podran ejecutarse de forma paralela.
7

Comunicacin entre procesos (I)


8

En los sistemas multiproceso, la Concurrencia entre procesos es una tarea compleja. El objetivo de la concurrencia es garantizar la Sincronizacin entre procesos.
Sincronizacin en el acceso a recursos compartidos Asignar los recursos de forma ptima (evitar Bloqueos)

La solucin a estos problemas es proteger a los recursos compartidos controlando el cdigo que accede a cada uno.

Comunicacin entre procesos (II)


9

Si existe competencia entre procesos, el S.O. debe abordar tres problemas:


Necesidad de la exclusin mutua: Seccin Crtica: parte de los procesos donde se hace uso de un recurso no compartible Nunca habr ms de un proceso ejecutando su seccin crtica. Interbloqueo, se produce si dos procesos necesitan dos dispositivos para poder entrar en su seccin crtica y el S.O. le asigna uno a cada uno. Los dos procesos se quedarn bloqueados indefinidamente, ya que ninguno va a poder acceder al otro dispositivo para poder continuar su ejecucin. Inanicin, se presenta cuando a un proceso no llega a asignrsele un dispositivo y. por lo tanto, no puede entrar en su seccin crtica porque, por ejemplo, existen otros dos procesos a los que se les est asignando de forma alternante.
9

Comunicacin entre procesos (III)


10

Para poder lograr una sincronizacin de los procesos, el sistema deber ser capaz de cumplir con la exclusin mutua adems de satisfacer los siguientes objetivos :
Si un proceso se interrumpe en una seccin no crtica, no debe estorbar al resto de los procesos. Deben controlarse el interbloqueo y la inanicin. Un proceso podr poder entrar en su seccin crtica si no hay otros procesos que estn en la suya. Un proceso no puede permanecer de forma indefinida en su seccin crtica.

10

Comunicacin entre procesos (IV)


11

Hay varias formas de hacer cumplir esas condiciones :


Soluciones software: dejar la responsabilidad a los mismos procesos, que cooperen para cumplir con estos objetivos sin ayuda del S.O.
Algoritmos de Dekker y Peterson: algoritmos de exclusin mutua mediante variables Turno y Seal.

Soluciones hardware: utilizar instrucciones de la mquina para este control.


Inhabilitacin de interrupciones Instrucciones especiales. Se ejecutan seguidas sin soltar el control CPU

Hacer responsable al Sistema Operativo.


Semforos Monitores Paso de mensajes

11

Comunicacin entre procesos (V)


12

Semforos :
Un mecanismo semforo consta bsicamente de dos operaciones primitivas Signal(S) y Wait(S) que operan sobre un tipo especial de variable semforo S, que slo puede tomar valores enteros.
El semforo se inicializa a 1. El primer proceso que entra, ejecuta Wait(S) y lo baja a 0. Un proceso se bloquea si deja el semforo en <0. El segundo proceso que entra, ejecuta Wait(S) y lo baja a -1. Se bloquea. Si llegan ms, se sigue decrementando. El valor absoluto nos dice cuntos procesos estn esperando. Cuando el primer proceso termina, ejecuta Signal(S), subiendo 1 el valor y desbloqueando el segundo proceso.

Existen semforos binarios: slo toman los valores 0 y 1.


12

Comunicacin entre procesos (VI)


13

Monitores :
Estructuras de lenguajes de programacin que permiten exclusin mutua y sincronizacin de procesos . No los realiza el programador como los semforos.
CWAIT(C): el proceso que efecte un CWAIT sobre una variable de condicin, C, se suspende, se encola sobre la cola de procesos de dicha variable y libera el monitor, es decir, aunque no se haya completado un procedimiento, el proceso deja de estar activo dentro del monitor y por lo tanto otro proceso podr entrar. CSIGNAL(C): sobre una variable condicin C, activa un proceso de los situados en la cola de dicha variable, si hay varios elegir uno. En el caso de que no haya procesos encolados, CSIGNAL(C) no har nada.

13

Comunicacin entre procesos (VII)


14

Paso de mensajes :
Las primitivas vistas hasta ahora tienen cada una sus limitaciones:
los semforos son de un nivel muy bajo. los monitores slo los permiten unos pocos lenguajes de programacin. ninguno de ellos sirve para el intercambio de informacin entre ordenadores.

La tcnica de paso de mensajes permite la sincronizacin de procesos y facilita la comunicacin entre ellos. Existen dos operaciones bsicas para el paso de mensajes:
SEND (destino, mensaje): la utilizan los procesos para enviar un mensaje a un proceso destino. RECEIVE (origen, mensaje): la utilizan los procesos para recibir un mensaje desde otro proceso origen.
14

Comunicacin entre procesos (VIII)


15

Exclusin mutua :
Un conjunto de procesos concurrentes comparte un buzn (exmut) que contiene inicialmente un nico mensaje de contenido nulo.
Cuando un proceso pretende entrar en su seccin crtica primero intenta recibir un mensaje, y si encuentra el buzn vaco el proceso se bloquea. Cuando el proceso logra el mensaje entra a ejecutar su seccin crtica y al terminar devuelve el mensaje al buzn . El mensaje acta como testigo o token. Cuando existen varios procesos ejecutando la orden receive concurrentemente se entrega el mensaje, si lo hubiera, a uno de los procesos y los dems se bloquean y si no hubiera mensaje todos quedaran bloqueados.
15

Interbloqueo (I)
16

Condiciones necesarias, pero no suficientes


Exclusin mutua. No apropiacin. Retencin y Espera.

Condicin necesaria y suficiente si se da con las anteriores.


Espera Circular.

16

Interbloqueo (II)
17

Mecanismos para evitar el Interbloqueo


Prevencin: evitar cada una de las condiciones anteriores. Deteccin: si se detecta interbloqueo se pueden eliminar directamente los procesos implicados, ir eliminando uno a uno o retornar los procesos a su ltimo breakpoint y volverlos a lanzar. Evitacin: Algoritmo del banquero si se descubre algn peligro de Interbloqueo, no se dan los recursos..

17

Planificacin de Procesos (I)


18

La planificacin de procesos no slo abarca la decisin del proceso que entrar en ejecucin inmediatamente, sino que tambin abarca otro tipo de decisiones:
Planificacin a largo plazo: el S.O. decide crear un proceso nuevo y lo aade al grupo de procesos a ejecutar, controlando as el grado de multiprogramacin. Planificacin a medio plazo: afecta a los programas que podrn pasar a memoria principal pera entrar en ejecucin, teniendo en cuenta las necesidades de memoria del proceso. Planificacin a corto plazo: qu proceso (listo) deber lanzarse a continuacin.
18

Planificacin de Procesos (II)


19

Objetivos de la Planificacin a Corto Plazo


Justicia: asegurarse que todos los procesos tengan su tomo de CPU. Eficiencia: mantener la CPU ocupada todo el tiempo. Tiempo de respuesta: minimizar el tiempo de respuesta de los usuarios interactivos. Rendimiento o productividad: maximizar el nmero de trabajos terminados por hora. Tiempo de regreso: minimizar el tiempo medio de espera de los usuarios por lotes para obtener los resultados.

19

Planificacin de Procesos (III)


20

Todos los procesos alternan entre una fase de ejecucin de CPU y otra de espera por E/S.
Intensivos en E/S (I/O-bound) Intensivos en CPU (CPU-bound)

Prioridades. Cada proceso tiene asignada una prioridad y siempre tendr preferencia un proceso de prioridad ms alta sobre uno de prioridad menor Transiciones entre estados de un proceso:
a) Ejecucin a bloqueado. b) Ejecucin a terminado. c) Ejecucin a listo. d) Bloqueado a listo.
20

Algoritmos de Planificacin (I)


21

FCFS (First come, first server): El primero que llega se atiende primero.
Atencin por orden de llegada. Justo. Simula el mundo real (cola del supermercado). Tpicamente no apropiativo Ejemplo: P1 24ms, P2 3ms, P3 3ms
Orden de llegada: P1, P2 y P3 Tiempo de espera: P1 = 0; P2 = 24; P3 = 27

Ventajas:
Ningn proceso espera indefinidamente

Desventajas:
El tiempo de espera promedio suele ser alto Puede producir baja utilizacin de recursos
21

Algoritmos de Planificacin (II)


22

SJN (Shortest Job next): El trabajo ms corto primero.


Asocia cada proceso con su tiempo de ejecucin. La CPU se asigna al proceso con el menor tiempo de ejecucin. Si hay dos procesos con el mismo Tejecucin se aplicar FCFS. Puede ser de dos tipos: apropiativo y no apropiativo

Tabla de tiempos de ejemplo


Proceso P1 P2 P3 P4 T. Llegada 0 2 4 5 T. Ejecucin 7 4 1 4

22

Algoritmos de Planificacin (III)


23

No apropiativo

Apropiativo (Shortest Remaining Time First)

23

Algoritmos de Planificacin (IV)


24

Ventajas:
Parece perfecto. Consigue mejor tiempo de respuesta que FCFS.

Desventajas:
Puede producir alguna espera indefinida si llegan trabajos muy cortos. Cmo puedo estimar el tiempo de ejecucin del prximo proceso?.

24

Algoritmos de Planificacin (V)


25

RR: Carrusel o Round Robin: como FCFS, pero con expropiacin. Despus de un tiempo se pasa al siguiente.
La cola de proceso se trata como una FIFO circular. A cada proceso se le entrega la CPU por un espacio de tiempo llamado quantum. Un proceso se ejecuta hasta que acaba o hasta que termina su quantum. Ejemplo de procesos anteriores, con un quantum de 4ms

Ventajas:
Perfecto para procesos interactivos (Sist. Tiempo Compartido)

25

Algoritmos de Planificacin (VI)


26

Desventajas: Dependiendo del valor del quantum


Si es muy pequeo: Tiempo overhead por cambio de contexto. Si es muy grande: Se acerca a FCFS Recomendacin: 80% de los tiempos de ejecucin de los procesos deberan ser ms cortos que el quantum.

Ejemplo:
quantum = 20

Proceso P1 P2 P3 P4

T. Ejecucin 53 17 68 24

26

Algoritmos de Planificacin (VII)


27

Por Prioridad:
Se ejecuta el proceso de mayor prioridad Si hay procesos con igual prioridad, aplicar FCFS En SJF la prioridad es el tiempo de ejecucin Ejemplo: Cmo se ejecutaran los siguientes procesos siguiendo una planificacin por prioridad?
Proceso P1 P2 P3 P4 P5 Tiempo Ejecucin 10 1 2 1 5 Prioridad 3 1 4 5 2

27

Algoritmos de Planificacin (VIII)


28

Cmo Asignar Prioridades: .


Internamente por Sistema Operativo: en base al uso de recursos (memoria, archivos, etc) Externamente dependiendo de la importancia de los procesos

Suelen aumentar la prioridad por edad del proceso, para que no haya inanicin por prioridad baja (Envejecimiento).

28

Algoritmos de Planificacin (IX)


29

Mltiples colas: algoritmos intra-cola e inter-colas.


Tiene una jerarqua de varias colas de procesos. Asigna prioridades para ordenar las colas. Cada cola se puede planificar con un algoritmo. Los quantums pueden ser distintos para cada cola (Si utiliza RR) Los procesos pueden cambiar de cola en base a su historia.

Caso: Mltiples colas retroalimentadas (Utiliza RR)


Su idea es separar los procesos en base a sus necesidades de ejecucin. Los procesos interactivos en las colas de mayor prioridad. Los procesos intensivos en CPU en las colas de menor prioridad. Aplica el envejecimiento.
29

Algoritmos de Planificacin (X)


30

Planificacin en dos niveles


Unos procesos en memoria y otros en disco. A corto plazo decide a qu proceso se le asigna la CPU (Cualquiera de los algoritmos anteriores). A largo plazo decide qu procesos pasan a disco (Cualquiera de los algoritmos anteriores). Muy similar al funcionamiento de la memoria cach.

30

Segn los Sistemas Operativos (I)


31

Planificacin de Procesos en UNIX


Usa mltiples colas realimentadas.
Dependiendo del tipo de proceso
Procesos de Tiempo Compartido Procesos del Sistema Procesos de Tiempo Real

Planificacin por prioridad entre distintas colas y RR dentro de cada cola. Los procesos cambian su prioridad dinmicamente
Se incrementa la prioridad si el proceso hace E/S antes de terminar su quantum. Se decrementa si el proceso utiliza todo su quantum.
31

Segn los Sistemas Operativos (II)


32

Planificacin de Procesos en Linux


Utiliza dos algoritmos para la planificacin de procesos Algoritmo para procesos en tiempo compartido
Prioridades y crditos asociados a cada proceso. Proceso con ms crditos se ejecuta primero. A cada interrupcin del timer se decrementan crditos del proceso en ejecucin. Si llega a 0, siguiente proceso. Cuando todos los procesos llegan a crdito 0, se recalculan.

Algoritmo para procesos en tiempo real


Las prioridades absolutas son ms importantes que la justicia.

32

Segn los Sistemas Operativos (II)


33

Planificacin de Procesos en Windows


Utiliza un enfoque basado en Prioridades.
Modela de esta forma los distintos grados de urgencia en el tratamiento de los dispositivos.

Implementa Hilos. Tiene un sistema de gestin de excepciones complejo:


Estructurado. Similar al que utilizan lenguajes como C++ o Java

33

Вам также может понравиться