Planificación de procesos incorporados al sistema operativo

Anuncio
Indice
Objetivos...............................................................................................................................4
Introducción...........................................................................................................................4
Mapa de Planificación.........................................................................................................5
• Planificación Monoprocesador....................................................................................6
1.1 Tipos de Planificación del Procesador........................................................................6
1.1.1 Largo Plazo .................................................................................................................6
1.1.2 Medio Plazo .................................................................................................................6
1.1.3Corto Plazo....................................................................................................................6
1.2 Criterios a Corto Plazo...................................................................................................6
1.2.1 Orientado al Usuario....................................................................................................6
1.2.1.1 Relacionado con la Performance ............................................................................6
1.2.1.1.2 Tiempo de Respuesta............................................................................................7
1.2.1.1.3 Plazos .....................................................................................................................7
1.2.1.2 Otros.........................................................................................................................7
1.2.1.1.2 Predecibilidad ......................................................................................................7
1.2.2 Orientado al Sistema .................................................................................................7
1.2.2.1 Relacionado con la Performance ..........................................................................7
1.2.2.1.1 Throughput ..........................................................................................................7
1.2.2.1.2 Utilización del Procesador ..................................................................................7
1.2.2.2 Otros ........................................................................................................................7
1.2.2.2.1 Equidad ................................................................................................................7
1.2.2.2.2 Prioridades de Forzadas ....................................................................................7
1.2.2.2.3 Recursos de Balanceo ..................................................................................... .7
1.3 El Uso de Prioridades ..................................................................................................7
1
1.4 Políticas de Planificación ............................................................................................8
1.4.1 FCFS (Primero en Llegar−Primero en ser Servido) .................................................8
1.4.2 Round Robin ..............................................................................................................8
1.4.3 SPN (Proceso Más Corto ..........................................................................................8
1.4.4 SRT (Tiempo Restante Más Corto) ..........................................................................8
1.4.5 HHRN(Mayor Relación de Respuesta) .....................................................................8
1.4.6 Feedback ....................................................................................................................9
2. Planificación Multiprocesador ......................................................................................9
2.1 Clasificación ..................................................................................................................9
2.1.1 Multiprocesador Libremente Acoplado ...................................................................9
2.1.2 Procesadores Funcionalmente Especializados.......................................................9
2.1.3 Multiprocesamiento Rígidamente Acoplado ............................................................9
2.2 Granularidad ..................................................................................................................9
2.2.1 Fina ..............................................................................................................................9
2.2.2 Media ...........................................................................................................................9
2.2.3. Ordinaria y Muy Ordinaria ........................................................................................9
2.2.4 Independiente .............................................................................................................9
2.3 Conceptos de diseño ....................................................................................................10
2.3.1 Asignación de procesos al Procesador....................................................................10
2.3.2 Uso de Multiprogramación en procesos individuales ...........................................10
2.3.3 Despacho de Procesos .............................................................................................10
2.4 Planificación de Procesos ...........................................................................................11
2.5 Planificación de Threads .............................................................................................11
2.5.1 Carga Compartida .....................................................................................................11
2.5.1.1. FSFC .......................................................................................................................11
2.5.1.2 SNTF ........................................................................................................................11
2
2.5.1.3 PSNTF .....................................................................................................................11
2.5.2 Planificación Gang ....................................................................................................12
2.5.3 Asignación de Procesos dedicada...........................................................................12
2.5.4 Planificación Dinámica .............................................................................................12
3 Planificación en Tiempo Real ...........................................................................................12
3.1 Características de lo S.O. de Tiempo Real ..................................................................12
3.1.1 Determinismo...............................................................................................................12
3.1.2 Receptabilidad .............................................................................................................12
3.1.3 Control de Usuario ......................................................................................................13
3.1.4 Confiabilidad ...............................................................................................................13
3.1.5 Operación Falla de Soft ..............................................................................................13
3.2 Enfoques .........................................................................................................................13
3.2.1 Tabla de Conducción Estática ...................................................................................13
3.2.2 Prioridad de Conducción Estática .............................................................................13
3.2.3 Planeamiento basada dinámico .................................................................................13
3.2.4 Mejor esfuerzo dinámico ............................................................................................14
3.3 Planificación Plazo de entrega ......................................................................................14
3.3.1 Información de las tareas ...........................................................................................14
3.3.1.1 Tiempo de Alistamiento ...........................................................................................14
3.3.1.2 Punto de partida .......................................................................................................14
3.3.1.3 Punto de Finalización ...............................................................................................14
3.3.1.4 Tiempo de Procesamiento .......................................................................................14
3.3.1.5 Requerimientos del Sistema ...................................................................................14
3.3.1.6 Prioridad.....................................................................................................................14
3.3.1.7 Estructura de Subtarea.............................................................................................14
3.4 Planificación de Ritmo Monótono .................................................................................14
3
Conclusión...............................................................................................................................15
Glosario...................................................................................................................................15
Acrónimos...............................................................................................................................15
Bibliografía..............................................................................................................................15
Objetivos
Los objetivos de éste práctico es observar, comprender y estudiar las distintas formas de planificar los
procesos que va a ser ejecutados. Veremos que dentro de cada tipo de sistema de planificación existen varios
puntos a tener en cuenta, con ventajas y desventajas.
Introducción
La Planificación hace referencia a un conjunto políticas y mecanismos incorporados al sistema operativo que
gobiernan el orden en que deben ser ejecutados los trabajos que deben cumplimentarse por el sistema
operativo. El Objetivo de la planificación es optimizar el rendimiento del sistema.
Nombraremos tres grandes grupos relacionado con la filosofía del sistema: Planificación en sistemas con un
Procesador , Multiprocesador y Tiempo real; identificando en cada caso sus componentes, sus finalidades y
funciones.
Planificación
• Planificación Monoprocesador
La clave para la multiprogramación es la planificación. El propósito de la planificación es asignarle procesos
al procesador para ser ejecutados, de manera tal que se cumplan los objetivos del sistema, mientras los otros
procesos esperan algún evento
• Tipos de Planificación del Procesador
La planificación del procesador se clasifica según la escala relativa de tiempo en que es realizada.
1.1.1 Largo Plazo
Determina qué nuevos programas son aceptados para ser procesados por el sistema, o sea determina el grado
de multiprogramación. Una vez admitidos, se convierten en procesos que son agregados a la cola de
Planificación a Corto Plazo. En algunos sistemas, son agregados a la cola de Planificación a Mediano Plazo,
ya que los procesos creados recientemente comienzan en una condición de suspendidos. Relativamente, se
ejecuta en forma poco frecuente.
1.1.2 Medio Plazo
Determina el intercambio con la memoria virtual. Generalmente, la decisión de activar procesos está basada
en la necesidad de manejar el grado de multiprogramación. Se ejecuta un poco más frecuente que la
4
planificación a largo plazo.
1.1.3Corto Plazo
Determina cuál es el próximo proceso a ejecutar. Es invocada cada vez que ocurre un evento que pueda causar
una suspensión (interrupciones del reloj, interrupciones de entrada / salida, llamados al sistema operativo,
señales) o que pueda asegurarle una mayor prioridad a un proceso actualmente ejecutando a favor de otro.
También conocida como despachador, es la que se ejecuta más frecuente.
1.2 Criterios a Corto Plazo
Son categorizados según dos aspectos. Uno, distingue entre los criterios orientados al usuario (hacen hincapié
en los aspectos visibles y de interés para el usuario) y los orientados al sistema (que prepondera el uso
efectivo y eficiente del procesador). El otro, lo hace según estén relacionados con el rendimiento (son
cuantitativos y generalmente pueden ser medidos fácilmente) o no lo estén (son cualitativos o no se dejan
medir y analizar fácilmente).
Son independientes entre si y es imposible optimizar a todos simultáneamente. En la mayoría de los sistemas
operativos interactivos el requerimiento crítico es un adecuado tiempo de respuesta.
1.2.1 Orientado al Usuario
1.2.1.1 Relacionado con la Performance
1.2.1.1.1 Tiempo de Retorno
Intervalo de tiempo entre el acatamiento de un proceso y su finalización. Incluye el tiempo de ejecución actual
más el tiempo perdido esperando recursos, incluyendo al procesador. Es una medida apropiada para trabajos
batch.
1.2.1.1.2 Tiempo de Respuesta
Para un proceso interactivo, este es el tiempo desde el acatamiento de un pedido hasta que la respuesta
comienza a ser recibida. A menudo un proceso puede comenzar a producir alguna salida al usuario mientras
continua procesando la respuesta. Entonces, esta es una mejor medida desde el punto de vista del usuario.
1.2.1.1.3 Plazos
Cuando son especificados los plazos de finalización del proceso, la planificación subordinaría otras metas
para maximizar el porcentaje de plazos alcanzados.
1.2.1.2 Otros
1.2.1.1.2 Predecibilidad
Un trabajo podría correr en la misma cantidad de tiempo y al mismo costo, descuidando la carga del sistema.
Una variación en el tiempo de respuesta o en el de retorno distrae a los usuarios. Esto puede señalar un
balanceo a lo ancho de la carga de trabajo o la necesidad de una afinación del sistema para curar las
inestabilidades.
1.2.2 Orientado al Sistema
5
1.2.2.1 Relacionado con la Performance
1.2.2.1.1 Throughput
Número de procesos finalizados en una unidad de tiempo. Es una medida de cuanto trabajo se está realizando.
Este depende de la longitud promedio de los procesos pero también de la política de planificación.
1.2.2.1.2 Utilización del Procesador
Porcentaje del tiempo en que el procesador está ocupado. Para un sistema repartido barato, es un criterio
significante. Pero no lo es para sistemas monousuario o sistemas en tiempo real.
1.2.2.2 Otros
1.2.2.2.1 Equidad
Ante la ausencia de una preferencia desde el usuario u otra proporcionada por el sistema, los procesos serían
tratados de igual manera, y ningún procesador sufriría inanición.
1.2.2.2.2 Prioridades de Forzadas
Cuando a los procesos se les asigna prioridades, la política de planificación favorece a los procesos de mayor
prioridad.
1.2.2.2.3 Recursos de Balanceo: La política de planificación mantiene los recursos del sistema ocupados. Los
procesos que utilizarán recursos saturados son favorecidos. Este criterio también involucra a la planificación a
largo plazo y a mediano plazo.
• El Uso de Prioridades
En muchos sistemas, a cada proceso se le asigna una prioridad y el planificador siempre elegirá un proceso de
una cola con mayor prioridad sobre uno de una cola con menor prioridad. Si en una misma cola hay uno o más
procesos, un proceso es seleccionado utilizando alguna política de planificación.
Un problema que puede ocurrir con un esquema de prioridad puro, es que un proceso con prioridad baja puede
sufrir inanición (nunca se llega a ejecutar). Para evitar este problema, la prioridad de un proceso puede
cambiar según su antigüedad o su historia de ejecución.
Mapa
1.4 Políticas de Planificación
Hay dos aspectos importantes a contemplar en las diferentes políticas de planificación: la función de selección
y el modo de decisión. La función de selección determina qué proceso, entre los procesos listos, es
seleccionado para ejecutarse a continuación; puede estar basada en prioridad, en los requerimientos de los
recursos, o en las características de ejecución del proceso.
El modo de decisión especifica los instantes en el tiempo en los cuales la función de selección es aplicada; y
puede ser Sin Preferencia o Con Preferencia. Si es Sin Preferencia, un proceso que esté en el estado de
Ejecutando, continuará haciéndolo hasta que se termine o que se bloquee esperando por una E/S o para
responder un servicio del sistema operativo. En cambio, si es Con Preferencia, el proceso que se está
ejecutando actualmente puede ser interrumpido y movido al estado de Listo por el sistema operativo.
6
1.4.1 FCFS (Primero en Llegar−Primero en ser Servido)
También conocida como FIFO (primero en entrar, primero en salir) o esquema de cola rígido, es la política
más simple. A medida que cada proceso se torna a la condición de Listo, se une a la cola de los listos, y
cuando cesa el proceso que está Ejecutando actualmente, es seleccionado para correr el proceso que ha estado
en la cola el mayor tiempo.
1.4.2 Round Robin
Es una manera directa de reducir la penalidad que sufren los trabajos cortos por parte de la política FCFS, a
través del uso de preferencia basada en un reloj. Una interrupción de reloj es generada periódicamente.
Cuando esta ocurre, el proceso que está corriendo actualmente es ubicado en la cola de los listos, y el próximo
trabajo listo es seleccionado en base a la política FCFS. Esta técnica también es conocida como corte por
tiempo, ya que cada proceso tiene asignado un tiempo de corte.
1.4.3 SPN (Proceso Más Corto)
Es otra enfoque para reducir el favorecimiento a los trabajos largos, propio de la FCFS. Es una política sin
preferencia en la cual el proceso con el menor tiempo esperado de procesamiento es seleccionado como el
próximo. Así, un proceso corto saltará a la cabeza de la cola pasando a los trabajos largos.
1.4.4 SRT (Tiempo Restante Más Corto):
Se trata de una versión con preferencia de la SPN. En este caso, el planificador siempre elige el proceso que
tiene el tiempo restante de procesamiento esperado más corto. Cuando un proceso nuevo se une a la cola de
Listos, este tiene un tiempo restante más corto que el actual proceso en ejecución. Por consiguiente el
planificador puede preferenciar siempre que un nuevo proceso se vuelva listo. Como con la SPN, el
planificador debe tener una estimación del tiempo de procesamiento para ejecutar la función de selección, y
hay un riesgo de inanición de los procesos largos.
1.4.5 HHRN(Mayor Relación de Respuesta)
Esta política toma como criterio de elección, aquel proceso de la cola de listos que tenga la relación de
respuesta más alta. Esta, se calcula como (w + s) / s ; siendo 'w' el tiempo perdido esperando al procesador y
's' el tiempo de servicio esperado. Este enfoque es atractivo ya que cuenta la antigüedad del proceso. Al igual
que en la SPN y la SRT, debe ser estimado el tiempo de servicio esperado
Mapa
1.4.6 Feedback
Se trata de una planificación con preferencia basada en el tiempo, y es usado un mecanismo de prioridad
dinámica. Cuando un proceso entra por primera vez al sistema es ubicado en la cola de listos 0. Después de la
primer ejecución, cuando vuelve al estado de Listo, es ubicado en la cola de listos 1. Cada vez que es
ejecutado subsecuentemente, luego es ubicado en la próxima cola de menor prioridad. En cada cola,
exceptuando la de más baja prioridad, es usado un simple mecanismo FCFS. Una vez en la cola con menor
prioridad, el proceso no puede ir más abajo, pero es retornado a esta cola repetidamente hasta que completa su
ejecución. Esta última cola es tratada como un Round Robin
2. Planificación Multiprocesador:
2.1 Clasificación
7
2.1.1 Multiprocesador Libremente Acoplado: Consiste en una colección de sistemas relativamente
autónomos, cada procesador tiene su propia memoria principal y canales de E/S.
2.1.2 Procesadores Funcionalmente Especializados: En este caso hay un procesador maestro de propósitos
generales, y procesadores especializados que son controlados por el procesador maestro y le proveen servicios
a él. Un ejemplo es el procesador de E/S.
2.1.3 Multiprocesamiento Rígidamente Acoplado: Consiste en un grupo de procesadores que se reparten
una memoria principal en común y están bajo el control integrado de un sistema operativo.
2.2 Granularidad: La granularidad de sincronización, o frecuencia sincronización, entre procesos en el
sistema, es una buena manera de caracterizar multiprocesadores y ubicarlos en un contexto con otras
arquitecturas. Se pueden distinguir cinco categorías de paralelismo que difieren en el grado de granularidad.
2.2.1 Fina: El paralelismo de grado fino representa un uso mucho más complejo del paralelismo que es
encontrado en el uso de hebras. Aunque muchos trabajos han sido hechos en aplicaciones altamente paralelas,
es un área especializada y fragmentada, con muchos enfoques diferentes.
2.2.2 Media: Una aplicación puede ser efectivamente implementada como una colección de hebras con un
paralelismo simple. En este caso, el paralelismo potencial de una aplicación debe ser explícitamente
especificado por el programador. Generalmente se necesitará un alto grado de coordinación e interacción entre
las hebras de una aplicación, llevando a un nivel medio de sincronización.
2.2.3. Ordinaria y Muy Ordinaria: Con esta clase de paralelismo existe sincronización entre procesos pero a
un nivel muy grosero. Esta clase de situación es fácilmente entendible como un grupo de procesos
concurrentes corriendo en un monoprocesador multiprogramado y puede ser soportado en un multiprocesador
con un pequeño o no cambio al software del usuario.
2.2.4 Independiente: Entre los procesos no existe una sincronización explícita. Cada uno representa una
separación, una aplicación independiente o un trabajo. El uso típico de este tipo de paralelismo es en los
sistemas de tiempo repartido.
Mapa
2.3 Conceptos de diseño
Es importante tener en mente que el enfoque tenido en cuenta, generalmente depende del grado de
granularidad de las aplicaciones y del número de procesadores disponibles.
2.3.1 Asignación de procesos al Procesador
Si asumimos que la arquitectura multiprocesador es uniforme, en el sentido de que ningún procesador tiene
ventaja física con respecto al acceso a la memoria principal o dispositivos de E/S, entonces un enfoque de
planificación mas simple es tratar a loa procesadores como un recurso acoplado y asignar los procesos a los
procesadores sobre la demanda de los mismos. Entonces surge la pregunta sobre si la asignación debería ser
estática dinámica
Si al asignación es dinámica entonces un proceso es asignado a un procesador permanentemente hasta que
este complete su ejecución. La ventaja de este proceder es que puede haber menos overhead en al función de
planificación, porque la asignación al
procesador es hecha una sola vez. Como desventaja podemos decir que un procesador puede
8
estar sin hacer nada mientras que otro está con atraso en las tareas. Para evitar esto se puede usar una cola de
procesos común para todos los procesadores, de esta forma los procesos pueden ejecutarse en distintos
procesadores en distintos momentos.
Se utilizan dos métodos para asignar procesos al procesador: maestro / esclavo y coexistente. En la
arquitectura maestro / esclavo, las funciones claves del núcleo siempre corren en un procesador particular. Los
otros procesadores solo pueden ejecutar tareas de usuarios. El maestro es responsable de la planificación de
las tareas, y de administrar los pedidos de los esclavos. La resolución de conflictos es simplificada debido a
que un procesador toma el control de la memoria principal y los dispositivos de E/S. Hay dos desventajas : 1)
Una falla del master reduce todo el sistema y 2) el master puede obstaculizar la performance.
En la arquitectura coexistente, el S.O. puede ejecutarse sobre un procesador y cada procesador se pueden auto
planificar teniendo en cuente la cola de procesos. Este es un enfoque complicado del S.O.. El S.O. se debe
asegurar que dos procesadores no elijan el mismo proceso. Las técnicas que debe emplear para resolver y
sincronizar la competencia de recursos.
2.3.2 Uso de Multiprogramación en procesos individuales
El uso de la multiprogramación en procesos individuales se realiza para evitar despreciar un procesador al
estar atado a un solo proceso, cuando ese proceso puede ser bloqueado cuando espera una E/S o una
consideración de sincronización de concurrencia.
En el multiprocesador tradicional, en el que se negocia con granularidad ordinaria o independiente, es claro
que cada procesador individual debería estar habilitado para cambiar entre un número de procesos para logra
alta utilización y por lo tanto una mejor performance.
2.3.3 Despacho de Procesos
El último tema a tratar en el diseño de la planificación multiprocesador es selección de un proceso para correr.
Observamos que al usar un procesador multiprogramado, el uso anterior de prioridades o sofisticados
algoritmos de planificación se puede mejorar con una estrategia FCFS. En el caso de la planificación con
threads hay que tomar otras consideraciones más que prioridades o la ejecución histórica de procesos.
Mapa
2.4 Planificación de Procesos
En la mayoría de los sistemas de multiprocesador tradicional, los procesos no están dedicados al procesador.
Hay colas simples de procesos y algunos casos ordenados por prioridades. En algunos casos observamos
múltiples colas de procesos. Cuando hablamos de sistema con mas de un procesador las políticas de
planificación ya no tiene mucho peso como cuando hablamos de sistemas monoprocesador.
2.5 Planificación de Threads
Como vimos una ejecución con threads consiste en separar una aplicación en varias hebras las que ejecutan
concurrentemente.
Entre las propuestas para planificación con threads con multiprocesador y asignación de procesador tenemos:
2.5.1 Carga Compartida
Es el enfoque mas simple y de los que vienen en la mayoría del entorno monoprocesador. Tiene algunas
9
ventajas.
• La carga es distribuida equitativamente en el procesador, asegurando que ningun procesador este sin
trabajar .
• Se requiere un planificador no centralizado, cuando un procesador es habilitado, la rutina de planificación
del S.O. corre sobre un procesador para seleccionar el próximo thread.
• La cola global de procesos puede ser accedida y organizada con cualquier método visto en el capitulo 9.
2.5.1.1. FSFC
Cuando llega una tarea, cada thread es ubicado en la cola compartida, y es asignado al primer procesador que
queda ocioso, y este ejecuta hasta terminar o bloquearse.
2.5.1.2 SNTF(El thread con menor numero primero)
La cola de listos de los threads esta organizada por prioridad, se ejecutan los threads con menor prioridad
primero, si hay dos con la misma prioridad se utiliza FCFS, se ejecutan hasta que se completan o se bloquean.
2.5.1.3 PSNTF(Preferencia al thread con menor numero primero)
La prioridad mas alta es dada a loas tareas de los threads incompletos con menor número de prioridad.
Mapa
2.5.2 Planificación Gang
Es el concepto de planificación como un conjunto de procesos sobre un conjunto de procesadores. Estos son
algunos beneficios.
• Si los procesos relacionado cerradamente ejecutan en paralelo, se puede reducir el bloque por
sincronización, pueden ser menos necesarios los cambios de procesos, y se incrementará la performance.
• Se puede reducir el overhead porque una decisión afecta a procesos y procesadores de un vez.
Un caso puede ser el siguiente. Un thread se está ejecutando y necesita de otro para seguir pero que esta en la
cola de listos, el primero queda atascado hasta que el segundo ingrese a otro procesador en el aproximo
cambio de contexto. Si la coordinación no es buena puede producir un baja en la performance. Pero la
planificación de cooperación de gang puede salvar este caso.
2.5.3 Asignación de Procesos dedicada
Una forma extrema de la planificación gang es dedicar un grupo de procesadores a una aplicación por toda la
duración de la aplicación. No habría multiprogramación de procesadores. Pueden hacerse dos observaciones
en defensa de este método.
• En un procesador altamente paralelo, con decenas o cientos de procesadores donde el costo no sea lo mas
relevante sino la performance.
• Evitar los cambios de procesos durante la vida del programa debería dar como resultado una aceleración
sustancial para ese programa.
2.5.4 Planificación Dinámica
Para algunas aplicaciones, es posible proveer un lenguaje y herramientas del sistema que permitan alterar
10
dinámicamente los números de threads en proceso.
El S.O. es el responsable de particionar los procesadores entre las tareas.
Cada procesador divide las tareas en subconjuntos y luego las mapea como threads. Debería poder decidir
cuales son los subconjuntos que serán corridos , bloqueados cuando sea necesario (talvez con alguna
subrutina) .Esta forma de planificación no podría aplicarse a todas las tareas
3 Planificación en Tiempo Real
3.1 Características de lo S.O. de Tiempo Real
Se puede caracterizar a los S.O de tiempo real mediante cinco áreas generales.
3.1.1 Determinismo
Un sistema operativo es determinístico por la medida en que este realiza las operaciones con intervalos de
tiempo preestablecidos o no. En los sistemas operativos de tiempo real los procesos requieren servicios desde
eventos externos. Los tiempos de respuesta de estos sistemas están en el orden de los microsegundos a
milisegundos en tanto que los otros están en el orden decenas a centenas de milisegundos.
El determinismo se ocupa del retraso del S.O. antes del reconocimiento de la interrupción.
3.1.2 Receptabilidad
Se ocupa de cuanto se toma de tiempo , después de reconocer la interrupción, para atender la interrupción.
Características:
• La cantidad de tiempo requerido para inicializar el manejo de la interrupción y comenzar la ejecución de la
rutina de servicio a interrupciones (ISR).
• La cantidad de tiempo par realizar el ISR . Depende del hardware de la plataforma.
• El efecto del juego de interrupciones. Si un ISR puede ser interrumpido por el arribo de otra interrupción,
entonces el servicio será retrasado.
3.1.3 Control del Usuario
Es generalmente mucho mas amplio que en sistema operativo ordinario. El usuario además tendría que estar
habilitado para distinguir entre tareas de soft y de hard y especificar prioridades con cada clase. Además el
usuario puede especificar la paginación el swapping , que procesos deben estar residentes en memoria, que
algoritmo de transferencia de disco será usado ,etc. Mapa
3.1.4 Confiabilidad
Es la más importante característica de estos S.O..Una pequeña falla en sistema normal puede solucionarse
reiniciando el sistema. En cambio en sistema multiprocesador en tiempo real reduce el nivel de servicio hasta
que el procesador sea reparado o cambiado. Pero en sistema de tiempo real se controlan cosas o eventos que
suceden en tiempo real , lo que una falla en el sistema podría ocasionar consecuencias catastróficas.
3.1.5 Operación Falla de Soft
Aquí encontramos otra diferencia con los sistemas de ejecución normal. Esta radica en que los sistemas
11
normales cuando detectan una falla en el soft o la consistencia de datos alertan al usuario mediante la consola
guardan los datos y finalizan el programa. En el caso de los sistemas de tiempo real avisan al usuario o
proceso usuario pero siguen trabajando quizás en un nivel mas bajo. Hace luego un intento para solucionar el
problema antes de apagar la aplicación.
3.2 Enfoques
En esta sección observaremos los distinto enfoques de planificación de sistemas de tiempo real.
3.2.1 Tabla de Conducción Estática
El resultado de este análisis es una planificación que determina, en tiempo de ejecución, cuando comienza una
tarea.
Es aplicable a tareas periódicas. El planificador intenta desarrollar una planificación que lo habilite a medir
l0os requerimientos de las tareas periódicas. Es un enfoque predecible pero inflexible ,porque ante un cambio
en la tarea se debe rehacer el planificador.
3.2.2 Prioridad de Preferencia Estática
En un sistema de tiempo real , la asignación de prioridad relacionada a una restricción de tiempo asociado con
cada tarea. Un ejemplo de esto es la panificación de ritmo monótona, que asigna prioridades estáticas a tareas
basadas sobre sus periodos.
3.2.3 Planeamiento basada dinámico
Después que la tarea arriba, pero antes que comience la ejecución, se crea un planificador que contiene la
tareas previamente planificadas además del nueva. Se chequea los plazos de la nueva tarea y si no hay
inconvenientes se suma a las ya planificadas.
Mapa
3.2.4 Mejor esfuerzo dinámico
Este enfoque es usado por sistema de tiempo real aplicables comercialmente. Cuando una tarea llega el
sistema le da la prioridad basada en la característica de dicha tarea. Normalmente las tareas son aperiódicas y
por lo tanto no pueden ser analizarse con planificación estática. Las desventaja que tiene este enfoque es que
hasta que no termine la tarea o arribe su plazo , no conocemos con que restricciones nos encontraremos. La
ventaja es que es muy fácil de implementar.
3.3 Planificación Plazo de entrega
La mayoría de los sistemas de tiempo real son diseñados con el objetivo de ejecutar tareas en tiempo real los
rápidamente posible y por esa razón se enfatiza el manejo rápido de las interrupciones y el despacho de tareas.
Todas las planificaciones desarrolladas para tal fin se basan en rescatar más información sobre las tareas.
Estas son algunas de las mas utilizadas.
3.3.1 Tiempo de Alistamiento
Es el tiempo que una tarea necesita para comenzar la ejecución . En el caso de tareas periódicas o repetitivas
que son conocidas de antemano. En el caso de las aperiódicas el tiempo puede ser ya conocido o ser
consciente de el cuando se ejecuta.
12
3.3.2 Punto de partida
Tiempo en el cual la tarea debe comenzar.
3.3.3 Punto de Finalización
Tiempo en el cual la tarea debe ser completada. Las aplicaciones de tiempo real típicas tiene uno u otro
tiempo pero no los dos.
3.3.4 Tiempo de Procesamiento
Tiempo requerido para ejecutar las tareas. En algunos casos está disponible. En otros el sistema toma un
promedio. Para otras planificaciones esto no es usado.
3.3.5 Requerimientos del Sistema
Conjunto de recurso requeridos por la tarea mientras se ejecute.
3.3.6 Prioridad
Medición de importancia relativa de la tarea. Tareas de tiempo real el hard que tiene prioridad absoluta, con lo
que el sistema falla si un plazo es perdido.
3.3.7 Estructura de Subtarea
Una tarea puede ser descompuesta en tareas obligatorias y opcionales.
3.4 Planificación de ritmo monótono
Uno de los métodos más prometedores de resolver los conflictos de la planificación multitarea para tareas
periódicas. RMS asigna prioridades a las tareas basándose en sus periodos. RMS ha sido ampliamente
adoptado para el uso en aplicaciones industriales. Podemos dar la siguiente explicación:
• La diferencia de performance es pequeña en al práctica.
• La mayoría de los sistemas de tiempo real tiene además componentes de soft de tiempo real, tales como
pantallas no críticas y probadores incluidos pueden ejecutar en los mas bajos niveles de prioridad para
absorber el tiempo del procesador que no es utilizado con la planificación RMS de tareas de tiempo real
fijas.
• La estabilidad es fácil de lograr con RMS. Cuando el sistema no puede encontrar los plazos de entrega dela
tareas por algún error, los plazos de las tareas esenciales necesarias para garantizar que esos subconjunto de
tareas sea planificable. Esto puede ser realizado por el RMS por la estructuración de las tareas esenciales
para tener períodos cortos o para la modificación de las prioridades de RMS referidas a la cuenta de las
tareas esenciales. Con la planificación de plazos mucho más fácil, los cambios de prioridades de las tareas
desde un período a otro. Eso le produce mas dificultad para asegurar que las tareas esenciales encontraron
sus plazos
Mapa
Conclusiones
La conclusión que podemos sacar lo expresado, podemos resumirla de la siguiente manera: La planificación
es una de las áreas del desarrollo de un sistema operativo de mas relevancia, ya que de ella depende en gran
13
medida la performance del mismo.
Notamos que en sistemas mas complejos, como los de tiempo real , la planificación correcta es sumamente
importante, considerando que estos son usados para controlar, en su mayoría, sucesos de la vida real y no
cumplirían su cometido si fallan por tener una planificación de procesos deficiente que provoque lentitud o
cuelgues
Glosario
Multiprocesador: Una computadora que posee dos o mas procesadores que tiene acceso común a memoria
principal.
Planificación Gang: Es el concepto de planificación como un conjunto de procesos sobre un conjunto de
procesadores.
Sistema de Tiempo Real: Un sistema operativo que debe planificar y manejar tareas en tiempo real
Subtarea: Una tarea puede ser descompuesta en tareas obligatorias y opcionales.
Tareas: Trabajos
Tareas en Tiempo Real: Tareas relacionadas con el medio externo al sistema.
Thread: Un contexto se la ejecución donde varias hebras relacionadas comparten recursos.
Acrónimos
FCFS: First Come First Server (Primero en llegar primer en ser servido)
SPN :Shortest Process Next (El proceso mas corto es el próximo)
SRT:
RR: Round Robin (Planificación por tiempo de retardo)
HHRN: Highest Response Ratio Next (Mayor tiempo de respuesta es el próximo)
SNTF: Smallest Number of Threads First (El numero menor de hebras primero)
PSNTF: Preemptive Smallest Number of Threads First (El numero de preferencia de hebra menor primero)
ISR: Interrupt Service Routine (Rutina de Servicio a las interrupciones)
RMS: Rate Monotonic Schedulling (Planificación de ritmo monótono)
Bibliografía
Operating Systems − William Stallings Tercera Edición
Sistemas Operativos − Milan Milancovic − Segunda Edición
Parcial Nº 2 : Mapa Conceptual de los Capítulos 9 y 10 de Stallings
14
6
Planificación de Ritmo Monótono
Multiprocesador libremente acoplado
Procesadores Funcionalmente Especializados
Multiproceso Rígidamente Acoplado
Clasificación
Planificación Tiempo Real
Prioridades
Enfoques
Tabla de Conducción Estática
Prioridad de Preferencia Estática
Planeamiento basada dinámico
Mejor esfuerzo dinámico
Determinismo
Receptabilidad
Control del Usuario
Confiabilidad
Operación Falla de Soft
Planificación Gang
Asignación de Procesos dedicada
Planificación Dinámica
FSFC
SNTF
PSNTF
Asignación de procesos al Procesador
Uso de Multiprogramación en procesos individuales
15
Despacho de Procesos
FCFS
Round Robin
SPN
SRT
HHRN
Feedback
Fina
Media
Ordinaria
Muy Ordinaria
Independiente
Tiempo de Alistamiento
Punto de partida
Punto de Finalización
Tiempo de Procesamiento
Requerimientos del Sistema
Prioridad
Estructura de Subtarea
Relacionado con la Performance
Otros
Relacionado con la Performance
Otros
Largo Plazo
Medio Plazo
Corto Plazo
16
Carga Compartida
Planificación de Threads
P
L
A
N
I
F
I
C
A
C
I
O
N
Características de los S.O. de Tiempo Real
Granularidad
Conceptos de diseño
Planificación Plazo de entrega
Planificación
Multiprocesador
Orientado al Sistema
Orientado al Usuario
Criterios a Corto Plazo
Políticas
Tipos
17
Planificación Monoprocesador
Planificación de Procesos
18
Descargar