El núcleo es interfaz entre el hardware y el resto del S. O.
Las rutinas que lo componen tienen que ser cortas y rápidas.
Funciones:
Manipulación
de interrupciones.
Gestión
de procesos (creación, planificación,
sincronización,
destrucción)
Soporte
otras actividades (E/S, gestión memoria,
contabilización).
Mantenimiento
tablas básicas (P.C.B., dispositivos de
memoria).
Módulos básicos:
Interrupt
handler.
Scheduler y
Dispatcher
Primitivas de
sincronización y comunicación.
2.- REPRESENTACIÓN DE PROCESOS
2.1.- Bloque de control de un proceso
(P.C.B.)
Estructura de datos que contiene información relativa a cada
proceso:
Identificador
del proceso.
Estado del
proceso.
Valores de
los registros de C.P.U. (contador de programa, etc.).
Datos para
gestión de recursos:
memoria
(tablas de páginas, etc.)
E/S (demandas,
tablas de dispositivos asignados, etc.)
procesador
(prioridades, punteros a colas, etc.).
Datos de
contabilización (tiempo de uso de procesador, etc.)
2.2.- Estados de un proceso
No existente
Existente
Suspendido
Activado
Espera
Preparado
Ejecución
Ejecución
Preparado Espera
3.- PRIMER NIVEL DE INTERRUPCION
Funciones:
- Determinar tipo de interrupción
- Activar módulos específicos
Operaciones:
- Guardar contexto "volátil" de proceso en curso
- Ejecutar chequeo para determinar tipo de interrupción
- Activar módulos específicos
3.1.- Determinación del tipo de interrupción
Modos de trabajo del procesador:
- Interrumpible
- No interrumpible
Estrategias para determinar el tipo de interrupción:
- skip chain (chequeo de indicadores)
- activación directa del módulo específico
- codificación de la interrupción
- combinación de los anteriores.
Estructura general para el interrupt handler:
I. H.
empieza
si procesador
no interrumpible
entonces poner I.H. en "preparado"
si no guardar
V.E. de proceso actual y pasarlo a "preparado"
mientras haya interrupciones pendientes
seleccionar siguiente interrupción
determinar su tipo
llamar a módulo específico
activar dispatcher
termina
4.- DISPATCHER Y SCHEDULER
Dispatcher: Módulo del núcleo encargado de asignar C.P.U. al
proceso
que está en cabecera de la cola de proceso en estado preparado.
Objeto: Reponer V.E. y activar proceso.
Scheduler: Encargado de la selección del siguiente proceso la hace
el módulo de planificación (también llamado low level scheduler).
Parámetros de planificación:
- índice de ocupación de C.P.U. (a maximizar)
I = tocup./ (tocup. +
tdesocup)
- throughput (a maximizar)
T = nº jobs acabados / t
- turnaround time. Para s.
no interactiv. (a minimizar)
tt = tfinal – tinicio
- waiting time (a
minimizar)
wi = sumatorio tpreparadoi
- reponse time. para s.interactivos (a minimizar)
ri = t1ºrespuesta - tinicio
SO. Tema 3 Trasp. Nº 7
Estrategias de selección:
- No preentivas:
- F.C.F.S. (FIFO)
- S.J.N. (SJF)
- H.R.N. (Brinch Hansen)
prior. = (tesp+ tserv)/tser
- Prioridades numéricas
- Deadline (t >> ---> Prior >>; Retardar tiempo
límite)
- Preentivas:
- R.R.
- Colas multinivel realimentadas
- S.R.T.
Técnicas de evaluación de algoritmos:
- Evaluación analítica (modelo determinista y modelo de colas)
- Simulación
- Instrumentación
Ejecución
Preparado Espera
Ejecución
Preparado Espera
5.- EJEMPLO: Esquema del núcleo de UNIX
Algoritmo de planificación de C.P.U.
Dos modos, separados por un valor umbral: núcleo y usuario. El
modo
núcleo es de máxima prioridad.
- modo núcleo: Esquema no preentivo, de colas multinivel
- modo usuario: Esquema preentivo, mediante quantum, de colas
multinivel.
Actualización de prioridad al salir de C.P.U. o por activación de
la
interrupción de reloj.
Posibilidad de fijar externamente la prioridad de un proceso
mediante la
orden nice.
No hay comentarios:
Publicar un comentario