Planificación de procesos incorporados al sistema operativo

Sistemas operativos. Procesadores. Tiempo real. Multiprocesadores

  • Enviado por: Rouk
  • Idioma: castellano
  • País: Argentina Argentina
  • 14 páginas
publicidad

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.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.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

    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 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

    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.

    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

    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

    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 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 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 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.

    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 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

    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

    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

    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

    Planificación Monoprocesador

    Planificación de Procesos