Chapter 3 2 Requerimientos de un Sistema Operativo Intercalar la ejecucin de multiples procesos para maximizar la utilizacin del procesador ofreciendo a la vez un tiempo de respuesta razonable Asignar los recursos a los procesos Dar soporte a la comunicacin entre procesos y a la creacin de procesos por parte del usuario 3 Conceptos Una computadora consiste en una coleccin de recursos de hardware Las aplicaciones se desarrollan para realizar una tarea determinada Es Ineficiente que las aplicaciones sean escritas directamente para un hardware dado. Un Sistema Operativo provee un uso adecuado de los recursos, seguridad, y una interfaz consistente con las aplicaciones. Un SO provee una representacin abstracta y uniforme del los recursos que pueden ser requeridos y accedidos por las aplicaciones 4 Control de ejecucin de Aplicaciones Los Recursos pueden estar disponibles a multiples aplicaciones El Procesador es compartido entre multiples aplicaciones El procesador y los dispositivos I/O pueden ser usados eficientemente 5 Proceso Un programa en ejecucin Una instancia de un programa en ejecucin Una entidad que puede ser asignada y ejecutada en un procesador Una unidad de actividad caracterizada por la ejecucin de una secuencia de instrucciones, un estado actual, y un conjunto asociado de instrucciones de sistema 6 Elementos de un Proceso Identificador Estado Prioridad Program counter Punteros a Memoria Un contexto Informacin de estado de I/O Informacin de contabilidad 7 Bloque de Control de Proceso Contiene los elementos del proceso Creado y administrado por el sistema operativo Permite la coordinacin y la cooperacin entre procesos 8 Process Control Block Identifier Figure 3.1 Simplified Process Control Block State Priority Program counter Memory pointers Context data I/O status information Accounting information 9 Traza de un Proceso Secuencia de instrucciones que se ejecutan para dicho proceso El comportamiento del procesador puede caracterizarse mostrando la forma en que se intercalan las trazas de varios procesos El despachador intercambia el procesador entre un proceso y otro 10 Ejemplo de ejecucin Main Memory Address Dispatcher Process A Process B Process C Program Counter 0 100 5000 8000 8000 12000 Figure 3.2 Snapshot of Example Execution (Figure 3.4) at Instruction Cycle 13 11 Traza de un Proceso 12 13 Modelo de procesos con dos estados un proceso puede estar en uno de estos dos estados Ejecucin (Running) No-Ejecucin (Not-running) 14 Cola de procesos en No ejecucin La cola es una lista FIFO, (First-in, First-Out) Cada bloque de la cola representa a un proceso El comportamiento del despachador se puede describir en trminos de un diagrama de colas El procesador opera segn un turno rotatorio (round-robin) 15 Creacin de un proceso en un entorno de trabajo por lotes, un proceso se crea como respuesta a la remisin de un trabajo. En un entorno interactivo, se crea un proceso cuando un nuevo usuario intenta conectarse el sistema operativo crea un proceso para dar servicio a una aplicacin sin que el usuario tenga que esperar, ej. imprimir un proceso puede originar la creacin de otro proceso (process spawning), ej. servidor de archivos puede crear un nuevo proceso por cada solicitud que reciba 16 Terminacin normal El proceso ejecuta una llamada a un servicio del SO que indica que ha terminado de ejecutar
Tiempo limite excedido El proceso se ha ejecutado mas que el limite de total especificado. Hay varias posibilidades para la clase de tiempo que se mide. Entre stas se incluyen el tiempo total transcurrido (tiempo de reloj), el tiempo que se ha estado ejecutando y, en el caso de un proceso interactivo, el tiempo transcurrido desde que el usuario real realiz su ltima entrada de datos
No hay memoria disponible El proceso necesita ms memoria de la que el sistema le puede proporcionar
Violacin de limites El proceso trata de acceder a una posicin de memoria a la que no le est permitido acceder
Error de proteccin El proceso intenta utilizar un recurso o un archivo que no le est permitido utilizar, o trata de utilizarlo de forma incorrecta, como escribir en un archivo que es solo de lectura.
Error Aritmtico El proceso intenta hacer un clculo prohibido, como una divisin por cero, o trata de almacenar un nmero mayor del que el hardware acepta. Terminacin de un proceso 17 Terminacin de un proceso Tiempo mx de espera rebasado El proceso ha esperado ms all del tiempo mximo especificado para que se produzca cierto suceso.
Fallo de E/S Se produce un error en la entrada o la salida, tal como la incapacidad de encontrar un archivo, un fallo de r/w despus de un nmero mximo de intentos (cuando, por ejemplo, hay un regin defectuosa en una cinta), o una operacin ilegal (como intentar leer de una impresora)
Instruccin invlida El proceso intenta ejecutar una instruccin inexistente (a menudo como resultado de un salto a una zona de datos para intentar ejecutar los datos).
Instruccin privilegiada El proceso intenta usar una instruccin reservada para el sistema operativo
Mal uso de los datos Un elemento de dato es de un tipo equivocado o no est inicializado.
Intervencin del oper o del SO Por alguna razn el operador o el sistema operativo termina con el proceso (por ejemplo, si existe un interbloqueo).
Terminacin del padre Cuando un proceso padre finaliza, el sistema operativo puede disearse para terminar automticamente con todos sus descendientes
Solicitud del padre Un proceso padre tiene normalmente la autoridad de terminar con cualquiera de sus descendientes 18 Limitaciones del modelo No-Ejecucin Listos para ejecutar Bloqueados Esperando que termine una operacin I/O El despachador podra no seleccionar el proceso que est en el extremo ms antiguo de la cola, porque este podra estar bloqueado El despachador tendra que recorrer la lista buscando el proceso que este no bloqueado 19 Modelo de cinco estados Ejecucin (Running) Listo (Ready) Bloqueado (Blocked) Nuevo (New) Terminado (Exit) 20 Modelo de cinco estados 21 Process States 22 Utilizacin de dos colas Cuando se produce un suceso, el so debe recorrer toda la cola de Bloqueados buscando aquellos procesos que esperan al suceso 23 Multiples colas de Bloqueados Event 1 Wait Event 2 Wait Event n Wait Dispatch Release Ready Queue Admit Processor Timeout Event 1 Queue Event 1 Occurs Event 2 Occurs Event n Occurs Event 2 Queue Event n Queue (b) Multiple blocked queues 24 Procesos suspendidos El procesador es tan rpido comparado con la I/O que todos los procesos en memoria podran estar bloqueados El intercambio (Swap) de estos procesos a disco podra liberar memoria para otro proceso o para crear uno nuevo El estado bloqueado se transforma a suspendido cuando el proceso est en disco 25 Un estado suspendido 26 Un estado suspendido Todos los procesos que fueron suspendidos estaban en el estado Bloqueado Son necesarios dos estados nuevos: Bloqueado y suspendido: El proceso est en disco esperando un suceso. Listo y suspendido: El proceso est en disco pero est disponible para su ejecucin tan pronto como se cargue en la memoria principal. 27 Two Suspend States 28 Razones para suspender un proceso Intercambio El sistema operativo necesita liberar suficiente memoria principal para cargar un proceso que est listo para ejecutarse
Otra razn del SO El sistema operativo puede suspender un proceso de fondo, de utilidad o cualquier proceso que se sospecha sea el causante de un problema
Solicitud de un usuario Un usuario puede querer suspender la ejecucin de un programa con fines de depuracin o en conexin con el uso de un recurso
Por tiempo Un proceso puede ejecutarse peridicamente (por ejemplo, un proceso de contabilidad o de supervisin del sistema) y puede ser suspendido mientras espera el siguiente intervalo de tiempo
Solicitud del proceso padre Un proceso padre puede querer suspender a ejecucin de un proceso padre descendiente para examinar o modificar el proceso suspendido o para coordinar la actividad de varios descendientes 29 Procesos y Recursos P1 est ejecutndose; una parte del proceso est en memoria principal; tiene el control de dos dispositivos de E/S P2 tambin est en memoria principal, pero est bloqueado esperando al dispositivo de E/S que est asignado a P1 El proceso Pn ha sido descargado a disco y por tanto, est suspendido 30 Estructuras de Control del SO Informacin sobre el estado actual de cada proceso y de cada recurso El SO construye y mantiene tablas de informacin sobre cada entidad que est administrando Tablas: de memoria, de E/S, de archivos y de procesos 31 Tablas de Memoria La asignacin de memoria principal a los procesos La asignacin de memoria secundaria a los procesos Atributos de proteccin de segmentos de memoria principal o virtual tales como qu procesos pueden acceder a ciertas regiones compartidas de memoria Informacin necesaria para gestionar la memoria virtual 32 Tablas de E/S E/S puede estar disponible o estar asignado a un proceso Estado de una operacin de E/S en curso La posicin de memoria principal que se est utilizando como origen o destino de una transferencia de E/S 33 Tablas de Archivos Existencia de los archivos Su posicin en la memoria secundaria Su estado actual Otros atributos Utilizada por un sistema de gestin de archivos 34 Tabla de Procesos Dnde est ubicado el proceso Atributos del proceso Programa Datos Stack 35 Imgen del Proceso Elementos Tpicos de una Imagen de Proceso
Datos de Usuario La parte modificable del espacio de usuario. Puede guardar datos del programa, una zona para una pila del usuario y programas que pueden modificarse. Programa de Usuario El programa a ejecutar. Pila del Sistema Cada proceso tiene una o ms pilas asociadas a l. Una pila se utiliza para almacenar los parmetros y las direcciones de retorno. Bloque de Control de Proceso Informacin necesaria para que el sistema operativo controle al proceso 36 Memory Devices Files Processes Process 1 Memory Tables Process Image Process 1 Process Image Process n I/O Tables File Tables Figure 3.11 General Structure of Operating System Control Tables Primary Process Table Process 2 Process 3 Process n 37 Bloque de Control de Procesos Identificacin del Proceso Identificadores Los identificadores numricos que se pueden guardar en el bloque de control de proceso incluyen: Identificador de este proceso Identificador del proceso que cre a este proceso (el proceso padre) Identificador del usuario 38 Bloque de Control de Procesos Informacin de Estado del Procesador Registros Visibles para el Usuario Un registro visible para el usuario es aqul al que puede hacerse referencia por medio del lenguaje mquina que ejecuta el procesador. Normalmente, existen de 8 a 32 de estos registros, aunque algunas implementaciones RISC tienen ms de 100. 39 Bloque de Control de Procesos Informacin de Estado del Procesador Registros de Control y de Estado Hay varios registros del procesador que se emplean para controlar su funcionamiento. Entre estos se incluyen: Program counter: Contiene la direccin de la prxima instruccin a ser tratada Cdigos de condicin: Muestran el resultado de la operacin aritmtica o lgica ms reciente (signo, cero, acarreo, igualdad, desbordamiento). Informacin de estado: incluye los indicadores de habilitacin o inhabilitacin de interrupciones y el modo de ejecucin 40 Bloque de Control de Procesos Informacin de Estado del Procesador Stack Pointers Cada proceso tiene una o ms pilas LIFO del sistema asociadas. Las pilas se utilizan para almacenar los parmetros y las direcciones de retorno de los procedimientos y de las llamadas al sistema. El puntero de pila siempre apunta a la cima de la pila. 41 Bloque de Control de Procesos Informacin de Control del Proceso Informacin de Planificacin y de Estado Esta es la informacin que se necesita por el sistema operativo para llevar a cabo sus funciones de planificacin. Los elementos tpicos de esta informacin son los siguientes: Estado del proceso: Define la disposicin del proceso para ser planificado para ejecutar (en ejecucin, listo, esperando, detenido). Prioridad: Se puede usar uno o ms campos para describir la prioridad de planificacin de los procesos. En algunos sistemas se necesitan varios valores (por omisin, actual, la ms alta permitida). I nformacin de planificacin: Esta depender del algoritmo de planificacin utilizado. Como ejemplos se tienen la cantidad de tiempo que el proceso ha estado esperando y la cantidad de tiempo que el proceso ejecut la ltima vez. Suceso: La identidad del suceso que el proceso est esperando antes de poder reanudarse. 42 Bloque de Control de Procesos Informacin de Control del Proceso Estructuracin de Datos Un proceso puede estar enlazado con otros procesos en una cola o alguna otra estructura. Por ejemplo todos los procesos que estn en estado de espera de un nivel determinado de prioridad pueden estar enlazados en una cola. Un proceso puede mostrar una relacin padre- hijo con otro proceso. El BCP puede contener punteros a otros procesos para dar soporte a estas estructuras.
43 Bloque de Control de Procesos Informacin de Control del Proceso Comunicacin entre Procesos Puede haber varios indicadores, seales y mensajes asociados con la comunicacin entre dos procesos independientes. Una parte de esta informacin o toda ella se puede guardar en el bloque de control de proceso. Privilegios de los procesos A los procesos se es otorgan privilegios en trminos de la memoria a la que pueden acceder y el tipo de instrucciones que pueden ejecutar. Adems, tambin se pueden aplicar privilegios al uso de los servicios y utilidades del sistema.
44 Bloque de Control de Procesos Informacin de Control del Proceso Gestin de Memoria Esta seccin puede incluir punteros a las tablas de pginas y/o segmentos que describen la memoria virtual asignada al proceso. Propiedad de los Recursos y Utilizacin Se pueden indicar los recursos controlados por el proceso, tales como los archivos abiertos. Tambin se puede incluir un histrico de la utilizacin del procesador o de otros recursos; esta informacin puede ser necesaria para el planificador
45 Control de Procesos Modos de ejecucin Modo de usuario modo menos privilegiado los programas de usuario ejecutan normalmente en ese modo Modo de sistema, control, o kernel modo ms privilegiado Kernel del sistema operativo 46 Creacin de Procesos Asigna un nico identificador al nuevo proceso Asignar espacio para el proceso (imagen) Inicializar el bloque de control del proceso Establecer los enlaces apropiados Por ejemplo, si el sistema operativo mantiene cada cola de planificacin como una lista enlazada, entonces el proceso nuevo se debe poner en la cola de Listos o de Listos y suspendidos Crear o ampliar otras estructuras de datos Ej: el sistema operativo puede mantener un archivo de contabilidad
47 Cambio de Proceso Cundo cambiar de proceso:
Interrupcin de reloj: Si el SO determina que el proceso que est en ejecucin, se ha estado ejecutando durante la fraccin mxima de tiempo permitida, el proceso debe pasar al estado Listo y se debe expedir otro proceso
Interrupcin de E/S: Si la accin constituye un suceso que estn esperando uno o ms procesos, entonces el SO traslada todos los procesos bloqueados correspondientes al estado Listo o Listo suspendido
Fallo de memoria: una referencia a una direccin de memoria virtual no est en memoria principal. El SO puede llevar a cabo un cambio de contexto para reanudar la ejecucin de otro proceso; el proceso que cometi el fallo de memoria se pasa a estado Bloqueado. 48 Cambio de Proceso Trap Error o excepcin Si es fatal puede causar que el proceso pase al estado terminado Llamada al sistema Ej: abrir un archivo. El proceso de usuario pasa al estado suspendido 49 Cambio de Estado de los Procesos Salvar el contexto del procesador, incluyendo el contador de programa y otros registros Actualizar el bloque de control del proceso que estaba en estado de Ejecucin Mover el bloque de control del proceso a la cola apropiada Listos, Bloqueados, Listos y suspendidos Seleccionar otro proceso para ejecucin
50 Cambio de Estado de los Procesos Actualizar el bloque de control del proceso seleccionado Actualizar las estructuras de datos de gestin de memoria Restaurar el contexto del procesador a aquel que exista en el momento en el que el proceso seleccionado dej por ltima vez el estado de Ejecucin 51 Funciones Bsicas del Ncleo de un Sistema Operativo Gestin de Procesos Creacin y terminacin de los procesos Planificacin y expedicin de los procesos Cambio de procesos Sincronizacin de procesos y soporte para la comunicacin entre procesos Gestin de los bloques de control de procesos Gestin de memoria Asignacin de espacios de direcciones a los procesos Intercambio Gestin de pginas y segmentos Gestin de E/S Gestin de buffers Asignacin de canales de E/S y dispositivos a los procesos Funciones de Soporte Tratamiento de interrupciones Contabilidad Supervisin 52 Ejecucin del sistema operativo Ncleo fuera de todo proceso Ejecucin del ncleo fuera de cualquier proceso El cdigo del sistema operativo se ejecuta como una entidad separada que opera en modo privilegiado Ejecucin dentro de los procesos de usuario SO en el contexto de un proceso de usuario (coleccin de rutinas que el usuario llama para llevar a cabo varias funciones y que son ejecutadas dentro del entorno del proceso de usuario) El proceso se ejecuta en modo privilegiado cuando ejecuta cdigo del SO 53 P 1 P 2 P n Kernel (a) Separate kernel P 1 P 2 P n OS 1 OS k (c) OS functions execute as separate processes Figure 3.15 Relationship Between Operating System and User Processes OS Func- tions OS Func- tions OS Func- tions P 1 P 2 P n Process Switching Functions Process Switching Functions (b) OS functions execute within user processes 54 55 Ejecucin del sistema operativo Sistema operativo basado en procesos implementacin del sistema operativo como una coleccin de procesos del sistema til en un entorno de multiprocesador o de varias computadoras 56 UNIX SVR4 Process Management Todos los procesos del sistema, son creados por rdenes de programas del usuario excepto el proceso 0 (proceso de intercambio) y 1(Init).
OS Func- tions OS Func- tions OS Func- tions P 1 P 2 P n Process Switching Functions (b) OS functions execute within user processes 57 UNIX Process States 58 UNIX Process Image 59