Sei sulla pagina 1di 6

08/10/2011

Introduccin (I)
2

Programa:
 Algo

esttico, un conjunto de instrucciones que, una vez


ejecutadas, resuelven un determinado problema .

Sistemas Operativos.
Gestin de Procesos

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.

Implantacin de Sistemas Operativos


I.E.S. Virgen de la Paloma

Introduccin (II)
3

Introduccin (III)

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:

 En










 Estados




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.

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.

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

Cambios de contexto: La concurrencia de procesos implica que


stos entrarn y saldrn de la CPU constantemente sin haber
terminado de ejecutarse.





posibles (modelo de 3 estados):

Ejecucin a Bloqueado
Bloqueado a Listo
Ejecucin a Listo y viceversa

Control del proceso (I)


5

Control del proceso (II)

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.

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.

08/10/2011

Procesos e Hilos

Comunicacin entre procesos (I)

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.

En los sistemas multiproceso, la Concurrencia


entre procesos es una tarea compleja.
El objetivo de la concurrencia es garantizar la
Sincronizacin entre procesos.
 Sincronizacin
 Asignar

en el acceso a recursos compartidos


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)




Comunicacin entre procesos (III)

Si existe competencia entre procesos, el S.O. debe


abordar tres problemas:

10

 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.

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

Comunicacin entre procesos (V)

Hay varias formas de hacer cumplir esas condiciones :


12

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.

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

Semforos :
 Un

 Soluciones




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
11

semforos binarios: slo toman los valores 0 y 1.


12

08/10/2011

Comunicacin entre procesos (VI)




13

Comunicacin entre procesos (VII)

Monitores :

14

 Estructuras

de lenguajes de programacin que permiten


exclusin mutua y sincronizacin de procesos . No los realiza el
programador como los semforos.


Paso de mensajes :
 Las

primitivas vistas hasta ahora tienen cada una sus


limitaciones:


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.




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.

13

14

Comunicacin entre procesos (VIII)




15

Interbloqueo (I)

Exclusin mutua :

16

 Un

conjunto de procesos concurrentes comparte un buzn


(exmut) que contiene inicialmente un nico mensaje de
contenido nulo.





Condiciones necesarias, pero no suficientes


 Exclusin

mutua.
 No apropiacin.
 Retencin y Espera.

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.

Condicin necesaria y suficiente si se da con


las anteriores.
 Espera

Circular.

15

16

Planificacin de Procesos (I)

Interbloqueo (II)
17

Mecanismos para evitar el Interbloqueo

18

 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

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

08/10/2011

Planificacin de Procesos (II)

Planificacin de Procesos (III)

19

20

Objetivos de la Planificacin a Corto Plazo

Todos los procesos alternan entre una fase de


ejecucin de CPU y otra de espera por E/S.
 Intensivos

 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.

 Intensivos

en E/S (I/O-bound)
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.
Ejecucin a terminado.
 c) Ejecucin a listo.
 d) Bloqueado a listo.
 b)

19

20

Algoritmos de Planificacin (I)

Algoritmos de Planificacin (II)

 FCFS

21

(First come, first server): El primero que llega se


atiende primero.





22

Atencin por orden de llegada.


Justo. Simula el mundo real (cola del supermercado).
Tpicamente no apropiativo
Ejemplo: P1 24ms, P2 3ms, P3 3ms



 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

Orden de llegada: P1, P2 y P3


Tiempo de espera: P1 = 0; P2 = 24; P3 = 27

de tiempos de ejemplo
Proceso

T. Llegada

T. Ejecucin

P1

P2

P3

P4

 Ventajas:


Ningn proceso espera indefinidamente

 Desventajas:



El tiempo de espera promedio suele ser alto


Puede producir baja utilizacin de recursos

21

22

Algoritmos de Planificacin (III)


23

 No

Algoritmos de Planificacin (IV)

apropiativo

24

 Ventajas:



Parece perfecto.
Consigue mejor tiempo de respuesta que FCFS.

 Desventajas:
 Apropiativo

(Shortest Remaining Time First)

23

Puede producir alguna espera indefinida si llegan trabajos muy


cortos.
Cmo puedo estimar el tiempo de ejecucin del prximo
proceso?.

24

08/10/2011

Algoritmos de Planificacin (V)


25

Algoritmos de Planificacin (VI)

 RR:

Carrusel o Round Robin: como FCFS, pero con


expropiacin. Despus de un tiempo se pasa al siguiente.



26

 Desventajas:



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

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:


Proceso

T. Ejecucin

P1

53

P2

17

P3

68

P4

24

quantum = 20

 Ventajas:


Perfecto para procesos interactivos (Sist. Tiempo Compartido)

25

26

Algoritmos de Planificacin (VII)


27

 Por





Algoritmos de Planificacin (VIII)


28

Prioridad:

 Cmo

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

Tiempo Ejecucin

P1

10

P2

P3

P4

P5

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).

Prioridad

27

28

Algoritmos de Planificacin (IX)


29

 Mltiples










colas: algoritmos intra-cola e inter-colas.

30

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:


Algoritmos de Planificacin (X)

Mltiples colas retroalimentadas (Utiliza RR)

 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.

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

30

08/10/2011

Segn los Sistemas Operativos (I)




31

Segn los Sistemas Operativos (II)

Planificacin de Procesos en UNIX


 Usa


32

mltiples colas realimentadas.

Planificacin de Procesos en Linux


 Utiliza

Dependiendo del tipo de proceso

dos algoritmos para la planificacin de procesos


para procesos en tiempo compartido

 Algoritmo

Procesos de Tiempo Compartido


Procesos del Sistema
 Procesos de Tiempo Real


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.


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

 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
 Tiene



Hilos.
un sistema de gestin de excepciones complejo:

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

33

Potrebbero piacerti anche