Unidad 3 :
Un Sistema operative debe asignar los recursos de la computadora entre las necesidades de
múltiples procesos. En el caso del procesador es la planificación la encargada de asignar el
tiempo de ejecución. La planificación debe estar diseñada para cumplir con objetivos que
incluyen la equidad, la ausencia de inanición de cualquier proceso, el uso eficiente del tiempo
de procesador y baja de la sobrecarga.
El objetivo de la multiprogramación es tener algún proceso en marcha en todo momento, para
maximizar la utilización de la cpu. Un proceso se ejecuta hasta que debe esperar. Tipicamente
para la terminacion de una petición de E/S.
En un sistema de multiprogramación, se mantienen varios procesos en la memoria a la vez.
Cuando un proceso tiene que esperar, el sistema operativo le asigna el cpu de otro proceso.
Tipos de planificación:
PLP: Decisión de añadir un proceso al conjunto de procesos ejecutados.
PMP: decisión de agregar un proceso al numero de procesos que están parcial o totalmente en
la memoria principal.
PCP: Decisión por la que un proceso disponible será ejecutado por el procesador.
Planificación del procesador: Las decisiones de planificación del CPU pueden tener lugar bajo
cuatro circunstancias.
1. Cuando un oproceso cambia del estado de ejecución al estado bloqueado o en espera.
2. Cuando un procesos cambia del estado de ejecución al estado preparado.
3. Cuando un proceso cambia del estado de espera al estado preparado.
4. Cuando un proceso termina.
Para las situaciones 1 y 4, Se dice que el esquema de planificación es no expropiativo o
cooperativo. Bajo programación no expropiativa, el CPU mantiene el proceso hasta que se
libera.
Modos de decisión:
No expropiativo: Una vez que se ejecuta un proceso continua hasta que termine o se
bloquea, implica un riesgo de acaparamiento del cpu.
Expropiativo: El proceso puede ser interrumpido y movido al estado de listo. Permite un
mejor servicio ya que ningún proceso monopoliza al procesador.
Políticas de planificación:
Al elegir un algoritmo de planificación se debe considerar sus propiedades. No existe un
algoritmo optimo para todas las situaciones. Criterios:
Utilización del cpu: Mantener el cpu lo mas ocupado posible (entre el 40% y el 90%).
Rendimiento: Si la cpu esta ocupada ejecutando procesos esta trabajando. El rendimiento
es una medida de tiempo de los procesos que se completan.
Tiempo de espera: El algoritmo de programación de la cpu no afecta la cantidad de tiempo
durante el cual se ejecuta. El tiempo de espera es la suma de los periodos de la cola lista.
Tiempo de retorno: El intervalo entre el tiempo de presentación de un proceso y el tiempo
de fimalizacion.
Tiempo de respuesta: En un sistema interactivo, el tiempo de espera puede no ser el mejor
criterio. Otra medida es el tiempo desde la presentación hasta la primera respuesta.
Algoritmos:
FCFS : o first come first, es el mas sencillo. EL proceso que primero solicita la cpu es el primero
que se asigna. La implementación se administra fácilmente con una cola FIFO. ECuando un
proceso entra a la cola, su PCB esta vinculada al final de la cola. Puede traer largos tiempos de
espera.
SPN/SJF: o short comes first, es un enfoque diferente para la planificación de la CPU. Es el
algoritmo de planificación que elije la tarea mas corta. Este algoritmo asocia con cada proceso
la longitud de la siguiente ráfaga de CPU del proceso. Cuando la CPU esta disponible, le asigna el
poceso de ráfaga de CPU mas pequeña posible. Si dos ráfagas son iguales usa FCFS.
SRT: es un método de planificación con sección del proceso con tiempo restante mas corto.
Planificación basada en prioridades: A cada proceso se le asigna una prioridad y el planificador
otorga tiempo de CPU al proceso con la prioridad mas alta. Puede ser expropiativa o no,
pudiendo definir las prioridades de forma interna por el SO o externa por los usuarios.
Existe riesgo de inanición de los procesos con menor prioridad. Si hay uno o mas procesos con
la misma prioridad, lo elige usando una política de planficacion.
Planificación cíclica: Consiste en la expulsión basándose en el tiempo de uso de la CPU. Se
genera una interrupción de reloj cada cierto intervalo de tiempo. Cuando esto sucede la
ejecución se suspende y el proceso se coloca en la cola de listos. Cuanto mas pequeño es el
intervalo de tiempo, mas se sobrecarga al procesador.
Planificación de multiprocesadores:
Debilmente acoplado: Formado por sistemas relativamente autónomos, cada proceso tiene su
propia memoria principal y canales de E/S.
Procesadores de funcionalidad especializada: Hay un procesador de propósito y procesadores
especializados controlados por el procesador maestro.
Procesamiento fuertemente acoplado: Formado por un conjunto de procesadores que
comparten la memoria principal bajo un único control de cola.
Multiprocesamiento asimetrico: Es un enfoque de la planificación del CPU en donde un
sistema multiprocesador tiene todas las decisiones de programación, procesamiento de E/S y
otras actividades del sistema gestionadas por un único procesador. El servidor maestro. Los
otros procesadores ejecutan solamente el código de usuario.
Es asimetrico porque un solo procesador accede a las estructuras de datos del sistema,
reduciendo la necesidad de compartir datos.
Multiprocesamiento simetrico: Cada procesador es autoprogramado todos los procesos
pueden estar en una cola de procesos listos común, o cada procesador puede tener su cola
privada de procesos listos. Se debe asegurar que cada procesador no elija programar en el
mismo proceso y que los procesos no se puerdan en la cola, los datos mas recientemente
accedidos por el proceso están en el cache para el procesador. En consecuencia, los accesos de
memoria se satisfacen en la memoria cache.