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