You are on page 1of 16

Tema 2.

Procesos
1. 2. Concepto de proceso. Principios de la Programacin concurrente.
1. 2. 3. 4. Concurrencia. Programacin concurrente. reas de comunicacin entre procesos.
1. 2. 1. 2. Exclusin mutua. Sincronizacin. Concepto de interbloqueo. Inanicin de procesos. Condiciones necesarias para que se produzca interbloqueo.

Interbloqueos (Deadlocks). Propiedades de correccin de los sistemas concurrentes.

3. 4. 5. 6.

Estados de un proceso. Representacin de los procesos. Operaciones bsicas sobre procesos. Planificacin de procesos.
1. 2. 3. Concepto de planificacin. Objetivos. Planificacin apropiativa frente a no apropiativa. Algoritmos de planificacin. Caractersticas del ncleo. Componentes del ncleo.
1. 2. El dispatcher. El controlador de interrupciones.

7.

El ncleo del Sistema Operativo.


1. 2.

1. Concepto de proceso
Definiciones: 1. Un programa es una secuencia de instrucciones o acciones definidas a priori, que pueden ser ejecutadas por parte de un procesador. 2. Un proceso es una secuencia de acciones derivadas de la ejecucin de una serie de instrucciones. Esto implica que:
un proceso puede requerir la ejecucin de uno o varios programas; y que un programa puede formar parte de ms de un proceso.

3.

4.

Un proceso se lleva a cabo por la accin de un agente (procesador) que ejecuta el programa asociado. Es decir, un procesador ejecuta un proceso, o un proceso se ejecuta sobre un procesador. El programa o programas asociados a un proceso no tienen porqu estar implementados en software.

2. Principios de la Programacin Concurrente (I)


2.1. Concurrencia. Programacin Concurrente. (I)
Definiciones de concurrencia: 1. La concurrencia es el solapamiento en el tiempo de la ejecucin de varias actividades. 2. Dos procesos, P1 y P2, se ejecutan concurrentemente si la primera instruccin de P1 se ejecuta entre la primera y la ltima instruccin de P2. Tipos de concurrencia:
P1 P2 Tiempo P1 P2

Real o paralelismo
N procesadores >= N procesos

Aparente, simulada o seudoparalelismo


N procesadores < N procesos

Tiempo

2. Principios de la Programacin Concurrente (II)


2.1. Concurrencia. Programacin Concurrente. (II)
Definicin: Procesamiento Concurrente es la situacin que se obtiene al hacer una instantnea del sistema, es decir; varios procesos se encuentran en un estado intermedio entre su estado inicial y final. Definicin: Programacin Concurrente es el conjunto de notaciones que se usan para expresar paralelismo y tcnicas que se usan para resolver posibles conflictos entre los procesos.

2. Principios de la Programacin Concurrente (III)


2.2. reas de comunicacin entre procesos.
Los procesos de un sistema no actan de forma aislada. A veces tienen que: Cooperar para alcanzar el objetivo sincronizacin Tipo de Competir por el uso de recursos exclusin mutua comunicacin

2.2.1. Exclusin mutua. (I)


Tipos de recursos: Compartibles: pueden ser usados por varios procesos de forma concurrente; No compartibles: en cada momento solo pueden ser usados por un nico proceso. Razones: por la naturaleza fsica del recurso; porque la accin sobre el recurso por parte de un proceso puede interferir en la accin de otro proceso.

2. Principios de la Programacin Concurrente (IV)


2.2.1. Exclusin mutua. (II)
Definicin: Exclusin Mutua es la comunicacin requerida entre dos o ms procesos que se estn ejecutando en paralelo y que necesitan a la vez el uso de un recurso no compartible. Consiste en asignar el recurso no compartible a slo uno de los procesos, mientras que los otros deben permanecer a la espera hasta que finalice la utilizacin de dicho recurso por el proceso al que se le asigno. Cuando este proceso termine, el recurso ser asignado a uno de los procesos en espera. Se asegura el correcto uso del recurso. Definicin: Seccin crtica o regin crtica es el trozo de cdigo donde un proceso hace uso de un recurso no compartible, por lo tanto debe ejecutarse en exclusin mutua. Las secciones crticas deben ser ejecutadas lo ms rpido posible y adems deben ser cuidadosamente codificadas.

2. Principios de la Programacin Concurrente (V)


2.2.2. Sincronizacin.
Definicin: Sincronizacin es la comunicacin requerida entre dos o ms procesos con el fin de sincronizar sus actividades. Grficamente:
P1 P2 Un proceso, P1, llegado a un punto T, no puede proseguir su ejecucin hasta que otro proceso, P2, haya llegado a otro punto, Q, de su ejecucin.

2. Principios de la Programacin Concurrente (VI)


2.3. Interbloqueos (Deadlocks). (I) 2.3.1. Concepto de interbloqueo. Inanicin de procesos.
Definicin: Un proceso esta interbloqueado si est esperando por un evento determinado que nunca va a ocurrir.
Recurso 1 Proceso A Recurso 2 Proceso B

Postergacin indefinida (inanicin o Lockout): cuando un proceso espera por un evento que puede ocurrir pero no se sabe cuando.

Interbloqueo entre dos procesos por el uso de recursos no compartibles (abrazo mortal)

2. Principios de la Programacin Concurrente (VII)


2.3.2. Condiciones necesarias para que se produzca interbloqueo. (I)
Coffman, Elphick y Shoshani establecieron las cuatro condiciones necesarias para que se produzca interbloqueo: Condicin de exclusin mutua: los procesos reclaman control exclusivo de los recursos que piden. Condicin de esperar por: los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales. Condicin de no apropiatividad: los recursos no pueden ser extrados de los procesos que los tienen hasta su completa utilizacin. Condicin de espera circular: existe una cadena circular de procesos en la cual cada uno de ellos mantiene a uno o ms recursos que son requeridos por el siguiente proceso de la cadena.

1. 2. 3. 4.

2. Principios de la Programacin Concurrente (VIII)


2.3.2. Condiciones necesarias para que se produzca interbloqueo. (II)
Puntos de estudio del interbloqueo: A. Prevencin del interbloqueo: condiciona al sistema para que elimine toda posibilidad de que se produzca interbloqueo. Estrategias:
Negar la condicin de esperar por: cada proceso debe pedir todos los recursos que va a necesitar de golpe. Si el conjunto de todos ellos est disponible, se le asigna todos. Si no esta disponible todo el conjunto completo, no se le asigna ninguno al proceso y tendr que esperar hasta que estn todos disponibles. Negar la condicin de no apropiatividad: cuando un proceso que tiene recursos le es negada una peticin de recursos adicionales, deber liberar sus recursos y, si es necesario, pedirlos de nuevo junto con los recursos adicionales. Negar la condicin de espera circular: cuando se instala un recurso se le asigna un nmero exclusivo, de forma que los procesos deben de solicitar los recursos en orden ascendente de acuerdo a los nmeros asignados a dichos recursos.

2. Principios de la Programacin Concurrente (IX)


2.3.2. Condiciones necesarias para que se produzca interbloqueo. (III)
B. Evitacin del interbloqueo: condiciona al sistema para que esquive determinadas situaciones con posibilidad de interbloqueo. C. Deteccin del interbloqueo: determinan si existe o no un interbloqueo, e identifica cules son los procesos y recursos implicados en l. D. Recuperacin del interbloqueo: pretenden romper el interbloqueo retirando una o ms de las condiciones necesarias.

2. Principios de la Programacin Concurrente (X)


2.4. Propiedades de correccin de los sistemas concurrentes.
Propiedades de seguridad (safety):
solucin al problema de la Exclusin Mutua; solucin al problema de la Sincronizacin.

Propiedades de vivacidad (liveness):


ausencia de Deadlock; ausencia de Lockout.

3. Estados de un proceso
Tiene el control de un procesador
ASIGNACIN DE CPU HA COMPLETADO SU EJECUCIN ESPERAR UN EVENTO

Activo
EXCEDE QUANTUM OCURRE EL EVENTO

Esta esperando por usar un procesador

Esta esperando que ocurra un evento

Listo Pa
SE CREA EL PROCESO

Bloqueado Pe Pm

Pb

...

Pn

...

Pc

Ordenada por algn criterio

No esta ordenada

4. Representacin de los procesos


Bloque de control de proceso (PCB) (Bloque de contexto o descriptor de proceso):
estado actual; identificacin; punteros para localizar la memoria que usa; rea para preservar registros; punteros para asignar recursos.

5. Operaciones bsicas sobre procesos


1. Crear un proceso: dar nombre al proceso, insertarlo en la lista de procesos en estado listo, determinar su prioridad inicial, crear el PCB del proceso, y asignarle los recursos iniciales del proceso.
Padre Hijo 1

...

Hijo N

2. 3. 4. 5. 6.

Destruir un proceso: devolver al sistema los recursos que tiene asignado, eliminarlo de todas las listas del sistema y borrar su PCB. Cambiar la prioridad de un proceso. Bloquear un proceso. Despertar un proceso. Despachar un proceso.

6. Planificacin de procesos (I)


6.1. Concepto de planificacin. Objetivos.
Definicin: La planificacin consiste en un conjunto de polticas y mecanismos incorporados al S. O. y por los que se rige el orden en que se completa el trabajo que hay que realizar. Su objetivo primordial es optimizar el rendimiento del sistema. Definicin: La planificacin del procesador es la asignacin de los procesadores fsicos a los procesos. La parte del S. O. encargada de tomar esta decisin se denomina planificador y el algoritmo que utiliza se llama algoritmo de planificacin o disciplina. Objetivos: a. Ser justo; e. Lograr un equilibrio entre b. Maximizar la capacidad de respuesta y utilizacin; ejecucin; f. Evitar la postergacin indefinida; c. Maximizar el nmero de usuarios g. Asegurar las prioridades; interactivos recibiendo unos tiempos h. Dar preferencia a los procesos que de respuesta aceptables; mantienen recursos no d. Equilibrar el uso de recursos; compartidos.

6. Planificacin de procesos (II)


6.2. Planificacin apropiativa frente a no apropiativa.
Planificacin no apropiativa: si una vez que se le ha asignado la CPU a un proceso, ya no se le puede retirar. Ventajas:
Es ms fcil predecir los tiempos de respuesta.

Planificacin apropiativa: si se le puede retirar la CPU a un proceso mientras est en ejecucin. Ventajas:
tiles en sistemas cuyos procesos de alta prioridad requieren atencin rpida; Permiten obtener tiempos de respuesta aceptable.

Inconvenientes:
Los trabajos largos hacen esperar a los cortos.

Inconvenientes:
Conllevan un coste debido al intercambio de contexto; Requieren sobrecarga debido a la necesidad de mantener en memoria principal programas que no se estn ejecutando.

6. Planificacin de procesos (III)


6.3. Algoritmos de planificacin. (I)
Mecanismos: A. Utilizacin de prioridades. Prioridad: calificador asignado a un proceso que determina la atencin que va a recibir del sistema. Segn el agente que asigna la prioridad:
Prioridades internas: asignadas automticamente por el S. O.; Prioridades externas: asignadas desde el exterior.

Segn los cambios que sufre la prioridad:


Prioridades estticas: no cambian durante la ejecucin del proceso; Prioridades dinmicas: varan durante la ejecucin del proceso.

B.

Utilizacin de un quantum de tiempo. Quantum: tiempo mximo que un proceso puede hacer uso del procesador. Puede ser fijo o variable y puede tener el mismo valor para todos los procesos o distinto.

6. Planificacin de procesos (IV)


6.3. Algoritmos de planificacin. (II)
A. Que no usan quantum: 1.Planificacin por orden de llegada (FIFO, primero en entrar-primero en salir). La lista de procesos en estado listo esta ordenada segn el orden de llegada al sistema (creacin del proceso), siendo el ms antiguo el que esta en la cabecera de dicha lista. Es una disciplina no apropiativa, por lo tanto al proceso que esta activo no se le puede retirar la CPU hasta que l la abandone voluntariamente. Inconvenientes:
bajos rendimientos, procesos largos hacen esperar a procesos cortos; no es til en sistemas interactivos puesto que no garantiza buenos tiempos de respuesta.

Ventajas:
permite predecir el orden de ejecucin de los procesos; es fcil de implementar.

6. Planificacin de procesos (V)


6.3. Algoritmos de planificacin. (III)
2.Planificacin del trabajo ms corto primero (SJF). Es una disciplina no apropiativa. La lista de procesos en estado listo esta ordenada por la cantidad de tiempo de ejecucin estimada, de forma que el proceso ms corto es el primero en la cola. Para establecer este orden se necesita saber el periodo de tiempo de ejecucin de un proceso, y como esto raramente esta disponible, se confa en las estimaciones de los usuarios. Inconvenientes:
con respecto al algoritmo FIFO, es menos predecible los tiempos de respuesta, sobre todo de los procesos largos; es poco til en sistemas interactivos puesto que no garantiza tiempos de respuesta razonables.

Ventajas:
con respecto al algoritmo FIFO, reduce al mnimo el tiempo promedio de espera de los trabajos, ya que al favorecer los trabajos cortos sobre los largos reduce el nmero de trabajos en espera.

6. Planificacin de procesos (VI)


6.3. Algoritmos de planificacin. (IV)
3.Planificacin del tiempo restante ms corto (SRT).
Esta disciplina elige siempre al proceso que le queda menos tiempo de ejecucin estimado para completar su ejecucin; de esta forma aunque un proceso requiera mucho tiempo de ejecucin, a medida que se va ejecutando ira avanzando en la lista de procesos en estado listo hasta llegar a ser el primero. Para realizar esta eleccin, es necesario actualizar el PCB de los procesos a medida que se le asigna tiempo de servicio, lo que supone una mayor sobrecarga adicional. Es una disciplina apropiativa ya que a un proceso activo se le puede retirar la CPU si llega a la lista de procesos en estado listo otro con un tiempo restante de ejecucin estimado menor.

6. Planificacin de procesos (VII)


6.3. Algoritmos de planificacin. (V)
B. Que usan quantum: 1.Planificacin de asignacin en rueda, por turnos (Round Robin (RR) Scheduling). La lista de procesos en estado listo es una cola circular, de forma que el proceso al que se le asigna la CPU pasar posteriormente a ser el ltimo de dicha cola circular. Si un proceso no agota su quantum debido a que pasa a estado bloqueado, entonces el siguiente proceso de la cola circular pasa a activo sin esperar que se termine el quantum del anterior. Esta disciplina apropiativa es efectiva en sistemas de tiempo compartido, puesto que garantiza tiempos de respuesta razonables.

6. Planificacin de procesos (VIII)


6.3. Algoritmos de planificacin. (VI)
2.Planificacin con colas de niveles mltiples. A cada proceso se le asigna una prioridad. La lista de procesos en estado listo esta formada por una serie de colas circulares, donde cada una de ellas contiene a todos aquellos procesos que tienen una misma prioridad. La CPU se asigna siempre al proceso de la cola de mayor prioridad que no este vaca. Problema: procesos de baja prioridad quedan postergados 1 indefinidamente. Solucin: prioridad por 2 envejecimiento. La prioridad aumenta gradualmente a medida que el proceso pasa cierto tiempo 3 en el sistema, garantizando su terminacin en un tiempo finito.

Prioridad

6. Planificacin de procesos (IX)


6.3. Algoritmos de planificacin. (VII)
3.Planificacin con colas de retroalimentacin de niveles mltiples. Su objetivo es tratar a los procesos de acuerdo a su comportamiento:
si el proceso se suspende frecuentemente se le debe asignar bastantes veces el procesador con un quantum pequeo; si el proceso se suspende poco se le debe asignar el procesador menos veces pero con un quantum grande.

La lista de procesos en estado listo esta formada por varios niveles y cada uno de ellos con una cola circular. Cuando se inserta un nuevo proceso este se aade al final de Niveles la cola de mayor nivel gestionada de forma FIFO.

6. Planificacin de procesos (X)


6.3. Algoritmos de planificacin. (VIII)
La CPU se asigna al proceso que se encuentra en la cabecera de la cola de mayor nivel que no este vaca. Cuando un proceso recibe la CPU puede ocurrir: que agote su quantum: entonces al pasar a estado listo se coloca al final de la cola del siguiente nivel inferior al que perteneca. Mientras que el proceso consuma totalmente su quantum en cada nivel, ir movindose haca el final de las colas de los niveles inferiores. La cola del nivel ms profundo se gestiona mediante asignacin de rueda. que no agote su quantum: entonces cuando pase de estado bloqueado a listo volver al final de la cola del nivel al que perteneca. Se supone que el comportamiento inmediato anterior de un proceso puede ser un buen indicador del comportamiento futuro cercano. Normalmente, el quantum otorgado al proceso aumenta a medida que el proceso se mueve haca las colas de los niveles inferiores.

6. Planificacin de procesos (XI)


6.3. Algoritmos de planificacin. (IX)
En definitiva, este algoritmo trata a los procesos segn su comportamiento, y los separa por categoras segn sus necesidades de CPU. Variantes: Permitir al proceso moverse haca un nivel superior al anterior cada vez que abandona voluntariamente la CPU antes de agotar su quantum. De esta forma, se responde a los cambios en el comportamiento de un proceso. Mantener al proceso circulando en asignacin de rueda varias veces a travs de cada cola antes de pasarlo a la siguiente inferior. El nmero de ciclos en cada uno de los niveles se incrementa a medida que el proceso pasa a la cola del nivel siguiente inferior.

7. El ncleo del Sistema Operativo (I)


7.1. Caractersticas del ncleo.
El kernel se ejecuta con las interrupciones desactivadas y es la parte del S. O. ms cercana al hardware, por ello suele estar codificado en ensamblador o lenguaje mquina, adems de estar residente en memoria principal. El resto del S. O. se suele programar en lenguajes de alto nivel. Funciones bsicas del kernel:
a) b) c) d) e) f) g) h) manipulacin de interrupciones; inhabilitacin y habilitacin de interrupciones; creacin y destruccin de procesos; cambio de estado de un proceso; despachar un proceso; comunicacin entre procesos; manipulacin de los PCBs; soporte para servicios de ms alto nivel.

7. El ncleo del Sistema Operativo (II)


7.2. Componentes del ncleo.
Administrador de procesos; Controlador de interrupciones; Manejador de la comunicacin entre procesos.

7.2.1. El dispatcher. (I)


Se encarga de asignar los procesadores a los diferentes procesos, por lo tanto debe actuar cuando se debe comprobar si es necesario cambiar el proceso que est activo, es decir en las siguientes situaciones: a) Cuando el proceso que esta activo se bloquea; b) Cuando un proceso se desbloquea pasando a estado listo y debido al algoritmo de planificacin este puede desplazar al que esta activo; c) Cuando un proceso debe pasar de activo a listo y por lo tanto otro pasara de listo a activo.

7. El ncleo del Sistema Operativo (III)


7.2.1. El dispatcher. (II)
Funcionamiento :
Inicio SI

Continuar? NO

Control al proceso

Fin

Salvar el entorno del proceso activo Restaurar el entorno del proceso que esta en la cabecera de la lista de procesos en estado listo

7. El ncleo del Sistema Operativo (IV)


7.2.2. El controlador de interrupciones. (I)
Tipos de interrupciones: Interrupciones internas: producidas por los propios procesos; Interrupciones externas: producidas por elementos ajenos a los procesos. Objetivos del controlador de interrupciones: 1. Determinar el origen de la interrupcin. Mtodos:
ejecutando un trozo de cdigo formado por estructuras de decisin anidadas (cadena de saltos); que el hardware sea capaz de distinguir las diferentes fuentes de interrupcin y transferir el control a su correspondiente rutina de tratamiento; primero el hardware reconoce a que grupo pertenece la interrupcin y luego mediante una pequea cadena de salto asociada a ese grupo se identifica la interrupcin.

7. El ncleo del Sistema Operativo (V)


7.2.2. El controlador de interrupciones. (II)
2.Dar servicio a la interrupcin. El controlador inicia el servicio de la interrupcin invocando a la rutina de tratamiento adecuada. Estas rutinas de tratamiento deben ser lo ms cortas posibles, por lo tanto, en general, llevan a cabo acciones mnimas. Es posible que una interrupcin vare el estado de un proceso, en cuyo caso ser la propia rutina de tratamiento la que cambie dicho estado accediendo al PCB del proceso. Mientras que acta el controlador de interrupciones estas estn inhabilitadas. Sin embargo, esto no se puede realizar en sistemas donde determinadas interrupciones requieren una respuesta rpida. Por ello, surge la nocin de prioridad entre las interrupciones, de forma que una interrupcin puede ser interrumpida si llega otra con una prioridad ms alta. En definitiva, solo se inhabilitan las interrupciones de igual o menor prioridad.

You might also like