sábado, 3 de julio de 2010

ADMINISTRACION DEL PROCESADOR

Niveles de planificación

La planificación de la CPU, en el sentido de conmutarla entre los distintos procesos, es una de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeño programa llamado planificador a corto plazo o dispatcher (despachador). La misión del dispatcher consiste en asignar la CPU a uno de los procesos ejecutables del sistema, para ello sigue un determinado algoritmo. En secciones posteriores estudiaremos algunos algoritmos posibles. Para que el dispatcher conmute el procesador entre dos procesos es necesario realizar un cambio de proceso.

Los acontecimientos que pueden provocar la llamada al dispatcher dependen del sistema (son un subconjunto de las interrupciones), pero son alguno de estos:

•El proceso en ejecución acaba su ejecución o no puede seguir ejecutándose (por una E/S, operación WAIT, etc).

•Un elemento del sistema operativo ordena el bloqueo del proceso en ejecución (ver estados de un proceso).

•El proceso en ejecución agota su cuantum o cuanto de estancia en la CPU.

•Un proceso pasa a estado listo.

Hay que destacar el hecho de que cuanto menos se llame al dispatcher menos tiempo ocupa la CPU un programa del sistema operativo, y, por tanto, se dedica más tiempo a los procesos del usuario (un cambio de proceso lleva bastante tiempo).

Así, si sólo se activa el dispatcher como consecuencia de los 2 primeros acontecimientos se estará haciendo un buen uso del procesador. Este criterio es acertado en sistemas por lotes en los que los programas no son interactivos. Sin embargo, en un sistema de tiempo compartido no es adecuado, pues un proceso que se dedicara a realizar cálculos, y no realizara E/S, monopolizaría el uso de la CPU. En estos sistemas hay que tener en cuenta el conjunto de todos los procesos, activándose el dispatcher con la circunstancia tercera y, posiblemente, la cuarta. Los sistema operativos en que las dos siguientes circunstancias no provocan la activación del dispatcher muestran preferencia por el proceso en ejecución, si no ocurre esto se tiene más en cuenta el conjunto de todos los procesos.

Se puede definir el scheduling -algunas veces traducido como -planificación- como el conjunto de políticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse.

El scheduling está asociado a las cuestiones de:

•Cuándo introducir un nuevo proceso en el Sistema.

•Determinar el orden de ejecución de los procesos del sistema.

El scheduling está muy relacionado con la gestión de los recursos. Existen tres niveles de scheduling, como se ilustra en la figura 1.1, estos niveles son:

•Planificador de la CPU o a corto plazo.

•Planificador a medio plazo.

•Planificador a largo plazo.

Algoritmos de planificación

En los siguientes subapartados vamos a estudiar ciertos algoritmos utilizados para planificar la CPU, la elección de uno (o de una mezcla de varios) depende de decisiones de diseño. Antes de exponer los algoritmos vamos a explicar ciertas medidas que se utilizan para evaluarlos.

•Porcentaje de utilización de la CPU por procesos de usuario. La CPU es un recurso caro que necesita ser explotado, los valores reales suelen estar entre un 40% y un 90%.

•Rendimiento (throughput) = nº de ráfagas por unidad de tiempo. Se define una ráfaga como el período de tiempo en que un proceso necesita la CPU; un proceso, durante su vida, alterna ráfagas con bloqueos. Por extensión, también se define como el nº de trabajos por unidad de tiempo.

•Tiempo de espera (E) = tiempo que una ráfaga ha permanecido en estado listo.

•Tiempo de finalización (F) = tiempo transcurrido desde que una ráfaga comienza a existir hasta que finaliza. F = E + t (t = tiempo de CPU de la ráfaga).

•Penalización (P) = E + t / t = F / t, es una medida adimensional que se puede aplicar homogéneamente a las ráfagas independientemente de su longitud.
En general, hay que maximizar los dos primeros parámetros y minimizar los tres últimos. Sin embargo, estos objetivos son contradictorios, el dedicar más tiempo de CPU a los usuarios se hace a costa de llamar menos al algoritmo de planificación (menos cambios de proceso), y de simplificarlo. Esto provoca que la CPU se reparta menos equitativamente entre los procesos, en detrimento de los últimos tres parámetros.
Así pues, dependiendo de los objetivos se elegirá cierto algoritmo. En los sistemas por lotes suele primar el rendimiento del sistema, mientras que en los sistemas interactivos es preferible minimizar, por ejemplo, el tiempo de espera.

Planificación de Plazo Fijo

En la planificación de plazo fijo se programan ciertos trabajos para terminarse en un tiempo específico o plazo fijo. Estas tareas pueden tener un gran valor si se entregan a tiempo, y carecer de él si se entregan después del plazo. Esta planificación es compleja por varios motivos:

Planificación Primero en Entrar-Primero en Salir (FIFO, First In First Out)

Cuando se tiene que elegir a qué proceso asignar la CPU se escoge al que llevara más tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente.

Planficación por Turno Rotatorio (Round Robin).

Este es uno de los algoritmos más antiguos, sencillos y equitativos en el reparto de la CPU entre los procesos, muy válido para entornos de tiempo compartido. Cada proceso tiene asignado un intervalo de tiempo de ejecución, llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum también se alterna el uso de la CPU. El round robin es muy fácil de implementar.

Tamaño del Cuanto

La determinación del tamaño del cuanto es vital para la operación efectiva de un sistema de cómputo. ¿Debe el cuanto ser pequeño o grande?, ¿fijo o variable?, ¿el mismo para todos los usuarios o debe determinarse por separado para cada uno?
Si el cuanto de tiempo es muy grande, cada proceso tendrá el tiempo necesario para terminar, de manera que el esquema de planificación por turno rotatorio degenera en uno de primero-en-entrar-primero-en-salir. Si el cuanto es muy pequeño, el gasto extra por cambio de proceso se convierte en el factor dominante y el rendimiento del sistema se degradará hasta el punto en que la mayor parte del tiempo se invierte en la conmutación del procesador, con muy poco o ningún tiempo para ejecutar los programas de los usuarios.

Planificación por Prioridad al más corto (SJF, Short Job First).

Al igual que en el algoritmo FIFO las ráfagas se ejecutan sin interrupción, por tanto, sólo es útil para entornos batch. Su característica es que cuando se activa el planificador, éste elige la ráfaga de menor duración. Es decir, introduce una noción de prioridad entre ráfagas. Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecución de los procesos.

Planificación por Prioridad al Tiempo Restante más Corto (SRTF, Short Remaining Time First).

Es similar al anterior, con la diferencia de que si un nuevo proceso pasa a listo se activa el dispatcher para ver si es más corto que lo que queda por ejecutar del proceso en ejecución. Si es así el proceso en ejecución pasa a listo y su tiempo de estimación se decrementa con el tiempo que ha estado ejecutándose.

Planificación a la Tasa de Respuesta más Alta

Brinch Hansen desarrolló la estrategia de prioridad a la tasa de respueta más alta (HRN, highest-response-ratio-next) que corrige algunas deficiencias de SJF, particularmente el retraso excesivo de trabajos largos y el favoritismo excesivo para los trabajos cortos. HRN es un disciplina de planificación no apropiativa en la cual la prioridad de cada proceso no sólo se calcula en función del tiempo de servicio, sino también del tiempo que ha esperado para ser atendido. Cuando un trabajo obtiene el procesador, se ejecuta hasta terminar.

Planificación por el Comportamiento

Con este tipo de planificación se pretende garantizar al usuario cierta prestación del sistema y tratar de cumplirla. Si en un sistema tenemos 'n' usuarios lo normal será garantizar a cada uno de ellos al menos 1/n de la potencia del procesador. Para ello necesitamos del tiempo consumido por el procesador y el tiempo que lleva el proceso en el sistema. La cantidad de procesador que tiene derecho a consumir el proceso será el cociente entre el tiempo que lleva en el sistema entre el número de procesos que hay en el sistema.

SISTEMAS MULTIPROCESADORES

El concepto de trabajo en equipo, el dividir una tarea entre varias unidades de ejecución para que pueda completarse más rápidamente, fue naturalmente llevado al mundo de las computadoras prácticamente desde sus inicios. David Slotnick, quien fuera colaborador de Von Neumann, le hizo la propuesta de una máquina que contara con varias unidades de procesamiento central; sin embargo, al sentir de Von Neumann, la tecnología de la época no permitía la realización de semejante proyecto. Aun así, Slotnick continuó con sus ideas, lo que eventualmente daría origen a la ILLIAC IV (1964), considerada una de las primeras computadoras masivamente paralelas de la historia. En la actualidad, las computadoras más rápidas del mundo son las máquinas masivamente paralelas.

El cómputo paralelo ofrece una serie de ventajas que lo hacen particularmente atractivo para los requerimientos de capacidad de cómputo, en particular los de la comunidad científica. Una de estas ventajas es económica. El uso de componentes comunmente disponibles, en grandes cantidades, permite ofrecer mayor rendimiento, a un precio menor que el de máquinas con procesadores especialmente diseñados (como por ejemplo las máquinas de procesadores vectoriales y de propósito específico). Adicionalmente, las computadoras paralelas son inherentemente escalables, permitiendo actualizarlas para adecuarlas a una necesidad creciente. Las arquitecturas ``tradicionales'' se actualizan haciendo los procesadores existentes obsoletos por la introducción de nueva tecnología a un costo posiblemente elevado. Por otro lado, una arquitectura paralela se puede actualizar en términos de rendimiento simplemente agregando más procesadores.

En ocasiones se menciona también la limitante física; existen factores que limitan la velocidad máxima de un procesador, independientemente del factor económico. Barreras físicas infranqueables, tales como la velocidad de la luz, efectos cuánticos al reducir el tamaño de los elementos de los procesadores, y problemas causados por fenómenos eléctricos a pequeñas escalas, restringen la capacidad máxima de un sistema uniprocesador, dejando la opción obvia de colocar muchos procesadores para realizar cálculos cooperativamente.
Como toda nueva arquitectura, las máquinas paralelas poseen características, y plantean ventajas y desventajas, que obligan a considerar cuidadosamente su utilización. También, dentro del mundo de las máquinas paralelas, existen dos enfoques con distintas características: la arquitectura SMP y la arquitectura MPP.

SISTEMAS DE TIEMPOS REALES

Es bien sabido que los Sistemas de Tiempo Real pueden llevar el control eventos que ocurren en el mundo real, por lo tanto es un sistema que responde a un estímulo externo dentro de un tiempo especificado. Entonces los sistemas de tiempo real interactúan con el entorno que se le presente y pueden ejecutar acciones de respuesta para determinados estímulos de dicho entorno. Este tipo de sistemas tienen muchas características que benefician a todo el individuo que pretenda interactuar con ellos

Definición: básicamente los sistemas de tiempo real se definen como sistemas informáticos que tienen la capacidad de interactuar rápidamente con su entorno físico, el cual puede realizar funciones de supervisión o control para su mismo beneficio. Todos los sistemas de tiempo real tienen la facultad de ejecutar actividades o tareas en de intervalos de tiempo bien definidos.

Todas las tareas son ejecutadas inmediatamente en una forma concurrente, esto es para sincronizar el funcionamiento del sistema con la simultaneidad de acciones que se presentan en el mundo físico. En los sistemas de tiempo real los intervalos de tiempo en que se ejecutan las tareas se definen por un esquema de activación y por un plazo de ejecución. En lo que respecta al esquema de activación puede ser periódico, es decir en intervalos regulares, o también puede ser aperiódico, es decir, en respuesta a sucesos externos que ocurren de forma irregular.

La mayoría de los STR son utilizados cuando existen requerimientos de tiempo muy rígidos en las operaciones o en el flujo de datos, generalmente son requeridos como sistemas de control en una aplicación dedicada. La eficiencia de los STR no solo depende de la exactitud de los resultados de cómputo, sino también del momento en que los entrega. La predictibilidad es su característica principal de este tipo de sistemas. Este tipo de sistemas se caracterizan por tener que producir una salida, como respuesta a una entrada, en un tiempo determinado. El intervalo de tiempo que se presenta entre la entrada y la salida debe ser muy pequeño para que la respuesta temporal del sistema sea aceptable.

Cuando se diseña un sistema de tiempo real se pasa por varias fases:

1.- Se identifican todas las tareas que se tienen que realizar y también se identifican las restricciones temporales que se pretenden cumplir.

2.- Posteriormente se codifican los programas que ejecutarán las tareas

3.- Posteriormente se pasa a medir el tiempo de cómputo de cada tarea y se realiza un análisis de planificabilidad.

Este análisis consiste en aplicar unas pruebas al conjunto de tareas de tal forma que si éstas pasan el test entonces se puede garantizar que ninguna tarea perderá su plazo de ejecución. De lo contrario si no pasan el test se tiene que volver a comenzar desde el principio, es decir, comenzar de nuevo, utilizando otro procesador más potente o utilizando otros algoritmos para implementar las tareas.

Generalidades de los str

• Requiere técnicas de análisis, diseño y prueba que son desconocidas en otras áreas de aplicación.

• Esta muy acoplado con el mundo externo.

• Opera bajo condiciones de rendimiento muy rigurosas.

• Esta conducido por el hardware, software, por las características del sistema operativo, por requisitos de la aplicación, así como por aspectos de diseño.

Elementos que componen un str

• Aspectos de integración y de rendimiento.

• Manejo de Interrupciones.

• Bases de Datos de Tiempo Real.

• Sistemas Operativos de Tiempo Real.

• Lenguajes de Tiempo Real.

• Sincronización y comunicación de tareas.

No hay comentarios:

Publicar un comentario

2009 Rodriguez Time - Powered by Blogger
Blogger Templates by Deluxe Templates
Wordpress theme by Dirty Blue