72
SISTEMAS OPERATIVOS

Unidad 2 Sistemas Operativos

Embed Size (px)

Citation preview

Page 1: Unidad 2 Sistemas Operativos

SISTEMAS OPERATIVOS

Page 2: Unidad 2 Sistemas Operativos

UNIDAD II

ADMINISTRACION DE PROCESOS Y DEL PROCESADOR

Page 3: Unidad 2 Sistemas Operativos

2.1 CONCEPTO DE PROCESO

Un obstáculo para tratar a los sistemas operativos es la cuestión de cómo debemos referirnos a todas las actividades de la CPU, así que a todas las actividades las llamamos procesos.

Page 4: Unidad 2 Sistemas Operativos

2.2 ESTADOS Y TRANSICIONES DE LOS PROCESOSA medida que un proceso se ejecuta, cambia de estado, el estado de un proceso esta definido en parte por la actividad actual de este proceso. Cada proceso puede estar en uno de los siguientes estados:

1.-nuevo (new).-el proceso se esta creando.2.-en ejecución (running).- se están ejecutando instrucciones.3.-en espera (waiting).-el proceso esta esperando a que ocurra algún suceso (como la terminación de una operación de E/S).4.-listo (ready).- el proceso esta esperando que se le asigne a un procesador.5.-terminado (terminated).-el proceso termino su ejecución

Page 5: Unidad 2 Sistemas Operativos

Es importante tener presente que solo un proceso puede estar ejecutándose en cualquier procesador en un instante dado, pero muchos procesos pueden estar listos y esperando.

Page 6: Unidad 2 Sistemas Operativos

TRANSICIONES

Todos los procesos que fueron suspendidos estaban en el estado Bloqueado en el momento de la suspensión. Realmente no haría ningún bien traer de nuevo a memoria principal un proceso Bloqueado porque no esta todavía listo para ejecutarse. Debe reconocerse, sin embargo, que cada proceso en estado Suspendido fue bloqueado originalmente por un suceso concreto. Cuando se produzca tal suceso, el proceso se desbloqueara y, posiblemente, estará disponible para su ejecución.

Page 7: Unidad 2 Sistemas Operativos

•Listo: El proceso esta en memoria principal y listo para la ejecución.•Bloqueado: El proceso esta en memoria principal esperando un suceso.•Bloqueado y suspendido: El proceso esta en memoria secundaria esperando un suceso.•Listo y suspendido: El proceso esta en memoria secundaria pero esta disponible para su ejecución tan pronto como se cargue en la memoria principal.

Page 8: Unidad 2 Sistemas Operativos
Page 9: Unidad 2 Sistemas Operativos

2.3 PROCESOS LIGEROS (HILOS O HEBRAS).

Un hilo de ejecución, en sistemas operativos, es similar a un proceso en que ambos representan una secuencia simple de instrucciones ejecutada en paralelo con otras secuencias. Los hilos permiten dividir un programa en dos o más tareas que corren simultáneamente, por medio de la multiprogramación. En realidad, este método permite incrementar el rendimiento de un procesador de manera considerable. En todos los sistemas de hoy en día los hilos son utilizados para simplificar la estructura de un programa que lleva a cabo diferentes funciones.

Page 10: Unidad 2 Sistemas Operativos

Un ejemplo de la utilización de hilos es tener un hilo atento a la interfaz gráfica (iconos, botones, ventanas), mientras otro hilo hace una larga operación internamente. De esta manera el programa responde más ágilmente a la interacción con el usuario.

Page 11: Unidad 2 Sistemas Operativos

2.4 CONCURRENCIA Y SECUENCIABILIDAD.

Los procesos son concurrentes si existen simultáneamente 2 o más y llegan al mismo tiempo a ejecutarse.

La concurrencia puede presentarse en tres contextos diferentes: • Varias aplicaciones: (multiprogramación) en este caso el tiempo de procesador de una maquina es compartido dinámicamente entre varios trabajos o aplicaciones activas.

Page 12: Unidad 2 Sistemas Operativos

Aplicaciones estructuradas: Como ampliación del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes (divicion de bloques ,procedimientos y funciones )

Diseño modular(un programa representado por un módulo principal, el cual se descompone en subprogramas (submódulos), los cuales, a su vez, también se pueden fraccionar, y así sucesivamente)

Estructura del sistema operativo: como resultado de la aplicación de la estructuración en el diseño del propio SO, de forma que este se implemente como un conjunto de procesos.

Page 13: Unidad 2 Sistemas Operativos

concurrencia:

• Multiprogramación con un CPU. El sistema operativo se encarga de repartir el CPU entre los procesos, intercalando su ejecución para dar una apariencia de ejecución simultánea.

• Multiprocesador. Máquina formada por más de un CPU que comparten memoria principal.

• Multicomputadora. Es una máquina de memoria distribuida formada por una serie de computadoras, es posible la ejecución simultánea de los procesos en los diferentes CPU’s.

Page 14: Unidad 2 Sistemas Operativos

2.4.1 EXCLUSIÓN MUTUA DE SECCIONES CRÍTICAS. Tipos de recursos: Compartibles: pueden ser usados por varios procesos de forma

concurrente. No compartibles: su uso está restringido a un solo proceso a la vez.

Exclusión Mutua es la comunicación requerida entre dos o más procesos que se están ejecutando en paralelo y que necesitan a la vez el uso de un recurso no compartible.

Consiste en asignar el recurso no compartible a sólo uno de los procesos, mientras que los otros deben permanecer a la espera hasta que finalice la utilización 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.

Si un recurso tiene sólo un punto de entrada, se lo denomina recurso critico.

Page 15: Unidad 2 Sistemas Operativos

Requisitos para la exclusión mutua:

    1. Debe cumplirse la exclusión mutua: sólo un proceso de entre todos los que poseen secciones críticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado.

2. Un proceso que se interrumpe en una sección no crítica debe hacerlo sin estorbar a los otros. Es decir que si se cuelga un proceso que está usando un recurso, los demás procesos que esperan deben poder acceder al recurso de todas formas (el S.O. mata al proceso que se colgó y así libera al recurso).

3. No se puede demorar indefinidamente la entrada de un proceso a un cierto recurso; no debe permitirse el interbloqueo y la inanición. Todos los procesos deben poder acceder al recurso que solicitan, sino se van a morir sin usarlo y no es justo.

Page 16: Unidad 2 Sistemas Operativos

4. Cuando ningún proceso está en su sección crítica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilatación. Es decir, si nadie está usando un cierto recurso, entonces se le otorga al primer proceso que lo solicite.

5. Un proceso permanece en su sección crítica sólo por un tiempo finito. Esto sirve para evitar que un proceso se quede con un recurso por mucho tiempo y para que un recurso no se quede trabado sin sentido.

Page 17: Unidad 2 Sistemas Operativos

2.4.2 Sincronización de procesos S.C.

En muchos casos, los procesos se reúnen para realizar tareas en conjunto, a este tipo de relación se le llama procesos cooperativos. Para lograr la comunicación, los procesos deben sincronizarse, de no ser así pueden ocurrir problemas no deseados.

Sincronización Coordinación para llevar a cabo el trabajo de un grupo

de procesos cooperantes asegurando el acceso a recursos compartidos.

Page 18: Unidad 2 Sistemas Operativos

La sincronización entre procesos es necesaria para prevenir y/o corregir errores de sincronización debidos al acceso concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes.

La sincronización entre procesos también permite intercambiar señales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones específicas de precedencia impuestas por el problema que se resuelve. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecución de un proceso.

Page 19: Unidad 2 Sistemas Operativos

Existen algoritmos diseñados para este fin, son los siguientes:

Algoritmo de Espera activa.

Estos algoritmos establecen la espera de entrada a la región crítica con un bucle que será roto en el momento en que se cumpla una determinada condición. Se, les llama así por que el proceso no queda bloqueado en su ejecución, sino que constantemente compite por el procesador. Entre los distintos algoritmos de este tipo existentes podemos citar:

Page 20: Unidad 2 Sistemas Operativos

Espera con mutex.

Algoritmo que utiliza un switch (MUTEX) a través del cual se produce la sincronización.

Alternancia.

Ligeramente mejor que el anterior, utiliza también una variable turno para realizar el sincronismo entre los Procesos.

Algoritmo de DEKKER. Resuelve el problema mediante la solución propuesta por DEKKER, basando su funcionamiento en una Tabla unidimensional de dos elementos lógicos (Switches).

Page 21: Unidad 2 Sistemas Operativos

Algoritmo de Espera no activa.

Son los algoritmos que establecen la espera para entrar en la región crítica bloqueando, el proceso, haciendo que deje de competir por el procesador hasta que se cumpla la condición de desbloqueo.

Page 22: Unidad 2 Sistemas Operativos

2.4.2.1 Mecanismos de semáforos

Para eliminar los problemas que se producen con los algoritmos de espera activa, Dijkstra(1965) diseño un mecanismo basado en una variable entera utilizada como contador de peticiones de entrada a una sección crítica. Esta variable es compartida por todos los procesos del sistema. Este nuevo tipo de variable se denominó semáforo, por su capacidad de gestionar el tráfico de los proceso que desean acceder a datos compartidos.Con este sistema, cuando un proceso intente entrar en una región crítica mientras otro está accediendo a los datos compartidos, se bloqueará de igual manera que cuando un proceso accede a un recurso que está ocupado.

Page 23: Unidad 2 Sistemas Operativos

Un semáforo S es una variable entera a la que, una vez que se le asignado un valor inicial, solo puede accederse a través de dos operaciones atómicas estándar: espera y señal. (P y V).

Operación V: Esta operación consiste en incrementar en uno el valor del semáforo sobre el que actúa.

Operación P: Bloqueo, decrementa en uno el valor del semáforo sobre el que actúa siempre y cuando el valor del semáforo es >=0 (positivo)

Page 24: Unidad 2 Sistemas Operativos

TIPOS DE SEMÁFOROS

SEMÁFOROS BINARIOS (VALORES DE 1,0)

SEMÁFOROS CONTADORES (Valores enteros no negativos)

Page 25: Unidad 2 Sistemas Operativos

2.4.2.2 Mecanismos de monitores

Un monitor es un mecanismo de software para control de concurrencia que contiene los datos y los procedimientos necesarios para realizar la asignación 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 más simple de todos pues solo tiene tres estados y las funciones internas son muy sencillas. Una característica distintiva de este monitor es que el proceso que reinicia a otros debe salir del monitor, es decir abandona el estado activo.

Page 26: Unidad 2 Sistemas Operativos

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.

Monitor tipo mediador

Este monitor fue propuesto por C.A.R. Hoare, tiene la característica 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 también puede permanecer dentro del monitor.

Page 27: Unidad 2 Sistemas Operativos

Monitor tipo gladiador

Este monitor propuesto por Cavers y Brown tiene la característica 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.

Page 28: Unidad 2 Sistemas Operativos

2.4.3 Interbloqueo (DeadLock)

El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, no existe una solución eficiente para el caso general.

Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos.

Page 29: Unidad 2 Sistemas Operativos

Coffman, Elphick y Shoshani establecieron las cuatro condición necesarias para que se produzca interbloqueo:

1. Condición de exclusión mutua: los procesos reclaman control exclusivo de los recursos que piden.2. Condición de esperar y retener: los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales.3. Condición de no expropiación: los recursos no pueden ser extraídos de los procesos que los tienen hasta su completa utilización.4. Condición de espera circular: existe una cadena circular de procesos en la cual cada uno de ellos mantiene a uno o más recursos que son requeridos por el siguiente proceso de la cadena.

Page 30: Unidad 2 Sistemas Operativos

Puntos de estudio del interbloqueo:  Prevención del interbloqueo: condiciona al sistema para que elimine toda posibilidad de que se produzca interbloqueo. Estrategias: Negar la condición 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 estén todos disponibles.Negar la condición de no apropiatividad: cuando un proceso que tiene recursos le es negada una petición de recursos adicionales, deberá liberar sus recursos y, si es necesario, pedirlos de nuevo junto con los recursos adicionales.Negar la condición de espera circular: cuando se instala un recurso se le asigna un número exclusivo, de forma que los procesos deben de solicitar los recursos en orden ascendente de acuerdo a los números asignados a dichos recursos.

Page 31: Unidad 2 Sistemas Operativos

Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos. En la vida real, un ejemplo puede ser el de cuatro autos que se encuentran en una intersección en el mismo momento. Cada uno necesita que otro se mueva para poder continuar su camino, y ninguno puede continuar. Los recursos compartidos en este caso son los cuatro cuadrantes.

Page 32: Unidad 2 Sistemas Operativos

La norma más habitual en la carretera es que un coche en un cruce de cuatro caminos debe ceder el paso al coche que está a su derecha. Esta norma funciona si solo hay dos o tres coches en el cruce. Por ejemplo, si solo llegan al cruce los coches del norte y del oeste, el coche del norte esperará hasta que el del oeste pase. Sin embargo, si los cuatro coches llegan al mismo tiempo cada uno se abstendrá de entrar en el cruce, provocando interbloqueo.

Page 33: Unidad 2 Sistemas Operativos
Page 34: Unidad 2 Sistemas Operativos

Detección y Recuperación de Interbloqueos

2.4.3.2 Detección Las estrategias de prevención del interbloqueo

son muy conservadoras; solucionan el problema del interbloqueo limitando el acceso a los recursos e imponiendo restricciones a los procesos. En el lado opuesto, las estrategias de detección del interbloqueo no limitan el acceso a los recursos ni restringen las acciones de los procesos.

Page 35: Unidad 2 Sistemas Operativos

Periódicamente, el sistema operativo ejecuta un algoritmo que permite detectar la condición de círculo vicioso de espera.

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

Page 36: Unidad 2 Sistemas Operativos

La comprobación en cada solicitud de recurso tiene dos ventajas: Conduce a una pronta detección y el algoritmo es relativamente simple, puesto que está basado en cambios increméntales del estado del sistema. Por otro lado, tal frecuencia de comprobaciones consume un tiempo de procesador considerable.

Page 37: Unidad 2 Sistemas Operativos

2.4.3.3 Recuperación

Una vez detectado el interbloqueo, hace falta alguna estrategia de recuperación. Las técnicas siguientes son posibles enfoques, enumeradas en orden creciente de sofisticación:1. Abandonar todos los procesos bloqueados.2. Retroceder cada proceso interbloqueado3. Abandonar sucesivamente los procesos

bloqueados4. Apropiarse de recursos sucesivamente

Page 38: Unidad 2 Sistemas Operativos

Para los puntos 3 y 4, el criterio de selección podría ser uno de los siguientes, consistentes en escoger el proceso con:

◦ La menor cantidad de tiempo de procesador consumido hasta ahora

◦ El menor número de líneas de salida producidas hasta ahora

◦ El mayor tiempo restante estimado◦ El menor número total de recursos asignados

hasta ahora◦ La prioridad más baja

Page 39: Unidad 2 Sistemas Operativos

2.5 Niveles, objetivosy criterios de planificación.

En un sistema multiprogramado, la memoria principal contiene varios procesos. Cada proceso alterna entre usar el procesador y esperar que se realice una operación de E/S o que ocurra algún otro suceso. El procesador o los procesadores se mantienen ocupados ejecutando un proceso mientras los demás esperan.

La clave de la multiprogramación está en la planificación.

Page 40: Unidad 2 Sistemas Operativos

El afán de la planificación del procesador consiste en asignar los procesos al procesador o los procesadores para que sean ejecutados en algún momento, de forma que se cumplan objetivos del sistema tales como el tiempo de respuesta, la productividad y la eficiencia del procesador.

Page 41: Unidad 2 Sistemas Operativos

Niveles de planificación

En muchos sistemas, la actividad de planificación se divide en tres funciones independientes: planificación a largo, medio y corto plazo. Los nombres hacen referencia a la frecuencia relativa con la que son ejecutadas estas funciones.

Page 42: Unidad 2 Sistemas Operativos

Planificación a Largo Plazo

La planificación a largo plazo determina cuáles son los programas admitidos en el sistema.

De este modo, se controla el grado de multiprogramación. Una vez admitido, un trabajo o un programa de usuario se convierte en un proceso y es añadido a la cola del planificador a corto plazo.

Page 43: Unidad 2 Sistemas Operativos

Planificación a Mediano Plazo

La planificación a medio plazo forma parte de la función de intercambio. Generalmente, la decisión de cargar un proceso en memoria principal se basa en la necesidad de controlar el grado de multiprogramación. Así pues, la decisión de carga en memoria tendrá en cuenta las necesidades de memoria del proceso descargado

Page 44: Unidad 2 Sistemas Operativos

Planificación a Corto PlazoEl planificador a corto plazo, también conocido

como despachador (dispatcher), es el de ejecución más frecuente y toma decisiones con un mayor detalle sobre el proceso que se ejecutará a continuación.

El planificador a corto plazo se ejecuta cuando ocurre un suceso que puede conducir a la interrupción del proceso actual o que ofrece la oportunidad de expulsar de la ejecución al proceso actual en favor de otro.

Page 45: Unidad 2 Sistemas Operativos
Page 46: Unidad 2 Sistemas Operativos

Criterios de Planificación

A la hora de decidir qué algoritmo de planificación utilizar en una situación particular, debemos considerar las propiedades de los diversos algoritmos.

Se han sugerido muchos criterios para comparar los distintos algoritmos de planificación. Las características que se usen para realizar la comparación pueden afectar enormemente a la determinación de cuál es el mejor algoritmo.

Page 47: Unidad 2 Sistemas Operativos

Utilización de la CPU

Deseamos mantener la CPU .tan ocupada como sea posible.

Conceptualmente, la utilización de la CPU se define en el rango comprendido entre el 0 y el 100 por cien. En un sistema real, debe variar entre el 40 por ciento (para un sistema ligeramente cargado) y el 90 por ciento (para un sistema intensamente utilizado).

Page 48: Unidad 2 Sistemas Operativos

Tasa de procesamiento

Si la CPU está ocupada ejecutando procesos, entonces se estará llevando a cabo algún tipo de trabajo. Una medida de esa cantidad de trabajo es el número de procesos que se completan por unidad de tiempo, y dicha medida se denomina tasa de procesamiento.

Para procesos de larga duración, este valor puede ser de un proceso por hora; para transacciones cortas, puede ser de 10 procesos por segundo.

Page 49: Unidad 2 Sistemas Operativos

Tiempo de ejecución

Desde el punto de vista de un proceso individual, el criterio importante es cuánto tarda en ejecutarse dicho proceso. El intervalo que va desde el instante en que se ordena la ejecución de un proceso hasta el instante en que se completa es el tiempo de ejecución. Ese tiempo de ejecución es la suma de los períodos que el proceso invierte en esperar para cargarse en memoria, esperar en la cola de procesos preparados, ejecutarse en la CPU y realizar las operaciones de E/S.

Page 50: Unidad 2 Sistemas Operativos

Tiempo de espera

El algoritmo de planificación de la CPU no afecta a la cantidad de tiempo durante la que un proceso se ejecuta o hace una operación de E/S; afecta sólo al período de tiempo que un proceso invierte en esperar en la cola de procesos preparados.

El tiempo de espera es la suma de los períodos invertidos en esperar en la cola de procesos preparados.

Page 51: Unidad 2 Sistemas Operativos

Tiempo de respuesta

En un sistema interactivo, el tiempo de ejecución puede no ser el mejor criterio. A menudo, un proceso puede generar parte de la salida con relativa rapidez y puede continuar calculando nuevos resultados mientras que los resultados previos se envían a la salida para ponerlos a disposición del usuario. Por tanto, otra medida es el tiempo transcurrido desde que se envía una solicitud hasta que se produce la primera respuesta.

Page 52: Unidad 2 Sistemas Operativos

Objetivo

El objetivo consiste en maximizar la utilización de la CPU y la tasa de procesamiento, y minimizar el tiempo de ejecución, el tiempo de espera y el tiempo de respuesta. En la mayoría de los casos, lo que se hace es optimizar algún tipo de valor promedio. Sin embargo, en determinadas circunstancias, resulta deseable optimizar los valores máximo y mínimo en lugar del promedio.

Por ejemplo, para garantizar que todos los usuarios tengan un buen servicio, podernos tratar de minimizar el tiempo de respuesta máximo.

Page 53: Unidad 2 Sistemas Operativos

2.6 Técnicas de

Administración del Planificador

2.6.1. FIFO

First in, first out o FIFO (en español "primero en entrar, primero en salir"), es un concepto utilizado en estructuras de datos, contabilidad de costes y teoría de colas. 

También se lo llama First Come First Served o FCFS (en español "primero en llegar, primero en ser atendido").

FIFO se utiliza en estructuras de datos para implementar colas. La implementación puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignación dinámica de memoria.

Page 54: Unidad 2 Sistemas Operativos
Page 55: Unidad 2 Sistemas Operativos

2.6.2. SJFEl algoritmo SJF (Shortest-Job-First) se basa en los ciclos de vida de los procesos, los cuales transcurren en dos etapas o periodos que son: ciclos de CPU y ciclos de entrada/salida, también conocidos por ráfagas.

La palabra shortest (el más corto) se refiere al proceso que tenga el próximo ciclo de CPU mas corto. La idea es escoger entre todos los procesos listos el que tenga su próximo ciclo de CPU más pequeño.

Page 56: Unidad 2 Sistemas Operativos

El SJF se puede comportar de dos formas:

◦Con Desalojo: Si se incorpora un nuevo proceso a la cola de listos y este tiene un ciclo de CPU menor que el ciclo de CPU del proceso que se está ejecutando, entonces dicho proceso es desalojado y el nuevo proceso toma la CPU.

◦Sin desalojo: Cuando un proceso toma la CPU, ningún otro proceso podrá apropiarse de ella hasta que que el proceso que la posee termine de ejecutarse.

Page 57: Unidad 2 Sistemas Operativos

Para calcular el próximo ciclo de CPU se pueden emplear: métodos estadísticos, cálculos probabilísticos, entre otros.

Para el siguiente ejemplo se tienen 4 procesos (P1, P2,P3 y P4). A medida que estos se van incorporando a la cola de listos, se les calcula su próximo ciclo de CPU.

Page 58: Unidad 2 Sistemas Operativos

Se toma como criterio que la cola de procesos listos está inicialmente vacía.En la figura se representa la llegada de P1 a la cola de listos con un tiempo de llegada (0,0). Luego a P1 se le calcula su CCPU (CCPU = 7) y en ese instante se comienza a ejecutar.

Page 59: Unidad 2 Sistemas Operativos

El proceso P1, se incorpora a la cola de listos P2, al cual se le calcula su CCPU (CCPU = 4).El CCPU de P2 es menor que el CCPU de P1, entonces P1 es desalojado y P2 toma la CPU. En este caso P1 se reincorpora a la cola de listos porque no ha terminado su ejecución, y en ese instante se le vuelve a calcular el valor del CCPU (CCPU = 6).

Page 60: Unidad 2 Sistemas Operativos

El proceso P3 llega a la cola de listos y se le calcula el CCPU (CCPU = 1).

El CCPU de P3 es menor que el CCPU de P2, por lo que se desaloja P2 para cederle la CPU a P3.P2 es reincorporado a la cola de listos porque no ha terminado su ejecución CCPU y se le vuelve a calcular su CCPU (CCPU = 3).

Page 61: Unidad 2 Sistemas Operativos

El proceso P4 se incorpora a la cola de listos y se le calcula su CCPU (CCPU = 4).Luego P3 termina su ejecución para cederle la CPU al próximo proceso que le corresponda según el criterio que establece el algoritmo.Para el ejemplo le corresponde el turno a P2, luego a P4 y finalmente a P1.

Page 62: Unidad 2 Sistemas Operativos

2.6.3. RR

A cada proceso se le brinda un intervalo de tiempo para el uso del procesador (time quantum).

Al finalizar el tiempo, el procesador le es expropiado y vuelve al estado pronto (ready) al final de la cola.Es fácil de implementar ya que solamente es necesario una cola de procesos listos. Cuando un proceso consume su quantum es puesto al final de la cola.El quantum debe ser bastante mayor a lo que lleva realizar un cambio de contexto, sino se tendrá mucho overhead. A su vez, el tiempo de quantum incide en los tiempos de retorno.Es ideal para sistemas de tiempo compartido.

Page 63: Unidad 2 Sistemas Operativos

Quantum = 20

Page 64: Unidad 2 Sistemas Operativos

Es necesario asignar un ajustado tiempo de quantum:Si es muy chico generará muchos cambios de contexto.Si es muy grande, el sistema tenderá a un FCFS

Page 65: Unidad 2 Sistemas Operativos

2.6.4. Queves Multi-Level

Un algoritmo de planificación multinivel particiona la cola de listos en colas separadas. Se asignan en forma permanente los trabajos a una cola, generalmente, basándose en alguna propiedad del mismo (requerimientos de memoria, tipo de trabajo), teniendo cada cola su propio algoritmo.

Page 66: Unidad 2 Sistemas Operativos

Si los procesos se pueden clasificar según sus cualidades, es posible dividir la lista de procesos listos (ready queue) en varias colas (una para cada clasificación).

Los procesos son asignados permanentemente a una de las colas.

Cada cola tendrá su propio algoritmo de planificación propio.

Además, se debe tener una estrategia de planificación entre las diferentes colas. Por ejemplo, una cola tendrá prioridad sobre otra.

Page 67: Unidad 2 Sistemas Operativos

Por ejemplo, la cola interactiva podría planificarse usando RR y FIFO. Ningún trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no están vacías. Si algún trabajo entra en una cola de mayor prioridad, el trabajo de otras colas es interrumpido. 

Page 68: Unidad 2 Sistemas Operativos
Page 69: Unidad 2 Sistemas Operativos

2.6.5. Multi- Level Feedback Queves

En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas colas.

La idea es separar procesos con distintos tipos de interrupciones de la CPU. Si un trabajo consume mucho tiempo de CPU, será movido a una cola con menor prioridad.

En forma similar, si un proceso espera demasiado tiempo en una cola de baja prioridad, lo moveremos a una cola de mayor prioridad.

Se diferencia con el anterior en que procesos pueden cambiar de cola (nivel).

Page 70: Unidad 2 Sistemas Operativos

Se basa en categorizar los procesos según el uso de CPU (CPU-burst) que tengan.

La cola de mayor prioridad será la de los procesos I/O-bound y la de menor la de procesos con alto CPUbound.

De esta forma, se garantiza que los procesos con poco uso de procesador tengan mayor prioridad, y los que consumen mucho procesador tendrán baja prioridad.

Los procesos, según el consumo de CPU que hagan, serán promovidos a una cola de mayor prioridad o rebajados a una de menor prioridad.

Page 71: Unidad 2 Sistemas Operativos
Page 72: Unidad 2 Sistemas Operativos

BIBLIOGRAFÍA:

sistemas operativos - 5ta edición - abraham silberschatz & peter baer galvin

sistemas operativos sttallings.

Stallings, William (1997), Sistemas Operativos, 2ª edición, EEUU, Prentice Hall.

Silberschatz, A., Baer, P., y Gagne, G. (2006) Fundamentos de sistemas operativos 7ª edición, EEUU, McGraw Hill.