Descripción y control de procesos Requerimientos principales de un sistema operativo • Intercalar la ejecución de varios procesos para maximizar el uso del procesador proporcionando un tiempo de respuesta razonable • Asignar recursos a procesos • Soportar comunicación entre procesos y la creación de procesos por los usuarios 1 Proceso • También es llamado tarea • Ejecución de un programa individual • Puede ser rastreado – enlistar la secuencia de instrucciones que se ejecutan 2 3 Modelo de procesos de dos estados • Los procesos pueden estar en dos estados – Corriendo – No corriendo Cola de procesos que no están en ejecución 4 Creación de procesos • Envío de una tarea • El usuario entra al sistema (login) • Creado para proveer un servicio tal y como el de la impresión • Un proceso crea otro proceso Terminación de procesos • Una tarea envía la instrucción de detener proceso (halt) • El usuario sale del sistema (logoff) • Se sale de la aplicación • Errores y fallas 5 Motivos para la terminación de procesos • • • • Terminó su ejecución normalmente Se excedió su tiempo limite No hay memoria disponible Error de protección – Ejemplo: tratar de escribir en un archivo de solo lectura • Error aritmético • Proceso esperando mas que el tiempo especificado para un evento Motivos para la terminación de procesos • Fallas en dispositivos de E/S • Instrucción invalida – sucede cuando se tratan de ejecutar datos • • • • Instrucción privilegiada Mal uso de datos Intervención del sistema operativo El proceso padre termina por lo tanto el hijo también debe de terminar • Petición del proceso padre 6 Procesos • No corriendo – listos para ejecutarse • Bloqueado – esperando algún dispositivo de E/S • El despachador del S/O no puede solo seleccionar al proceso que tiene más tiempo en la cola porque quizás el proceso esté bloqueado Modelo de cinco estados • • • • • Corriendo Listo Bloqueado Nuevo Terminado (de salida) 7 8 Utilizando dos colas 9 Procesos suspendidos • El procesador es más rápido que E/S por lo tanto todos los procesos pudieran estar esperando respuesta de E/S • Pasar estos procesos a disco para liberar más memoria • El estado bloqueado se convierte en suspendido al pasar el proceso a disco • Dos nuevos estados – Bloqueado, suspendido – Listo, suspendido Un estado suspendido 10 Dos estados suspendido Razones para suspender procesos Liberar memoria El sistema operativo requiere liberar memoria para traer un proceso que está listo para ejecutarse Otra razón del SO El sistema operativo puede suspender un proceso de transfondo o de utilería que pudiera estar causando problemas Petición interactiva del usuario Un usuario puede suspender la ejecución de un programa para efectos de depuración o en conexión con el uso de algún recurso Temporización Un proceso puede ejecutarse periódicamente (ejemplo: sistema de monitoreo de procesos) y puede ser suspendido para que espere la siguiente llegada Petición del proceso padre Un proceso padre puede suspender la ejecución de un descendiente para examinar o modificar el proceso suspendido o para coordinar su actividad con otros descendientes 11 Estructuras de Control del Sistema Operativo • Contienen información acerca del estatus actual de cada proceso y cada recurso • Se construyen tablas para cada entidad que el sistema operativo administra Tablas de memoria • Reservación de memoria principal para los procesos • Reservación de memoria secundaria para los procesos • Atributos de protección para los accesos hacia regiones compartidas de memoria • Información necesaria para administrar memoria virtual 12 Tablas de E/S • Indican si el dispositivo de E/S está disponible o está ocupado • Estatus de la operación de E/S • Ubicación en la memoria principal que está siendo utilizada como la fuente o el destino de la transferencia a E/S Tablas de archivos • • • • • Existencia de archivos Ubicación en memoria secundaria Estatus actual Atributos En ocasiones esta información es mantenida por un sistema de administración de archivos 13 Tabla de procesos • Dónde está ubicado el proceso • Atributos necesarios para su administración – ID de proceso – Estado del proceso – Ubicación en memoria Ubicación de proceso • El proceso incluye un conjunto de programas a ser ejecutados – Ubicación de los datos para variables locales y globales – Constantes definidas – Pila • Bloque de control del proceso – Colección de atributos • Imagen de proceso – Colección del programa, datos, pila y atributos 14 Bloque de Control del Proceso • Identificación del proceso – Identificadores • Algunos identificadores numéricos pueden almacenarse en el bloque de control del proceso e incluyen: • Identificador de este proceso • Identificador del proceso que creó este proceso (proceso padre) • Identificador de usuario 15 Bloque de Control del Proceso • Información del estado del proceso – Registros visibles al usuario • Un registro visible al usuario es aquel que puede ser referenciado por medio del lenguaje maquina que el procesador ejecuta. Típicamente, hay entre 8 y 32 de estos registros aunque algunas arquitecturas RISC cuentan con más de 100. Bloque de Control del Proceso • Información del estado del procesador – Registros de estatus y control Existe una variedad de registros del procesador que son empleados para controlar su operación. Estos incluyen: • Contador de programa: Contiene la dirección de la siguiente instrucción a ser ejecutada • Códigos de condición: Resultado de las mas reciente operación aritmética o lógica (por ejemplo: sign, zero, carry, equal, overflow) • Información de estatus: Incluye las banderas de habilitar/deshabilitar interrupciones, modo de ejecución 16 Bloque de Control del Proceso • Información del estado del procesador – Apuntadores a la pila • Cada proceso tiene una o más pilas (LIFO) asociadas a él. Una pila es utilizada para almacenar parámetros y direcciones de llamadas a procedimientos y sistema. El apuntador apunta a la cima de la pila. Bloque de Control del Proceso • Información de Control del Proceso – Información de calendarización y de estado Esta es información que es necesitada por el sistema operativo para desempeñar la función de calendarización. Se pueden encontrar: •Estado del proceso: define si esta listo el proceso para ser programada su ejecución (por ejemplo: corriendo, listo, esperando, trabado). •Prioridad: Uno o más campos pueden utilizarse para describir la prioridad de los procesos. En algunos sistemas se requieren varios valores •Información relacionada con la calendarización: Esta dependerá del algoritmo de calendarización utilizado. Como ejemplo se puede mencionar el tiempo que un proceso ha esperado o el tiempo que un proceso ha estado ejecutándose. •Evento: Identidad del evento que el proceso está esperando para reanudar su ejecución 17 Bloque de Control del Proceso • Información de Control del Proceso – Estructuras de los datos • Un proceso puede estar ligado a otro en una cola, anillo o alguna otra estructura. Por ejemplo, todos los procesos en estado de espera para un determinado nivel de prioridad pueden estar ligados en una cola. Un proceso puede tener una relación padre-hijo con otro proceso. El bloque de control del proceso puede contener apuntadores a otros procesos para dar soporte a estas estructuras. Bloque de Control del Proceso • Información de Control del Proceso – Comunicación Interprocesos (IPC) • Varias banderas, señales y mensajes pueden estar asociados con la comunicación entre dos procesos independientes. Alguna o toda esta información puede ser mantenida en el bloque de control del proceso. – Privilegios de procesos • Los procesos tienen privilegios en relación a la memoria que pueden accesar y los tipos de instrucciones que pueden ejecutar. También los privilegios pueden aplicarse al uso de servicios y utilerías del sistema. 18 Bloque de Control del Proceso • Información de Control del Proceso – Administración de memoria • Esta sección puede incluir apuntadores a segmentos y/o paginas que describen la memoria virtual asignada al proceso. – Propiedad y utilización de recursos • Los recursos controlados por el proceso pueden estar enlistados, tal como archivos abiertos. Un historial acerca del uso del procesador y otros recursos también puede incluirse; esta información puede ser requerida por el calendarizador de tareas. 19 Información de estado del proceso • Contenido de los registros del procesador – Registros visibles al usuario – Registro de estatus y control – Apuntadores a la pila • Palabra de estatus del programa (PSW) – Contiene información del estatus – Ejemplo: el registro EFLAGS en computadoras Pentium Registro EFLAGS 20 Modos de ejecucion • Modo usuario – Modo de menor privilegio – Programas de usuario típicamente se ejecutan en este modo • Modo sistema, modo control o modo kernel – Modo más privilegiado – Núcleo del sistema operativo Creación de procesos • • • • Asignar identificador de proceso único Reservar espacio para el proceso Inicializar el bloque de control del proceso Establecer ligas apropiadas – Ejemplo: agregar el nuevo proceso a la lista ligada utilizada en la cola de calendarización • Crear o expander otras estructuras de datos – Ejemplo: mantener un archivo 21 Cuándo cambiar de proceso • Interrupción de reloj – El proceso se ha ejecutado el tiempo máximo permitido • Interrupción de E/S • Falla de memoria – La dirección de memoria se encuentra en memoria virtual y debe de ser traída hacia memoria principal Cuándo cambiar de proceso • Trampa – Ocurre un error – Puede ocasionar que el proceso se vaya al estado de Salida (Exit) • Llamada de supervisor – Tal como el abrir un archivo 22 Cambio del estado del proceso • Guardar el contexto del procesador incluyendo el contador del programa y otros registros • Actualizar el bloque de control del proceso que esta corriendo actualmente • Mover el bloque de control del proceso hacia la cola apropiada – listos, bloqueados • Seleccionar otro proceso para su ejecución Cambio de estado del proceso • Actualizar el bloque de control del proceso seleccionado • Actualizar las estructuras de datos de administracion de memoria • Restaurar contexto del proceso seleccionado 23 Ejecución del sistema operativo • Kernel puro – Ejecutar kernel fuera de cualquier proceso – El código del sistema operativo es ejecutado como una entidad independiente que opera en modo privilegiado • Ejecución dentro de procesos de usuario – El software de sistema operativo dentro del contexto de un proceso de usuario – El Proceso se ejecuta en modo privilegiado cuando ejecuta código del sistema operativo 24 Ejecución del sistema operativo • Sistema operativo basado en procesos – Funciones grandes del kernel son procesos separados – Utiles en ambientes multi-procesadores o multi-computadoras Administración de procesos en UNIX SVR4 • La mayor parte del sistema operativo se ejecuta dentro del ámbito de un proceso de usuario 25 Estados de procesos en UNIX 26