1 descripción y control de procesos capítulo 3. 2 requerimientos de un so relacionados con...

45
1 Descripción y control de procesos Capítulo 3

Upload: carmelo-vazquez-godoy

Post on 23-Jan-2016

261 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

1

Descripción y control de procesos

Capítulo 3

Page 2: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 3: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 4: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 5: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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)

Page 6: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

6

Traza de proceso

• Secuencia de instrucciones que ejecuta un proceso

• Despachador intercambia el procesador de uno a otro proceso

Page 7: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

7

Ejemplo de traza

Page 8: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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.

Page 9: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

9

Modelo de proceso de 2 estados

• Un proceso puede estar en uno de dos estados– Corriendo

– No corriendo

Page 10: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

10

Creación de Procesos

Page 11: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

11

Término de Procesos

Page 12: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

12

Término de Procesos

Page 13: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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.

Page 14: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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.

Page 15: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

15

Ejemplo transición entre estados

Page 16: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

16

Usando dos colas

• En este caso todos los eventos envían a los procesos a una misma cola

Page 17: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

17

Múltiples colas

Page 18: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 19: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

19

Modelo de estado con un estado Suspendido

Page 20: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 21: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

21

Otras razones para suspender un proceso

Page 22: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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.

Page 23: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

23

Procesos y Recursos

Motivación: ¿Qué información necesita el SO para manjearlos procesos y recursos?

Page 24: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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.

Page 25: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 26: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 27: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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.

Page 28: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

28

Tabla de Procesos

• Donde está el proceso en memoria

• Atributos del proceso, como por ejemplo identificador, estado, prioridad, etc

Page 29: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 30: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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)

Page 31: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

31

Pentium II EFLAGS Register

Page 32: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 33: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 34: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 35: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 36: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 37: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 38: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 39: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 40: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

40

Page 41: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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.

Page 42: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

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

Page 43: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

43

Modelo de estados en UNIX

Page 44: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

44

Page 45: 1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para

45

Imagen de Proceso en UNIX