El documento describe los principales requisitos de los sistemas operativos, incluyendo intercalar la ejecución de múltiples procesos, asignar recursos a los procesos, y dar soporte a la comunicación entre procesos. Explica conceptos como procesos, memoria principal, estados de procesos, y cómo el sistema operativo mantiene información sobre procesos, memoria, E/S y archivos en tablas de control.
4. Memoria principal Figura 3.1. Instantánea de un ejemplo de ejecución (Figura 3.3) en el ciclo de instrucción 13. Contador de programa Distribuidor Proceso A Proceso B Proceso C 12.000 8.000 5.000 100 0 8000 Contador de programa Proceso C Proceso B Dirección
5. (a) Traza del proceso A (b) Traza del proceso B (c) Traza del proceso C 5000 = Dirección de comienzo del programa del proceso A 8000 = Dirección de comienzo del programa del proceso B 12000 = Dirección de comienzo del programa del proceso C Figura 3.2. Trazas de los procesos de la Figura 3.1.
6. Fin de plazo Solicitud de E/S Fin de plazo Fin de plazo Fin de plazo 100 = Dirección de comienzo del programa distribuidor Las áreas sombreadas indican ejecución del proceso distribuidor; la primera y tercera columna cuentan los ciclos de instrucción; la segunda y cuarta columna muestran la dirección de la instrucción a ejecutar. Figura 3.3. Traza combinada de los procesos de la Figura 3.1.
7.
8. Proceso en estado de No Ejecución en una cola Entrar Salida Pausa Expedir Cola Proce- sador (b) Diagrama de colas
9.
10.
11.
12.
13.
14.
15. Ejecución Nuevo Listo Terminado Bloqueado Admitir Expedir Salir Fin del tiempo Ocurre suceso Espera suceso Figura 3.5. Modelo de procesos de cinco estados. Nuevo Listo Ejecución Terminado Bloqueado
16. Proceso A Proceso B Proceso C Distribuidor Ejecución Listo Bloqueado Figura 3.6. Estados de un proceso para la traza de la Figura 3.3.
17. Dos colas de bloqueados Admitir Expedir Cola de listos Salir Proce- sador Fin de plazo Ocurre suceso Cola de bloqueados Esperar suceso (a) Una sola cola de bloqueados
18. Admitir Cola de listos Expedir Proce- sador Salir Fin de plazo Esperar suceso 1 Esperar suceso 2 Esperar suceso n Cola del suceso 1 Cola del suceso 2 Cola del suceso n Ocurre suceso 1 Ocurre suceso 2 Ocurre suceso n (b) Varias colas de bloqueados
19.
20. Un estado de suspensión Nuevo Listo Ejecución Terminado Admitir Expedir Salir Fin de plazo Activar Esperar suceso Ocurre suceso Suspender Bloqueado Suspendido (a) Con un estado de suspensión Nuevo Listo Ejecución Terminado Suspendido Bloqueado
21. Dos estados de suspensión Nuevo Admitir Admitir Expedir Ejecución Salir Terminado Fin de plazo Esperar suceso suceso Ocurre Suspender Activar Ocurre suceso Suspender Activar Suspender Bloqueado (b) Con dos estados de suspensión Nuevo Listo/ suspendido Listo Ejecución Terminado Bloqueado/ suspendido Bloqueado
22. Razones para la suspensión de procesos Intercambio Otra razón del SO Solicitud de un usuario interactivo Temporización Solicitud del proceso padre El sistema operativo necesita liberar suficiente memoria principal para cargar un proceso que está listo para ejecutarse. El sistema operativo puede suspender a un proceso subordinado o de utilidad, o a un proceso que se sospecha que sea el causan te de un problema. Un usuario puede querer suspender la ejecución de un programa con fines de depuración o en conexión con el uso de un recurso. Un proceso puede ejecutarse periódicamente (por ejemplo, un proceso de contabilidad o de supervisión del sistema) y puede ser suspendido mientras espera el siguiente intervalo de tiempo. Un proceso padre puede querer suspender la ejecución de un descendiente para examinar o modificar el proceso suspendido o para coordinar la actividad de varios descendientes.
23. Memoria virtual Recursos del computador Memoria principal E/S E/S E/S Procesador Figura 3.9. Procesos y recursos (asignación de recursos en un instante de tiempo).
24.
25.
26.
27.
28.
29.
30. Memoria Dispositivos Archivos Procesos Tablas de memoria Tablas de E/S Tablas de archivo Proceso 1 Proceso 2 Proceso 3 Proceso 1 Proceso n Proceso n Imagen de proceso Tabla de procesos principal Imagen de proceso Figura 3.10. Estructura general de las tablas de control del sistema operativo.
31.
32.
33.
34.
35.
36.
37.
38.
39. Identificación del proceso Información de estado del procesador Información de control del proceso Identificación del proceso Información de estado del procesador Información de control del proceso Información de estado del procesador Información de control del proceso Bloque de control del proceso Pila de usuario Pila de usuario Pila de usuario Espacio privado de direcciones de usuario (programas, datos) Espacio privado de direcciones de usuario (programas, datos) Espacio privado de direcciones de usuario (programas, datos) Espacio de direcciones compartido Espacio de direcciones compartido Espacio de direcciones compartido Proceso 1 Proceso 2 Proceso n Figura 3.12. Procesos de usuario en memoria virtual. Identificación del proceso
40.
41. Registro EFLAGS del Pentium II ID = Marca de identificación DF = Marca de dirección VIP = Interrupción virtual pendiente IF = Marca de inhabilitación de interrupciones VIF = Marca de interrupción virtual TF = Marca de cepo AC = Comprobación de alineación SF = Marca de signo VM = Modo 8086 virtual ZF = Marca de cero RF = Marca de continuación AF = Marca de acarreo auxiliar NT = Marca de tarea anidada PF = Marca de paridad IOPL = Nivel de privilegio de E/S CF = Marca de acarreo OF = Marca de desbordamiento Figura 3.11. Registro EFLAGS del Pentium II.
42.
43.
44.
45.
46.
47.
48.
49. Identificación del proceso Información de estado del procesador Información de control del proceso Pila de usuario Espacio privado de direcciones de usuario (programas, datos) Espacio de direcciones compartido Pila del núcleo Figura 3.15. Imagen de un proceso: el sistema operativo se ejecuta dentro del proceso de usuario.
50.
51.
52. Estados de un proceso en UNIX Ejecución en modo de usuario Ejecutando en modo de usuario. Ejecución en modo del núcleo Ejecutando en modo de núcleo. Listo para ejecutar y en memoria Listo para ejecutar tan pronto como el núcleo lo planifique. Dormido y en memoria Incapaz de ejecutar hasta que se produzca un suceso; el pro- ceso está en memoria principal. Listo para ejecutar y descargado El proceso está listo para ejecutar, pero se debe cargar el pro- ceso en memoria principal antes de que el núcleo pueda pla- nificarlo para la ejecución. Dormido y descargado El proceso está esperando un suceso y ha sido expulsado al almacenamiento secundario. Expulsado El proceso retorna del modo del núcleo al modo de usuario, pero el núcleo lo expulsa y realiza un cambio de contexto para planificar otro proceso. Creado El proceso está recién creado y aún no está listo para ejecutar. Zombie El proceso ya no existe, pero deja un registro para que lo re- coja el proceso padre.
53. Figura 3.16. Diagrama de transición de estados de los procesos en UNIX. Expulsado Creado Ejecución en modo de usuario Ejecución en modo del núcleo Dormido en memoria Retorno al modo usuario Memoria suficiente Sin memoria suficiente (sólo sistema de intercambio) Descargar Cargar Expulsar Retornar Llamada al sistema, interrupción Volcer a planificar el proceso Interrupción, retorno de interrupción Terminar Dormir Despertar Descargar Despertar Expulsado Creado Ejecución en modo de usuario Ejecución en modo del núcleo Listo para ejecutar y en memoria Listo para ejecutar y descargado Zombie Dormido en memoria Dormido y descargado