requerimientos principales de un sistema operativo -...
TRANSCRIPT
1
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
2
Proceso
• También es llamado tarea• Ejecución de un programa individual• Puede ser rastreado
– enlistar la secuencia de instrucciones que se ejecutan
3
4
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
5
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
6
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
7
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)
8
9
Utilizando dos colas
10
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
11
Dos estados suspendido
Razones para suspender procesos
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
Petición del proceso padre
Un proceso puede ejecutarse periódicamente (ejemplo: sistema de monitoreo de procesos) y puede ser suspendido para que espere la siguiente llegada
Temporización
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
Petición interactiva del usuario
El sistema operativo puede suspender un proceso de transfondo o de utilería que pudiera estar causando problemas
Otra razón del SO
El sistema operativo requiere liberar memoria para traer un proceso que está listo para ejecutarse
Liberar memoria
12
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
13
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
14
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
15
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
16
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 controlExiste 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
17
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 estadoEsta 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
18
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.
19
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.
20
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
21
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
22
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
23
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 procesoseleccionado
24
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
25
Ejecución del sistemaoperativo
• 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
26
Estados de procesos en UNIX