Академический Документы
Профессиональный Документы
Культура Документы
AGENDA
Concepto de proceso. Estados y transiciones de los procesos Procesos ligeros (Hilos o hebras). Concurrencia y secuenciabilidad. Niveles, objetivos y criterios de planificacin. planificacin Tcnicas de administracin del planificador. FIFO SJF RR Queves multi-level. Multi-level feedback queves
INTRODUCCIN
El diseo de un sistema operativo debe reflejar con seguridad los requisitos que se pretende que ste cumpla. Todos los sistemas operativos de multiprogramacin, desde los sistemas monousuario, como Windows NT, hasta los sistemas de grandes computadoras, como MVS, que puede dar soporte a miles de usuarios, estn construidos en torno al concepto de proceso. El sistema operativo debe intercalar la ejecucin de un conjunto de procesos para maximizar la utilizacin del procesador ofreciendo a la vez un tiempo de respuesta razonable. El sistema operativo debe asignar los recursos a los procesos en conformidad con una poltica especifica. El sistema operativo podra tener que dar soporte a la comunicacin entre procesos y la creacin de procesos por parte del usuario
CONCEPTO DE PROCESO
Un programa es una secuencia de instrucciones o acciones definidas a priori, que pueden ser ejecutadas por parte de un procesador. Un proceso es una secuencia de acciones derivadas de la ejecucin de una serie de instrucciones. Esto implica que: j p q Un proceso es un programa en ejecucin que incluye la actividad actual, representada por el valor del contador de programa y el contenido de los registros del procesador. Adems, un proceso incluye la pila del proceso, que contiene datos temporales (como parmetros de subrutinas, direcciones de retorno y variables temporales) y una seccin de datos que contiene variables globales.
JOS ANTONIO CASTILLO GUTIRREZ
03/07/2011
CONCEPTO DE PROCESO
ABSTRACCIN DE UN PROCESO
CONCEPTO DE PROCESO
Tres programas cargados en memoria. Cada proceso representa a un programa. Existe un programa que asigna el procesador de un proceso a otro. Cada proceso tiene un tiempo de ejecucin luego de lo cual ingresa el siguiente proceso
JOS ANTONIO CASTILLO GUTIRREZ
PROCESO
CODIGO ESTADODEL PROCESO
RECURSOS ASIGNADOS
CONCEPTO DE PROCESO
Traza de los tres procesos
CONCEPTO DE PROCESO
100 direccin de inicio para el programa distribuidor (dispatcher) Las reas sombreadas indican ejecucin del proceso dispatcher dispatcher. La primera y tercera columna cuenta el ciclo de instruccin La segunda y cuarta columna muestra la direccin de la que se est ejecutando.
03/07/2011
CONCEPTO DE PROCESO
Admitir
Despertar
ESPERANDO
Esperar Tiempo agotado
Salir
LISTO
Despertar
EJECUTANDOSE
03/07/2011
CONCURRENCIA Y SECUENCIABILIDAD
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.
P1 P1 P2
NUCLEO
NUCLEO
P2
uP
JOS ANTONIO CASTILLO GUTIRREZ
uP
03/07/2011
CONCURRENCIA Y SECUENCIABILIDAD
Procesamiento Concurrente es la situacin que se obtiene al hacer un intercalado del sistema, es decir; varios procesos se encuentran en un estado intermedio entre su estado inicial y final. Programacin C P i Concurrente es el conjunto d notaciones t l j t de t i que se usan para expresar paralelismo y tcnicas que se usan para resolver posibles conflictos entre los procesos. Los procesos de un sistema no actan de forma aislada. A veces tienen que: Cooperar para alcanzar el objetivo sincronizacin Competir por el uso de recursos exclusin mutua
JOS ANTONIO CASTILLO GUTIRREZ
CONCURRENCIA Y SECUENCIABILIDAD
Sincronizacin: es la comunicacin requerida entre dos o ms procesos con el fin de uniformizar sus actividades. Grficamente:
P1 P2
. . . T . . . .
. . . . . Q . .
Un proceso, P1, llegado a un punto T, no puede continuar su ejecucin hasta que otro proceso, P2 haya llegado a otro punto Q de su ejecucin.
CONCURRENCIA Y SECUENCIABILIDAD
Exclusin Mutua. 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.
JOS ANTONIO CASTILLO GUTIRREZ
CONCURRENCIA Y SECUENCIABILIDAD
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.
JOS ANTONIO CASTILLO GUTIRREZ
03/07/2011
CONCURRENCIA Y SECUENCIABILIDAD
Seccin Critica o Regin Critica.
CONCURRENCIA Y SECUENCIABILIDAD
MECANISMO DE SEMAFOROS
Es la porcin 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.
Es una variable (o tipo ) q abstracto de datos) que permite controlar el acceso de mltiples procesos a un recurso comn en un ambiente de programacin paralela.
CONCURRENCIA Y SECUENCIABILIDAD
MECANISMO DE SEMAFOROS En 1965, E.W. Dijkstra sugiri el uso de una variable entera para contar el nmero de despertares almacenados para su uso posterior. En su propuesta se present un nuevo tipo de variable, llamada Semforo. Un semforo puede tener el valor 0, lo que indica que no existen despertares almacenados; o bien algn valor positivo si estn pendientes uno o ms despertares.
CONCURRENCIA Y SECUENCIABILIDAD
MECANISMO DE SEMAFOROS
Dijkstra, propuso dos operaciones, DOWN y UP (generalizaciones de SLEEP y WAKEUP, respectivamente). La operacin Down verifica si el valor de un semforo es mayor que 0 En este caso decrementa el valor (es decir 0. caso, decir, utiliza un despertar almacenado) y contina. Si el valor es cero, el proceso se va a dormir. La verificacin y modificacin del valor, as como la posibilidad de irse a dormir se realiza en conjunto, como una sola e indivisible accin atmica. Se garantiza que al iniciar una operacin con un semforo, ningn otro proceso puede tener acceso al semforo hasta que la operacin termine o se bloquee. Esta atomicidad es absolutamente esencial para resolver los problemas de sincronizacin y evitar condiciones de competencia.
JOS ANTONIO CASTILLO GUTIRREZ
03/07/2011
CONCURRENCIA Y SECUENCIABILIDAD
MECANISMO DE SEMAFOROS
La operacin UP incrementa el valor del semforo correspondiente. Si uno o ms procesos dorman en ese semforo y no podan completar una operacin Down anterior, el sistema elige alguno de ellos (por ejemplo, en forma aleatoria) y se le permite terminar Down. As, despus de un UP en un semforo con procesos durmiendo, el semforo seguir con valor cero, pero habr un menor nmero de procesos durmiendo. La operacin de incremento del semforo y despertar de un proceso tambin es indivisible. Ningn proceso llega a bloquear mediante un UP. Un semforo es una variable protegida, cuyo valor slo puede ser ledo y alterado mediante las operaciones P y V, y una operacin de asignacin de valores iniciales y (Inicia semforo)..
JOS ANTONIO CASTILLO GUTIRREZ
CONCURRENCIA Y SECUENCIABILIDAD
MECANISMO DE SEMAFOROS
Tipos de Semforos. Semforos Binarios (Valores de 1,0) Semforos Contadores (Valores enteros no negativos) Operacin P (Sobre el semforo S) si S>0 entonces S:=S-1; sino (esperar S) Operacin V (Sobre el semforo S) si (Uno o ms procesos esperan S) entonces (dejar que prosiga uno de esos procesos) sino S:=S+1
JOS ANTONIO CASTILLO GUTIRREZ
CONCURRENCIA Y SECUENCIABILIDAD
MECANISMO DE MONITORES
Son mdulos que encierran los recursos o variables compartidas como componentes internos privados y ofrece una interfaz de acceso a ellos que garantiza el rgimen de exclusin mutua. La declaracin de un monitor incluye: D l Declaracin d l constantes, variables, procedimientos y f i de las t t i bl di i t funciones i que son privados del monitor (solo el monitor tiene visibilidad sobre ellos). Declaracin de los procedimientos y funciones que el monitor exporta y que constituyen la interfaz a travs de las que los procesos acceden al monitor. Cuerpo del monitor, constituido por un bloque de cdigo que se ejecuta al ser instanciado o inicializado el monitor. Su finalidad es inicializar las variables y estructuras internas del monitor.
JOS ANTONIO CASTILLO GUTIRREZ
CONCURRENCIA Y SECUENCIABILIDAD
CARACTERISTICAS DE LOS MONITORES
Las estructuras de datos internas del monitor cuya finalidad es ser compartidas por mltiples procesos concurrentes, solo pueden ser inicializadas, ledas y actualizadas por cdigo propio del monitor. Los nicos componentes del monitor pblicos (visibles desde mdulos externos) son los procedimientos y funciones exportadas exportadas. El monitor garantiza el acceso mutuamente exclusivo a los procedimientos y funciones de la interfaz. Si son invocados concurrentemente por varios procesos, solo la ejecucin de un procedimientos del monitor es permitido. Los procesos no atendidos son suspendidos hasta que la ejecucin del procedimiento atendido acabe. Dado que todo el cdigo relativo a un recurso o a una variable compartida est incluido en el mdulo del monitor, su mantenimiento es mas fcil y su implementacin es mas eficiente.
JOS ANTONIO CASTILLO GUTIRREZ
03/07/2011
CONCURRENCIA Y SECUENCIABILIDAD
Concepto de interbloqueo (Deadlocks). Un proceso esta interbloqueado si est esperando por un evento determinado que nunca va a ocurrir.
Recurso 1 I t bl Interbloqueo entre d t dos procesos por el uso de recursos no compartibles (abrazo mortal)
CONCURRENCIA Y SECUENCIABILIDAD
Condiciones necesarias interbloqueo para que se produzca
Proceso A
Proceso B
Recurso 2
JOS ANTONIO CASTILLO GUTIRREZ
1. Condicin de exclusin mutua: los procesos reclaman control exclusivo de los recursos que piden. 2. Condicin de esperar por: los procesos mantienen los p p p recursos que ya les han sido asignados mientras esperan por recursos adicionales. 3. Condicin de no apropiatividad: los recursos no pueden ser extrados de los procesos que los tienen hasta su completa utilizacin. 4. 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
JOS ANTONIO CASTILLO GUTIRREZ
CONCURRENCIA Y SECUENCIABILIDAD
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 golpe. 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.
JOS ANTONIO CASTILLO GUTIRREZ
CONCURRENCIA Y SECUENCIABILIDAD
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. B. Evitar el 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.
JOS ANTONIO CASTILLO GUTIRREZ
03/07/2011
Ser predecible: Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de tiempo independientemente de la carga del sistema. Minimizar la sobrecarga: No suele considerarse un objetivo muy importante. Equilibrar el uso de recursos: Favorecer a los procesos que utilizarn recursos infrautilizados. Equilibrar respuesta y utilizacin: La mejor manera de garantizar buenos tiempos de respuesta es disponer de los recursos suficientes cuando se necesitan, pero la utilizacin total de recursos podr ser pobre.
JOS ANTONIO CASTILLO GUTIRREZ
03/07/2011
10
03/07/2011
Tw Tt
Tiempo de llegada
Ts
Tt = Ts + Tw Ps = 1 / Tt
Tiempo de despacho
Tiempo de salida
La ventaja de este algoritmo es su fcil implementacin, sin embargo, no es vlido para entornos interactivos ya que un proceso de mucho clculo de CPU hace aumentar el tiempo de espera de los dems procesos.
JOS ANTONIO CASTILLO GUTIRREZ
11
03/07/2011
Algunas de las caractersticas de este algoritmo es que es no apropiativo y justo en el sentido formal, aunque injusto en el sentido de que: los trabajos largos hacen esperar a los cortos y los trabajos sin importancia hacen esperar a los importantes. Por otro lado es predecible, pero no garantiza buenos tiempos de respuesta, por ello se emplea como esquema secundario.
JOS ANTONIO CASTILLO GUTIRREZ
Desempeo: SJF es ptimo en cunto a reducir el tiempo de espera. Demostracin: Cualquier permutacin aumenta el tiempo de espera. Problemas: Es necesario conocer a priori o predecir el tiempo de servicio del trabajo. Existe posibilidad de inanicin para trabajos largos.
JOS ANTONIO CASTILLO GUTIRREZ
12
03/07/2011
Ciclode CPU 24 3 3
P3 10 P1 14
P1 16
P1 22
P1 26
P1 30
13
03/07/2011
COLAS
P4
P6
P7
P2
P1
P16
Solucin: prioridad por envejecimiento. La prioridad aumenta gradualmente a medida que el proceso pasa cierto tiempo en el sistema, garantizando su terminacin en un tiempo finito.
P2
si el proceso se suspende frecuentemente se le debe p p asignar bastantes veces el procesador con un quantum pequeo; 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.
JOS ANTONIO CASTILLO GUTIRREZ
P1
P16
Cuando se inserta un nuevo proceso este se aade al final de la cola de mayor nivel gestionada de forma FIFO.
14
03/07/2011
15