Está en la página 1de 40

ESPECIALIDAD:

Ingeniera en Sistemas computacionales MATERIA: Sistemas operativos

UNIDAD:
2 TEMA: Administracin de procesos y del procesador

CATEDRTICO: Ing. Aragn Reyes Vera Alexandro

EQUIPO: 1
Carrillo Santiago Lucero Martnez Gasga Liliana 12190312 12190392

Pacheco Almaraz Anglica


Reyes Nolasco Victor Ivn Ruiz Santiago Jessica Guadalupe

12190243
12190248 12190269

SEMESTRE:

GRUPO: Y

Heroica Cd. De Juchitn De Zaragoza Oaxaca, a 3 de octubre del 2013

ndice

Unidad 2: Administracin de procesos y del procesador.


Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.- Concepto de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.- Estados y transiciones de los procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.- Procesos Ligeros (Hilos o hebras) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.- Concurrencia y secuenciabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1.- Exclusin mutua de secciones crticas . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2.- Sincronizacin de procesos en S.C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2.1.- Mecanismos de semforos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2.2.- Mecanismos de monitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3.- Interbloqueo (DeadLock) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3.1.- Prevencin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3.2.- Deteccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3.3.- Recuperacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.- Niveles, objetivos y criterios de planificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.- Tcnicas de administracin del planificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1.- FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.2.- SJF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.3.- RR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.4.- Queves multi-level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.5.- Multi-level feedback queves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pgina
2 3 4 6 8 10 12 15 17 19 21 22 23 25 27 28 30 33 35 36 38 39

Conclusin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Introduccin
El concepto central de cualquier Sistema Operativo es Lo cual es una abstraccin de un programa en ejecucin tambin llamada tarea. el de proceso.

La gestin de procesos es la tarea fundamental de cualquier sistema operativo moderno. El sistema operativo debe asignar recursos a los procesos, permitir el intercambio de informacin entre los mismos, proteger los recursos de un proceso del resto y facilitar la sincronizacin de procesos. Lo que se ver en el siguiente trabajo ser lo ms esencial sobre la forma en la que el sistema gestiona las interrupciones, este se encarga de controlar los accesos al procesador, verificar el estatus de un proceso y determinar se ejecucin de acuerdo al nivel de importancia, cabe destacar que no todas las interrupciones son controladas por el SO, ya que existen interrupciones enmascaradas y que son exclusivas del hardware de nuestro ordenador. Se tratar de hacer comprender de forma sencilla la manera tan compleja en la que trabaja una computadora, se hablar sobre un tema muy importante: cmo prever soluciones a ciertos problemas de ejecucin, as como establecer prioridades al monto de asignar tareas, sobre todo para los sistemas multiusuario.

Se hablara sobre la sincronizacin por medio de semforos, que son un mecanismo de comunicacin con el cual no se mueven datos, puesto que solo se puede consultar y modificar su valor al tener un carcter puramente informativo; y tambin por medio de monitores, que son un mecanismo de software para control de concurrencia que contiene los datos y los procedimientos necesarios para realizar la asignacin de un determinado recurso o grupo de recursos compartidos reutilizables en serie. Tambin mencionaremos las tcnicas de administracin del planificador, ya que ste es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso y es esencial en los sistemas operativos de tiempo real. Su funcin consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos para su ejecucin.

2.1 Concepto de proceso.


Antes de empezar con la definicin de procesos, primero hay que saber que es un programa. Programas.- Coleccin de instrucciones que el procesador interpreta y ejecuta, se almacenan en sistemas no voltiles necesitando ser cargados en memoria principal para poder ser ejecutados, se considera un ente esttico. Ahora bien, un proceso es un concepto manejado por el sistema operativo y que referencia un programa en ejecucin. Formalmente es una unidad de actividad que se caracteriza por la ejecucin de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados o bien, un programa en ejecucin, el sistema operativo les asigna recursos, se consideran un ente dinmico. Cuando se ejecuta ms de un proceso de forma concurrente en un sistema, todos necesitan que el propio sistema les suministre una serie de recursos. Para ello, el sistema operativo, gracias a la UCP (Unidad Central de Proceso), se encarga de asignar estos recursos en un orden adecuado y atendiendo a unas prioridades. Tambin realiza funciones de sincronizacin de todos los procesos, para que se ejecuten en el orden adecuado y segn la prioridad decidida. Cada vez que un programa se convierte en proceso, es decir, cada vez que se ejecuta un programa, adems de ubicar en memoria las instrucciones que lo componen y sus datos asociados, a dicho proceso se le asocia una estructura de datos. Esta estructura de datos, que es nica para cada proceso, identifica el proceso respecto de los dems y sirve para controlar su correcta ejecucin. Es lo que se llama el bloque de control del proceso o BCP, y contendr para cada proceso la siguiente informacin: estado actual del proceso, identificador del proceso, prioridad del proceso, ubicacin en memoria y recursos utilizados.

2.2 Estados y transiciones de los procesos.


El estado del procesador est formado por el contenido de todos sus registros, que se enumeran seguidamente. Registros generales: De existir registros especficos de coma flotante tambin se incluyen aqu. Contador de programa.

El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Estos estados son se muestran en el siguiente diagrama:

A continuacin se describe cada uno de estos procesos: Estado Nuevo Descripcin Se dice que un proceso est en estado de nuevo cuando apenas se encuentra en proceso de crearse. Un proceso est en estado de listo, cuando podra usar una UCP, si hubiera una disponible. Se dice que un proceso est estado de ejecucin, si en ese momento tiene sta ocupando la CPU. Se dice que un proceso est en estado de bloqueado, si espera que ocurra algo, como por ejemplo, la terminacin de una E/S, para as poder ponerse en marcha. Cuando un proceso se ha completado su ejecucin pasa a ser un proceso terminado.

Listo

En ejecucin

Bloqueado

Terminado

Transiciones de estados:
Una vez que un programa se ha lanzado y se ha convertido en proceso puede atravesar varias fases o estados hasta que finaliza o termina. Cuando un proceso se lanza nunca se ejecuta directamente, sino que se coloca en la cola de procesos en un estado denominado preparado. Cuando la UCP le asigna su tiempo, el proceso pasa de preparado a ejecucin. Transicin A. Ocurre cuando el programa que est en ejecucin necesita algn elemento para continuar ejecutndose. Transicin B. Ocurre cuando un programa o proceso ha utilizado el tiempo asignado por la UCP (procesador) para su ejecucin y tiene que dejar paso al siguiente proceso. Transicin C. Ocurre cuando el proceso que est preparado pasa al proceso de ejecucin, es decir, cuando al proceso le llega una nueva disposicin de tiempo de la UCP para poder ejecutarse. Transicin D. Ocurre cuando el proceso pasa de estar bloqueado a estar preparado.

2.3 Procesos ligeros (hilos o hebras).


Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.

Es una unidad bsica de utilizacin de la CPU consistente en un juego de registros y un espacio de pila. Comparte el cdigo, los datos y los recursos con sus hebras pares Una tarea (o proceso pesado) est formada ahora por una o ms hebras Una hebra slo puede pertenecer a una tarea

Dentro de un proceso puede haber uno o ms hilos de control cada uno con: Un estado de ejecucin (en ejecucin, listo, bloqueado). Un contexto de procesador, que se salva cuando no est ejecutndose. Una pila de ejecucin. Algn almacenamiento esttico para variables locales. Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.

Paralelismo:
Los procesos ligeros permiten paralelizar una aplicacin.

2.4 Concurrencia y secuenciabilidad.


La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la comunicacin entre procesos, comparacin y competencia por los recursos, sincronizacin de la ejecucin de varios procesos y asignacin del tiempo de procesador a los procesos y es fundamental para que existan diseos como Multiprogramacin, Multiproceso y Proceso distribuido Los procesos son concurrentes si existen simultneamente. Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos La concurrencia puede presentarse en tres contextos diferentes:

Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecucin de los mismos para dar as una apariencia de ejecucin simultnea. Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no slo pueden intercalar su ejecucin sino tambin superponerla. Multicomputadora. Es una mquina de memoria distribuida, que est formada por una serie de computadoras. En este tipo de arquitecturas tambin es posible la ejecucin simultnea de los procesos sobre los diferentes procesadores.

Ejemplo de concurrencia:
En una base de datos bancaria podra ocurrir que se paguen dos cheques en forma simultnea sobre una cuenta que no tiene suficiente saldo para cubrirlos en su totalidad, esto es posible evitarlo si tiene un control de concurrencia

Buffer:
Es una ubicacin de la memoria en un Disco o en un instrumento digital reservada para el almacenamiento temporal de informacin digital, mientras que est esperando ser procesada. Por ejemplo, un analizador TRF tendr uno o varios buffers de entrada, donde se guardan las palabras digitales que representan las muestras de la seal de entrada. El Z-Buffer es el usado para el renderizado de imgenes 3D.

Exclusin mutua:
Los algoritmos de exclusin mutua se usan en programacin concurrente para evitar el uso simultneo de recursos comunes, como variables globales, por fragmentos de cdigo conocidos como secciones crticas.

2.4.1. Exclusin mutua de secciones crticas.


La exclusin mutua la podramos definir como una operacin de control que permite la coordinacin de procesos concurrentes, y que tiene la capacidad de prohibir a los dems procesos a realizar una accin cuando un proceso haya obtenido el permiso. El control de la competencia involucra al sistema operativo inevitablemente, porque es el sistema operativo el que asigna los recursos. Adems, los procesos deben ser capaces por s mismos de expresar de algn modo los requisitos de exclusin mutua, como puede ser bloqueando los recursos antes de usarlos. Exclusin Mutua Consiste en que un solo proceso excluye temporalmente a todos los dems para usar un recurso compartido de forma que garantice la integridad del sistema , un proceso que se interrumpe en una seccin no critica debe hacerlo son estorbar a los otros procesos.

Regiones

crticas:

Es posible clasificar las interacciones de los procesos en funcin del nivel de conocimiento que cada proceso tiene de la existencia de los dems: Los procesos no tienen conocimiento de los dems: Estos son procesos independientes que no estn pensados para operar juntos. Los procesos tienen un conocimiento indirecto de los otros: Los procesos no conocen necesariamente a los otros, pero comparten el acceso a algunos objetos. Los procesos tienen un conocimiento directo de los otros: Los procesos son capaces de comunicarse con los dems y estn diseados para trabajar conjuntamente en alguna actividad.

Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso, es decir, quieren entrar a un recurso al mismo tiempo, y la ejecucin de un proceso puede influir en el comportamiento de los procesos que compiten y el sistema operativo le asignar el recurso a uno de ellos y el otro tendr que esperar. Por lo que el proceso que quede esperando, se retrasar, se bloqueara y en el mal de los casos nunca se terminar con xito. Es en estos procesos concurrentes, donde, se plantean una serie de situaciones clsicas de comunicacin y sincronizacin, entre ellos el problema de la seccin crtica.

10

Soluciones a la exclusin mutua:


Hay varias formas de satisfacer los requisitos de exclusin mutua: Soluciones por Software. Una forma es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente, de esta manera los procesos deben coordinarse unos con otros para cumplir la exclusin mutua sin ayuda alguna. Soluciones por Hardware. Propone el uso de instrucciones de la mquina a tal efecto, estas tienen la ventaja de reducir la sobrecarga.

Solucin a la seccin crtica:


Para solucionar el problema de la seccin crtica es necesario utilizar algn mecanismo de sincronizacin que permita a los procesos cooperar entre ellos sin problemas. Este mecanismo debe proteger el cdigo de la seccin crtica y su funcionamiento bsico es el siguiente: Exclusin mutua: Si un proceso est ejecutando cdigo de la seccin crtica, ningn otro proceso lo podr hacer. Progreso: Si ningn proceso est ejecutando dentro de la seccin crtica, la decisin de qu proceso entra en la seccin se har sobre los procesos que desean entrar. Interbloqueo. Si se tienen dos procesos P1 y P2 y dos recursos crticos, R1 y R2. Supngase que cada proceso necesita acceder a ambos recursos para llevar a cabo una parte de su funcin. En tal caso, es posible que se presente la siguiente situacin: el sistema operativo asigna R1 a P2 y R2 a P1. Cada proceso est esperando a uno de los dos recursos. Inanicin. Supngase que tres procesos, P1, P2 y P3, necesitan acceder peridicamente al recurso R. Considrese la situacin en la que P1 est en posesin del recurso y tanto P2 como P3 estn parados, esperando al recurso. Cuando P1 abandona su seccin crtica, tanto P2 como P3 deben poder acceder a R.

11

2.4.2 Sincronizacin de Procesos en S.C.


La sincronizacin es la transmisin y recepcin de seales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos. Es la coordinacin y cooperacin de un conjunto de procesos para asegurar la comparacin de recursos de cmputo. La sincronizacin entre procesos es necesaria para prevenir y/o corregir errores de sincronizacin debidos al acceso concurrente a recursos compartidos. La sincronizacin permite intercambiar seales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones especficas de precedencia impuestas por el problema que se resuelve. Sin una sincronizacin adecuada entre procesos, la actualizacin de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia difciles de depurar. Uno de los objetivos del sistema operativo es la representacin de los procesos y el soporte de los cambios de contexto entre procesos, que posibilitan la comparticin del recurso CPU. Cada vez que un proceso pasa al estado preparado, est compitiendo por el recurso CPU. Otro objetivo del sistema operativo multiprogramado es la planificacin del uso del (de los) recurso(s) de proceso.

Una lista de PCBs de encadenado simple:


De esta forma, podemos definir el sistema operativo como un modelo de procesos que se representa mediante un sistema de colas, segn se muestra a continuacin.

En programacin concurrente, se define como a la porcin de cdigo de un programa de computador el cual accede a un recurso compartido que no debe de ser accedido por ms de un hilo en ejecucin.

12

La seccin crtica por lo general termina en un tiempo determinado y el hilo, proceso tarea solo tendr que esperar un perodo determinado de tiempo para entrar. Se necesita de un mecanismo de sincronizacin en la entrada y salida de la seccin crtica para asegurar la utilizacin exclusiva del recurso, por ejemplo un semforo. Slo un proceso puede estar en una seccin crtica a la vez. Los mecanismos de comunicacin y sincronizacin son dinmicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva ningn mecanismo de comunicacin, ya que ellos podran producir efectos indeseados. Es decir, la comunicacin es algo puntual.

Los servicios bsicos de comunicacin son:

a. Crear: El proceso solicita la creacin del mecanismo b. Enviar o escribir: El proceso emisor enva informacin al proceso receptor c. Recibir o leer: El proceso receptor recibe informacin d. Destruir: El proceso solicita la destruccin del mecanismo de comunicacin

La comunicacin puede ser sncrona y asncrona:


a. Sncrona: Los dos procesos han de ejecutar servicios de forma simultnea. El emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir. b. Asncrona: El emisor hace el envo y prosigue su ejecucin. El SO ofrece un almacenamiento intermedio para guardar la informacin enviada, hasta que el receptor la solicite.

Dentro del ncleo del sistema operativo, el espacio de direcciones es nico, por lo que la comunicacin se resuelve mediante el uso de variables de memoria compartida. Como contrapartida a la agilidad de este esquema, es necesario utilizar mecanismos explcitos de sincronizacin para garantizar acceso exclusivo a las variables compartidas.

13

Si se definen buffers o colas compartidas a las que se proporciona acceso exclusivo, se pueden utilizar esquemas de comunicacin ms elaborados, como es el caso del productor-consumidor. El esquema cliente-servidor es un caso particular del productor-consumidor donde los clientes producen peticiones que son consumidas por el servidor de un determinado recurso. Un sistema operativo con estructura cliente-servidor resulta atractivo por la claridad de su diseo. Cuando los procesos que se comunican mediante estos esquemas no comparten el espacio de direcciones, lo que sucede en particular en sistemas basados en micro ncleo, se requieren primitivas de comunicacin por paso de mensajes, que, al gestionar implcitamente la sincronizacin, simplifican la programacin de la comunicacin.

Propiedades del acceso exclusivo a secciones crticas:


Como criterios de validez de un mecanismo de sincronizacin nos referiremos al cumplimiento de las siguientes condiciones enunciadas por Dijkstra para el acceso exclusivo a una seccin crtica. a. Exclusin mutua. No puede haber ms de un proceso simultneamente en la SC. b. No interbloqueo. Ningn proceso fuera de la SC puede impedir que otro entre a la SC. c. No inanicin. Un proceso no puede esperar por tiempo indefinido para entrar a la SC. d. Independencia del hardware. No se pueden hacer suposiciones acerca del nmero de procesadores o de la velocidad relativa de los procesos.

Suposicin inicial adicional:


Las instrucciones del Lenguaje Mquina son atmicas y se ejecutan secuencialmente.

Adems, existen otros criterios que determinan la calidad del mecanismo y que fundamentalmente se refieren a su rendimiento, como son laproductividad(nmero de operaciones de sincronizacin por unidad de tiempo que el mecanismo es capaz de soportar) y el tratamiento equitativo entre los procesos (por ejemplo, siguiendo una poltica FIFO para entrar a la seccin crtica).

14

2.4.2.1 Mecanismo de semforos.


Sincronizacin por semforos.
Un semforo es un mecanismo de comunicacin con el cual no se mueven datos, puesto que solo se puede consultar y modificar su valor al tener un carcter puramente informativo. 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. 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, 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 a 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. 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. Es una solucin sencilla y elegante del problema de la exclusin mutua. Esta tcnica permite solucionar la mayora de los problemas de sincronizacin entre procesos. Un semforo binario es un indicador de condicin (s) que registra si un registro est disponible o no. Un semforo slo puede tomar dos valores; 0 y 1. Si para un semforo, S=1 el recurso est disponible y la tarea lo puede utilizar; si S=0 el recurso no est disponible y el proceso debe esperar.

15

Los semforos se implementan mediante una cola de tareas a la que se aaden los procesos que estn en espera del recurso. Solo se permiten tres operaciones sobre un semforo:

1. Inicializa (s: Semforo_Binario; v: integer) -- > poner el valor del semforo s al valor de v (0,1). 2. Espera (wait)(s) if s = 1 then s: = 0 else Suspender la tarea que hace la llamada y ponerla en la cola de tareas. 3. Seal (signal)(s) if cola de tareas vaca then s : = 1 else Reanudar la primera tarea de la cola tareas.

Estas operaciones son procedimientos que se implementan como acciones indivisibles. En sistemas con un nico procesador bastar simplemente con inhibir las interrupciones durante la ejecucin de las operaciones del semforo. Al introducir el semforo se crea un nuevo estado en el diagrama de transiciones, el de espera.

16

2.4.2.2 Mecanismo de monitores.

Un monitor es un mecanismo de software para control de concurrencia que contiene los datos y los procedimientos necesarios para realizar la asignacin de un determinado recurso o grupo de recursos compartidos reutilizables en serie.

Tipos de Monitores
Monitor tipo monitor: Este monitor fue implementado en Pascal Concurrente, lenguaje desarrollado por Per Brinch Hansen. Es el monitor ms simple de todos pues solo tiene tres estados y las funciones internas son muy sencillas. Una caracterstica distintiva de este monitor es que el proceso que reinicia a otros debe salir del monitor, es decir abandona el estado activo. El diagrama de estados de este monitor esta dado en la siguiente figura.

Monitor tipo manager:


Este monitor es muy similar al monitor tipo monitor, la diferencia esencial es que un proceso que es reiniciado debe abandonar el monitor, es decir no se le permite que entre al estado activo. El diagrama de estados de este monitor se presenta en la figura.

17

Monitor tipo mediador:


Este monitor fue propuesto por C.A.R. Hoare, tiene la caracterstica de compensar las desventajas de los monitores tipo monitor y tipo managEer. Un proceso que reinicia a otros puede permanecer dentro del monitor y un proceso reiniciado tambin puede permanecer dentro del monitor, El diagrama de estados de este monitor se da en la figura.

Monitor tipo gladiador: Este monitor propuesto por Cavers y Brown tiene la caracterstica fundamental de solo tener un punto de consistencia interno (un punto de consistencia interno ocurre cuando el proceso que est activo abandona este estado y sigue dentro del monitor). El diagrama de estados de este monitor se da en la figura.

18

2.4.3 Interbloqueo (DeadLock).


En un conjunto de procesos, cada uno est esperando un evento que slo otro proceso del conjunto puede causar. Puesto que todos los procesos estn esperando, ninguno de ellos puede causar ninguno de los eventos que podran despertar a cualquiera de los dems miembros del conjunto, y todos los procesos continan esperando indefinidamente.

Ejemplo: Una carretera en 2 direcciones tiene un puente que slo deja pasar vehculos en un sentido, con las siguientes situaciones: Un auto llega al puente y en sentido contrario no hay nadie y puede cruzar. Si el paso es controlado por un semforo en cada lado y 100 m antes de cada uno hay detectores de autos para encender el semforo opuesto en rojo, pude pasar que 2 autos lleguen al mismo tiempo en ambos sentidos y ambos estn detenidos por el semforo (interbloqueo). Si no hay semforos, un conductor cede el paso, pero antes de que termine el otro, aparece un 3 y as sucesivamente, puede hacer que el conductor educado no cruce mientras haya carros en sentido contrario (postergacin indefinida). Recursos: Elemento que un programa o proceso puede usar en la computadora donde se ejecuta, y puede ser usado por un solo proceso en un momento dado. Tipos de Recursos: Reutilizables.- El que puede ser usado con seguridad por un proceso y no se agota con el uso, son liberados para que otros los resen: CPU, canales de E/S, memoria y estructuras de datos archivos, bases de datos y semforos. Consumibles.- El que puede ser creado (producido) y destruido (consumido). No hay lmite en la cantidad. Un proceso productor que no est bloqueado puede liberar cualquier nmero de recursos consumibles. Cuando un proceso adquiere un recurso, ste deja de existir: seales, mensajes, e informacin en buffers.

19

Operaciones: Solicitud Uso Liberacin

Coffman (1971) demostr que deben cumplirse cuatro condiciones para que haya un bloqueo mutuo:

1. Condicin de exclusin mutua: Cada recurso est asignado nicamente a un solo proceso o est disponible. 2. Condicin de retener y esperar: Los procesos que actualmente tienen recursos que les fueron otorgados previamente pueden solicitar nuevos recursos. 3. Condicin de no expropiacin: No es posible quitarle por la fuerza a un proceso los recursos que le fueron otorgados previamente. El proceso que los tiene debe liberarlos . 4. Condicin de espera circular: Debe haber una cadena circular de dos o ms procesos, cada uno de los cuales est esperando un recurso retenido por el siguiente miembro de la cadena.

20

2.4.3.1 Prevencin.
Los bloqueos mutuos pueden ser evitados si se sabe cierta informacin sobre los procesos antes de la asignacin de recursos. Para cada peticin de recursos, el sistema controla si satisfaciendo el pedido entra en un estado inseguro, donde puede producirse un bloqueo mutuo.

De esta forma, el sistema satisface los pedidos de recursos solamente si se asegura que quedar en un estado seguro. Para que el sistema sea capaz de decidir si el siguiente estado ser seguro o inseguro, debe saber por adelantado y en cualquier momento el nmero y tipo de todos los recursos en existencia, disponibles y requeridos. Existen varios algoritmos para evitar bloqueos mutuos: Algoritmo del banquero, introducido por Dijkstra. Algoritmo de grafo de asignacin de recursos. Algoritmo de Seguridad. Algoritmo de solicitud de recursos.

Los bloqueos mutuos pueden prevenirse asegurando que no suceda alguna de las condiciones necesarias vistas anteriormente. 1. Eliminando la exclusin mutua: Ningn proceso puede tener acceso exclusivo a un recurso. Esto es imposible para procesos que no pueden ser encolados (puestos en un spool), e incluso con colas tambin pueden ocurrir interbloqueos. 2. La condicin de retencin y espera puede ser eliminada haciendo que los procesos pidan todos los recursos que van a necesitar antes de empezar. Este conocimiento por adelantado muchas veces es imposible nuevamente. Otra forma es requerir a los procesos liberar todos sus recursos antes de pedir todos los recursos que necesitan. Esto tambin es imprctico en general. 3. La condicin de no expropiacin puede ser tambin imposible de eliminar dado que un proceso debe poder tener un recurso por un cierto tiempo o el procesamiento puede quedar inconsistente. 4. La condicin de espera circular es la ms fcil de atacar. Se le permite a un proceso poseer slo un recurso en un determinado momento, o una jerarqua puede ser impuesta de modo tal que los ciclos de espera no sean posibles.

21

2.4.3.2 Deteccin.
Con deteccin del interbloqueo, se concedern los recursos que los procesos necesiten siempre que sea posible. Peridicamente, el sistema operativo ejecuta un algoritmo que permite detectar la condicin de crculo vicioso de espera. Puede emplearse cualquier algoritmo de deteccin de ciclos en grafos dirigidos.

El control del interbloqueo puede llevarse a cabo tan frecuentemente como las solicitudes de recursos o con una frecuencia menor, dependiendo de la probabilidad de que se produzca el interbloqueo.

Una vez detectado el interbloqueo, hace falta alguna estrategia de recuperacin. Las tcnicas siguientes son posibles enfoques, enumeradas en orden creciente de sofisticacin: 1. Abandonar todos los procesos bloqueados. Esta es, se crea o no, una de las soluciones ms comunes, si no la ms comn, de las adoptadas en un sistema operativo. 2. Retroceder cada proceso interbloqueado hasta algn punto de control definido previamente y volver a ejecutar todos los procesos. Es necesario que haya disponibles unos mecanismos de retroceso y reinicio en el sistema. El riesgo de esta solucin radica en que puede repetirse el interbloqueo original. Sin embargo, el no determinismo del procesamiento concurrente asegura, en general, que esto no va a pasar. 3. Abandonar sucesivamente los procesos bloqueados hasta que deje de haber interbloqueo. El orden en el que se seleccionan los procesos a abandonar seguir un criterio de mnimo coste. Despus de abandonar cada proceso, se debe ejecutar de nuevo el algoritmo de deteccin para ver si todava existe interbloqueo. 4. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. Como en el punto 3, se debe emplear una seleccin basada en coste y hay que ejecutar de nuevo el algoritmo de deteccin despus de cada apropiacin. Un proceso que pierde un recurso por apropiacin debe retroceder hasta un momento anterior a la adquisicin de ese recurso.

22

Para los puntos 3 y 4, el criterio de seleccin podra ser uno de los siguientes, consistentes en escoger el proceso con: La menor cantidad de tiempo de procesador consumido hasta ahora. El menor nmero de lneas de salida producidas hasta ahora. El mayor tiempo restante estimado. El menor nmero total de recursos asignados hasta ahora. La prioridad ms baja. Algunas de estas cantidades son ms fciles de medir que otras. El tiempo restante estimado deja lugar a dudas, especialmente. Adems, aparte de las medidas de prioridad, no existe otra indicacin del coste para el usuario frente al coste para el sistema en conjunto.

Ventajas Pronta deteccin.

Desventajas Consume un tiempo de procesador considerable.

23

2.4.3.3 Recuperacin.
Una vez que se ha detectado el interbloqueo se debe romper para que los recursos puedan finalizar su ejecucin y liberar as los recursos. Para ruptura de la espera se pueden realizar varias opciones. Las idnea sera suspendiendo algunos de los procesos bloqueados para tomar sus recursos y reanudar sus ejecucin una vez que se hubiera deshecho el interbloqueo. Esta solucin solo pueden resultar factible en casos muy particulares; no se podra suspender a un proceso de escribir de escribir en una impresora para pasarla a otro proceso y reanudar despus la impresin, como tampoco se podra suspender indefinidamente un proceso de tiempo real. Las dos opciones que se suelen utilizar son: reiniciar uno o ms de los procesos bloqueados y expropiar los recursos de algunos de los procesos bloqueados. Para aplicar la primera de las opciones se deben tener en cuenta una serie de factores con el fin de elegir aquellos procesos cuya reiniciacin resulte menos traumtica. Entre los factores a tener en cuenta en cada proceso se tienen: 1. La prioridad del proceso. 2. El tiempo de procesamiento utilizado y el que le resta. 3. El tipoy nmero de recursos que posee. 4. El nmero de recursos que necesita para finalizar. 5. El nmero de otros procesos que se veran involucrados con su reiniciacin El procedimiento de la segunda opcin consiste en ir expropiando recursos de algunos procesos de forma sucesiva hasta que se consiga salir del interbloqueo. La eleccin de los recursos que se expropian se basa en criterios similares a los expuestos en la reiniciacin de los procesos. En algunos sistemas de tiempo real el interbloqueo puede tener resultados inaceptables, por lo que no se puede permitir que se presente dicha situacin. En otros sistemas se rechaza el interbloqueo, aunque la situacin pudiera ser aceptable, por el costo en tiempo y medios adicionales que conlleva la recuperacin.

24

2.5 Niveles, objetivos y criterios de planificacin.


Concepto de Planificacin:
La planificacin hace referencia a un conjunto de polticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser cumplimentados por el sistema informtico.

Objetivos de la Planificacin:

El objetivo principal de la planificacin es optimizar el rendimiento del sistema y proporcionar un buen servicio a todos los procesos que se encuentren en l. En general, la planificacin trata de cubrir los siguientes objetivos:

Justicia. La planificacin debe ser lo ms justa posible con todos los procesos, sin favorecer a unos y perjudicar a otros. Mxima capacidad de ejecucin. Debe dar un servicio eficiente para que todos los trabajos se realicen lo ms rpidamente posible. Esto se puede lograr disminuyendo el nmero de cambios de proceso. Mximo nmero de usuarios interactivos. En los sistemas de tiempo compartido se tratara de que puedan estar trabajando el mayor nmero de usuarios al mismo tiempo. Producibilidad. La planificacin debe realizarse de tal forma que en todo momento pueda saberse cmo ser su ejecucin. Minimizacin de la sobrecarga. La computadora debe tener poca sobrecarga ya que esta afecta directamente al rendimiento final del sistema: a menor sobrecarga mayor velocidad de proceso. Equilibrio en el uso de recursos. Para obtener un mayor rendimiento en el uso de los recursos y que estos estn ocupados equitativamente el mayor tiempo posible. Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, este debe ejecutarse ms rpidamente.

25

Criterios de planificacin:
Para realizar los objetivos de la planificacin, un mecanismo de planificacin debe considerar lo siguiente:

La limitacin de un proceso a las operaciones de Entrada / Salida: cuando un proceso consigue la CPU, la utiliza solo brevemente antes de generar una peticin de Entrada / Salida La limitacin de un proceso a la CPU: cuando un proceso obtiene la CPU, tiende a usarla hasta que expira su tiempo Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben recibir inmediato servicio para garantizar buenos tiempos de respuesta. Que urgencia tiene una respuesta rpida: por ejemplo, un proceso de tiempo real de un sistema de control que supervise una refinera de combustible requiere una respuesta rpida, ms rpida que la respuesta requerida por un proceso en lotes (batch) que deber entregarse al da siguiente. La prioridad de un proceso: a mayor prioridad mejor tratamiento. Frecuentemente un proceso genera fallos (carencias) de pgina:
o

Probablemente los procesos que generan pocos fallos de pgina hayan acumulado sus conjuntos de trabajo en el almacenamiento principal. Los procesos que experimentan gran cantidad de fallos de pgina an no han establecido sus conjuntos de trabajo. Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo. Otro criterio indica favorecer a los procesos con una tasa alta de fallos de pgina ya que rpidamente generaran una peticin de Entrada / Salida.

o o

Frecuentemente un proceso ha sido apropiado por otro de ms alta prioridad, lo cual significa lo siguiente:
o o

A menudo los procesos apropiados deben recibir un tratamiento menos favorable. Cada vez que el Sistema Operativo asume la sobrecarga para hacer ejecutar este proceso, el corto tiempo de ejecucin antes de la apropiacin no justifica la sobrecarga de hacer ejecutar al proceso en primer lugar.

Cuanto tiempo de ejecucin real ha recibido el proceso: Un criterio considera que debe ser favorecido un proceso que ha recibido muy poco tiempo de CPU.

26

2.6 Tcnicas de administracin del planificador.


Se denomina planificador al software del sistema operativo encargado de asignar los recursos de un sistema entre los procesos que los solicitan. Siempre que haya tomar una decisin, el planificador debe decidir cul de los procesos que compiten por la posesin de un determinado recursos lo recibir. El planificador es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso y es esencial en los sistemas operativos de tiempo real. Su funcin consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos para su ejecucin. Todo sistema operativo gestiona los programas mediante el concepto de proceso. En un instante dado, en el ordenador pueden existir diversos procesos listos para ser ejecutados. Sin embargo, solamente uno de ellos puede ser ejecutado (en cada microprocesador). De ah la necesidad de que una parte del sistema operativo gestione, de una manera equitativa, qu proceso debe ejecutarse en cada momento. La planificacin (scheduling) es la base para lograrla multiprogramacin. Un sistema multiprogramado tendr varios procesos que requerirn el recurso procesador a la vez. Esto sucede cuando los procesos estn en estado ready (pronto). Si existe un procesador disponible y existen procesos en estado ready, se debe elegir el que ser asignado al recurso para ejecutar. El componente del sistema operativo que realiza la eleccin del proceso es llamada planificador (scheduler).

Algoritmos de planificacin
Los algoritmos de planificacin son los que definen que poltica se va a seguir para que un proceso pase al estado de ejecucin.

27

2.6.1 FIFO.
Algoritmo de planificacin de FIFO
Tal vez la disciplina ms simple de planificacin sea la de primeras entradas primeras salidas (PEPS). Los procesos se despachan de acuerdo con su tiempo de llegada a la cola de procesos listos. Cuando un proceso tiene la CPU, se ejecuta hasta terminar. Es junto en el sentido formal, pero algo injusta en cuanto a que los trabajos largos hacen esperar a los cortos y los trabajos sin importancia hacen esperar a los importantes. FIFO ofrece variaciones relativamente pequeas en los tiempos de respuesta y por lo tanto es ms predecible que los otros esquemas. No es til en la planificacin para los usuarios interactivos porque no puede garantizar buenos tiempos de respuesta. El esquema FIFO rara vez se usa como esquema principal en los sistemas actuales, pero a menudo est incorporado en otros sistemas. Por ejemplo, muchos esquemas de planificacin despachan los procesos de acuerdo con la prioridad, pero los procesos con la misma prioridad se despachan de acuerdo con el esquema FIFO. Este es un algoritmo que no usa apropiacin, y que consiste en atender a los procesos por estricto orden de llegada a la lista de procesos listos. Cada proceso se ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de E/S). Se trata de una poltica muy simple y sencilla de llevar a la prctica, pero muy pobre en cuanto a su comportamiento. Las caractersticas principales de este algoritmo son las siguientes: No es apropiativa. Es justa, aunque los procesos largos hacen esperar mucho a los cortos. Es una poltica predecible. El tiempo promedio de servicio es muy variable ya que esta en funcin del nmero de procesos y la duracin promedio que tenga.

Ejemplo: Proceso P1 P2 P3 Media del tiempo de espera: Caso 1) (0 + 24 + 27) / 3 =17 Caso 2) (6 + 0 + 3) / 3 = 3 Tiempo de CPU 24 3 3

28

En este esquema se tienen tres procesos (P1, P2, P3) listos para ejecutarse, con un tiempo de ejecucin de 24, 3 y 3 unidades de tiempo (para facilidad tomaremos milisegundos como unidad de tiempo) respectivamente. Los procesos se ejecutan en ese mismo orden. El primer proceso se ejecuta de inmediato y no espera nada.

El segundo proceso espera todo lo que dura en ejecutarse el primer proceso que son 24 milisegundos. Por ltimo el tercer proceso esperara la suma de lo que duran en ejecutarse los dos procesos anteriores, o sea, 27 segundos. Todo esto da como resultado un tiempo promedio de espera de 17 milisegundos. Si en cambio, el orden en que se ejecuten los procesos es como el caso 2), entonces el proceso P2 se ejecutara de inmediato, P3 esperara lo que tarde en ejecutarse P2 (3 milisegundos) y P1 esperara lo que duran los dos procesos anteriores, obteniendo un tiempo promedio de espera de 3 milisegundos. Como puede verse el tiempo promedio de espera que tengan los procesos depende por completo del orden en que llegan los procesos a ejecutarse.

29

2.6.2 SJF.
Otro mtodo de planificacin de la CPU es el algoritmo de planificacin con seleccin del trabajo ms corto (SJF, shorts job-first). Este algoritmo asocia con cada proceso la duracin de la siguiente rfaga de CPU del proceso. Cuando la CPU est disponible, se asigna al proceso que tiene la siguiente rfaga de CPU ms corta. Si las siguientes rfagas de CPU de dos procesos son iguales, se usa la planificacin FCFS para romper el empate. Observe que un trmino ms apropiado para este mtodo de planificacin sera el de algoritmo de la siguiente rfaga de CPU ms corta, ya que la planificacin depende de la duracin de la siguiente rfaga de CPU de un proceso, en lugar de depender de su duracin total. Usamos el trmino SJF porque casi todo el mundo y gran parte de los libros de texto emplean este trmino para referirse a este tipo de planificacin.

Como ejemplo de planificacin SJF, considere el siguiente conjunto de procesos, estando especificada la duracin de la rfaga de CPU en milisegundos: Proceso P1 P2 P3 P4 Tiempo de rfaga 6 8 7 3

Usando la planificacin SJF, planificaramos estos procesos de acuerdo con el siguiente diagrama de Gantt: P4 0 P1 3 P3 9 P2 16 24

El tiempo de espera es de 3 milisegundos para el proceso P1, de 16 milisegundos para el proceso P2, de 9 milisegundos para P3 y de 0 milisegundos para P4. Por tanto, el tiempo medio de espera es de (3 + 16 + 9 + 0)/4 = 7 milisegundos. Por comparacin, si estuviramos usando el esquema de planificacin FCFS, el tiempo medio de espera seria de 10,25 milisegundos.

30

El algoritmo de planificacin SJF es probablemente ptimo, en el sentido de que proporciona el tiempo medio de espera mnimo para un conjunto de procesos dado. Anteponer un proceso corto a uno largo disminuye el tiempo de espera del proceso corto en mayor medida de lo que incrementa el tiempo de espera del proceso largo. Consecuentemente, el tiempo medio de espera disminuye. La dificultad real del algoritmo SJF es conocer la duracin de la siguiente solicitud de CPU. En una planificacin a largo plazo de trabajos en un sistema de procesamiento por lotes, podemos usar como duracin el lmite de tiempo del proceso que el usuario especifique en el momento de enviar el trabajo. Con este mecanismo, los usuarios estn motivados para estimar el lmite de tiempo del proceso de forma precisa, dado que un valor menor puede significar una respuesta ms rpida. (Un valor demasiado bajo producir un error de lmite de tiempo excedido y ser necesario reenviar el proceso.) La planificacin SJF se usa frecuentemente como mecanismo de planificacin a largo plazo. Aunque el algoritmo SJF es ptimo, no se puede implementar en el nivel de la planificacin de la CPU a corto plazo, ya que no hay forma de conocer la duracin de la siguiente rfaga de CPU. Un mtodo consiste en intentar aproximar la planificacin SJF: podemos no conocer la duracin de la siguiente rfaga de CPU, pero podemos predecir su valor, por el procedimiento de confiar en que la siguiente rfaga de CPU ser similar en duracin a las anteriores. De este modo, calculando una aproximacin de la duracin de la siguiente rfaga de CPU, podemos tomar el proceso que tenga la rfaga de CPU predicha ms corta. Generalmente, la siguiente rfaga de CPU se predice como la media exponencial de las duraciones medidas de las anteriores rfagas de CPU. Sea tn la duracin de la n-esima rfaga de CPU y sea Tnel el valor predicho para la siguiente rfaga de CPU. Entonces, para a, 0? ? 1, se define tn+1 = tn + (1 - ) tn Esta frmula define un promedio exponencial. El valor de tn contiene la informacin mas reciente; tn almacena el historial pasado. El parmetro a controla el peso relativo del historial reciente y pasado de nuestra prediccin. Si = 0, entonces tn1 = tn, y el historial reciente no tiene ningn efecto (se supone que las condiciones act uales van a ser transitorias); si = 1, entonces tn+1 = tn y solo la rfaga de CPU mas reciente importa (se supone que el historial es obsoleto y, por tanto, irrelevante). Frecuentemente, = 1/2, en cuyo caso, el historial reciente y pasado tienen el mis peso. El valor inicial t0 puede definirse como una constante o como un promedio global para todo el sistema. La Figura 5.3 muestra un promedio exponencial con = 1/2 y t0 = 10.

31

Para comprender el comportamiento del promedio exponencial, podemos desarrollar la frmula para tn+l sustituyendo el valor de tn y de los terminos sucesivos, obteniendo Tn+1 = tn+(1-a)atn-1 +???+(1- )j tn-j +???+(1-(X)n+1t0 Dado que tanto a como 1-a son menores o iguales a 1, cada trmino sucesivo tiene menor peso que su predecesor. El algoritmo SJF puede ser cooperativo o apreciativo. La necesidad de elegir surge cuando un proceso llega a la cola de procesos preparados mientras que un proceso anterior esta todava en ejecucin. La siguiente rfaga de CPU del proceso que acaba de llegar puede ser ms corta que lo que quede del proceso actualmente en ejecucin. Un algoritmo SJF apropiativo detendr el proceso actualmente en ejecucin, mientras que un algoritmo sin desalojo permitir que dicho proceso termine su rfaga de CPU. La planificacin SJF apreciativa a veces se denomina planificacin con seleccin del proceso con tiempo restante ms corto. Como ejemplo, considere los cuatro procesos siguientes, estando especificada la duracin de la rfaga de CPU en milisegundos:

Proceso P1 P2 P3 P4

Tiempo de llegada 0 1 2 3

Tiempo de rfaga 8 4 9 5

Si los procesos llegan a la cola de procesos preparados en los instantes que se muestran y necesitan los tiempos de rfaga indicados, entonces la planificacin SJF apropiativa es la que se muestra en el siguiente diagrama de Gantt:

P1 0

P2 1

P4 5

P1 10

P3 17 26

32

2.6.3. RR (Round Robin) (Turno Rotatorio)


La ms simple de estas polticas se denomina planificacin por turno rotatorio (RR, Roundrobin). En este tipo de planificacin un quantum de tiempo para ejecutarse tiene asignado en cada proceso y en el caso de que en su quantum no pueda terminar la ejecucin, el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento.

Con la poltica del turno rotatorio, la cuestin principal de diseo es la longitud del de tiempo o fraccin que se va a usar. Los procesos cortos pasan por el sistema rpidamente si el quantum es muy pequeo. Por otro lado, se produce una sobrecarga en la gestin de las interrupciones del reloj y en la ejecucin de las funciones de planificacin y expedicin. Por tanto, se deben evitar los quantum pequeos. Una referencia til consiste en que debe ser ligeramente mayor el quantum que el tiempo necesario para una interaccin. Si es menor, la mayora de los procesos necesitarn al menos dos quantums. En el caso lmite de un quantum mayor que el mayor tiempo de ejecucin, el turno rotatorio degenera en FCFS.

33

Siguiente proceso el de tiempo restante ms corto (SRT) Mezcla de RR y SJN. Cambia el proceso que est en el cpu por el proceso con una exigencia de tiempo total menor. El tiempo de respuesta mejora para los procesos largos. El tiempo de espera es corto para la mayora de los procesos.

34

2.6.4 Queves multi-level (Colas Mltiples).


Cuando los procesos que van a ser ejecutados se pueden agrupar en distintos grupos, podemos asignarlos a diferentes colas, cada una con distinta planificacin, para darle la que realmente necesite. Esta poltica divide en varias colas separadas la cola de procesos preparados, de forma que los procesos se asignan a una cola especfica segn sus necesidades y tipo. Para determinar en cada caso qu cola es la que suministrar un proceso para que acceda al CPU cuando ste deje a otro anterior, ser controlada por un algoritmo de planificacin entre las colas, que normalmente es apropiativo de prioridad fija. Las colas mltiples en una pila estn basadas, que sirve como ndice de una lista de procesos que se tienen que ejecutar. Este tipo de algoritmo de planificacin se usa para trabajos en batch o de procesamiento por lotes en los cuales se puede saber cul es el tiempo de duracin de la ejecucin de cada proceso y entonces se puede seleccionar primero el trabajo ms corto. El problema que se presenta con ste algoritmo es que los grandes procesos podran sufrir de inanicin dado que cualquier proceso pequeo se "cuela" sobre uno de mayor tamao y como resultado final se podra dar el caso que el proceso grande nunca obtenga procesamiento.

35

2.6.5 Multi-level feedback queves.


Para dar un trato justo a los procesos, es necesario conocer previamente todos sus parmetros caractersticos: longitud, si son limitados por e/s o por cpu, memoria requerida, etc. Como estos datos no suelen ser conocidos, es difcil determinar el trato que debe recibir cada proceso. Despus de analizar las polticas anteriores, es fcil concluir que se deben adoptar las siguientes cuestiones: Favorecer los procesos cortos Favorecer los procesos limitados por e/s Determinar la naturaleza del trabajo a realizar

El mtodo de colas mltiples con retroalimentacin divide los procesos en varias colas de procesos preparados (listos): cola 0, cola 1, cola 2, y as sucesivamente, de forma que las de numeracin ms baja tendrn una mayor prioridad.

Se selecciona un nuevo proceso del principio de la cola del nivel ms bajo que tenga algn proceso cuando el proceso que usa el cpu termina su quantum. Un determinado nmero de veces, sin finalizar su ejecucin, ser colocado al final de a de nivel inmediatamente superior al anterior una vez que se haya consumido el quantum de su cola.

36

La poltica FB intenta dar un trato justo a los procesos por medio de separacin en categoras, para as darles el servicio que necesitan. Los procesos limitados por cpu irn a las colas de menor prioridad (nivel ms alto), mientras los de mayor prioridad sern aquellos procesos muy interactivos.

Soporta bien la sobrecarga, apropiativa, adaptable a las necesidades del sistema, y que cada cola puede ser gestionada de forma diferente.

37

Conclusin.
Concluimos que el concepto central de cualquier Sistema Operativo es el de proceso: una abstraccin de un programa en ejecucin tambin llamada tarea. La gestin de procesos es la tarea fundamental de cualquier sistema operativo moderno. El sistema operativo debe asignar recursos a los procesos, permitir el intercambio de informacin entre los mismos, proteger los recursos de un proceso del resto y facilitar la sincronizacin de procesos. Llegado a este punto, hemos aprendido como el sistema operativo se encuentra estructurado en una primera etapa, el desarrollo de procesos y la comprensin de los hilos de ejecucin a travs de los cuales, el sistema delega funciones y opera en forma multi funcional.

Tambin estudiamos la forma en la que el sistema gestiona las interrupciones, este se encarga de controlar los accesos al procesador, verificar el estatus de un proceso y determinar se ejecucin de acuerdo al nivel de importancia, cabe destacar que no todas las interrupciones son controladas por el SO, ya que existen interrupciones enmascaradas y que son exclusivas del hardware de nuestro ordenador. La manera en la que opera nuestra computadora es muy compleja, una vez ms comprender su funcionamiento, nos permite prever soluciones a ciertos problemas de ejecucin, as como establecer prioridades al monto de asignar tareas, sobre todo para los sistemas multiusuario.

38

Bibliografa.
Sistemas Operativos 2da Edicion William Stallings Sistemas Operativos 5ta Edicion Abraham Silberschatz http://sistemasoperativos.angelfire.com/html/2.6.2.html http://administraciondeprocesos-uscanga.blogspot.mx/2008/10/26-tecnicas-deadministracion-del.html http://www.mcgraw-hill.es/bcv/guide/capitulo/8448180321.pdf http://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica) http://administraciondeprocesos-uscanga.blogspot.mx/2008/10/24-concurrencia-ysecuenciabilidad.html http://administraciondeprocesos-delacruz.blogspot.mx/2008/10/242-sincronizacin-deprocesos-en-sc.html http://www.slideshare.net/peterluis04/sistemas-operativos-13252229 http://administraciondeprocesos-naranjo.blogspot.mx/2008/10/242-sincronizacin-deprocesos-en-sc.html http://eq2-sistemasoperativos.blogspot.mx/2012/04/2421-mecanismo-desemaforos.html

39

También podría gustarte