3. Objetivo de Aprendizaje
El estudiante comprenderá el
funcionamiento de los sistemas
operativos centralizados para lograr
un uso más eficiente de los mismos.
4. Unidad 3. Administracion del Procesador
3. 1. Planeación de Trabajos (Job scheduling).
3.2 Conceptos Básicos.
3.3 Tipos de Planeación
3.3.1 First in First Out (FIFO)
3. 3. 2. Round Robín (rr) o carrusel
3. 3. 3. Shortest Job First (sjf)
3.3.4 Shortest Remaining Time (str)
3. 3. 5. Highest Response Ratio Next (hnr)
3. 4. Multiprocesamiento
3. 5. Paralelismo
3. 6. Organización del Multiprocesador
3. 7. Sistema Operativo de Multiprocesadores
5. Unidad 3.Administracion del Procesador
3. 1. Planeación de Trabajos (Job scheduling).
Cuando hay más de un proceso que está en condiciones de
ejecutarse en la CPU, se debe escoger alguno. El encargado de
tomar esa decisión es el planificador o scheduler, y el algoritmo que
usa se llama algoritmo de planificación. (Scheduler = planificación)
Posibles objetivos (algunos de ellos contradictorios) del algoritmo
de planificación son:
6. Justicia: Asegurarse que todos los procesos tengan su turno de CPU.
Eficiencia: Mantener la CPU ocupada todo el tiempo.
Tiempo de respuesta: Minimizar el tiempo de respuesta de los
usuarios interactivos.
7. 3.2 Conceptos Básicos.
Un planificador de tareas es una aplicación de software
empresarial que se encarga de las ejecuciones de fondo sin
vigilancia, comúnmente conocido por razones históricas como“el
procesamiento por lotes”.
Que es un procesamiento por lotes?
Es la ejecución de una serie de programas.
Hay muchos conceptos que son centrales para la aplicación casi
todos los trabajos
Planificador y que son ampliamente reconocidos con variaciones
mínimas.
8. 3. 3. Tipos de Planeaciòn
•Planeaciòn a Plazo Fijo
•Planificación Garantizada
•Planificación del Primero en Entrar Primero en Salir (FIFO)
•Planificación de Asignación en Rueda (RR: Round Robin)
•Tamaño del Cuanto o Quantum
•Planificación del Trabajo Más Corto Primero (SJF)
•Planificación del Tiempo Restante Más Corto (SRT)
•Planificación el Siguiente con Relación de Respuesta Máxima
(HRN
9. •Planificación por Prioridad
•Colas de Retroalimentación de Niveles Múltiples
•Política Versus Mecanismo de Planificación
•Planificación de Dos Niveles
10. 3. 3. 1. First in First Out (FIFO)
El primero que llega se atiende primero (FIFO) por sus siglas en
inglés. Es un algoritmo que no usa expropiación, y que consiste en
atender a los procesos por estricto orden de llegada a la cola
READY. Cada proceso se ejecuta hasta que termina, o hasta que
hace una llamada bloqueante (de I/O), o sea, ejecuta su fase de
CPU completa. La gracia es que se trata de un algoritmo muy
simple: la cola READY se maneja como una simple cola FIFO. El
problema es que el algoritmo es bastante malo.
11. Tiempo de espera: Consideremos que los procesos P1, P2 y P3 están
LISTOS para ejecutar su siguiente fase de CPU, cuya duración será de
24, 3 y 3 milisegundos, respectivamente.
12. 3. 3. 2. Round Robín (rr) o carrusel
Volviendo a FIFO, una forma obvia de mejorarlo es agregando
expropiación de manera que cada proceso no retenga la CPU por
más de un quantum o tajada de tiempo predefinida. FIFO con
tajada de tiempo se conoce como round-robin, y se implementa
igual que FIFO, sólo que antes de cederle la CPU a un proceso se
echa a andar el timer para que provoque una interrupción dentro
de un quantum de tiempo. El proceso ejecuta hasta que haga una
llamada bloqueante o hasta que use toda su tajada se tiempo. En
cualquiera de los dos casos, la CPU se entrega al siguiente en la
cola READY.
13. 3. 3. 3. Shortest Job First (sjf)
El Trabajo más Corto Primero SJF por sus siglas en
inglés, supongamos que tenemos tres procesos cuyas próximas
fases de CPU son de a, b y c milisegundos de duración. Si
ejecutan en ese orden, el tiempo medio de espera es: (0 + a + (a
+ b))/3 = (2a+b)/3 O sea, el primer proceso que se ejecute es el
que tiene mayor incidencia en el tiempo medio, y el último, tiene
incidencia nula. En conclusión, el tiempo medio se minimiza si se
ejecuta siempre el proceso con la menor próxima fase de CPU
que esté LISTO.
14. Además, es una buena manera de prevenir el efecto convoy. Lo malo
es que para que esto funcione, hay que adivinar el futuro, pues se
requiere conocer la duración de la próxima fase de CPU de cada
proceso.
15. Hay muchos criterios para definir la prioridad.
Ejemplos:
•Según categoría del usuario.
•Según tipo de proceso: sistema, interactivo, o por lotes; o
bien, intensivo en CPU o intensivo en I/O.
•Según cuanto hayan ocupado la CPU hasta el momento
•Para evitar que un proceso de baja prioridad sea postergado en
demasía, aumentar prioridad mientras más tiempo lleve
esperando: envejecimiento (aging).
•Para evitar que un proceso de alta prioridad ejecute por
demasiado tiempo, se le puede ir bajando la prioridad.
16. 3.3.4 Shortest Remaining Time (str)
Esta disciplina elige siempre al proceso que le queda menos
tiempo de ejecución estimado para completar su ejecución; de
esta forma aunque un proceso requiera mucho tiempo de
ejecución, a medida que se va ejecutando iría avanzando en la
lista de procesos en estado listo hasta llegar a ser el primero. Para
realizar esta elección, es necesario actualizar el PCB de los
procesos a medida que se le asigna tiempo de servicio, lo que
supone una mayor sobrecarga adicional.
17. Es una disciplina apropiativa ya que a un proceso activo se le puede
retirar la CPU si llega a la lista de procesos en estado listo otro con un
tiempo restante de ejecución estimado menor.
18. 3. 3. 4. Shortest Remaining Time (str)
Planificación del Tiempo Restante Más Corto (STR), es la
contraparte apropiativa del SJF:
Es útil en sistemas de tiempo compartido.
El proceso con el tiempo estimado de ejecución menor para
analizar es el siguiente en ser ejecutado.
Un proceso en ejecución puede ser apropiado por un nuevo
proceso con un tiempo estimado de ejecución menor.
19. La apropiación de un proceso a punto de terminar por otro de menor
duración recién llegado podría significar un mayor tiempo de cambio
de contexto (administración del procesador) que el tiempo de
finalización del primero.
20. 3. 3. 5. Highest Response Ratio Next (hnr)
Planificación el Siguiente con Relación de Respuesta Máxima
(HRN), corrige algunas de las debilidades del SJF, tales como el
exceso de perjuicio hacia los procesos (trabajos) largos y el exceso
de favoritismo hacia los nuevos trabajos cortos.
Es una disciplina no apropiativa.
La prioridad de cada proceso está en función no sólo del tiempo
de servicio del trabajo, sino que también influye la cantidad de
tiempo que el trabajo ha estado esperando ser servido.
Cuando un proceso ha obtenido la cpu, corre hasta terminar.
21. Las prioridades, que son dinámicas, se calculan según la siguiente
fórmula, donde pr es la “prioridad”, te es el “tiempo de espera” y ts
es el “tiempo de servicio”:
22. 3. 4. Multiprocesamiento
Es una tendencia significativa en el campo de la computación.
Consiste en configurar un sistema de computación con varios
procesadores. No es un enfoque nuevo pero sí posee grandes
perspectivas en función del desarrollo de los microprocesadores. Se
podrían concebir sistemas construidos por cientos o miles de
microprocesadores.
23. Confiabilidad
Si un procesador falla, los restantes continúan operando, lo cual no
es automático y requiere de un diseño cuidadoso.
Un procesador que falla habrá de informarlo a los demás de alguna
manera, para que se hagan cargo de su trabajo.
Los procesadores en funcionamiento deben poder detectar el fallo de
un procesador determinado.
24. 3. 5. Paralelismo
La mayoría de los sistemas de multiprocesamiento tienen como
meta principal el incremento de la capacidad de ejecución. La
programación sigue siendo esencialmente secuencial y
generalmente no se explota la concurrencia.
Las principales razones son las siguientes:
•Las personas piensan en forma secuencial.
•Ningún lenguaje humano proporciona la expresión adecuada de
paralelismo, pero existen lenguajes de computación con soporte
de concurrencia (por ejemplo, Ada, Pascal Concurrente, etc.).
25. •Ni el multiprocesamiento ha sido usado con amplitud para explotar
el paralelismo.
•El hardware tradicional del computador está orientado hacia la
operación secuencial.
26. 3. 6. Organización del Multiprocesador
El problema clave es determinar los medios de conexión de los
procesadores múltiples y los procesadores de Entrada / Salida a las
unidades de almacenamiento.
Los multiprocesadores se caracterizan por los siguientes aspectos:
Un multiprocesador contiene dos o más procesadores con
capacidades aproximadamente comparables.
Todos los procesadores comparten el acceso a un almacenamiento
común y a canales de Entrada / Salida, unidades de control y
dispositivos.
27. Todo está controlado por un Sistema Operativo que proporciona
interacción entre procesadores y sus programas en los niveles de
trabajo, tarea, paso, archivo y elementos de datos.
28. Las organizaciones más comunes son las siguientes:
• Tiempo compartido o bus común (conductor común).
•Matriz de barras cruzadas e interruptores.
•Almacenamiento de interconexión múltiple.
29. 3. 7. Sistema Operativo de Multiprocesadores
Las capacidades funcionales de los Sistema Operativo de
multiprogramación y de multiprocesadores incluyen lo siguiente:
Asignación y administración de recursos.
Protección de tablas y conjuntos de datos.
Prevención contra el interbloqueo del sistema.
Terminación anormal.
Equilibrio de cargas de Entrada / Salida.
Equilibrio de carga del procesador.
Reconfiguración.