1 descripción y control de procesos capítulo 3. 2 requerimientos de un so relacionados con...
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022061517/5665b47d1a28abb57c91e917/html5/thumbnails/45.jpg)
45
Imagen de Proceso en UNIX