1 descripción y control de procesos capítulo 3. 2 requerimientos de un so relacionados con...
TRANSCRIPT
1
Descripción y control de procesos
Capítulo 3
2
Requerimientos de un SO relacionados con procesos
• Ejecutar concurrentemente múltiples procesos para maximizar la utilización del procesador y al mismo tiempo proveer tiempos de respuestas razonables
• Procurar recursos a los procesos
• Apoyar comunicación entre procesos y la creación de procesos por parte de los usuarios
3
El proceso
• Un programa en ejecución
• Una instancia de un programa corriendo en un computador
• La entidad que puede ser asignada (planificada) para ejecución en un procesador
• Unidad de actividad caracterizada por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto asociado de recursos del sistema
4
Elementos típicos de un proceso
• Identificador
• Estado
• Prioridad
• PC (program counter)
• Punteros a memoria (texto, dato, etc)
• Contexto (contenido de registros)
• Información de status de I/O
• Información de contabilidad
5
Bloque de control de proceso (PCB)
• Estructura de datos que contiene los elementos de procesos
• Creado y manejado por el SO
• Contiene la información necesaria para interrumpir un proceso en ejecución y luego reanudarlo (como si la interrupción no hubiera ocurrido)
6
Traza de proceso
• Secuencia de instrucciones que ejecuta un proceso
• Despachador intercambia el procesador de uno a otro proceso
7
Ejemplo de traza
8
Estado de procesos
• Un proceso que no está corriendo puede:– estar listo para ejecución
– estar bloqueado esperando por I/O
• Un sola cola de espera no sería apropiada.
• El dispatcher no puede simplemente seleccionar de la cola el proceso que más tiempo ha estado en ella; puede ser que esté bloqueado.
9
Modelo de proceso de 2 estados
• Un proceso puede estar en uno de dos estados– Corriendo
– No corriendo
10
Creación de Procesos
11
Término de Procesos
12
Término de Procesos
13
Modelo de proceso de 5 estados
• El estado no-corriendo se divide en dos: listo y bloqueado• Por conveniencia, se agregan dos estados más.
14
Modelo de 5 estados
• Running (ejecutándose): el proceso está corriendo, es decir está en la CPU
• Ready: el proceso está listo para ejecutarse
• Blocked: no puede ejecutarse hasta que un evento dado ocurra. Ej: operación de I/O termine.
• New: está recién creado, pero aún no ha sido admitido en la cola de Ready. Ej. Aún no ha sido cargado en memoria.
• Exit: un proceso que, por algún motivo, ya no sigue ejecutándose en el
sistema.
15
Ejemplo transición entre estados
16
Usando dos colas
• En este caso todos los eventos envían a los procesos a una misma cola
17
Múltiples colas
18
Procesos Suspendidos
• El procesador es mucho más veloz que los dispositivos de I/O, y sería posible que todos los procesos en memoria estuvieran esperando por I/O.
• Swap temporalmente algunos de estos procesos a disco y así liberar memoria.
• Procesos que han sido swapeados a disco desde el estado de bloqueados, pasan al estado Suspended
• Note que swapping es una operación de I/O
19
Modelo de estado con un estado Suspendido
20
Modelo con dos estados Suspendido
• Blocked: proceso en memoria principal y esperando por un evento
•Blocked/Suspend: proceso en memoria seundaria y esperando por un evento
•Ready/Suspend: proceso en memoria secundaria, pero listo para ejecución en cuanto se cargue en memoria principal
21
Otras razones para suspender un proceso
22
Características de un proceso suspendido
• El proceso no está disponible para ejecución inmediata. • El proceso puede o no estar esperando por un evento. La condición de
bloqueado es independiente de la condición de suspendido.• El proceso fue puesto en estado suspend por un agente: el mismo, el padre o el
SO. • El proceso no puede ser removido de este estado hasta que el agente lo ordene.
23
Procesos y Recursos
Motivación: ¿Qué información necesita el SO para manjearlos procesos y recursos?
24
Estructuras de control del SO• Almacenan información del estado ectual de los procesos y recursos.
• Típica estructura: tablas para cada entidad que el SO administra.
25
Tablas de la memoria
• Para mantener información de qué memoria está usada o libre, ya sea memoria principal o secundaria (virtual) y quién la está usando.
• Incluye la siguiente información:– Asignación de memoria principal a procesos.
– Asignación de memoria secundaria a procesos.
– Atributos de protección de los bloques de memoria (principal o virtual)
– Otra información para administrar la memoria virtual del sistema
26
Tablas de I/O
• Para administrar los dispositivos y canales de I/O del sistema
• Información relevante a:– Estado de una operación de I/O y dirección de memoria principal usada como
fuente o destino de la transferencia de I/O
– Disponibilidad de los dispositivos de I/O
– Asignación de los dispositivos de I/O a procesos
27
Tablas de archivos
• Mantienen información acerca de:– la existencia de archivos,
– sus ubicaciones en memoria secundaria,
– sus estados actuales
– sus dueños
– atributos
• A veces, esta información es mantenida por un sistema de administración de archivos y el SO no conoce los detalles de dicha administración.
28
Tabla de Procesos
• Donde está el proceso en memoria
• Atributos del proceso, como por ejemplo identificador, estado, prioridad, etc
29
¿Qué constituye un proceso?• Programa que se ejecuta
• Datos, locales, globales, constantes, etc
• Stack, para llamado a procedimientos y paso de parámetros
• PCB con atributos
• Imagen del Proceso
30
Bloque de Control de Proceso (PCB)
• Indentificación del proceso– Identificadores
• del proceso
• del padre del proceso
• del usuario del proceso
• del dueño
• Contexto del proceso– Registros de la CPU visibles por el proceso (usuario)
– Registros de control y status: PC, códigos de condición, status (flags, modo de ejecución). Ejemplo: registro EFLAGS en Pentium II.
– Stack Pointer (SP)
31
Pentium II EFLAGS Register
32
PCB
• Control del proceso– Información del estado y scheduling
• Estado del proceso (corriendo, listo, etc)
• Prioridad
• Otra información relacionada con scheduling, ejemplo: tiempo que el proceso ha estado esperando, tiempo que el proceso ha usado la CPU
• Identificación del evento que el proceso está esperando antes que pueda reanudar su ejecución.
– Estructuración de los procesos• Puede que los procesos estén organizados en una lista (simple o doblemente
enlazada)
• Un proceso padre puede apuntar a sus hijos
33
PCB
• Control del proceso– Comunicacion entre procesos
• Señales, flags, mensajes asociadas a la comunicación entre dos procesos independientes.
– Privilegios• En ciertos SOs los procesos obtienen privilegios en términos de qué memoria puede
accesar y qué tipos de instrucciones puede ejecutar.
– Administración de memoria• Punteros a la tabla de segmentos o páginas
– Utilización y propiedad de recursos• Qué recursos son controlados por el proceso, por ejemplo, archivos abiertos.
El PCB es la estructura de datos más importante en un SO
34
Visión de un proceso en memoria virtual
Identificación del Proceso
Información Contexto del Proceso
Información Control del Proceso
Stack
Espacio privado deDirecciones
(programa, datos)
Espacio compartidode direcciones
PCB
35
Modos de Ejecución de un proceso• Modo usuario
– Modo menos privilegiado
– Los procesos de los usuarios generalmente se ejecutan en este modo.
– Ciertas instrucciones no pueden ser ejecutadas en este modo.
– Típicamente, un proceso sólo puede acceder direcciones de memoria de su espacio privado de direcciones
• Modo kernel– Modo más privilegiado
– El Kernel del SO se ejecuta en este modo.
– El SO tiene control completo del procesador y puede ejecutar cualquier instrucción.
– Y accesar cualquier porción de memoria
• Uno o más bits en el PSW indica el modo actual de ejecución
36
Creación de Procesos
• Asignar un identificador único
• Procurar espacio para el proceso; para todos los elementos de la imagen del proceso
• Inicializar el PCB
• Setear los enlaces pertinentes– Ej: agregar un proceso nuevo a la cola de listos
• Crear e inicializar otras estructuras de datos – Ej: mantener un archivo de contabilidad
37
Cambio de contexto (process switch)
• Cuándo hacer un cambio de contexto – Trap: error asociado a la ejecución de la instrucción actual.– Interrupción: evento externo a la ejecución del proceso
• Interrupción del reloj por término de tiempo• I/O• Fallo de memoria. La dirección de memoria no se encuentra actualmente en memoria
principal.
– Llamado al sistema (supervisor call, system call): por ejemplo instrucción de I/O.
• Un cambio de contexto o cambio de proceso no es lo mismo que un cambio del modo de ejecución de un proceso
• Un cambio en el modo de ejecución puede ocurrir sin cambiar el estado del proceso
38
Cambio del estado del proceso(también process switch)
• Guardar el contexo del proceso incluyendo el PC y otros registro. • Actualizar el PCB del proceso que actualmente está en ejecución (por ejemplo
actualizar el estado)• Mover el PCB de la cola de listo a la cola apropiada. • Seleccionar otro proceso para ejecución. • Actualizar el PCB del proceso seleccionado• Actualizar las estructuras de administración de memoria• Restaurar el estado del procesador al que tenía cuando se estaba ejecutando el
proceso seleccionado
39
Ejecución del Sistema Operativo
• El SO funciona de la misma forma como funcionan los otros procesos en el sistema
• El SO frecuentemente entrega el control de la CPU y pasa a depender de ella para retomar el control
• Kernel no proceso– El SO es ejecutado como una entidad separada y el concepto de proceso es aplicable
sólo a los procesos usuarios
– El SO se ejecuta en modo privilegiado
• Ejecución dentro de un proceso usuario – El SO se ejecuta en el contexto de los procesos usuarios
– El SO se ve como un conjunto de rutinas que los procesos usuarios llaman
– Proceso se ejecuta en modo privilegiado cuando ejecuta código del SO.
– Se requiere un stack del kernel en cada imagen de proceso
40
41
Ejecución del Sistema Operativo
• Basado en proceso– Implementa el SO como una colección de procesos del sistema
– Útil en sistemas multiprocesadores y multicomputadores, pues permiten que los servicios prestados por los procesos puedan ser ejecutados exclusivamante en algunos procesadores y asi mejorar rendimiento.
42
Administración de Procesos en UNIX SVR4
• Implementa el modelo de ejecución del SO en el contexto de procesos usuarios (La mayoria de las funciones)
• Dos modos de ejecución: Kernel y usuario
• Dos categorias de procesos:– Procesos de sistema: Operan en modo kernel y ejecutan código del SO para realizar
tareas administrativas, Ej: creación de procesos, procuración de memoria
– Procesos usuarios: Operan en modo usuario para ejecutar el proceso usuario y otras utilidades, y operan en modo kernel para ejecutar instrucciones del kernel
43
Modelo de estados en UNIX
44
45
Imagen de Proceso en UNIX