Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3.2.2. PCB:
Bloque o registro de datos que contiene diversa información relacionada con un proceso concreto, incluyendo:
Estado del Proceso: En Ejecución, Bloqueado o Listo.
Contador del Programa: dirección de la siguiente instrucción a ser ejecutada por el proceso.
Registros de la CPU.
Información de Planificación de la CPU: prioridad del proceso, apuntadores a las colas de planificación y
otros parámetros de planificación.
Información de Administración de Memoria: registros límites y tablas de páginas.
Información Contable: cantidad de tiempo real y de la CPU utilizado,
límites de tiempo, números de cuenta y números de proceso o trabajo.
Información del Estado de la E-S: solicitudes de E-S pendientes, dispositivos de E-S
(como discos o unidades de cinta) asignados al proceso y una lista de archivos abiertos.
A A es Padre de B y C
B es Padre de D
C es Padre de E y F
B C
B y C son Hijos de A
D es Hijo de B
E y F son Hijos de C
E
D F
Contador de Programa
A
B Computadora que
multiprograma
Alternador de
Procesos C cuatro programas
en memoria
D
Planificador
• ACTIVIDADES DE LA CPU
Existen diferentes denominaciones para referirse a las actividades de la CPU:
– un Sistema Por Lotes ejecuta TRABAJOS.
– Un Sistema en Tiempo Compartido tiene TAREAS o PROGRAMAS DE USUARIO.
• En varios aspectos, estas actividades son similares, por lo que a todas se les llamará PROCESOS.
• ESTADO DE UN PROCESO
Está definido por la actividad actual del proceso. Puede ser de tres tipos:
1) BLOQUEADO:
2) EN EJECUCION:
3) LISTO:
Estado bloqueado
Suspensión inherente al problema: está listo para ser ejecutado pero no posee datos, se encuentra en espera de ellos. Cuando
un proceso se bloquea, lo hace porque desde el punto de vista lógico no puede continuar aunque la CPU esté ociosa. No se
puede ejecutar debido a la ocurrencia de algún evento externo.
Estado en ejecución
Utiliza la CPU en el instante dado.
Estado listo
Ejecutable, se detiene en forma temporal para que se ejecute otro proceso. En ese momento, no existe CPU disponible para
él. No puede ejecutarse porque la CPU ha sido asignada a otro proceso (CPU insuficiente).
TRANSICIONES DE ESTADO
De los tres estados posibles, pueden realizarse cuatro transiciones entre éstos:
1) El proceso se bloquea en espera de datos.
2) El planificador elige otro proceso pues decide que el proceso en ejecución ya ha sido ejecutado el tiempo
suficiente y es hora que otro proceso tenga tiempo de CPU.
3) El planificador elige este proceso. Los demás procesos han tenido su parte y es tiempo que el primer
proceso vuelva a ejecutarse.
4) Los datos están disponibles.
1.3
Bloqueado Listo
1.4
Nuevo Proceso
proceso terminado
1.3
Listo En Ejecución
La planificación del procesador se refiere a la manera de 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 no hay 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, el 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
pasó por los otros dos planificadores) es al que le toca ahora estar ejecutándose en la unidad central de procesamiento.
En adelante 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
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.
Planificación no apropiativa
Una planificación no apropiativa es aquella en que existe un reloj que lanza interrupciones periódicas 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.
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.
3.6. PLANIFICACIÓN DE LA CPU
La planificación de CPU es la base de los sistemas operativos multiprogramados. Al conmutar la CPU entre procesos, el
sistema operativo puede hacer más productivo al computador.
3.6.1. Conceptos Básicos
Las políticas de planificación intentan cubrir los siguientes objetivos:
- justicia. La política debe ser lo más justa posible con todo tipo de procesos, sin favorecer a unos y perjudicar a
otros.
- Máxima capacidad de ejecución. Debe dar un servicio aceptable para que todos los trabajos se realicen lo más
rápidamente posible. Esto se logra disminuyendo el número de cambios de procesos.
- Máximo número de usuarios interactivos. En los sistemas de tiempo compartido se tratará de que puedan estar
trabajando el mayor número de usuarios simultáneamente.
- Predecibilidad. La política de planificación debe concebirse de tal forma que en todo momento pueda saberse
cómo será su ejecución.
- Minimización de la sobrecarga.La computadora debe tener poca sobrecarga ya que ésta incide directamente sobre
el rendimiento final del sistema: a menor sobrecarga, mayor velocidad de proceso. Por ello, los cambios de contexto deben
minimizarse.
- Equilibrio en el uso de recursos. Para obtener un buen rendimiento en el uso de los recursos y que éstos estén
ocupados equitativamente el mayor tiempo posible.
- Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, éste debe ejecutarse mas
rápidamente.
Despachador
Uno de los componentes que interviene en la función de planificación de la CPU es el despachador (dispatcher). Este es el
módulo que cede el control de la CPU al proceso seleccionado por el planificador a corto plazo. Esta función implica:
Cambiar de contexto
Cambiar a modo de usuario.
Saltar al punto apropiado del programa del usuario para reiniciar ese programa.
El despachador debe ser lo más rápido posible, porque se invoca en cada conmutación de proceso.
MEDIDAS
Consideremos :
t: El tiempo que un proceso P necesita estar en ejecución para llevar a cabo su trabajo.
ti : Instante en que el usuario da la orden de ejecución del proceso.
tf : Instante en que el proceso termina su ejecución.
A partir de los dos valores anteriores , podemos establecer una relación que nos permite evaluar la actuación de la política
establecida en lo que se denomina índice de servicio (I).
I= t.
T
Este índice representa el tanto por uno de tiempo que el proceso está en ejecución respecto al tiempo de vida del mismo en
el sistema.
Si sólo existe un proceso ejecutándose en el sistema, según el valor del índice de servicio, podemos decir que:
- Cuando I sea próximo a la unidad, el proceso está limitado por proceso.
- Si I tiene un valor bajo próximo a 0, el proceso estará limitado por E/S.
Cuando existe más de un proceso en el sistema, se establecen medidas, pero con valores medios obtenidos al considerar el
conjunto de procesos presentes. Estas son:
Tiempo medio de servicio
Tiempo medio de espera
Eficiencia (indice medio de servicio).
Además de las anteriores, en la planificación del procesador se emplean otras dos medidas de interes:
- Tiempo del núcleo. Es el tiempo consumido por el núcleo del SO para tomar las decisiones de
planificación del procesador, donde se incluyen los tiempo de cambios de contexto.
- Tiempo de inactividad. Es el tiempo consumido cuando la cola de procesos listos está vacía y por tanto
no puede realizarse ningún trabajo productivo.
En esta política de planificación, el procesador ejecuta cada procesos hasta que termina; los procesos que entren el la cola de
procesos listos permanecerán colados en el orden en que lleguen hasta que les toque su ejecución, por ejemplo:
Los procesos cortos que entren en el sistema después de uno o varios largos, tendrán que esperar un periodo de tiempo
relativamente largo hasta su ejecución.
Las características de esta política son:
o No es apropiativa
o Es justa, aunque los procesos largos hacen esperar mucho a los cortos
o Es una política predecible
o El tiempo medio de servicio es muy variable en función del número de procesos y su duración
Procesador
A B C D E
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Unidades de tiempo
Ejemplo
Si llegan 5 procesos A,B,C,D y E cuyos tiempos de CPU son 26, 18, 24, 12 y 4 unidades de tiempo, se observa que el orden
de ejecución será E,D,B,C y A (4,12,18, 24 y 26 unidades de tiempo respectivamente). En la tabla siguiente se muestra en
que unidad de tiempo comienza a ejecutarse cada proceso y como todos comenzaron a esperar desde la unidad cero, se
obtiene el tiempo promedio de espera.
Proceso Espera desde Termina Tiempo de Espera
A 0 4 4
B 0 16 16
C 0 34 34
D 0 58 58
E 0 84 84
Tiempo promedio = (4 + 16 + 34 + 58 + 84 )/5 = 39 unidades.
Es decir, que dinámicamente el valor se va modificando y mejora un poco las deficiencias del algoritmo del trabajo más
corto primero.
Por política:
Una forma de asignar el turno de ejecución es por política, en la cual se establece algún reglamento específico que el
planificador debe obedecer. Por ejemplo, una política podría ser que todos los procesos reciban el mismo tiempo de uso de
CPU en cualquier momento.
Ejemplo
Esto significa, por ejemplo, que si existen 2 procesos y han recibido 20 unidades de tiempo cada uno (tiempo acumulado en
time slices de 5 unidades) y en este momento entra un tercer proceso, el planificador le dará inmediatamente el turno de
ejecución por 20 unidades de tiempo. Una vez que todos los procesos están 'parejos' en uso de CPU, se les aplica 'round
robin'.
Problemas de Concurrencia
En los sistemas de tiempo compartido (aquellos con varios usuarios, procesos, tareas, trabajos que reparten el uso de CPU
entre estos) se presentan muchos problemas debido a que los procesos compiten por los recursos del sistema. Imagine que
un proceso está escribiendo en la unidad de cinta y se le termina su turno de ejecución e inmediatamente después el proceso
elegido para ejecutarse comienza a escribir sobre la misma cinta.
El resultado es una cinta cuyo contenido es un desastre de datos mezclados. Así como la cinta, existen una multitud de
recursos cuyo acceso debe ser controlado para evitar los problemas de la concurrencia.
El sistema operativo debe ofrecer mecanismos para sincronizar la ejecución de procesos: semáforos, envío de mensajes,
'pipes', etc. Los semáforos son rutinas de software (que en su nivel más interno se auxilian del hardware) para lograr
exclusión mutua en el uso de recursos. Para entender este y otros mecanismos es importante entender los problemas
generales de concurrencia, los cuales se describen enseguida.
Ejemplo
El usuario A quiere hacer un depósito. El B un retiro. El usuario A comienza la transacción y lee su saldo que es 1000. En
ese momento pierde su turno de ejecución (y su saldo queda como 1000) y el usuario B inicia el retiro: lee el saldo que es
1000, retira 200 y almacena el nuevo saldo que es 800 y termina. El turno de ejecución regresa al usuario A el cual hace su
depósito de 100, quedando saldo = saldo + 100 = 1000 + 100 = 1100. Como se ve, el retiro se perdió y eso le encanta al
usuario A y B, pero al banquero no le convino esta transacción. El error pudo ser al revés, quedando el saldo final en 800.