articulo isuu

22
1 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación). TEMA 3. GESTIÓN DE PROCESOS. (Ampliación). ÍNDICE: 1.- ESTADOS DE LOS PROCESOS……………………………………………………………………………………………………………….. 1 2.- BLOQUE DE CONTROL DE PROCESOS (BCP)………………………………………………………………………………………… 1 3.- EL PLANIFICADOR DE PROCESOS…………………………………………………………………………………………………………. 2 4.- OBJETIVOS DE PLANIFICACIÓN……………………………………………………………………………………………………………. 3 5.- CRITERIOS DE PLANIFICACIÓN……………………………………………………………………………………………………………. 3 6.- SINCRONIZACIÓN Y COMUNICACIÓN DE PROCESOS…………………………………………………………………………. 3 6.1.- Concurrencia..……………………………………………………………………………………………………………………………. 4 6.2. Exclusión mutua…………………………………………………………………………………………………………………………… 4 6.3. Sincronización…………………………………………………………………………………………………………………………….. 5 7. – INTERBLOQUEO…………………………………………………………………………………………………………………………………. 6 8.-ALGORITMOS DE PLANIFICACIÓN……………………………………………………………………………………………………….. 8 8.1.- Planificación por prioridades……………………………………………………………………………………………………. 9 8.2.- Planificación Primero en llegar, primero en ser servido (FCFS)……………………………………………….. 9 8.3- Planificación Primera tarea más corta (Planificación SJF).(SJN)………………………………………………… 10 8.4.- Planificación Round-Robin (RR)………………………………………………………………………………………………. 10 8.5.- Planificación El siguiente proceso, el restante más corto (SRT)…………………………………………….. 11 8.6.- Planificación Próximo el de más corto índice de respuesta (HRN)………………………………………….. 11 8.7.- Planificación Colas múltiples……………………………………………………………………………………………………. 12 8.8.- Planificación Colas múltiples con realimentación (FB)……………………………………………………………… 12 8.9.- Planificación garantizada…………………………………………………………………………………………………………. 13 9.-CUESTIONES………………………………………………………………………………………………………………………………………… 13 10.-PROBLEMAS……………………………………………………………………………………………………………………………………… 17 1.- ESTADOS DE LOS PROCESOS: Activo: se está ejecutando en ese instante. Preparado: listo para ejecutarse, espera a que un/el procesador quede libre. Bloqueado o suspendido: espera a que se cumpla alguna condición (termine alguna operación de E/S...). Nonato: existe, pero no es conocido por el S.O. Muerto: termina su ejecución o bien el S.O. ha detectado un error fatal. Se denomina estado global del sistema en un instante determinado, al conjunto de recursos y procesos existentes con sus estados correspondientes. 2.- BLOQUE DE CONTROL DE PROCESOS (BCP): El sistema mantiene toda la información sobre un proceso en una estructura de datos denominada bloque de control de procesos (BCP). La creación de un proceso origina la creación de su BCP que sirve para describirle hasta que se elimina o pasa al estado muerto. El S.O. mantiene listas del sistema: uno de los estados Una lista para los procesos que están en estado preparado Una lista de los procesos en estado bloqueado El proceso puede estar en una única lista de estados bloqueados o en una lista de estados suspendidos ligada en exclusiva a un dispositivo o evento

Upload: djpisky-pisky

Post on 12-Mar-2016

234 views

Category:

Documents


1 download

DESCRIPTION

articulo que es muy bueno

TRANSCRIPT

Page 1: articulo ISUU

1 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

ÍNDICE:

1.- ESTADOS DE LOS PROCESOS……………………………………………………………………………………………………………….. 1

2.- BLOQUE DE CONTROL DE PROCESOS (BCP)………………………………………………………………………………………… 1

3.- EL PLANIFICADOR DE PROCESOS…………………………………………………………………………………………………………. 2

4.- OBJETIVOS DE PLANIFICACIÓN……………………………………………………………………………………………………………. 3 5.- CRITERIOS DE PLANIFICACIÓN……………………………………………………………………………………………………………. 3 6.- SINCRONIZACIÓN Y COMUNICACIÓN DE PROCESOS…………………………………………………………………………. 3

6.1.- Concurrencia..……………………………………………………………………………………………………………………………. 4 6.2. Exclusión mutua…………………………………………………………………………………………………………………………… 4

6.3. Sincronización…………………………………………………………………………………………………………………………….. 5

7. – INTERBLOQUEO…………………………………………………………………………………………………………………………………. 6

8.-ALGORITMOS DE PLANIFICACIÓN……………………………………………………………………………………………………….. 8

8.1.- Planificación por prioridades……………………………………………………………………………………………………. 9

8.2.- Planificación Primero en llegar, primero en ser servido (FCFS)……………………………………………….. 9

8.3- Planificación Primera tarea más corta (Planificación SJF).(SJN)………………………………………………… 10

8.4.- Planificación Round-Robin (RR)………………………………………………………………………………………………. 10

8.5.- Planificación El siguiente proceso, el restante más corto (SRT)…………………………………………….. 11

8.6.- Planificación Próximo el de más corto índice de respuesta (HRN)………………………………………….. 11

8.7.- Planificación Colas múltiples……………………………………………………………………………………………………. 12

8.8.- Planificación Colas múltiples con realimentación (FB)……………………………………………………………… 12

8.9.- Planificación garantizada…………………………………………………………………………………………………………. 13

9.-CUESTIONES………………………………………………………………………………………………………………………………………… 13

10.-PROBLEMAS……………………………………………………………………………………………………………………………………… 17

1.- ESTADOS DE LOS PROCESOS: ■ Activo: se está ejecutando en ese instante.

■ Preparado: listo para ejecutarse, espera a que un/el procesador quede libre.

■ Bloqueado o suspendido: espera a que se cumpla alguna condición (termine alguna operación de E/S...).

■ Nonato: existe, pero no es conocido por el S.O.

■ Muerto: termina su ejecución o bien el S.O. ha detectado un error fatal.

✦ Se denomina estado global del sistema en un instante determinado, al conjunto de recursos

y procesos existentes con sus estados correspondientes.

2.- BLOQUE DE CONTROL DE PROCESOS (BCP): ■ El sistema mantiene toda la información sobre un proceso en una estructura de datos denominada bloque de control de procesos (BCP).

■ La creación de un proceso origina la creación de su BCP que sirve para describirle hasta que se elimina o pasa al estado muerto.

■ El S.O. mantiene listas del sistema: uno de los estados

◆ Una lista para los procesos que están en estado preparado

◆ Una lista de los procesos en estado bloqueado

✦ El proceso puede estar en una única lista de estados bloqueados o en una lista de estados suspendidos ligada en exclusiva a un dispositivo o evento

Page 2: articulo ISUU

2 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

◆ Una lista de los procesos en estado activo o de en ejecución

✦ Si el sistema es monoprocesador, sólo posee una entrada

■ El planificador es el que gestiona el paso de los procesos de una lista a otra

3.- EL PLANIFICADOR DE PROCESOS

El objetivo principal de una planificación en los Sistemas Operativos, es dar un buen servicio a todos los

procesos que existan en un momento dado en el sistema.

Se denomina planificador al software del SO encargado de asignar los recursos de un sistema entre los

procesos que lo solicitan. Y al algoritmo que se usa algoritmo de planificación.

Por tanto, la planificación de procesos es el conjunto de mecanismos que establecen el orden en que se van a

realizar los diferentes procesos. Los procesos pueden entrar y salir de la CPU sin que tengamos control sobre ellos.

Para calcular los tiempos de estancia suponemos que la CPU se reparte por igual, así pues serán necesarios varios

contadores, uno para la CPU que corresponderá con el tiempo del reloj, y otros para cada proceso en ejecución, que

contabilizará el tiempo de uso de CPU.

El planificador (scheduler) puede ser:

� A largo plazo o de admisión al sistema. (PLP).- Carga los programas

� A medio plazo, (PMP). Planificador de swapping.- Decide qué proceso pasa de la memoria

principal a la secundaria o viceversa.

� A corto plazo (PCP). (dispatcher).- Decide qué proceso entra a ejecutarse.

4.- OBJETIVOS DE PLANIFICACIÓN. Las políticas de planificación intentan cubrir los siguientes objetivos:

• 1.- Justicia.- La política debe ser lo más justa posible con todo tipo de procesos, sin favorecer a unos y

perjudicar a otros.

• 2.-Máxima capacidad de ejecución.- Debe dar un servicio aceptable para que todos los trabajos se realicen

lo más rápidamente posible. Esto se logra disminuyendo el número de cambios de proceso.

Page 3: articulo ISUU

3 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

• 3.-Máximo número de usuarios interactivos.- En los sistemas de tiempo compartido se tratará de que

puedan estar trabajando el mayor número de usuarios simultáneamente.

• 4.-Predecibilidad.- La política de planificación debe concebirse de tal forma que en todo momento pueda

saberse cómo será su ejecución.

• 5.-Minimización de la sobrecarga.- La computadora debe tener poca sobrecarga, ya que ésta incide

directamente sobre el rendimiento final del sistema: a menor sobrecarga, mayor velocidad de proceso.

• 6.-Equilibrio en el uso de recursos.- Para obtener un buen rendimiento en el uso de los recursos y que

éstos estén ocupados equitativamente el mayor tiempo posible.

• 7.-Seguridad de las prioridades.- Si un proceso tiene mayor prioridad que otro, éste debe ejecutarse más

rápidamente.

� Los objetivos enunciados pueden entrar en ocasiones en contradicción; por ello es necesario llegar a una

situación de compromiso entre todos los objetivos para conseguir del sistema operativo un buen

rendimiento y un buen servicio.

5.- CRITERIOS DE PLANIFICACIÓN. Los criterios que se desean cumplir con un buen algoritmo de planificación son, sobre todo:

• Equidad: garantizar que cada proceso obtiene su proporción justa de la CPU.

• Eficacia o eficiencia: mantener ocupada la CPU el 100% del tiempo.

• Tiempo de respuesta a un evento: es el intervalo de tiempo que transcurre desde que se señala un

evento hasta que se ejecuta la primera instrucción de la rutina de servicio de dicho evento.

• Tiempo de regreso o retorno (turnaround): es el intervalo de tiempo que transcurre desde que un

proceso se crea o presenta hasta que se completa por el sistema.

• Rendimiento (Throughput): es una medida del nº de procesos por unidad de tiempo.

• Tiempo de espera: es el tiempo que el proceso espera hasta que se le concede el procesador.

6.- SINCRONIZACIÓN Y COMUNICACIÓN DE PROCESOS.

La idea básica es que los procesos ejecutan actividades diversas. Se puede compartir un procesador entre varios procesos utilizando un algoritmo de planificación que decida cuándo interrumpir la labor de un proceso y pasar a otro diferente.

Las tareas que corren en un sistema se diseñan para llevar a cabo un objetivo común y, por lo tanto, es

necesario que algunas de ellas se comuniquen entre sí; además, en su ejecución competirán por conseguir los

recursos del sistema, una zona de datos específicos, o un dispositivo de E/S y dicha competición se debe regular

proporcionando los mecanismos adecuados para la sincronización de los procesos.

• Concurrencia de procesos.- Son procesos que se pueden ejecutar simultáneamente, sin interferir unos

con otros.

• Sincronización de procesos: En la ejecución concurrente, algunos procesos no pueden empezar su

ejecución hasta que otros no hayan concluido, es decir, deben de sincronizarse. Una forma de lograr esto, es

mediante la generación de envío de señales de control. Los métodos de sincronización más utilizados son:

o Las variables compartidas

o Semáforos

o Monitores

Page 4: articulo ISUU

4 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

6.1.- CONCURRENCIA.

• Es la existencia de varias actividades ejecutándose simultáneamente, y necesitan sincronizarse para actuar

conjuntamente.

• Para que dos actividades sean concurrentes, es necesario que tengan alguna relación entre sí, como

puede ser la cooperación en un trabajo determinado o el uso de información compartida.

• En un sistema monoprocesador, la existencia de multiprogramación es condición necesaria, pero no

suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.

Por ejemplo, un editor y un compilador pueden estar ejecutándose simultáneamente en una

computadora sin que exista concurrencia entre ellos. Por otro lado, si un programa se está ejecutando y se

encuentra grabando datos en un archivo, y otros programa también en ejecución está leyendo datos de ese mismo

archivo, sí existe concurrencia entre ellos, pues el funcionamiento de uno interfiere en el otro.

• Si un sistema es multiprocesador, también pueden presentarse situaciones de concurrencia siempre y

cuando las actividades necesiten actuar entre sí, bien por utilizar información común o por cualquier otra causa.

Con este ejemplo podemos resumir estos conceptos:

Supongamos un estudiante que tiene que preparar varias asignaturas durante el curso. Relacionamos el

estudiante con un ordenador con un único procesador, su cerebro. Una organización secuencial del estudio de las

asignaturas podría ser estudiar una asignatura durante un número de días hasta aprenderla, después otra

asignatura y así sucesivamente hasta preparar la última. Otra organización podría ser estudiar cada día un poco de

cada asignatura. En cada instante de tiempo estará estudiando una única asignatura, pero visto el trabajo a una

escala macroscópica al cabo del curso podríamos afirmar que el estudiante ha llevado las asignaturas en paralelo o

de forma concurrente.

Durante el proceso de aprendizaje habrá momentos en que tendrá que abandonar temporalmente ésta

para realizar otras tareas, como atender una llamada de teléfono o abrir la puerta. Al añadir estas nuevas tareas de

su quehacer cotidiano el estudiante necesita una cierta planificación que le permita determinar cuándo debe pasar

de la ejecución de una tarea a otra. Dicha planificación forma parte de su “modus operandi” o sistema operativo;

según éste, el estudio de una asignatura se realizará durante un cierto intervalo de tiempo, transcurrido el cuál se

producirá el cambio a otra asignatura. Si durante el estudio se produce, por ejemplo, una llamada telefónica, el

estudiante la atenderá y salvo que la llamada le obligue a realizar otra tarea como salir a comprar comida para los

amigos que le acaban de comunicar que van a venir a cenar, proseguirá su estudio.

Si este ejemplo lo pasáramos más al campo informático, podemos situarlo en la ejecución de un programa

de edición de textos. Aunque los procesos de edición se pueden considerar independientes, lo cierto es que éstos

compiten por el uso de los recursos del sistema, de manera que se necesitan herramientas que permitan la

sincronización y la comunicación entre los mismos. A veces dos o más procesos cooperan para alguna operación

común. En cualquier instante, sólo un proceso estará en ejecución mientras que los otros estarán preparados para

acceder al procesador cuando lo disponga el SO, o bloqueados, esperando que ocurra algún evento que les permita

volver a estar dispuestos para acceder al procesador.

6.2. EXCLUSIÓN MÚTUA.

• Es una sincronización por la cual una actividad impide que otras puedan tener acceso a un dato mientras

se encuentra realizando una operación sobre el mismo.

• Cuando se realiza una operación de escritura y otro proceso diferente de lectura quiere entrar, se ha de

bloquear este último proceso, pues sus datos serían inconsistentes. Hasta que no se terminan de modificar unos

campos o ampliar o reducir el fichero, no podemos leer datos fiables y seguros.

Page 5: articulo ISUU

5 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

• Si realizamos una operación de lectura y otro proceso diferente de lectura quiere entrar, pueden

perfectamente aunque sea el mismo registro.

La zona de código de un proceso que no puede ser interrumpida por otro, se denomina sección crítica.

6.3. SINCRONIZACIÓN.

• Es un elemento necesario para asegurar la exclusión mutua.

• Si una actividad desea impedir que otra acceda a ciertos datos compartidos, mientras no se cumpla una

determinada condición, debemos sincronizar las actividades con dicha condición.

� 1.-Espera activa. Son aquellos algoritmos que basan todo su funcionamiento en establecer la espera de

entrada a la sección crítica con un bucle que será roto en el momento en que se cumpla una determinada

condición.

Se llaman de espera activa porque el proceso no queda bloqueado durante su ejecución, sino que estará

compitiendo por el procesador constantemente. Por este motivo, estos algoritmos sobrecargan el sistema

innecesariamente.

Los primeros en utilizarse y han sido sustituidos por otros más eficientes.

Ente los distintos algoritmos este tipo existentes podemos citar:

� 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 DEKKER1. Resuelve el problema mediante la solución propuesta por Dekker, basando su

funcionamiento en una tabla unidimensional de dos elementos lógicos (Switches).

� 2.- Espera no activa. Son los algoritmos que establecen la espera para entrar en la sección crítica

bloqueando el proceso, haciendo que deje de competir por el procesador hasta que se cumpla

la condición de desbloqueo.

� Semáforos.- Gestiona el tráfico de procesos que desean acceder a datos compartidos. Es 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 recursos del sistema.

Con este sistema, cuando un proceso intenta entrar en una secció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.

� Regiones críticas.- Sólo permiten que los datos compartidos se puedan acceder desde determinadas

regiones, para protegerse de algunos usuarios. No sincronizan bien y no permiten actividades de lectura

simultánea.

1 El algoritmo de Dekker es un algoritmo de programación concurrente para exclusión mútua, que permite a dos procesos hilos de ejecución compartir un recurso sin conflictos. Fue uno de los primeros algoritmos de exclusión mutua inventados, implementado por Edsger Dijkstra. Si ambos procesos intentan acceder a la sección crítica simultáneamente, el algoritmo elige un proceso según una variable turno. Si el otro proceso está ejecutando en su sección crítica, deberá esperar su finalización.

Page 6: articulo ISUU

6 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

� Regiones críticas condicionales.- Consiste en una mejora del método anterior tratando de resolver los

problemas de sincronización.

� Monitores.- Solucionan el problema de los anteriores que necesitaban que el programador tenía que

proporcionar de forma explícita el modo de sincronización.

Un monitor permite compartir, segura y eficientemente, datos entre varias actividades,

garantizando la exclusión mutua, sin necesidad de que el programador tenga que suministrarla

explícitamente.

Se basa en dos premisas:

La primera es la abstracción de datos consistente en una técnica capaz de separar las

operaciones a ejecutar sobre los datos, de los detalles de diseño propios de los mismos ADA y

MODULA).

La segunda es que realizan la exclusión mutua de forma implícita.

� Contadores de eventos.- Es un mecanismo para sincronizar actividades sin que sea necesario forzar la exclusión mutua, ya sea porque no deseamos limitar la concurrencia de las actividades, o simplemente porque no lo necesitemos. Se basa en una variable entera cuya misión es contar determinadas operaciones.

� Mensajes.- Es un mecanismo que permite a los procesos intercambiar aquella información que sea necesaria durante el desarrollo normal de su ejecución.

Es más un mecanismo de cooperación que de sincronización. Esta cooperación se realiza por medio de mensajes que se envían entre sí los procesos, guardando estos mensajes en un zona de memoria compartida. Existen dos tipos de comunicación entre procesos: Directa e indirecta.

o Directa.- Los procesos envían y reciben los mensajes directamente entre sí, de manera que se asocia un enlace bidireccional único entre cada dos procesos.

o Indirecta.- Los mensajes son enviados y recibidos a través de mailboxes o buzones de correos. Con este método cada proceso puede estar relacionado con tantos buzones como desee consiguiendo comunicarse con tantos procesos como sea necesario.

� Llamadas remotas.- Es una mezcla entre el concepto de mensaje y paso de parámetros, siendo dicha

ejecución concurrente. Este tipo de interacción asegura que hasta que un proceso no termine determinadas operaciones, el siguiente permanecerá a la espera.

� Rendez-vous.- Es una modificación del método de las llamadas remotas, donde la llamada, en lugar de ser a todo un procedimiento, lo es solamente a un grupo de sentencias dentro de él.

o Se trata de un procedimiento similar al monitor, pero con más versatilidad y potencia. o Se ha llevado a la práctica con el lenguaje ADA.

� 3.-Mecanismos hardware.- Son instrucciones hardware que aseguran la exclusión mútua. Entre las más

utilizadas se citan las siguientes: Deshabilitar interrupciones, Instrucción TEST_AND_SET, LOCK.

� Deshabilitar interrupciones.-Por este medio, se puede forzar la exclusión mutua deshabilitando las interrupciones mientras haya alguna actividad en las sección crítica.

� Instrucción TEST_AND_SET.- Es una instrucción máquina para forzar la exclusión mutua. No puede ser interrumpida por ser una instrucción hardware.

� LOCK.- Se basa en la anterior, además permite el acceso a la sección crítica a un proceso en caso de no existir otra actividad.

7. - INTERBLOQUEO

Se define como la situación de un conjunto de procesos en un estado de espera tal que ninguno de ellos tiene

suficientes criterios para continuar su ejecución. También conocido como abrazo mortal (deadlock).

• Recursos:

Page 7: articulo ISUU

7 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

– Se entiende como recurso un elemento que un programa o proceso puede utilizar en la

computadora donde se está ejecutando. Es algo (hardware o software) que puede ser utilizado

por un solo proceso en un instante dado.

– Para que un proceso pueda utilizar un recurso, deberá realizar la siguiente secuencia de

operaciones:

• Solicitar el recurso (sino está disponible se bloquea hasta poder ser asignado).

• Utilizar el recurso

• Liberar el recurso

• Modelo:

Los principios en que se basa todo sistema informático:

� Posee un número finito de recursos

� Existe un número finito de procesos que compiten por los recursos.

� Los recursos se pueden dividir en tipos de tal forma que cada uno de ellos esté compuesto por

recursos idénticos entre sí.

� Los procesos deben realizar las tres acciones expuestas anteriormente sobre los recursos:

solicitar, utilizar y liberar.

� Un proceso puede pedir tantos recursos como necesite para realizar su trabajo, ya sean del

mismo tipo o no, siempre que no excedan del total existente en el sistema.

� Las operaciones sobre los recursos se realizarán a través de llamadas al S.O., de manera que si

se solicita un recurso que está siendo utilizado, quedará bloqueado en espera de que se libere

dicho recurso.

� Postergación indefinida:

� La postergación indefinida (starvation), consiste en que un recurso puede quedar esperando

indefinidamente mientras otros reciben la atención del sistema.

� Este tipo de problemas suele surgir en sistemas gestionados por prioridades, pues puede quedar

un proceso bloqueado porque lleguen procesos con mayor prioridad. Una forma de corregirlo es

con el envejecimiento de prioridades.

� Condiciones de interbloqueo:

� Podemos asegurar que un conjunto de procesos ha llegado al interbloqueo si se cumplen las

siguientes condiciones: Exclusión mutua, posesión y espera, no apropiación y espera circular.

� Exclusión mutua.- Existencia al menos de un recurso compartido por los procesos, al

cual sólo puede acceder uno simultáneamente.

� Posesión y espera.- Debe existir algún proceso que tenga asignado un recurso y esté

esperando a que se le asignen otros que están siendo utilizados por otros procesos.

� No apropiación.- Los recursos no pueden ser apropiados por los procesos, es decir, los

recursos sólo podrán ser liberados voluntariamente por sus propietarios.

� Espera circular.- Si existen varios procesos que se están esperando cíclicamente.

Page 8: articulo ISUU

8 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

� En caso de que alguna de las condiciones anteriores no estuviera presente, podemos

asegurar sin ningún género de dudas que no existe interbloqueo.

• Tratamiento de interbloqueo:

Existen cuatro estrategias para el tratamiento del interbloqueo: ignorar, prevenir, evitar y

detectar y recuperar.

� 1.- Ignorar.- Se trata de no tener en cuenta en el S.O. este tipo de situaciones, teniendo en

cuenta que su aparición es bastante improbable. La solución es volver a arrancar el sistema. Se

le llama algoritmo del avestruz. Es decir, mete la cabeza bajo tierra e ignora el problema. Linux

funciona con este algoritmo.9

� 2.- Prevenir.- Consiste en evitar alguna de las cuatro condiciones que deben estar presentes

para que pueda aparecer el interbloqueo, con lo cual nunca se podrá presentar tal situación.

� 3.- Evitar.- Se pueden evitar los posibles interbloqueos siempre y cuando tengamos disponible

cierta información sobre los recursos que necesita cada proceso por adelantado. Para evitar el

interbloqueo se han estudiado diversos métodos, entre los que podemos citar el algoritmo del

banquero.

� Algoritmo del banquero. Este algoritmo usualmente es explicado usando la analogía

con el funcionamiento de un banco. Los clientes representan a los procesos, que

tienen un crédito límite, y el dinero representa a los recursos. El banquero es el

sistema operativo.

El banco confía en que no tendrá que permitir a todos sus clientes la utilización de

todo su crédito a la vez. El banco también asume que si un cliente maximiza su crédito será

capaz de terminar sus negocios y retornar el dinero de vuelta a la entidad, permitiendo servir a

otros clientes.

� 4.- Detectar y recuperar: Consiste en abortar un proceso cuando existen indicios de que se

pueda producir interbloqueo. Para abortar un proceso, el sistema operativo se basa en varias

características del mismo: prioridad, tiempo de procesador usado, tipo de recursos utilizados,

necesidades de recursos y facilidad de suspensión/reanudación.

4.1.- Prioridad- Se elimina el menos prioritario.

4.2.- Tiempo de procesador usado.- Cuanto menos tiempo haya estado el proceso a abortar

menos trabajo se pierde y más fácil será recuperarlo.

4.3.- Tipo de recursos utilizados.- Si los recursos son muy críticos y escasos, será preferible

liberarlos cuanto antes.

4.4.- Necesidad de recursos.- Es conveniente eliminar aquellos procesos que necesitan un gran

número de recursos.

4.5.- Facilidad de suspensión/reanudación.- Se eliminarán antes aquellos procesos cuyo trabajo

perdido sea fácil de recuperar.

8. – ALGORITMOS DE PLANIFICACIÓN.

• El planificador del procesador tiene como misión la asignación del mismo a los procesos que están en la

cola de procesos preparados. Esta cola es alimentada desde dos puntos distintos:

Page 9: articulo ISUU

9 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

� Cada vez que un usuario inicie la ejecución de un programa, el planificador a largo plazo recibe la

orden de ejecución, crea el proceso y lo pasa al planificador a corto plazo, colocándose en la cola de procesos

preparados.

� Cuando un proceso deja de estar en estado de ejecución y no existen causas para su bloqueo, o

deja de estar bloqueado, pasa nuevamente a la cola de procesos preparados.

• Las políticas de planificación se agrupan en:

� Políticas expropiativas o apropiativas o expulsora.- Son las que producen un cambio de proceso

con cada cambio de contexto; es decir, el proceso que está haciendo uso del procesador puede ser temporalmente

suspendido y permitir que otro proceso se apropie del procesador. Se utilizan en sistemas operativos con tiempo

compartido y tiempo real.

� Políticas no expropiativa o apropiativas o no expulsora.- Son aquellas en las que un proceso no

abandona nunca el procesador desde su comienzo hasta su fin. Se utilizan en sistemas de proceso por lotes.

8.1.- Planificación por prioridades.-

Esta política asocia a cada proceso una prioridad.

• Las prioridades puede ser definidas interna o externamente. En el primer caso, el sistema operativo se

basa en una serie de informaciones medibles para el cálculo y asignación de dichas prioridades (tiempo

necesitado de procesador, necesidad de memoria, etc.)

• El principal problema de esta política es el bloqueo o postergación indefinida, ya que un proceso de baja

prioridad puede estar esperando su turno indefinidamente.

• Para evitar lo anterior, se suele emplear lo que se denomina envejecimiento de las prioridades, que

aumenta gradualmente las prioridades de los procesos que están a la espera de utilizar el procesador.

� El valor inicial puede ser asignado por el usuario o por el sistema. La asignación puede se de dos tipos:

a) Estática.- en cuyo caso no cambia durante el tiempo en que el proceso existe.

b) Dinámica.- cuando la prioridad puede ser modificada por el propio usuario o sistema. La

modificación se suele realizar en función de ciertos parámetros como la cantidad de memoria que utiliza,

el número de acciones de E/S que lleva realizado, el tiempo medio de utilización del procesador hasta ese

momento, el número de ficheros abiertos, etc.

– Las características de la política de prioridad son:

o Puede ser apropiativo o no apropiativo. En el primer caso, un proceso puede ser retirado del

procesador si aparece otro de mayor prioridad en la cola de procesos preparados.

o Puede ser injusto.

8.2.- Planificación Primero en llegar, primero en ser servido (FCFS).

En esta política de planificación FCFS (First Come, First Served), el procesador ejecuta cada proceso hasta

que termina: por tanto, los procesos que entren en cola de procesos preparados permanecerán

encolocados en el orden en que lleguen hasta que les toque su ejecución. Este método se conoce también

como “primero en entrar, primero en salir” (First Input, First Output-FIFO).

– Las características de esta política son:

• No es apropiativa

Page 10: articulo ISUU

10 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

• Es justa, aunque los procesos largos hacen esperar mucho a los cortos.

• Es una política predecible

• El tiempo medio de servicio es muy variable en función del número de procesos y su

duración.

• No se utiliza mucho solo, aunque si en combinación con otros algoritmos.

8.3- Planificación Primera tarea más corta (Planificación SJF).(SJN)

El método SJN (Shortest Job Next) o SJF (Shortest Job First) es una política de planificación que tata de

cubrir los mismos objetivos que la RR.

• Esta política toma de la cola de procesos preparados el que necesite menos tiempo de ejecución para

realizar su trabajo.

• Para lo anterior, debe saber el tiempo de procesador que necesita cada proceso mediante método como

pueden ser la información suministrada por el propio usuario, por el propio programa, basándose en la

historia anterior (heurística), etc.

– Las características de la política SJN o SJF son:

• No es apropiativa

• El tiempo de espera aumenta de acuerdo con la longitud de los procesos, pero el

tiempo medio de espera con respecto a otras políticas es óptimo.

• Es poco predecible

• No es justa con los procesos largos

• Buen tiempo de servicio

• Resulta difícil de poner en práctica por los datos que necesita para realizarse la

planificación.

8.4.- Planificación Round-Robin (RR).

Su traducción podría ser asignación cíclica o planificación en rueda, es una mejora de FCFS. Trata de ser

más justa en cuanto a la respuesta tanto de los procesos cortos como de los largos.

• Consiste en conceder a cada proceso en ejecución un determinado período de tiempo q (quantum),

transcurrido el cual, si el proceso no ha terminado, se le devuelve al final de la cola de procesos

preparados, concediéndose el procesador al siguiente proceso por su correspondiente quantum.

• Esta interrupción periódica continúa hasta que el proceso termine su ejecución, formando una rueda de

procesos que serán ejecutados, cíclicamente hasta que terminen.

• La gestión de la cola de procesos preparados se puede realizar de muy diversas maneras, siendo las más

comunes la FIFO o por prioridades, donde los procesos se ordenan según su prioridad.

– Las características de la política R-R son:

– Baja sobrecarga si el cambio de contexto es eficiente y los procesos siempre están en

la memoria principal

– El tamaño óptimo del quantum depende de:

Page 11: articulo ISUU

11 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

– Es una política apropiativa

– El tipo de sistema

– Las cargas que vaya a soportar el sistema

– El número de procesos en el sistema y su tipo

– Es la política más utilizada para tiempo compartido

– Ofrece un índice de servicio uniforme para todos los procesos.

8.5.- Planificación El siguiente proceso, el restante más corto (SRT).

La política SRT (Shortest Remainining Time) es una mezcla de los dos métodos anteriores (RR y SJN).

• Trata de obtener las ventajas de ambos

• Esta técnica cambia el proceso que está en ejecución cuando se ejecuta un proceso (paso del planificador

de largo plazo al de corto plazo), con una exigencia de tiempo de ejecución total menor que el que se está

ejecutando en el procesador.

• El valor del tiempo de respuesta medio de los procesos largos mejora con respecto a SJN.

– Las características de la política SRT son:

• Es una variante de SJN, para hacerla apropiativa

• Puede ser injusta, ya que un proceso corto puede echar a uno largo que esté haciendo

uso del procesador y que además esté terminando

• Presenta una mayor sobrecarga

• Excelente tiempo medio de servicio

• Es muy eficiente.

8.6.- Planificación Próximo el de más corto índice de respuesta (HRN)

HRN (High Response Next) es una política que trata de corregir las posibles injusticias de la política SJN con

los procesos largos y las de la política FCFS con los procesos cortos.

– Presenta los siguientes inconvenientes:

• Si un usuario ejecuta un proceso corto inmediatamente después de que un proceso

largo hay comenzado a utilizar el procesador, deberá sufrir una larga espera.

• Es muy costosa de llevar a la práctica, ua que la prioridad de be calcularse para todos

los procesos en espera, cada vez que termine el proceso que está haciendo uso del

procesador

• Sobrecarga mucho el sitema debido a los cálculos que debe realizar.

– Las características de la política HRN son:

• No es apropiativa

• Es justa

Page 12: articulo ISUU

12 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

• Es costosa de poner en práctica

• Produce una gran sobrecarga en el sistema.

8.7.- Planificación Colas múltiples

Cuando los procesos que van a ser ejecutados en una computadora se pueden agrupar en distintos

grupos, podemos asignarlos a diferentes colas, cada una con distinta planificación, para darle a cada una de

ellas la que realmente necesite.

• Esta política divide la cola de procesos preparados en varias colas separadas, de manera que los

procesos se asignan a una determinada cola según sus necesidades y tipo.

• Para determinar en cada caso qué cola es la que suministrará un proceso para que acceda al

procesador cuando éste deje a otro anterior, será controlada por un algoritmo de planificación

entre las colas, que normalmente es apropiativo de prioridad fija.

• Un algoritmo de planificación con una variante al de planificación por prioridad.

• Este algoritmo consiste en dar distinto quantum a cada una de las distintas colas que agrupan los procesos

de una misma prioridad. De esta manera se intenta beneficiar ciertos procesos cuyo tiempo de ejecución

mayor, mejora ostensiblemente la eficiencia del trabajo con procesos con prioridad.

• En este algoritmo los procesos de mayor prioridad se ejecutan en un quantum. Los procesos de la

siguiente clase se ejecutan en dos quantum, los de la siguiente clase en 4 quantum, y así sucesivamente.

Cuando un proceso consume todos los quantum asignados a él, se le mueve a la siguiente clase.

8.8.- Planificación Colas múltiples con realimentación (FB)

La política FB (Feedback Multiple Queues) intenta dar un trato justo a los procesos por medio de

separación de los mismo en categorías, para así darles el servicio que necesitan.

• Para dar un trato justo a los procesos, es necesario conocer previamente todos sus parámetros

característicos: la longitud, si están limitados por entrada/salida o por procesador, la memoria que van a

necesitar, etc. Como estos datos no suelen ser conocidos, es difícil determinar el trato que debe recibir

cada proceso.

• Este método divide los procesos en varias colas de procesos preparados: cola 0, cola 1….., de manera que

las de numeración más baja tendrán asignadas mayor prioridad.

• Los procesos limitados por procesador irán a las colas de menor prioridad (nivel más alto), mientras los de

mayor prioridad serán aquellos procesos muy interactivos.

• Cuando el proceso que está haciendo uso del procesador finaliza su quantum, se selecciona un nuevo

proceso del principio de la cola del nivel más bajo que tenga algún proceso.

• Una vez que un proceso haya consumido el quantum de su cola un determinado número de veces, sin

haber finalizado su ejecución, será colocado al final de la de nivel inmediatamente superior al anterior.

– Las características de la política FB son:

• Es apropiativa

• Soporta bien la sobrecarga

• Es muy adaptable a las necesidades del sistema, ya que cada cola puede ser

gestionada de forma diferente.

Page 13: articulo ISUU

13 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

8.9.- Planificación garantizada

Es una técnica en la que se establecen verdades compromisos de desempeño con el usuario y se debe de

sujetar a ellos.

• Para mantener esa promesa, el sistema debe de tener un registro del tiempo de CPU que cada usuario ha

tenido desde su entrada al sistema, así como del tiempo transcurrido desde esa entrada. Posteriormente,

calcula entonces la cantidad de tiempo en CPU prometida al usuario, es decir, el tiempo transcurrido

desde la entrada, dividido entre n (nº de procesos). Puesto que también se conoce la cantidad de tiempo

en CPU realmente utilizada por el usuario, mediante un cálculo directo se obtiene la proporción del

tiempo de CPU real entre el tiempo de CPU prometido.

• Una proporción de 0,5 indica que un proceso sólo ha dispuesto de la mitad del tiempo debido, mientras

que una proporción de 2 indica que un proceso ha usado el doble de lo que debería.

• El algoritmo ejecuta entonces el proceso con la menor proporción, hasta que ésta se acerque a la de su

competidor más cercano.

� ¿Qué algoritmo de planificación se debe elegir para un sistema determinado?. Será misión del diseñador

del sistema operativo la elección de los mecanismos apropiados para que la política elegida partiendo de los

criterios anteriores sea satisfactoria y ofrezca un alto rendimiento global.

� A veces ocurre que un proceso tiene muchos hijos ejecutándose bajo su control. Por desgracia, ninguno

de los planificadores analizados anteriormente acepta datos de los procesos del usuario relativos a

decisiones de planificación. Como resultado, el planificador pocas veces hace la mejor elección.

� La solución a este problema es separar el mecanismo de planificación de la política de planificación. Es

decir, el algoritmo de planificación deberá quedar parametrizado y los parámetros deberán de ser

determinados por medio de procesos del usuario.

9.-CUESTIONES

a) Representación gráfica de la planificación de procesos.

A los gráficos que se utilizan para ver el funcionamiento de los algoritmos de planificación o cronogramas

también se les denominan diagramas de Gantt, que son unos gráficos ideados por H. L. Gantt en la segunda década

de siglo XX para organizar actividades, mostrando las fechas o tiempos de inicio de cada actividad y su duranción

estimada.

En éstos se representa el eje de abcisas el tiempo y en el eje de coordenadas los procesos que se

planifican para su ejecución por la CPU. Para cada proceso, una línea o un rectángulo muestra el tiempo en que

dicho proceso dispone de la CPU. A continuación se muestra el diagrama de Gantt de tres procesos; P1, P2, P3, que

se ejecutan en este orden, con tiempos de ejecución t1, t2 y t3 y de conmutación de tareas, c.

c) Durante la ejecución de un programa, éste transcurre entre fases de cálculo y fases de e/s. Estos

dispositivos son más lentos comparados con el procesador, ello hace que el procesador esté desocupado a

menudo, durante bastante tiempo, esperando que termine la operación de e/s antes de seguir con la

ejecución de dicho programa. Si dos programas tienen un comportamiento idéntico con el procesador y

con las operaciones de e/s, podríamos decir que el procesador pasa parte del tiempo ejecutando el

programa hasta que encuentra una instrucción de e/s, con lo que esperará hasta que ésta termine para

continuar. Podemos verlo en el siguiente dibujo de dos programas en serie:

Page 14: articulo ISUU

14 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

P1 e/s P1 e/s P1 P2 e/s P2 e/s P2

t +c +t +c +t +t +c +t +c +t

El tiempo total que ha necesitado los dos procesos para terminar su ejecución ha sido el tiempo necesario

del proceso P1 (3t), del proceso P2 (3t) y el tiempo que han tenido que estar en espera por las cuatro operaciones

de e/s que se han realizado y en las que el procesador ha estado desocupado (4c).

Este desaprovechamiento del procesador puede solucionarse si se dispone de suficiente memoria para

alojar a los dos programas, cuando un proceso en ejecución necesite esperar por una operación de e/s, el

procesador puede pasar a ejecutar el otro trabajo, que probablemente no estará esperando por una e/s. Quedaría

así:

P1 P2 P1 P2 P1 P2

t1 +c + t1 +c + t1 + t2

c) Transiciones que se producen entre los diferentes estados de un proceso por actuación del planificador

a corto plazo (PCP), el planificador a medio plazo (PMP) y el planificador a largo plazo (PLP).

El planificador a corto plazo selecciona, en base a un determinado algoritmo, el proceso que pasará al estado activo

de entre todos los procesos que están en el estado de preparado.

Transición entre estados a que da lugar la acción del planificador a corto plazo

El planificador a medio plazo selecciona el proceso que pasará al estado preparado de entre todos los procesos que

están en el estado bloqueado pero que además se encuentran en memoria secundaria. La característica de este

planificador es que forma parte de la función de intercambio o swapping relativa a la gestión de memoria.

Transición entre estados a que da lugar la acción del planificador a medio plazo

El planificador a largo plazo determina que procesos se admiten en el sistema es por ello que el proceso pasará del

estado nonato al estado de preparado.

Transición entre estados a que da lugar la acción del planificador a largo plazo

Lista de estados

preparados

Activo PCP

Lista de estados

Bloqueados en memoria

secundaria

PMP

Lista de estados

preparados

nonato Lista de estados

preparados

PLP

Page 15: articulo ISUU

15 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

a) Los criterios de planificación más utilizados son el tiempo de retorno o regreso, el tiempo de espera, el

rendimiento y la eficacia. Explicar dichos conceptos de manera sencilla y breve.

Entre las medidas de rendimiento y los criterios de optimización más habituales que los planificadores

pueden utilizar en su intento de maximizar el rendimiento del sistema se incluyen:

• El tiempo de retorno o regreso es el tiempo que transcurre desde que un proceso se crea hasta

su finalización.

• El tiempo de espera es el tiempo que un proceso o trabajo consume esperando la asignación de

recursos debido a la competencia con otros en un sistema multiprogramación. En otras

palabras, el tiempo de espera es la penalidad impuesta por compartir recursos con otros

procesos.

• El rendimiento o productividad es el número de procesos terminados por unidad de tiempo.

Esta medida indica la cantidad de trabajo que se está llevando a cabo.

• La eficacia o utilización es el porcentaje de tiempo en el que el procesador está ocupado.

b) Ecuación que relaciona los siguientes períodos de tiempo de un trabajo: tiempo de retorno, tiempo de

ocupación de la CPU y tiempo de espera.

El tiempo de retorno R, es la suma del tiempo de ejecución real o de ocupación del procesador, U, y el

tiempo consumido en la espera por los recursos, E, incluido el procesador. Expresado matemáticamente:

R= E+U

c) Expresión matemática que expresa los conceptos de eficacia y rendimiento:

Dentro del conjunto de criterios con los que se evalúa las diversas estrategias de planificación se

encuentra la eficiencia (Ef) que corresponde al tiempo medio de utilización del procesador.

Matemáticamente se puede expresar como la fracción entre el tiempo de ejecución útil o real., U, y el

tiempo de uso de la CPU total, T, de ese proceso (expresado en tanto por ciento):

Ef= U/T * 100%

El rendimiento o productividad P, es una medida del número de trabajos completados por unidad de

tiempo. De esta forma, si es N, el número de procesos completados en S segundos, su expresión sería:

P=N/S

d) Se tienen 3 procesos P1, P2 y P3, con tiempos de ejecución, 85,45 y 118 ms, respectivamente. Si actúa el

planificador a corto plazo según el algoritmo SJF determinar el orden en que se encuentran en la lista de

preparados. ¿En qué se diferencia si el planificador fuera a largo plazo?.

a) El proceso seleccionado será aquél que posea menor tiempo de ejecución. De esta forma el primer

proceso que pasará al estado activo de entre estos tres procesos será P2, pues 45 ms es el menor

tiempo de ejecución. Cuando este proceso finaliza su ejecución será de nuevo llamado el algoritmo

de planificación que en este caso seleccionará al proceso P1 para su ejecución, cuando éste muera se

pasará a ejecutar el P3.

b) La estrategia no varía, el orden de selección será el mismo. Pero esta selección no sería para pasar a

ejecución, sino a la lista de procesos en estado de preparados.

Page 16: articulo ISUU

16 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

e) Para los tres procesos anteriores calcular sus tiempos de retorno, de espera, rendimiento y eficacia del

sistema. Dibujar el diagrama de Gantt o diagrama temporal de la posesión del procesador.

P2 P1 P3

45 130 248

Proceso P1:

• Tiempo de retorno: R1: 130 ms

• Tiempo de espera: E1:R1-U1=130-85=45 ms

• Eficacia Ef1: Ef1=U1/T1 *100=85/130 *100= 65,38%

Proceso P2:

• Tiempo de retorno: R2: 45 ms

• Tiempo de espera: E2:R2-U2=45-45=0 ms

• Eficacia Ef2: Ef2=U2/T2 *100=45/45 *100= 100%

Proceso P3:

• Tiempo de retorno: R3: 248 ms

• Tiempo de espera: E3:R3-U3=248-118=30 ms

• Eficacia Ef3: Ef3=U3/T3 *100=118/248 *100= 47,58%

El rendimiento del sistema es:

P= N/S= 3/248=0,012

f) Si el tiempo de retorno o regreso de un proceso, P1, es de 30 ms y el de ejecución real de 10 ms, ¿cuál será

el tiempo de retorno o regreso de P1 y P2?.

La expresión que relaciona el tiempo de retorno con el tiempo de espera es:

R= E+U

Por lo tanto:

E=R-U = 30-10 =20 ms

La eficacia será:

Ef=U/T *100=10/30*100=33,33 %

El rendimiento será:

P=N/S=1/30=0,033

Page 17: articulo ISUU

17 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

g) Se tienen dos procesos, P1 y P2, de tiempos de ejecución 25 y 30 ms, respectivamente. El planificador a

corto plazo actúa según el algoritmo RR o de prioridad circular con quantum de 10 ms. ¿Cuál será el

tiempo de retorno o regreso de P1 y P2?

De acuerdo con este algoritmo los procesos en la lista de preparados irán pasando a ejecución de manera

secuencial durante un tiempo definido igual a 10 ms. Cuando terminan de tomar el procesador todos los

procesos de la lista durante el tiempo establecido vuelven a comenzar, de ahí el nombre de prioridad

circular. Si el orden en la lista de preparados es primero P! y después P2, entonces pasará a ejecutarse P1

durante 10 ms y después P2 durante otros 10 s. De nuevo comienza el ciclo con P1 durante 10ms, y a

continuación P2 con el mismo quantum. Finalmente comienza su ejecución P1 pero no necesita todo el

quantum asignado para terminar, solamente 5 ms. Al terminar este proceso, es estado global del sistema

varía por lo que de nuevo se vuelve a llamar al planificador, como sólo el proceso P2 está en la lista de

preparados pasará a ejecución requiriendo todo el quantum asignado para terminar su ejecución por

completo. De esta forma el tiempo de retorno para el proceso P1 es el tiempo que transcurre desde que

se crea (se supone que ambos procesos se crean al tiempo 0 ms) hasta que finaliza su ejecución. Por lo

tanto, se debe contabilizar el tiempo en el que finalizan su ejecución ambos procesos. Para P1

corresponde a dos ciclos totales más 5 ms, en total 45 ms y para P2 serán 10 ms más, es decir 55 ms. Si se

representa el diagrama de Gantt se pueden observar de forma más clara los tiempos de retorno:

P1 P2 P1 P2 P1 P2

25-

10=15

30-

10=20 15-10=5

20-

10=10 5-5=0 10-10=0

10 20 30 40 45 55ms

h) Sean dos procesos: P1 con tiempo de ejecución de 20 ms y P2 con 15 ms. El planificador a corto plazo

actúa según el algoritmo de prioridad circular con quantum de 10 ms y tiempo de conmutación de tarea

de 5 ms. Marcar el tiempo de retorno (regreso) de P1 y P2.

El proceso P1 comienza su ejecución, transcurrido el quantum de 10 ms tiene lugar el cambio de contexto

que tarda 5 ms y cambia a la ejecución del proceso P2 durante otros 10 ms. A continuación tiene lugar

otro ciclo, pasa a ejecutarse el proceso P1 que finaliza su ejecución con el cuanto, por lo que su tiempo de

retorno es de 40 ms. Transcurrido el tiempo de conmutación de tarea necesario para que el proceso P2

sea planificado, comienza éste a ejecutarse, pero no necesitará todo el cuanto sino que transcurridos 5 ms

finaliza su ejecución, por lo que el tiempo de retorno es de 50 ms. Con el diagrama de Gantt observamos

que el tiempo de retorno para el proceso p1 es de 40 ms y para el proceso P2 es de 50 ms.

P1 c P2 c P1 c

P2

20-10 5 15-10 5 10-10 5 5

10 15 25 30 40 45

50

Page 18: articulo ISUU

18 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

10.-PROBLEMAS

1) Supóngase que se tienen que realizar cinco trabajos cuyas características se muestran en la tabla siguiente,

llegando en el mismo orden en el que se muestran:

Trabajo Tiempo de ejecución Prioridad

1 1 1

2 10 4

3 2 3

4 2 4

5 6 2

Tabla 1.1

Se pide:

A) Realizar los diagramas de Gantt que ilustren la ejecución de estos trabajos utilizando los algoritmos

siguientes: FCFS (primero en llegar primero en ser servido), SJFS (primera tarea más corta), SRT (tiempo

que queda más corto), RR (prioridad circular) con un quantum de 1 ms y, finalmente una planificación por

prioridades no expropiativa.

B) Determinar para cada uno de los procesos con cada uno de los algoritmos de planificación anteriores el

tiempo de retorno. Calcular la media resultante para cada algoritmo.

C) Lo mismo que el anterior para la eficiencia.

D) Lo mismo que el anterior para el tiempo de espera.

E) Lo mismo que el anterior para el tiempo de respuesta.

F) Analizar los resultados anteriores y extraer consecuencias.

Page 19: articulo ISUU

19 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

2) Supóngase que se tienen que realizar cinco trabajos cuyas características se muestran en la siguiente tabla:

Trabajo Tiempo de uso de CPU Prioridad

1 10 3

2 1 1

3 2 3

4 1 4

5 5 2

Se pide:

a) Realizar un diagrama de Gantt que ilustre la ejecución de estos trabajos para los algoritmos: FCFS (primero

en llegar primero en ser servido), RR (prioridad circular) con quantum de 1 ms, SJF (primera tarea más

corta), prioridades no expropiativo.

b) ¿Cuál es el tiempo de retorno de cada trabajo para cada uno de los algoritmos anteriores de

planificación?, ¿Cuál es el tiempo de de espera de cada trabajo para cada uno de los algoritmos anteriores

de planificación?. Razonar sobre el tiempo de espera medio de cada algoritmo.

1) Se deben ejecutar cinco trabajos: P1, P2, P3, P4 y P5. Sus tiempos de ejecución (en ms) previstos son: 9, 6, 3, 5 y X.

¿En qué orden se deberían de ejecutar aplicando el algoritmo SJF?. Calcular el tiempo de espera medio para cada

uno de los casos. (Obviamente la solución propuesta dependerá de X).

2) Se tiene un SO de tiempo real con tres tareas críticas (tienen que terminar en un tiempo máximo llamado tiempo

crítico). Estos tiempos junto con los tiempos de ejecución por tarea se definen en la siguiente tabla:

Trabajo Tiempo crítico Tiempo de ejecución

A 200 ms 80 ms

B 100 ms 40 ms

C 250 ms 120 ms

Se pide:

a) Representar el orden de las tareas después de la actuación del planificador a largo plazo

b) Representar el orden de ejecución de las tareas en un diagrama de Gantt.

Page 20: articulo ISUU

20 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

c) Calcular el tiempo de retorno de las tareas, su tiempo de espera y decir si todas las tareas se ejecutan antes

de finalizar su tiempo crítico.

Para ello se debe conocer que:

- Las tareas han llegado a la vez y el planificador a largo plazo actúa según el

algoritmo SJF.

- La planificación a corto plazo es por prioridad circular con quantum de 25 ms,

utilizando el algoritmo FSFC para determinar cual es el siguiente proceso que

pasa al estado activo.

- El tiempo de conmutación de proceso es de 0,5 ms.

- Si una tarea no ha terminado al finalizar su tiempo crítico, continúa hasta

completar la ejecución.

- Las tareas no realizan peticiones de e/s.

3) La siguiente tabla recoge la información de cinco procesos que se van a ejecutar en un sistema.

Trabajo Tiempo de llegada (ms) Tiempo de ejecución (ms)

A 0 10

B 1 2

C 2 3

D 3 1

E 4 5

Calcular el tiempo de retorno de cada uno de los trabajos y representar la ejecución en diagramas de Gantt para los

siguientes algoritmos:

a) FCFS

b) SRT

c) RR, con quantum de 2 ms. Si el quantum de un proceso en ejecución expira a la vez que la llegada de un

nuevo proceso, entonces éste se añade a la cola de procesos preparados antes que el proceso termina.

Despreciar el tiempo necesario para el cambio de contexto.

4) En la tabla siguiente se muestra el orden en el que están las tareas en la lista de preparados (todas tienen la

misma prioridad), los cuantos que se conceden a cada tarea cada vez que obtiene la CPU (un valor fijo para cada

tarea), los tiempos que tardarán las tareas en completarse si fueran las únicas del sistema, y los tiempos máximos

permitidos (tiempo máximo entre el comienzo de la tarea hasta su finalización)

Suponiendo que ninguna tarea realiza ninguna operación de e/s, decir si todas las tareas se realizarán sin

problemas (es decir, se realizan antes de su tiempo máximo permitido, no dando un error denominado time_out),

Se pide:

• Dibujar un diagrama de Gantt de las tareas

Page 21: articulo ISUU

21 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

• Calcular los tiempos de retorno de cada una de ellas.

• Explicar brevemente las diferencias del algoritmo prioridad cirucular (RR) y el algoritmo aplicado.

Nota: Tener en cuenta que el quantum es de 40 ms y el tiempo de conmutación de tarea es de 10 ms.

Trabajo Orden en la cola Cuantos asignados Tiempo de ejecución (ms) Tiempo máximo permitido

(ms)

A 1 3 160 540

B 2 2 280 1000

C 3 3 200 800

D 4 2 200 900

E 5 1 400 Infinito

5) La siguiente tabla muestra información de cinco procesos. Calcular el tiempo de retorno de cada uno (despreciar el

tiempo de cambio de contexto) y representar la ejecución en diagramas de Gantt para los algoritmos:

a) SJF

b) RR, con quantum de 4 ms. Si el quantum de un proceso en ejecución exprira a la vez que la llegada de un

nuevo proceso, entonces el nuevo proceso se añade a la cola de procesos en espera de ejecutarse antes

que el proceso que termina.

Trabajo Tiempo de llegada (ms) Tiempo de ejecución (ms)

A 0 14

B 3 12

C 5 7

D 7 4

E 19 7

6) La siguiente tabla recoge la información de cinco procesos que se van a ejecutar en un sistema. Calcular el tiempo de

retorno de cada uno de los trabajos y representar la ejecución en diagrama de Gantt para los siguientes

algoritmos:

a) FCFS

b) SJF

c) RR, con quantum de 2 ms. Si el quantum de un proceso en ejecución expira a la vez que la llegada de

un nuevo proceso, entonces el nuevo proceso se añade a la cola de procesos en espera de ejecutarse

antes que el proceso que termina.

Page 22: articulo ISUU

22 TEMA 3. GESTIÓN DE PROCESOS. (Ampliación).

d) Lo mismo pero con RR con prioridades, teniendo en cuenta que la máxima prioridad corresponde a 4 y

la mínima a 1.

Despreciar el tiempo necesario para el cambio de contexto.

Trabajo Tiempo de llegada ms Tiempo de ejecución

ms

Prioridad

A 1 8 2

B 2 2 4

C 3 1 3

D 4 2 4

E 5 5 1