Anda di halaman 1dari 4

Planificacion de procesos

El objetivo de la multiprogramacion es tener en ejecución varios procesos al mismo


tiempo con el fin de maximizar la utilización de la CPU. El objetivo de sistemas de
tiempo compartido es conmutar la CPU entre los diferentes procesos con tanta frecuencia
que los usuarios puedan interactuar con cada programa mientras este se ejecuta. Para
coneguir estos objetivos el planificador de procesos, DISPATCHER, selecciona un
proceso disponible para ejecutar el programa en la CPU. En los sistemas de un solo
procesador, nunca habra mas de un solo proceso en ejecución: si hay mas , tendra que
esperar hasta que la CPU este libre y se pueda asignar a otro proceso.

Tipos de planificadores

Planificador a largo plazo: selecciona procesos de la cola en un dispositivo de


almacenamiento masivo y los carga en memoria para su ejecución.

El planificador de largo plazo controla la multiprogramacion (numeros de procesos en


memoria)

Procesador a corto plazo: selecciona de entre los procesos que ya estan preparados para
ser ejecutados (listos) y se asigna a la CPU a cada uno de ellos.

Procesador a mediano plazo : reduce el grado de multiprogramacion. Descarga y luego


vuelve a cargar el proceso.

Que es el cambio de contexto?

Cuando se produce una interrupcion, el sistema operativo debe guardar el estado del
proceso que se esta ejecutando en la CPU, de modo que pueda restaurar dicho contexto
cuando su procesamiento concluya, suspendiendo el proceso y reanudandolo después. El
contexto se almacena en la PCB del proceso e incluye el valor de los registros de la CPU,
el estado del proceso actual y una restauración del estado del proceso actual y una
restauración del estado de otro proceso diferente. Cuando se produce un cambio de
contexto , el kernel guarda el contexto del proceso antiguo en su PCB y carga el contexto
almacenado del nuevo proceso que se ha decidido ejecutar.
La velocidad del cambio de contexto varia de una maquina a otra, dependiendo de la
velocidad de memoria, del numero de registros que tengan que copiarse y de la existencia
de instrucciones especiales.

El objetivo de la multiprogramacion es tener continuamente varios procesos en ejecución,


con el fin de maximizar el uso de la cpu

Planificador de la CPU

Cuando la CPU queda inactiva, el sistema operativo debe seleccionar uno de los procesos
que se encuentra en la cola de procesos preparados para ejecución. El planificador a corto
plazo lleva a cabo esa selección del proceso. El planificador elige uno de los procesos que
estan en memoria preparados para ejecutarse y asigna la CPU a dicho proceso.

NON-PREENTIVE (Sin expulsión) => Apropiativo

Una vez que el proceso se esta en estado de ejecución, continua ejecutando hasta (a) o
termina o (b) se bloquea para esperar E/S o para solicitar algun servicio al Sistema
Operativo.

PREEMTIVE (Con expulsión) => No – apropiativo

Un proceso ejecutando en un determinado momento puede ser interrumpido y pasado al


estado listo por el Sistema Operativo. La decision de expulsar puede ser tomada cuando
llega un proceso, cuando llega una interrupcion que pasa por un proceso bloqueado a
estado listo , o periódicamente, basandose en las interrupciones del reloj.

Algoritmos

FCFS
Los procesos usan la CPU en el orden en que llegaron. Es un algoritmo apropiativo, a
medida que llegan los procesos van usando la CPU y cuando hacen uso de esta, no la
abandonan hasta que se bloqueen por E/S o finalicen.

ROUND ROBIN
El RR viene siempre acompañado por un slicetime; finalizado este tiempo abandona la
CPU. Debido a esto es No-apropiativo. Obviamente que el proceso puede abandonar
antes la CPU en caso de que finalice o se bloquee por una E/S; caso contrario vuelve a la
cola de listos.

ROUND ROBIN VIRTUAL


Hay 2 colas, una comun para procesos listos y una nueva cola de listos para los que
vienen de una E/S. Esta segunda cola tiene mayor prioridad que la primera.

SPN
Es un algoritmo apropiativo. Cuando los procesos llegan a la cola de listos, estos se
ordenan según quien tiene menor BURST de CPU, y usa la CPU el mas chiquito.

SRT (shortest remaing time)


Es un algoritmo no-apropiativo. En la cola se siguen ordenando según quien tenga el
menor BURST de CPU, pero si se da el caso de que en algun momento hay un proceso
ejecutando y llega uno nuevo, se determina si el proceso que esta ejecutando CPU
actualmente le falta menos de CPU, si es menor (el que se esta ejecutando), entonces se
queda , sino el proceso es desalojado y llevado nuevamente a la cola de listos.

Prioridades
Puede tomarse como apropiativo o no apropiativo.
Las interrupciones puden producirse en cualquier momento, y puesto que tambien no
pueden ser ignoradas por el KERNEL, las secciones de codigo afectadas por las
interrupciones deben ser resguardadas de un posible uso simultaneo.

DESPACHADOR (DISPATCHER)

El dispatcher es el modulo que proporciona control de la CPU a los procesos


seleccionados por el planificador a corto plazo. Esta funcion implica:
a) Cambio de contexto
b) Cambio al modo
c) Salto la posición correcta dentro del programa de usuario para reiniciar dicho
programa.

Criterios de planificación

Existen varios criterios para comparar los diferentes algoritmos de planificación. Los
siguientes son los criterios:

Utilizacion de CPU: deseamos mantener la CPU tan ocupada como sea posible

Tasa de procesamiento: si la CPU esta ocupada ejecutando procesos, entonces se estara


llevando a cabo algun tipo de procesamiento.

Tiempo de ejecución: es el tiempo que se somete el nuevo job hasta que termina (Tfinal –
T inicial)

Tiempo de respuesta: es el tiempo que el proceso tarda en empezar a responder.

Tiempo de espera : Tiempro que esta en la cola de listos (T servicio – T ejecución)

Indice de servicio: Tiempo ejecutando/tiempo de servicio

El objetivo consiste en maximizar la utilización de laCPU y la tasa de procesamiento y


minimizar el tiempo de ejecución, el tiempo de espera y el tiempo de respuesta.

Metodos de planificación en los sistemas multiprocesador

Un metodo para planificar la CPU en un sistema multiprocesador consiste en que todas


las decisiones sobre la planificación, el procesamientto de E/S y otras actividades del
sistema sean gestionadas por un mismo procesador, el servidor maestro. Y los demas
procesadores ejecutan codigo usuario. Esto se denomina MULTIPROCESAMIENTO
ASIMETRICO, solo hay un procesador que accede a las estructuras de datos del sistema,
reduciendo la necesidad de compartir datos.
MULTIPROCESAMIENTO SIMETRICO (SMP): Cada uno de los procesadores se
autoplanifica. Todos los procesos puden estar en una cola comun de procesos preparados
o cada procesador puede tener su propia cola privada de procesos preparados. Esto se
lleva a cabo haciendo que el planificador de cada procesador examine la cola de processo
preparados y seleccione 1 para ejecutarlo.
OJO!!!! Si hay varios procesos intentando acceder a una estructura de datos comun para
actualizarla, el planificador tiene que programarse de manera cuidadosa.

En estos sistemas, los SMP, es importante mantener la carga de trabajo equilibrada entre
todos los procesadores. Los mecanismos de carga lo que hacen es distribuir
equitativamente la carga de trabajo entre todos los procesadores del sistema SMP. Exiten
2 metodos :
a) Migracion comandada (Push migration)
a. Una tarea especifica comprueba periódicamente la carga en cada
procesador y si encuentra un desequilibrio, disminuye equitativamente la
carda moviendo procesos de los procesadores sobrecargados o los mas
libre o inactivos.
b) Migracion solicitada (Pull migration)
a. Se produce cuando 1 procesador inactivo extrae de un procesador ocupado
alguna tarea que este en espera.

Anda mungkin juga menyukai