Descripción y control de procesos
Capítulo 3
1
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
2
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
3
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
4
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)
5
Traza de proceso
• Secuencia de instrucciones que ejecuta un proceso
• Despachador intercambia el procesador de uno a otro proceso
6
Ejemplo de traza
7
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.
8
Modelo de proceso de 2 estados
• Un proceso puede estar en uno de dos estados
– Corriendo
– No corriendo
9
Creación de Procesos
10
Término de Procesos
11
Término de Procesos
12
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.
13
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.
14
Ejemplo transición entre estados
15
Usando dos colas
• En este caso todos los eventos envían a los
procesos a una misma cola
16
Múltiples colas
17
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
18
Modelo de estado con un estado Suspendido
19
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
20
Otras razones para suspender un proceso
21
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.
22
Procesos y Recursos
Motivación: ¿Qué información necesita el SO para manjear
los procesos y recursos?
23
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.
24
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
25
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
26
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.
27
Tabla de Procesos
• Donde está el proceso en memoria
• Atributos del proceso, como por ejemplo identificador, estado, prioridad, etc
28
¿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
29
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)
30
Pentium II EFLAGS Register
31
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
32
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
33
Visión de un proceso en memoria virtual
Identificación del Proceso
PCB
Información
Contexto del Proceso
Información
Control del Proceso
Stack
Espacio privado de
Direcciones
(programa, datos)
Espacio compartido
de direcciones
34
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
35
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
36
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
37
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
38
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
39
40
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.
41
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
42
Modelo de estados en UNIX
43
44
Imagen de Proceso en UNIX
45
Descargar

Capitulo3