Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNIDAD CULHUACAN
Ingeniería en Computación
Sistemas Operativos
Actividad:
“Resumen capítulo 4”
6CM23
Tabla de contenido
OBJETIVO......................................................................................................................................... 3
JUSTIFICACION .............................................................................................................................. 3
DESARROLLO ................................................................................................................................. 3
Versión general ............................................................................................................................... 3
Acerca de las tecnologías multinúcleo .................................................................................... 3
Planificación de trabajos contra planificación de procesos .............................................. 4
Planificador de procesos ............................................................................................................. 4
Estado del trabajo y del proceso ............................................................................................... 5
Bloques de control de proceso y colas.................................................................................... 6
Políticas de planificación de procesos .................................................................................... 7
Algoritmos de planificación de procesos ................................................................................ 8
Primero en llegar, primero en servirse .......................................................................................... 8
Siguiente trabajo más corto primero ........................................................................................... 10
Planificación de prioridad ............................................................................................................ 11
Tiempo más corto restante .......................................................................................................... 12
Round robin .................................................................................................................................. 13
Colas de multinivel ....................................................................................................................... 14
Caso 1: Sin movimientos entre colas ........................................................................................... 14
Caso 2: Movimiento entre colas .................................................................................................. 15
Caso 3: Cuanto de tiempo variable por cola ................................................................................ 15
Caso 4: Envejecimiento ................................................................................................................ 15
CONCLUSION ................................................................................................................................ 16
GLOSARIO ..................................................................................................................................... 16
BIBLIOGRAFIA .............................................................................................................................. 16
OBJETIVO
El siguiente documento describe las características que presentan los sistemas
operativos para la administración de procesos en los sistemas mono y
multiprocesadores.
JUSTIFICACION
Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de
ejecución, por el momento dejemos esta última definición como un concepto, luego
se verá en más detalle el concepto de hilo.
DESARROLLO
Versión general
En un sistema, uno como usuario único y un procesador, de este solo está ocupado
cuando la CPU ejecuta un trabajo. Sin embargo, cuando en el sistema hay muchos
usuarios con muchos trabajos, el procesador debe asignarse a cada trabajo de
manera justa y eficiente, lo que puede ser una tarea complicada.
3
Planificación de trabajos contra planificación de procesos
El administrador de procesadores una composición de dos administradores: uno a
cargo de la planificación de trabajos y otro a cargo de la planificación de procesos.
Se denominan planificador de trabajos y planificador de procesos.
Planificador de procesos
Un proceso es un programa en ejecución. Existen 3 estados en los que puede
encontrarse un proceso, estos son: "Listo", "Bloqueado" y "En ejecución". Para el
control de los mismos internamente son almacenados en una lista, cada uno de los
nodos guarda información de un proceso. En esa información se almacena, entre
otros aspectos, el estado en que se encuentra el proceso, el tiempo que el proceso
ha usado el CPU, e información de E/S (entrada/salida). Los sistemas operativos
cuentan con un componente llamado planificador, que se encarga de decidir cuál
de los procesos hará uso del procesador. La toma de esta decisión, así como el
tiempo de ejecución del proceso, estará dada por un algoritmo, denominado
Algoritmo de Planificación.
4
Aunque la duración y frecuencia del ciclo de CPU varían de un programa a otro, hay
algunas tendencias generales que pueden aprovecharse cuando se selecciona un
algoritmo de planificación.
5
Identificador del proceso
Cada trabajo esta identificado de manera única por la identificación del usuario y un
apuntador que lo conecta con su descriptor (proporcionado por el planificador de
trabajos cuando el trabajo entra por primera vez en el sistema y se cola en
INICIADO).
Situación del proceso
Esto contiene toda la información necesaria para indicar el estado actual del trabajo
como:
Los bloques de proceso, no los trabajos, se vinculan para formar colas, como se
muestra en la figura 4.4. Aunque ningún PCB se ha dibujado en detalle, el lector
debe imaginar cada cola como una lista vinculada de bloques de control de proceso.
6
Los PCB para cada trabajo listo están vinculados en la cola LISTO, y todos los PCB
para los trabajos que están entrando al sistema están vinculados en la cola
INICIADO. Los trabajos que están en ESPERA, no obstante, están vinculados en la
cola INICIADO.
Los trabajos que están en ESPERA, no obstante, están vinculados entre sí por
“razones de espera”, de modo que los PCB para los trabajos en esta categoría están
vinculados en varias colas. Es necesario que la administración de las colas se lleve
a cabo de manera ordenada, lo cual es determinado por las políticas y los algoritmos
de planificación de procesos.
7
Minimizar el tiempo de retorno: introducir y sacar rápidamente trabajos del
sistema. Esto puede hacerse al ejecutar primero todos los trabajos por lotes.
Minimizar el tiempo de espera: Mover todos los trabajos de la cola LISTO lo
más rápido posible. Esto puede hacerse al reducir el número de usuarios
permitidos en el sistema, de modo que la CPU esté disponible de inmediato
siempre que un trabajo entra a la cola LISTO.
Minimizar la eficiencia de la CPU: Mantener ocupada la CPU 100% del
tiempo. Esto puede hacerse al ejecutar solo trabajos limitados por la CPU.
Asegurar lo justo para todos los trabajos: Proporcionar a cada uno una
cantidad igual de tiempo de CPU y E/S.
Como puede verse a partir de la lista anterior, si el sistema favorece algún tipo de
usuario, es en detrimento de otro y no utiliza de manera eficiente sus recursos.
Aunque el planificador de trabajos selecciona trabajos a fin de asegurar el equilibrio
de las colas LISTO y de E/S, hay instancias en que un trabajo reclama la CPU
durante largo tiempo antes de emitir una solicitud de E/S. Una estrategia de
planificación que interrumpe el procesamiento de un trabajo y transfiere la CPU a
otro trabajo se denomina política de planificación expropiativas; se usa ampliamente
en entornos de tiempo compartido. La alternativa, por supuesto, es una política de
planificación no expropiativas, que funciona sin interrupciones externas.
Por cada trabajo, el ciclo de CPU contiene el uso actual de la CPU y las solicitudes
de E/S. es decir, es el tiempo de respuesta total. Al usar un algoritmo FCFS con una
secuencia de llegada de A, B, C, la línea de tiempo (diagrama de Gantt).
9
Siguiente trabajo más corto primero
Siguiente trabajo más corto primero (SJN), es un algoritmo de planificación no
expropiativo que maneja trabajos con base en la longitud de su ciclo de CPU. Es
más fácil implementarlo en entornos por lotes donde el tiempo de CPU estimado
necesario para ejecutar los trabajos lo proporciona de antemano cada usuario al
inicio de cada trabajo. Por ejemplo, hay cuatro trabajos por lotes, todos en la cola
LISTO, para los cuales el ciclo de CPU, o tiempo de ejecución, se calcula como
sigue:
Trabajo: A B C D
Ciclo de CPU: 5 2 6 4
El algoritmo SJN revisa los cuatro trabajos y los planifica para su procesamiento en
este orden: B, D, A, C.
Como puede verse, el tiempo para el primer trabajo aparece cuatro veces en la
ecuación: una vez por cada trabajo. En forma semejante, el tiempo para el segundo
trabajo aparece tres veces. El tiempo para el tercer trabajo aparece dos veces y el
tiempo para el cuarto trabajo aparece solo una vez.
10
Donde n es el número de trabajos en la cola y t (j = 1, 2, 3,…, n) es la longitud del
ciclo de CPU para cada uno de los trabajos. Sin embargo, el algoritmo SJN es
óptimo solo cuando todos los trabajos están disponibles al mismo tiempo y la CPU
estima que están disponibles y son seguros.
Planificación de prioridad
La planificación de prioridad es un algoritmo no expropiativo y uno de los algoritmos
de planificación más comunes en sistemas por lotes, aun cuando puede
proporcionar un tiempo de respuesta más lento para algunos usuarios. Este
algoritmo otorga tratamiento preferencial a trabajos importantes. Las prioridades
puede asignarlas un administrador del sistema usando características extrínsecas
a los trabajos. Con un algoritmo basado en prioridades, el planificador de trabajos
suele vincular los trabajos a una de varias colas LISTO en vez de a una sola.
Las prioridades también pueden determinarse por el administrador del proceso con
base en las características intrínsecas a los trabajos, como:
11
Tiempo más corto restante
El tiempo más corto restante (SRT) es la versión expropiativa del algoritmo SJN. El
procesador se asigna al trabajo más próximo a completar, pero incluso este trabajo
puede expropiarse si un nuevo trabajo más próximo a completar, pero incluso este
trabajo puede expropiarse si un nuevo trabajo en la cola LISTO tiene un tiempo de
terminación más corto.
12
La manera en que se realiza realmente el cambio de contexto depende de la
arquitectura de la CPU; en muchos sistemas hay instrucciones especiales para que
el almacenamiento y la restitución de la información sean rápidos. El cambio está
diseñado para realizarse de manera eficiente pero, no importa cuán rápido sea,
sigue requiriendo valioso tiempo de CPU.
Round robin
Round robin es un algoritmo de planificación de procesos expropiativo que se usa
ampliamente en sistemas interactivos. Es fácil de implementar y no se basa en las
características del trabajo, sino en una rebanada de tiempo predeterminada que se
proporciona a cada trabajo para asegurar que la CPU se comparta de manera
equitativa entre todos los procesos activos y ningún trabajo la monopolice.
La eficiencia del round robin depende del tamaño del cuanto de tiempo en relación
con el ciclo de CPU promedio. Si el cuanto es demasiado largo; es decir, si es mayor
13
que la mayor parte de los ciclos de CPU, entonces el algoritmo se reduce al
esquema FCFS. Si el cuanto es demasiado pequeño, entonces la cantidad de
procesamiento extra aumenta dramáticamente, como se observa en los tres
ejemplos. El trabajo A tiene un ciclo de CPU de 8 milisegundos. La cantidad de
cambio de contexto aumenta a medida que disminuye el tamaño del cuanto de
tamaño.
Colas de multinivel
Colas de multinivel, estas colas en realidad no constituyen un algoritmo de
planificación separado, sino que funciona de manera conjunta con varios de los
esquemas ya analizados y se encuentran en sistemas con trabajos que pueden
agruparse según una característica común. Ya hemos presentado por lo menos un
tipo de cola de multinivel: la de un sistema basado en prioridades con colas
diferentes para cada nivel de prioridad.
Otro tipo de sistema podrá reunir todos los trabajos limitados por CPU en una cola
y todos los trabajos limitados por E/S en otra. Luego, el planificador de procesos
puede escoger de manera alterna trabajos de cada cola a fin de mantener
equilibrado el sistema.
Las colas de multinivel plantear algunas preguntas interesantes:
¿El procesador se asigna a los trabajos en la primera cola hasta que este
vacía antes de moverlo a la cola siguiente o se desplaza de cola en cola
hasta que se ha atendido el último trabajo en la última y después regresa
para servir al primer trabajo en la primera cola, o algo en medio?
¿Esto es justo para quienes han ganado, o pagado por, una prioridad más
alta?
¿Esto es justo para quienes están en una cola de prioridad baja?
Si el procesador se asigna a los trabajos en la primera cola y esta nunca se
vacía, ¿Cuándo son atendidos los trabajos en la última cola?
¿Pueden los trabajos en la última cola obtener “un ascenso por buen
comportamiento” y terminar moviéndose a mejore colas?
Las respuestas dependen de la política usada por el sistema para atender las colas.
Hay cuatro métodos primarios para el movimiento: no permitir el movimiento entre
colas, mover los trabajos de cola en cola, mover los trabajos de cola en cola y
aumentar los cuantos de tiempo para colas más bajas, y otorgar un tratamiento
especial a los trabajos que han estado en el sistema durante largo tiempo.
14
los trabajos que están en la cola de prioridad alta y se asigna a los trabajos en colas
de prioridad más baja solo cuando las colas de prioridad alta están vacías.
La política es más justa en un sistema en que los trabajos son manejados según
sus características de ciclo de CPU: trabajos limitados por CPU o trabajos limitados
por E/S. Esto supone que un trabajo que excede su cuanto de tiempo está limitado
por CPU y que requiere más asignación de CPU uno que solicita E/S antes que
expire el cuanto tiempo.
Caso 4: Envejecimiento
El envejecimiento se usa para asegurar que los trabajos en las colas de nivel bajo
terminen por completo su ejecución. El sistema operativo sigue la pista del tiempo
de espera de cada trabajo y cuando un trabajo se vuelve demasiado viejo; es decir,
cuando llega a cierto límite de tiempo, el sistema lo mueve hacia la siguiente cola
más alta, y así sucesivamente hasta que llega la cola superior.
Una política de envejecimiento más drástica es una que mueve el trabajo viejo
directamente desde la cola más baja hasta el final de la cola en la parte superior.
Como es de esperar, aplazamiento indefinido significa que la ejecución de un trabajo
se aplaza durante una cantidad indefinida de tiempo porque es expropiado
repetidamente, de modo que es posible procesar otros trabajos.
15
CONCLUSION
Los procesos pueden ser cooperantes o independientes, en el primer caso se
entiende que los procesos interactúan entre sí y pertenecen a una misma aplicación.
En el caso de procesos independientes en general se debe a que no interactúan y
un proceso no requiere información de otros o bien porque son procesos que
pertenecen a distintos usuarios.
GLOSARIO
Dispositivos de E/S: Componente mecánico que se conecta a la Unidad Central de
Procesamiento a través de las unidades de Entrada y Salida.
E/S: Entrada / Salida.
Hardware: Son todos los componentes físicos que componen un computador.
Interrupciones: Una interrupción es un llamado forzoso a un procedimiento.
BIBLIOGRAFIA
Sistemas Operativos
Ann McHoes, Ida M. Flynn
ISBN-13: 9786074814859
eBook: 9786074817638
592 Páginas | 6ª Edición | © 2011
16