miércoles, 28 de noviembre de 2012

2.5 Niveles, objetivos y criterios de planificación.

Uno de los módulos más importantes de un sistema operativo es la de administrar los procesos y tareas del sistema de cómputo. En esta sección se revisarán dos temas que componen o conciernen a este módulo: la planificación del procesador y los problemas de concurrencia.
Planificación del procesador
La planificación del procesador se refiere a la manera o técnicas que se usan para decidir cuánto tiempo de ejecución y cuando se le asignan a cada proceso del sistema. Obviamente, si el sistema es monousuario y monotarea nohay mucho que decidir, pero en el resto de los sistemas esto es crucial para el buen funcionamiento del sistema.

Niveles de planificación
En los sistemas de planificación generalmente se identifican tres niveles: el alto, em medio y el bajo. El nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirse en procesos compitiendo por los recursos del sistema; el nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertas metas de rendimiento mientras que el planificador de bajo nivel es el que decide que proceso, de los que ya están listos (y que en algún momento paso por los otros dos planificadores) es al que le toca ahora estar ejecutándose en la unidad central de procesamiento. En este trabajo se revisaran principalmente los planificadores de bajo nivel porque son los que finalmente eligen al proceso en ejecución.

Objetivos de la planificación
Una estrategia de planificación debe buscar que los procesos obtengan sus turnos de ejecución apropiadamente, conjuntamente con un buen rendimiento y minimización de la sobrecarga (overhead) del planificador mismo. En general, se buscan cinco objetivos principales:

·         Justicia o Imparcialidad: Todos los procesos son tratados de la misma forma, y en algún momento obtienen su turno de ejecución o intervalos de tiempo de ejecución hasta su terminación exitosa.
·         Maximizar la Producción: El sistema debe de finalizar el mayor numero de procesos en por unidad de tiempo.
·         Maximizar el Tiempo de Respuesta: Cada usuario o proceso debe observar que el sistema les responde consistentemente a sus requerimientos.
·         Evitar el aplazamiento indefinido: Los procesos deben terminar en un plazo finito de tiempo.
·         El sistema debe ser predecible: Ante cargas de trabajo ligeras el sistema debe responder rápido y con cargas pesadas debe ir degradándose paulatinamente. Otro punto de vista de esto es que si se ejecuta el mismo proceso en cargas similares de todo el sistema, la respuesta en todos los casos debe ser similar.
Características a considerar de los procesos
·         No todos los equipos de cómputo procesan el mismo tipo de trabajos, y un algoritmo de planificación que en un sistema funciona excelente puede dar un rendimiento pésimo en otro cuyos procesos tienen características diferentes. Estas características pueden ser:
·         Cantidad de Entrada/Salida: Existen procesos que realizan una gran cantidad de operaciones de entrada y salida (aplicaciones de bases de datos, por ejemplo).
·         Cantidad de Uso de CPU: Existen procesos que no realizan muchas operaciones de entrada y salida, sino que usan intensivamente la unidad central de procesamiento. Por ejemplo, operaciones con matrices.
·         Procesos de Lote o Interactivos: Un proceso de lote es más eficiente en cuanto a la lectura de datos, ya que generalmente lo hace de archivos, mientras que un programa interactivo espera mucho tiempo (no es lo mismo el tiempo de lectura de un archivo que la velocidad en que una persona teclea datos) por las respuestas de los usuarios.
·         Procesos en Tiempo Real: Si los procesos deben dar respuesta en tiempo real se requiere que tengan prioridad para los turnos de ejecución.
·         Longevidad de los Procesos: Existen procesos que tipicamente requeriran varias horas para finalizar su labor, mientras que existen otros que solonecesitan algunos segundos.
Planificación apropiativa o no apropiativa (preemptive or not preemptive)
La planificación apropiativa es aquella en la cual, una vez que a un proceso le toca su turno de ejecución ya no puede ser suspendido, ya no se le puede arrebatar la unidad central de procesamiento. Este esquema puede ser peligroso, ya que si el proceso contiene accidental o deliberadamente ciclos infinitos, el resto de los procesos pueden quedar aplazados indefinidamente. Una planificación no apropiativa es aquella en que existe un reloj que lanza interrupciones periodicas en las cuales el planificador toma el control y se decide si el mismo proceso seguirá ejecutándose o se le da su turno a otro proceso. Este mismo reloj puede servir para lanzar procesos manejados por el reloj del sistema. Por ejemplo en los sistemas UNIX existen los 'cronjobs' y 'atjobs', los cuales se programan en base a la hora, minuto, día del mes, día de la semana y día del año.

En una planificación no apropiativa, un trabajo muy grande aplaza mucho a uno pequeño, y si entra un proceso de alta prioridad esté también debe esperar a que termine el proceso actual en ejecución.
Planificación de procesos
La planificación es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La selección del proceso se basa en alguno de los algoritmos de planificación que se describen más abajo.
Expulsión
Es la característica por el cual el sistema operativo puede o no expulsar del estado de ejecución a un proceso dado. En este sentido entonces tenemos la planificación apropiativa en la cual el sistema operativo puede cortar en cualquier momento la ejecución de un proceso y la planificación no apropiativa en la cual una vez que el proceso esta en ejecución el sistema operativo no puede sacarlo de ese estado.
Objetivos de la planificación
Los objetivos de la planificación de proceso son:
·         Equidad, todos los procesos deben poder ejecutarse
·         Eficacia, mantener ocupada la CPU un 100% del tiempo
·         Tiempo de respuesta, minimizar el tiempo de respuesta al usuario
·         Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados
·         Rendimiento, maximizar el número de tareas procesadas por hora.
Algoritmos de planificación
Los algoritmos de planificación son los que definen que política se va a seguir para que un proceso pase al estado de ejecución.
Planificación Round-Robin
En este tipo de planificación cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el caso de que no pueda terminar la ejecución en su quantum el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento.
Planificación por prioridad
En la planificación round-robin todos los procesos son tratados con la misma prioridad. Para el caso de este tipo de planificación a cada proceso se le asigna una prioridad y los mismos son ejecutados
Colas múltiples
Las colas múltiples están basadas en una pila que sirve como índice de una lista de procesos que se tienen que ejecutar.
Primero el trabajo más corto
Este tipo de algoritmo de planificación se usa para trabajos en batch o de procesamiento or lotes en los cuales se puede saber cual es el tiempo de duración de la ejecución de cada proceso y entonces se puede seleccionar primero el trabajo más corto. El problema que se presenta con éste algoritmo es que los grandes procesos podrían sufrir de inanición dado que cualquier proceso pequeño se "cuela" sobre uno de mayor tamaño y como resultado final se podría dar el caso que el proceso grande nunca obtenga procesamiento.
Planificación garantizada
En este modelo de planificación se tiene en cuenta la cantidad de usuarios en el sistema y se le asigna a cada uno el tiempo de ejecución de 1/n (siendo n la cantidad total de usuarios) de esa forma el planificador tiene que llevar cuenta del tiempo de ejecución de los procesos y balancear el tiempo que están utilizando el procesador para cumplir con la ecuación previa.
Conceptos de planificación.

            El objetivo de la multiprogramación es que en todo momento se ejecute un proceso para maximizar la utilización del CPU. En un sistema monoprocesador nunca habrá  más de un proceso en ejecución. Si hay más procesos tendrán que esperar a que el CPU  esté libre y pueda volver a planificarse.
            El concepto de multiprogramación es muy sencillo: un proceso se ejecuta hasta que tenga que esperar, generalmente a que termine una solicitud de E/S. En un sistema de computo sencillo, el CPU permanecerá inactivo; todo este tiempo de espera se desperdicia sin efectuar una actividad útil. Con la multiprogramación tratamos de emplear productivamente este tiempo. Varios procesos se conservan en la memoria a la vez, y cuando uno de ellos tiene que esperar, el sistema operativo le quita el CPU al proceso y se lo da a otro; este modelo continúa, Cada vez que un proceso tiene que esperar, otro  pueda utilizar el CPU.
            Los beneficios de la multiprogramación son un aumento de la utilización del CPU y una mayor productividad.

Planificación del CPU

            La planificación es una función fundamental del sistema operativo. Casi todos los recursos de una computadora se planifican antes de usarse. Por supuesto, el CPU es una de los principales


            Recursos de la computadora, de modo que su planificación es parte modular del diseño de los sistemas operativos.


- Ciclo de ráfaga del CPU y de E/S.

            El éxito de la planificación del CPU depende de la siguiente prioridad observada de los procesos: la ejecución de un proceso consiste en un ciclo de ejecucióndel CPU y de E/S, y los procesos se alternan entre estos dos estados. La ejecución del proceso se inicia con una rafaga de CPU;  a ésta le siguen una ráfaga de E/S, otra ráfaga de CPU, una más de E/S, etc. Finalmente, la última ráfaga de CPU terminará con una solicitud al sistema para que concluya la ejecución, en vez de otra ráfaga de E/S.

            Las duraciones de estas ráfagas de CPU se han medido, y, aunque varían considerablemente de un proceso a otro y entre computadoras, Generalmente la curva se caracteriza como exponencial o hiperhexponencial. Hay un gran número de ráfagas de CPU de corta duración y un pequeño número de larga duración.




- Planificador del CPU.
            Siempre que el CPU queda inactivo, el sistema operativo debe seleccionar para su ejecución uno de sus procesos de la cola de procesos listos. El proceso de selección es revisado por el planificador a corto plazo. (o planificador del CPU). El planificador selecciona uno de los procesos en memoria que están listos para ejecución y le asigna el CPU.

- Estructura de planificación.
            Las decisiones de planificación del CPU pueden efectuarse en una de las cuatro circunstancias siguientes:
1.         Cuando un proceso cambia del estado de ejecución a estado de espera (por ejemplo, solicitud de E/S petición de esperar la terminación de uno de los procesos hijo).
2.         Cuando un proceso cambia del estado de ejecución al estado listo (por ejemplo, cuando ocurre una interrupción)
3.         Cuando un proceso cambia del estado de espera al estado listo (por ejemplo, al completarse la E/S).
4.         Cuando termina un proceso.

No hay comentarios:

Publicar un comentario