Administracin de Procesos SISTEMAS OPERATIVOS 2 /58 Tabla de contenido Kernel Descripcin y control de procesos Descripcin de procesos Control de procesos Bloque de control de procesos Modos de ejecucin
3 /58 KERNEL 4 /58 Estructura del Kern El kernell est conformado por 5 grandes subsistemas.
El planificador de procesos (sched). El administrador de memoria (mm). El sistema del archivo virtual (vfs). La interface de la red (net). La comunicacin inter-procesos (ipc).
5 /58 Descomposicin Conceptual 6 /58 DESCRIPCION Y CONTROL DE PROCESOS 7 /58 Requerimientos de un S.O en Procesos Intercalar la ejecucin de un conjunto de procesos para maximizar el uso del procesado para ofrecer tiempos de respuesta razonables. Asignar recursos a los procesos de conformidad a una poltica especfica (ejemplo prioridades), evitando el interbloqueo. Soporte a la comunicacin entre procesos y la creacin de procesos por parte del usuario. 8 /58 Proceso Tambin son llamados tareas. Puede ser trazado: Lista de la secuencia de instrucciones que ejecuta. Los procesos llevan a cabo tareas en el sistema operativo. Es un conjunto de instrucciones almacenados en el DD, se activan cuando se les asigna un espacio de direcciones. Es una entidad dinmica que cambia a medida que el procesador ejecuta las instrucciones. Un SO es multi-proceso, en el sentido que pueden ejecutarse varios procesos a la vez. Un SO es multi-proceso, en el sentido que puede correr en una mquina con varios procesadores. 9 /58 Estado de un Proceso Un proceso es una secuencia de instrucciones que se puede ejecutar en paralelo con otra secuencia de instrucciones. El procesado ejecuta las instrucciones
Traza de un proceso. El comportamiento de un proceso se se caracteriza por el listado de la secuencia de instrucciones que se ejecutan para dicho proceso. El comportamiento del procesador se puede caracterizar mostrando la forma en que se intercalan las trazas de dichos procesos. 10 /58 Ejemplo de Procesos en Memoria No hay memoria virtual Tres programas cargados en memoria. Cada proceso representa a un programa. Existe un programa que asigna el procesador de un proceso a otro. Cada proceso tiene un tiempo de ejecucin luego de lo cual ingresa el siguiente proceso 11 /58 Traza de los tres procesos
Invocacin a E/S 12 /58 Traza de tres procesos 100 direccin de inicio para el programa distribuidor (dispatcher)
Las reas sombreadas indican ejecucin del proceso dispatcher. La primera y tercera columna cuenta el ciclo de instruccin La segunda y cuarta columna muestra la direccin de la que se est ejecutando. 13 /58 14 /58 ESTADOS DE UN PROCESO 15 /58 Modelo de Procesos con Dos Estados El SO controla la ejecucin de los procesos (se necesita saber en qu estado se encuentra cada uno). Cada proceso puede tener dos estados: En ejecucin. No en ejecucin. Abajo se presenta el diagrama de transicin de estados. 16 /58 Cola de procesos (2 estados) 17 /58 Creacin de Procesos 1. Nuevo trabajo por lotes. Creacin de un nuevo trabajo.
2. Un nuevo usuario. El usuario entra al sistema iterativo.
3. Creado por el SO para dar un servicio. Ejemplo una impresin.
4. El proceso crea otro proceso. 18 /58 Terminacin de Procesos Instruccin Halt incluida en la tarea (bach). Solicitado por el usuario (salir de sesin). Terminacin normal. Salir del programa. Terminacin del padre. Solicitud del padre. Tiempo lmite excedido. No hay memoria disponible. Violacin de lmites. Error de proteccin Error aritmtico Fallo de E/S (mximo de intentos) Instruccin invalidad. Instruccin priviligeada. Violacin de memoria. 19 /58 Necesidad de nuevos estados No corriendo Preparado para ser ejecutado. Bloqueado Esperando por E/S
El despachador (dispatcher) puede no seleccionar el proceso que est en la cola ms tiempo por que puede estar bloqueado Modelo de Procesos con 5 Estados 21 /58 Modelo de Procesos con 5 Estados Corriendo (Running). Proceso en ejecucin. Preparado (Ready). Preparado para ser ejecutado, cuando se le de la oportunidad. Bloqueado (Blocked). Esperan hasta que ocurra un evento o suceso. Nuevo (New). Proceso nuevo pero no admitido por el sistema Terminado (Exit). Proceso excluido por el sistema, pero terminado 22 /58 Usando dos colas 23 /58 Varias de colas de bloqueados 24 /58 Procesos Suspendidos El modelo planteado de tres estados (listo, ejecucin y bloqueado) ayuda mucho, pero no es suficiente. Dado que para que un proceso se ejecute debe ser cargado en memoria completamente. Por lo que sera conveniente suspenderlos: El procesador es ms rpido que la E/S as que todos los procesos tendran que esperar la E/S. Intercambiar esos procesos al disco para liberar ms memoria. Dos nuevos estados: Bloqueado - suspendido. Listo - suspendido.
25 /58 Un estado suspendido 26 /58 Dos estados suspendidos 27 /58 Razones para suspender procesos Intercambio (swapping). El SO necesita liberar suficiente memoria RAM para cargar un nuevo proceso. Otra razon del SO. El SO puede un proceso que se sospecha causa un problema. Solicitud del usuario. Por tiempo. Se ejecuta con cierta frecuencia, entonces mientras no se usa se suspende. Solicitud del proceso padre. El padre desea suspenderlo para examinar o modificar el proceso o para coordinar con otros procesos.
28 /58 DESCRIPCION DE PROCESO 29 /58 En un entorno multiprogramado muchos procesos requieren y estn haciendo uso de recursos.
Qu informacin necesita el SO para controlar los procesos y administrar los recursos? Descripcin de Proceso 30 /58 Estructuras de Control del SO Para administrar todo lo que pasa en el sistema el SO construye y mantiene tablas de informacin de cada entidad que est administrando.
31 /58 Tablas de Memoria Se utiliza para administrar la memoria virtual y la memoria real. Asignacin de memoria principal a los procesos. Asignacin de memoria secundaria a los procesos. Atributos de proteccin para acceso a regiones de memoria compartida. Informacin necesaria para administrar la memoria virtual. 32 /58 Tablas de E/S Se utiliza para administrar los dispositivos y canales DES: Estado del DES: disponible o asignado. Estado de una operacin con el DES. Ubicacin en la memoria principal que ha sido usada como fuente o destino de una operacin de E/S 33 /58 Tabla de Archivos Existencia de archivos. Ubicacin en la memoria secundaria. Estado actual Atributos. A veces esta informacin es mantenida por el sistema de administracin de archivos (file- management system). 34 /58 Tabla de Procesos Permite administrar la informacin de cada proceso Donde est ubicado - proceso en memoria - imagen del proceso
Atributos necesarios para este administrador. Process ID Process state Location in memory 35 /58 Estructuras de Control Para que el SO administre los proceso debe de conocer:
Ubicacin de proceso.
Atributos.
36 /58 Ubicacin de los Procesos Proceso Imagen del Proces o Memoria RAM BCP Programas Programas Programas Variables locales Variables globales Constantes Pila Variables locales Variables globales Constantes Pila Variables locales Variables globales Constantes Pila user 37 /58 Atributos Bloque de Control de Proceso: Identificacin del proceso. Identificadores Informacin del estado del procesador. Registros Visibles para el usuario. Registro de control y de estado Punteros de pila Informacin de control del proceso. Informacin de planificacin y de estado Estructuracin de datos Comunicacin entre procesos Privilegios de los procesos Gestin de memoria Propiedad de los recursos y utilizacin 38 /58 BLOQUE DE CONTROL DE PROCESO 39 /58 Identificacin del proceso Identifiers Identificador del proceso Identificador del proceso que cre a este proceso (padre) Identificador del usuario. 40 /58 Informacin del estado del procesador Registros Visibles al usuario Un registro visible para el usuario es aquel que puede hacerse referencia por medio de un lenguaje de mquina que ejecuta el procesador. Normalmente, existen entre 8 a 32 de estos registros, aunque algunas implementaciones RISC tienen ms de 100. Registros de Control y de Estado. Son registros del procesador para controlar su funcionamiento: Contador de programa. Siguiente instruccin. Cdigos de condicin. Resultado de la operacin aritmtica ms reciente (signo, cero, acarreo, igual, desbordamiento) Informacin de estado. Habilitacin e inhabilitacin de interrupciones y el modo de ejecucin. PSW. Palabra de estado de programa. Cdigos de condicin. 41 /58 Palabra de estado de programa (PSW) La PSW o condicin de programa almacena informacin pertinente sobre el programa que este ejecutndose. Cdigos de condicin. Indicadores de habilitacin de traps Nivel de prioridad de interrupciones Modo previo Modo actual Pila de interrupciones Primera parte hecha (donde se qued) Traza pendiente (debug)
42 /58 Informacin del estado del procesador Punteros de Pila. Cada proceso tiene una o ms pilas FIFO 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. 43 /58 Informacin del control del procesador Informacin de Planificacin y de Estado Esta es la informacin que se necesita por el SO para ejecutar sus funciones de planificador: Estado del proceso. Define la disposicin del proceso para ser planificado para ejecutar (en ejecucin, listo, esperando, suspendido) Prioridad. Se puede usar con uno o ms campos para describir la prioridad de planificacin de los procesos. (pueden ser omisin, actual, la ms alta permitida) Informacin de planificacin. Depende del algoritmo de planificacin utilizado (tiempo de espera, tiempo de ejecucin) Eventos. Identidad del evento que el proceso esta esperando antes de reanudarse.
44 /58 Informacin del control del procesador Estructuracin de datos Un proceso puede estar enlazado con otros procesos en una cola, un anillo 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 (creador- creado) con otro proceso. El BCP puede contener punteros a otros proceso para dar soporte a estas estructuras. 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 BCP
45 /58 Informacin del control del procesador Privilegios de los proceso. A los procesos se les otorgan privilegios en trminos de la memoria a la que pueden acceder y el tipo de instrucciones que pueden ejecutar. Adems, tabin se pueden aplicar privilegios al uso de los servicios y utilidades del sistema. Gestin de memoria. Esta seccin puede incluir punteros a las tables de pginas y/o segmentos que describen la memoria virtual asignada. Propiedad de los recurso y utilizacin. Se pueden incluir los recurso controlados por el proceso, tales como los archivos abiertos. Puede ser el histrico de la utilizacin del procesador o de otros recursos. Informacin necesaria para el planificador.
46 /58 Imagen de un proceso en Memoria 47 /58 CONTROL DE PROCESOS 48 /58 Modos de Ejecucin Se divide en dos modos para proteger al SO y sus tablas de ser modificadas por el usuario.
Modo usuario Modo de menor privilegio. Los programas de usuario se ejecutan en este modo
Modo sistema, modo control o modo kernel Modo ms privilegiado. Kernel del SO
49 /58 Creacin de Procesos Cada vez que el SO crea un proceso se procede de la siguiente manera: Asignar un nico identificador del proceso. Asignar espacio para el proceso. Elementos de la imagen del proceso. Espacio de direcciones privado, de la pila Inicializar el BCP. Establecer los enlaces apropiados. Colocarlo en la lista de procesos listos o suspendidos. Crear otras estructuras de control. 50 /58 Cundo cambiar un proceso? Interrupcin del reloj. Se le acab el tiempo mximo de ejecucin permitido. Interrupcin de E/S. Inicio de E/S o fin de E/S Fallo de memoria. Cuando existe un fallo de pgina (pgina que no est en memoria) Cepos (Trap) Determina si el error es fatal. Se puede terminar el proceso, reanudar o suspenderlo Llamada del Supervisor Cuando un programa llama al SO para ejecutar un proceso Ejemplo abrir un archivo.
51 /58 Cambio de contexto Se ejecuta cada vez que el procesador cambia de proceso a ser ejecutado. El procesador hace lo siguiente: Salva el contexto del programa que se est ejecutando (contador de programa y otros registros). Modifica el BCP del proceso que se est ejecutando. Mueve el BCP de la cola apropiada (preparada, bloqueada) Selecciona otro proceso para su ejecucin. Asigna al contador de programa el valor de la direccin de comienzo del siguiente programa. El contexto corresponde al PSW, que es parte del BCP
52 /58 Cambio de contexto Salvar el contexto del procesador. Actualizar el BCP actual. en ejecucin otro estado Mover el BCP a la cola apropiada (otro estado) Seleccionar otro proceso para su ejecucin. Actualizar el BCP del nuevo otro estado en ejecucin Actualizar la estructuras de datos de gestin de memoria. (registros base) Restaurar el contexto del procesador a cmo lo dejo en el momento en que fue seleccionado la ltima vez, cargando los valores previos del contador de programa y otros registros 53 /58