Procesos Procesos • El sistema operativo como administrador de procesos Mario Medina [email protected] Controla la ejecución de procesos para optimizar criterios Asigna recursos a procesos Facilita sincronización de procesos Permite intercambio de información Protege los recursos asignados a un proceso Concurrencia de procesos Qué es un proceso? • Estudiaremos: • Definición básica: un programa en ejecución, incluyendo: Multiprogramación: ejecución concurrente de procesos intercalada en el tiempo Multiprocesamiento: Ejecución simultánea de procesos en múltiples CPUs Multihebras: Ejecución simultánea de partes de un proceso Su estado Sus datos Su entorno Estados de un proceso Modelo de 2 estados • Modelo básico de 2 estados • Estructura de datos básica En ejecución: el proceso está siendo ejecutado en la CPU En espera: el proceso está esperando por la CPU (C) 2008 Mario Medina Cola de espera: Contiene punteros a procesos en espera 1 Acciones en modelo de 2 estados Creación de procesos • Eventos que ocurren durante la vida de un proceso • Un proceso puede ser: Crear un nuevo proceso Despachar un proceso para su ejecución Detener un proceso en ejecución y enviarlo a la cola de espera Terminar un proceso en ejecución Creado por usuario en proceso interactivo Creado por usuario en proceso batch Creado por el S.O. para dar un servicio Creado por otro proceso del usuario h Procesos h Proceso Término de procesos Término normal Tiempo límite excedido Memoria insuficiente Acceso ilegal a memoria Error aritmético Intervención del operador Intervención del sistema operativo Término del proceso padre Acceso ilegal a archivo Tiempo máximo de espera rebasado Instrucción ilegal Instrucción privilegiada Mal uso de los datos Solicitud del proceso padre Procesos bloqueados servidores padre y proceso hijo Qué pasa con el S. O.? • El despachador del S.O. se encarga de escoger el siguiente proceso a ejecutar Modelo de 5 estados • La cola de procesos en espera contiene: Procesos listos para ser ejecutados Procesos esperando un evento h acceso a recurso compartido, E/S, etc. • Consideremos ahora un modelo de 5 estados Agregar estado bloqueado (C) 2008 Mario Medina 2 Modelo de 5 estados Acciones en modelo de 5 estados • Nuevo: proceso recién creado, aún no ingresa a la cola de espera • Listo: proceso listo para ejecutarse • En ejecución: proceso usando la CPU • Bloqueado: proceso esperando un evento • Terminado: proceso excluido de la cola • Admisión: el sistema está listo para aceptar un proceso más • Despacho: el sistema selecciona un proceso listo y lo pone en ejecución • Fin del quantum: proceso deja la CPU y vuelve a la cola de procesos listos • Espera por evento: proceso se bloquea al solicitar un evento • Ocurrencia de evento: proceso se desbloquea al ocurrir el evento Acciones no mostradas Estructuras de datos • El operador, el sistema operativo, o el proceso padre pueden terminar un proceso que está actualmente en ejecución o que está en la cola de espera • Nuevo modelo requiere de dos colas de procesos Procesos esperando CPU Procesos esperando un evento Bloqueado→Terminado Listo→Terminado Estructuras de datos Procesos suspendidos • Mejor tener una cola por cada tipo de evento • Ineficiencia del modelo actual Todos los procesos deben estar residentes en memoria h Aun cuando estén esperando un evento como acceso a un archivo, dispositivo, etc. • Procesador mucho más rápido que E/S Procesos bloqueados pueden esperar largo rato! • Esto limita la memoria disponible a los otros procesos (C) 2008 Mario Medina 3 Intercambio de procesos Modelo de 7 estados • Intercambiar procesos entre memoria RAM y memoria secundaria (disco) Agregar proceso bloqueado a cola de procesos suspendidos Copiar proceso bloqueado a disco Ahora, procesador puede recibir nuevos procesos Procesador puede reactivar proceso suspendido anteriormente Modelo de 7 estados Modelo de 7 estados • Agregar dos estados • Otras acciones posibles Suspendido bloqueado: proceso está en memoria secundaria esperando un evento Suspendido listo: proceso está en memoria secundaria listo para su ejecución En ejecución→Suspendido listo: expulsión de un proceso en ejecución si hay un proceso Suspendido Listo en la cola que tiene mayor prioridad Nuevo→En ejecución: Mejora el tiempo de respuesta a cambio de tener más procesos listos en memoria • Agregar nuevas acciones Activación: traslado del proceso desde disco a memoria Suspensión: traslado del proceso desde memoria a disco h Sistemas operativos en tiempo real Suspensión de procesos Reactivación de procesos • Muchas razones para suspender procesos • Proceso suspendido fue suspendido por un agente Sistema operativo necesita liberar memoria para un proceso Listo Proceso se ejecuta periódicamente y es suspendido entre ejecuciones Usuario solicita suspensión del proceso Proceso padre solicita suspensión del proceso (C) 2008 Mario Medina Sistema operativo Proceso padre El mismo proceso • Proceso sigue suspendido hasta que el agente lo reactive • Condición de bloqueado independiente de la suspensión 4 Estructuras de control del S.O. Estructuras del sistema operativo • S. O. mantiene tablas de información sobre memoria, procesos, E/S y archivos Memoria física y virtual asignada a cada proceso Atributos de protección de bloques de memoria Dispositivos de E/S asignados a cada proceso Operaciones de E/S en marcha Estado de las operaciones en marcha Ubicación y atributos de procesos Recursos asignados al proceso Ubicación de archivos en disco y memoria virtual Procesos accediendo a los archivos Imagen de un proceso • Manifestación física de un proceso Programa (código) Datos Pila del usuario Pila del sistema Bloque de control del proceso (Process Control Block) • PCB representa al proceso en el sistema operativo Listas de PCBs del S.O. Bloques de control de proceso • Ubicación del PCB de un proceso Proceso en ejecución o listo: imagen residente en memoria Proceso suspendido: PCB residente en memoria; el resto puede estar en disco • Sistema operativo mantiene listas de PCBs para Procesos en ejecución Procesos esperando por CPU Procesos bloqueados y suspendidos Atributos de un proceso en PCB • Identificación del proceso Identificador numérico del proceso Identificador del proceso padre Identificador del usuario del proceso • Información del estado del procesador (C) 2008 Mario Medina Registros visibles al usuario Registros de control y de estado Punteros de la pila 5 Atributos de un proceso en PCB • Información de control del proceso Estado del proceso Prioridad de ejecución Evento en espera Información para planificación de ejecución Recursos asignados al proceso h h Archivos abiertos por el proceso Dispositivos asignados al proceso Privilegios del proceso Punteros a memoria asignada Información sobre comunicación entre procesos Creación de un proceso • En más detalle Asignar un identificador único al proceso Agregar proceso a tabla de procesos Asignar espacio en memoria virtual para la imagen del proceso Inicializar el PCB del proceso Agregar proceso a cola de procesos suspendidos listos para ejecutar Cambio de contexto Interrupciones y cambio de contexto • Cambio de un proceso a otro • Cuándo cambiar el proceso? Salvar el contexto del procesador Actualizar el PCB del proceso Mover el PCB a la cola apropiada Seleccionar otro proceso Actualizar PCB del nuevo proceso Actualizar tablas de memoria Restaurar el contexto del proceso Modos de ejecución de la CPU • CPU tiene 2 o más modos de ejecución Seleccionados por bits del registro de estado Modo de usuario Modo de control o modo supervisor h Usado por las aplicaciones h Usado por el sistema operativo proteger el S.O. y sus estructuras h Permite proteger un proceso de usuario de los otros procesos h Permite (C) 2008 Mario Medina Interrupción externa al proceso h Interrupción del reloj de E/S h Falta de página h Interrupción Interrupción interna (trap) h Error aritmético ilegal a un archivo h Acceso Llamada a rutina del sistema Modo supervisor de la CPU • Acceso a registros de control y estado de la CPU • Acceso directo a E/S e interrupciones • Acceso a rutinas de administración de procesos • Acceso a regiones reservadas de memoria 6