IIC 2332 -- Sistemas Operativos
Apuntes 02
1er Semestre 1996
- Interrupciones: la clave para los sistemas operativos modernos
- Procesos: la abstracción principal
- Implicaciones de procesos
- Cuando se levanta el computador, encuentra el S.O. y carga en
memoria. Entonces el S.O. ejecuta y espera un evento.
- Un evento es normalente una interrupción de software o
hardware.
- ¶ Ejemplos: terminación de I/O, llamadas al sistema,
división por cero, alarmas del reloj, etc.
- Cuando recibe una interrupción, la CPU guarda su estado
(incluyendo la dirección de la instrucción interrumpida) y
transfiere el control a una posición fijada en la memoria, que es
la dirreción de la rutina de la interrupción.
- Después del procesamiento de la interrupción, el
S.O. recupera el estado guardado y la ejecución continua donde fue
interrumpida.
- ¶ ¿Qué pasa si se recibe una interrupción durante el
procesamiento de una interrupción? Se enmascaran las
interrupciones o se usa un esquema de prioridad.
- ¶ ¿Es la multiprogramación posible sin apoyo para
interrupciones? No. No hay nada para forzar un cambio.
- La multiprogramación implica que tenemos varios programas que
se ejecutan a la vez. La abstracción para un programa en
ejecución es un proceso (también llamado un
trabajo o una tarea).
- Un proceso no es un programa. Cada invocación de un programa
es un proceso distinto.
- ¶ Los procesos tienen estados. Los basicos: nuevo, listo, en
ejecución, en espera, finalizado.
- Se necesita el concepto del proceso para la multiprogramación.
Es un concepto de S.O. Las primeras máquinas y los PCs no
tenían procesos.
- ¶ El S.O. mantiene una estructura de datos, el process
control block, o PCB, para cada proceso. El PCB contiene
- Estado del proceso
- Contador del programa
- Registros de la CPU
- Información de administración de memoria
- Información de contabilidad
- Prioridad y otra información de scheduling
- Información de I/O (archivos abiertos, etc.)
- Campos de punteros para guardar el PCB en colas (queues)
- Planificación de procesos
- El S.O. mantiene una cola de procesos listos para la CPU.
- Se guarda los procesos esperando I/O en colas para dispositivos
distintos.
- Interrupciones (e.g., I/O, causa la manipulación de las colas
por los schedulers.
- Sistemas de batch tienen schedulers a largo plazo que controlan
qué trabajos entran al sistema, para tratar de proveer un mezcla
buena de procesos limitados por I/O (I/O bound) y por la CPU
(CPU-bound).
- Cambios de contexto
- La operación de guardar el estado de un proceso (en su PCB)
y recuperar el estado de otro es un cambio de contexto.
- ¶ ¿Cuán importante es la duración de los cambios de
contexto? El cambiar de contexto disminuje el rendimiento.
- ¶ ¿Qué pasa cuando los contextos son más
complejos(e.g., con administración de memoria más compleja)?
Los cambios toman más tiempo.
- Creación de procesos
- Los procesos pueden crear procesos nuevos. Los hijos pueden
obtener sus recursos (tiempo de la CPU, archivos, memoria, etc.)
del S.O. o de un subconjunto de los recursos del padre.
- ¶ ¿Cuál es la ventaja de esto? El uso es limitado; no
se puede sobrecargar el sistema con demasiados subprocesos. ¿La
desventaja? Potencialmente demasiado restringido; los procesos
toman más de lo que necesitan.
- ¶ Cuando un proceso es creado, el padre puede continuar o
esperar hasta que varios o todos de sus hijos terminan. Ejemplo:
mantener interacción y traer un archivo.
- ¶ El hijo puede ser un programa nuevo o un duplicado del
espacio de direcciones del padre. Ventaja: Comunicación
sencilla. Desventaja: overhead de copiar. Unix fork,
vfork, y execve.
Last edited March 19, 1996, by knabe@ing.puc.cl