jueves, 30 de septiembre de 2010

UNIDAD 2 Gestión del procesador, comunicación y sincronización de datos. (PARTE I)

Planificación de CPU

Planificación se puede definir como un conjunto de mecanismos asociados al sistema operativo, a través de un patrón denominado planificador, el cual decide cuales de los procesos en condiciones de ser ejecutado conviene ser enviado primero y qué orden de ejecución se debe seguir. 
Los objetivos buscados en la planificación de CPU son:
-Equidad
-Eficiencia
-Bajo tiempo de respuesta
-Rendimiento alto
-Minimizar el tiempo de espera

Cabe destacar que estos objetivos no se pueden conseguir simultáneamente.

Tipos de planificadores:


Planificador a largo plazo: es un administrador que se encarga de organizar la ejecución con una adecuada organización de los recursos para que el trabajo se ejecute de forma ordenada y eficiente según el modo de procesamiento. Es el responsable de controlar el nivel de multiprogramación del sistema y el balance de carga del sistema.

Planificador a medio plazo: Es quien carga y descarga trabajos desde el disco a la memoria y de la memoria al disco en función del grado de sobrecarga del sistema. Este planificador puede ser usado cuando quede espacio libre de memoria por efecto de la término de un proceso o cuando el suministro de procesos caiga por debajo de un límite especificado.

Planificador a corto plazo (o short-term scheduler): es el responsable de decidir quién, cuándo, cómo y por cuánto tiempo recibe el procesador un proceso que está preparado  para ejecutar. El planificador a corto plazo es invocado cada vez que un suceso (interno o externo) hace que se modifique el estado global del sistema (por ejemplo, las interrupciones y terminaciones de E/S.)

Criterios de planificación

Al planificar la utilización de una CPU, se debe tener presente que la planificación se hace teniendo en cuenta determinados criterios:

Tiempo de respuesta (Turnaround time): es el tiempo que transcurre desde que se emite una solicitud hata que se recibe la primera respuesta. 

Tiempo de retorno: es el tiempo que transcurre desde la entrada de un proceso en el sistema hasta su finalización. 

Productividad: se debe intentar maximizar el número de procesos terminados por unidad de tiempo.

Equidad: Los procesos deben ser tratados de igual forma y ningún proceso debe sufrir inanición.

Utilización del procesador: Es el porcentaje de tiempo en el que el procesador está ocupado.

Prioridades: Cuando se asignan prioridades a los procesos, la política de planificación debe favorecer a los de mayor prioridad.



Algoritmos de planificación de CPU


FCFS (First come first served):  es el algoritmo de planificación más sencillo. Consiste en que el primer proceso en solicitar la CPU es el primero en ser atendido por ésta.

SJF (Shortest Job First):  se asocia a cada proceso la longitud de su rafaga de CPU. Cuando la CPU está disponible es asignada al proceso que tiene la siguiente ráfaga de CPU de menor duración. Si 2 o más procesos tienen la misma longitud de rafaga de CPU, se usa la planificación FCFS para desempatar, es decir, el primero de ellos en llegar es el primero en ser atendido.

Planificación por prioridades: Bajo este concepto, el procedimiento se basa en que cada proceso tiene una prioridad. La CPU debe atender primero al proceso con la prioridad mas alta primero.

Turno rotatorio (Round Robin): este algoritmo de planificación fue especialmente diseñado para sistemas en tiempo compartido. Se define una pequeña unidad de tiempo común llamada quantum de tiempo o time slice, que generalmente tiene un valor entre 10 y 100 milisegundos. La cola de listos se trata como una cola circular. El planificador de CPU recorre la cola asignando el procesador a cada proceso durante un intervalo de tiempo de hasta un quantum.