Transcript
Page 1: Sistemas operativos; procesos

1

Descripción y Control de Procesos

Page 2: Sistemas operativos; procesos

2

“...Para ejecutar un programa éste debe residir con sus datos en el mapa de memoria. Además, el SO mantiene una seria de estructuras de información por cada proceso, estructuras que permiten identificar al proceso y conocer sus caracteristicas y los rescursos que tienen asignados...”

“...En esta última categoría entran los descriptores de regiones de memoria asignadas, los descriptores de archivos abiertos, descriptores de puertos de comunicaciones, etc...”

“...Una parte importante de todo esto se encuentra en el Bloque de Control de Proceso (o BCP)...”

Page 3: Sistemas operativos; procesos

3

Multitarea

Se basa en 3 características:

– Paralelismo real entre E/S y procesador.– Alternancia de los procesos de fases de

E/S y de procesamiento.– Memoria capaz de almacenar varios

procesos.

Page 4: Sistemas operativos; procesos

4

Multitarea

Page 5: Sistemas operativos; procesos

Grado de multiprogramación y utilización del procesador

Grado de multiprogramación: número de procesos activos que mantiene un sistema.

Page 6: Sistemas operativos; procesos

Grado de multiprogramación y utilización del procesador

Grado de multiprogramación: número de procesos activos que mantiene un sistema.

Siempre hay procesos para ejecutar por lo que aumenta lautilización (no seejecuta el proceso nulo)

Page 7: Sistemas operativos; procesos

Grado de multiprogramación y utilización del procesador

Fuente: Sistemas Operativos. Una visión Aplicada. Jesús Carretero (et al)

Page 8: Sistemas operativos; procesos

Grado de multiprogramación y utilización del procesador

Fuente: Sistemas Operativos. Una visión Aplicada. Jesús Carretero (et al)

Page 9: Sistemas operativos; procesos

9

Proceso También llamado tarea. Es un programa en ejecución. Una instancia de un programa ejecutándose en una

computadora. La entidad que puede ser asignada y ejecutada en

un procesador. Una unidad de actividad caracterizada por la

ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados.

Proceso = Código (texto) + Datos + Pila (datos temporales, parámetros,...) + Estado (contador, registros, archivos, E/S).

Page 10: Sistemas operativos; procesos

10

Información del proceso El proceso es la unidad gestionada por el SO. El proceso tiene asociado una serie de elementos de

información:– Estado del procesador.– Imagen de memoria.– Tablas del SO.

Registros especiales

Registros generales

PC

SP

Estado

Tablas SOTablas del SO

Tabla de procesosBCP Proceso A BCP Proceso B BCP Proceso C

- Estado (registros)- Identificación- Control

- Estado (registros)- Identificación- Control

- Estado (registros)- Identificación- Control

- Tabla de memoria- Tabla de E/S-Tabla de ficheros

Page 11: Sistemas operativos; procesos

Información del proceso El proceso es la unidad gestionada por el SO. El proceso tiene asociado una serie de elementos de

información:– Estado del procesador: formado por el contenido de todos

sus registros.

Registros especiales

Registros generales

PC

SP

Estado

Cuando el proceso no está en ejecución su estado debe estar almacenado en su BCP.

Cuando el proceso está ejecutando su estado está en los registros y sus contenidos van variando a medida que se ejecutan las instrucciones.

En ese momento el estado almacenado en el BCP no está actualizado.

Cuando se deja de ejecutar un proceso el SO actualiza el estado del proceso en su BCP.

Page 12: Sistemas operativos; procesos

Información del proceso El proceso es la unidad gestionada por el SO. El proceso tiene asociado una serie de elementos de

información:– Imagen de memoria: espacio de memoria que el proceso

está autorizado a usar. – El SO es el que asigna la memoria a cada proceso.

Tablas SO

El proceso sólo accede a direcciones de su espacio de memoria → sino actúa hw de protección y genera una excepción.

Memoria real o virtual. Asignación dinámica de memoria.

Page 13: Sistemas operativos; procesos

13

Información del proceso El proceso es la unidad gestionada por el SO. El proceso tiene asociado una serie de elementos de

información:– Bloque de control de proceso (BCP o PCB): información

básica del proceso:

Tablas del SO

Tabla de procesosBCP Proceso A BCP Proceso B BCP Proceso C

- Estado (registros)- Identificación- Control

- Estado (registros)- Identificación- Control

- Estado (registros)- Identificación- Control

- Tabla de memoria- Tabla de E/S-Tabla de ficheros

Información de identificación: id del proceso, id del usuario, id del padre (si existe).

Estado: contiene los valores de los registros iniciales o de cuando fue expulsado del procesador.

Control: para gestión del proceso– Información de planificación y estado:

• Estado (ejecutando, bloqueado, etc), evento por el cual espera (bloqueado), prioridad, información de planificación.

• Regiones de memoria asignadas al P.• Recursos (ficheros, temporizadores,

etc).• Comunicación: señales o mensajes.

Page 14: Sistemas operativos; procesos

14

Información del proceso El proceso es la unidad gestionada por el SO. El proceso tiene asociado una serie de elementos de

información:– Estado del procesador.– Imagen de memoria.– Tablas del SO.

Registros especiales

Registros generales

PC

SP

Estado

Tablas SOTablas del SO

Tabla de procesosBCP Proceso A BCP Proceso B BCP Proceso C

- Estado (registros)- Identificación- Control

- Estado (registros)- Identificación- Control

- Estado (registros)- Identificación- Control

- Tabla de memoria- Tabla de E/S-Tabla de ficheros

Page 15: Sistemas operativos; procesos

15

Elementos que caracterizan un Proceso Identificador

− un id único asociado al proceso para distinguirlo del resto. Estado

− si está corriendo, está en estado de ejecución. Prioridad

− nivel de prioridad relativo al resto de los procesos. Contador de Programa

− dirección de la sig. instrucción a ejecutar. Punteros de memoria

− a código de programa y a datos y bloques de memoria compartida.

Datos de Contexto− datos de los registros del procesador.

Información de estado de E/S− incluye peticiones pendientes de E/S, dispositivos E/S asignados

al proceso, archivos en uso, etc. Información de auditoría

− puede incluír cantidad de tiempo de procesador y de reloj utilizados, etc.

Page 16: Sistemas operativos; procesos

16

Process Control Block Simplificado

La información de la lista anterior se guarda en una estructura de datos llamada Bloque de Control de Proceso (o PCB).

− Contiene los elementos del procesador enumerados enteriormente.

− Creado y gestionado por el sistema operativo.

− Permite el soporte para múltiples procesos.

Page 17: Sistemas operativos; procesos

17

Traza de un Proceso

Secuencia de instrucciones que se ejecutan para un proceso.

El dispatcher (o activador) cambia el procesador de un proceso a otro.

Se puede caracterizar el comportamiento de un determinado proceso, listando la secuencia de instrucciones que se ejecutan para dicho proceso.

A esta lista se la llama traza del proceso. Se puede caracterizar el comportamiento de un

procesador mostrando cómo las trazas de varios procesos se entrelazan.

Page 18: Sistemas operativos; procesos

18

Ejemplo de Traza

• Despliegue en memoria de tres procesos (A, B y C).

• Para simplificar, los tres procesos residen en memoria principal (no hay memoria virtual).

• También existe un programa (dispatcher) que intercambia el procesador de un proceso a otro.

Continúa ->

Page 19: Sistemas operativos; procesos

19

Ejemplo de Traza

• Aquí se ven las trazas de cada uno de los procesos en los primeros instantes de ejecución.

• Se muestran las primeras 12 instrucciones de los procesos A y C.

• El proceso B ejecuta 4 instrucciones y se asume que la 4ta instrucción invoca una operación de E/S, a la cual el proceso debe esperar.

Continúa ->

Page 20: Sistemas operativos; procesos

20

• Ahora vemos esas trazas desde el punto de vista del procesador.

• En este ejemplo, se asume que el sistema operativo sólo deja que un proceso continúe durante 6 ciclos de instrucción, luego de lo cuál se interrumpe.

• También se ve (en celeste) la ejecución del dispatcher

Page 21: Sistemas operativos; procesos

21

Modelo de Proceso de Dos Estados El SO es el que controla y sigue la ejecución de los

procesos.

Se puede construir un modelo bien simple, observando que en cada momento un proceso está: ejecutándose en el procesador o no:– En este modelo el proceso puede estar en uno de dos estados.

Ejecutando (Running) o No Ejecutando (Not Running).– Cuando el SO crea un nuevo proceso, crea el PCB (process control

block) para el nuevo proceso e inserta dicho proceso en el sistema en estado No ejecutando.

– De vez en cuando el proceso actualmente en ejecución será interrumpido, y una parte del SO (el dispatcher) seleccionará otro proceso a ejecutar.

– El proceso saliente pasará del estado Running a Not Running

Page 22: Sistemas operativos; procesos

22

Modelo de Proceso de Dos Estados La responsabilidad del SO es controlar la ejecución de procesos.

− Esto incluye determinar el entrelazado para la ejecución y asignar recursos al proceso.

El primer paso en el diseño de un SO para el control de procesos es describir el comportamiento que se desea que tengan los procesos.

Se puede construír el modelo más simple posible observando que, en un instante dado, un proceso se está ejecutando en el procesador o no.

− En este modelo el proceso puede estar en uno de dos estados. Ejecutando (Running) o No Ejecutando (Not Running).

− Cuando el SO crea un nuevo proceso, crea el PCB (process control block) para el nuevo proceso e inserta dicho proceso en el sistema en estado Not Running.

− De vez en cuando el proceso actualmente en ejecución será interrumpido, y una parte del SO (el dispatcher) seleccionará otro proceso a ejecutar.

− El proceso saliente pasará del estado Running a Not Running.

Page 23: Sistemas operativos; procesos

23

Modelo de Proceso de Dos Estados

El proceso puede estar en uno de dos estados

− Ejecutando, − No ejecutando

Page 24: Sistemas operativos; procesos

24

Modelos de colas• Cada proceso debe representarse de tal manera que el SO pueda controlarlo.

– Información correspondiente a cada proceso• estado actual, localización en memoria, etc: PCB

• Los procesos que no se ejecutan deben estar en una cola, esperando su turno de ejecución.

• La figura sugiere esta estructura.– Una sola cola cuyas entradas son punteros al PCB de un proceso en particular.

– Ó, la lista puede ser una lista enlazada de bloques de datos, en la cual cada bloque representa un proceso.

Planificador de corto plazo (Dispatcher)

Page 25: Sistemas operativos; procesos

25

Del Modelo de Procesos de 2 Estados al de 5 Estados

Si todos los proceso estuvieran siempre preparados para ejecutar, la gestión de colas anterior sería suficiente.

Pero esta implementación no es adecuada:− algunos procesos que están en el estado Not Running están

listos para ejecutar, mientras que otros están bloqueados, esperando a que se complete una operación de E/S.

Por lo tanto, utilizando una cola única, el dispatcher no puede seleccionar únicamente los procesos que lleven más tiempo en la cola.

En su lugar, debería recorrer la lista buscando los procesos que no están bloqueados.

− Para manejar esta situación podríamos dividir el estado Not Running en dos estados: Listo y Bloqueado.

− Además, podríamos agregar dos estados adicionales que resultarán muy útiles.

Page 26: Sistemas operativos; procesos

26

El Modelo de Procesos de Cinco-Estados

Ejecutando (Running)− El proceso está actualmente en ejecución.

Listo (Ready)− El proceso está listo para ser ejecutado.

Bloqueado (Blocked)− El proceso está esperando por algún evento E/S.

Nuevo (New)− El proceso se ha creado recién y aún no ha sido admitido

en el grupo de procesos ejecutables. El proceso no ha sido cargado en memoria principal, pero su

PCB si ha sido creado. Terminado (Exit)

− El proceso ha sido liberado del grupo de procesos ejecutables.

Page 27: Sistemas operativos; procesos

27

El Modelo de Procesos de Cinco Estados

Transiciones entre estados:- null → nuevo- nuevo → listo- listo → ejecutando- ejecutando → saliente- ejecutando → listo- ejecutando → bloqueado- bloqueado → listo- listo → saliente- bloqueado → saliente

Page 28: Sistemas operativos; procesos

28

El Modelo de Procesos de Cinco-Estados

Page 29: Sistemas operativos; procesos

29

Diagrama de Procesos en Ejecución• Estado de procesos para la traza de la figura.• Aquí se ve la traza de los proceos y el dispatcher, indicando el

estado en que está cada proceso, a medida que pasa el tiempo.

Page 30: Sistemas operativos; procesos

30

Colas de Listos y Bloqueados• Aquí se ve cómo aplicar un esquema de dos colas: listos y bloqueados.• Cuando sucede un evento, cualquier proceso que esté en la cola de

bloqueado esperando únicamente ese evento, se mueve a la cola listos.• Esta última transición significa que, cuando sucede un evento, el SO

debe recorrer la cola entera de bloqueados, buscando aquellos procesos que estén esperando dicho evento.

– En los SO con muchos procesos, esto puede implicar cientos o miles de procesos en esta lista.

– Es más eficiente tener una cola para cada evento.

Page 31: Sistemas operativos; procesos

31

Múltiples Colas Bloqueados• Con múltiples colas bloqueado, la lista entera de procesos en la

cola se mueve a la cola de listos cuando sucede el evento.• Otro refinamiento

– si la activación de procesos es por prioridades, conviene tener una cola de procesos listos para cada nivel de prioridad.

Page 32: Sistemas operativos; procesos

32

Procesos Suspendidos

El procesador es más rapido que E/S.− Aunque haya muchos procesos en memoria, por

velocidad lenta de dispositivos, es habitual que todos los procesos en memoria estén esperando E/S.

Suspender: pasar una parte de (o todo) el proceso al disco para liberar la memoria principal. Se disminuye el nivel de multiprogramación.

Cuando procesos en memoria principal están bloqueados, el SO puede suspender un proceso poniéndolo en estado suspendido.

El estado bloqueado se convierte en suspendido cuando el proceso está swappeado en disco:

− Dos nuevos estados Bloqueado/Suspendido (Blocked/Suspend) Listo/Suspendido (Ready/Suspend)

Page 33: Sistemas operativos; procesos

33

Un Sólo Estado Suspendido• Cuando todos los procesos en memoria principal se encuentran en estado

Blocked, el SO puede suspender un proceso poniéndolo en estado suspendido y transfiriéndolo a disco.

– El espacio que se libera en memoria principal puede usarse para traer otro proceso.

• El SO tiene dos opciones para seleccionar un nuevo proceso:– admitir uno nuevo, ó– traer un proceso que se encuentre en estado suspendido.

• Pero los procesos suspendidos estaban previamente bloqueados.– No conviene traer a memoria un proceso que continúe bloqueado al

traerlo.– Los procesos suspendidos estaban originalmente en estado bloqueado

esperando algun evento. Cuando sucede el evento, el proceso saldrá de bloqueado y estará potencialmente listo para ejecutarse.

Page 34: Sistemas operativos; procesos

34

Introducción a Dos Estados Suspendidos

Entonces necesitamos replantear el diseño:− Dos conceptos independientes

si un proceso está esperando a un evento (bloqueado o no) si un proceso está transferido de memoria a disco (suspendido o

no).

− Para describir estas combinaciones de 2 x 2 necesitamos 4 estados:

Listo (Ready)− proceso en memoria principal listo para ejecutarse

Bloqueado (Blocked)− proceso en memoria principal esperando un evento

Bloqueado/Suspendido (Blocked/Suspend)− proceso en disco esperando un evento

Listo/Suspendido (Ready/Suspend)− proceso en disco disponible para ejecución.

Page 35: Sistemas operativos; procesos

35

Modelo de Siete Estados

Actualizamos el modelo de transición de estados.

Swapping: operación de E/S pero en disco es más rápida que en otrosDispositivos, lo que hace que generalemente mejora el rendimiento

Page 36: Sistemas operativos; procesos

36

Modelo de Siete Estados

Actualizamos el modelo de transición de estados.

Nuevas transiciones:- bloqueado → bloq susp- bloq susp → listo susp- listo susp → listo - listo → listo susp- nuevo → listo susp- bloq susp→ bloqueado- ejecutando → listo susp- cualq estado → saliente

Page 37: Sistemas operativos; procesos

37

Razones para Suspender un Proceso

• Proporcionar espacio de memoria para traer procesos en estado Ready/Suspended o para incrementar el espacio de memoria disponible para los procesos listos.

• El SO puede tener otras razones para suspender un proceso. – Ejemplo: suspender un proceso que está causando problemas.

• Uso interactivo del sistema.– Ejemplo: en usuario podría suspender la ejecución de un

programa para debugearlo.

• Tiempos– Si un proceso se activa periódicamente pero esta ocioso la mayor

parte del tiempo, puede ser enviado a disco entre cada una de las ejecuciones que realiza.

Page 38: Sistemas operativos; procesos

Creación de procesos

Asignar nueva entrada en la tabla de procesos y guardar id del proceso (pid).

Asignar espacio en memoria para la imagen del proceso.

Inicializar el bloque de control de proceso. Establecer los enlaces apropiados:

− Ej: Añadir un proceso nuevo a una lista enlazada que se utiliza como cola de planificación.

Crear o ampliar otras estructuras de datos.− Ej: Mantener un archivo de contabilidad,

actualizar la tabla de gestión de memoria...

38

Page 39: Sistemas operativos; procesos

Creación de procesos

39

Page 40: Sistemas operativos; procesos

Creación de procesos

int id ;

id = fork ();

switch(id)

{

case -1 : /* error */ break ;

case 0 : /* código para el hijo */ break ;

default : /* padre, id tiene el pid del hijo */

}

40

Page 41: Sistemas operativos; procesos

Creación de procesos

El proceso hijo inicialmente es igual que el proceso padre− copia exacta de segmento de datos, pila y estructura de usuario.

Forma de distinguirlo del padre: mediante retorno de fork: 0 para el hijo pid del hijo para el padre

Padre e hijo prosiguen con la ejecución a partir de la siguiente instrucción a fork().

Si hijo ejecuta otro código, su memoria, pila y estructura se diferencian− Familia de llamadas exec()

Permite a un proceso cambiar su imagen de memoria y ejecutar otro programa distinto.

41

Page 42: Sistemas operativos; procesos

Creación de procesos

42

Page 43: Sistemas operativos; procesos

43

Estructuras de Control del SO

Si el SO se encarga de la gestión de procesos y recursos, debe disponer de información sobre el estado actual de cada proceso y cada recurso.

Para esto, construye y mantiene tablas de información sobre cada entidad que gestiona.

A pesar de distintos SSOO se mantienen 4 categorías principales:

– Memoria, E/S, archivos y procesos.

Page 44: Sistemas operativos; procesos

44

Page 45: Sistemas operativos; procesos

Memoria P.

Mapa de memoriadel proceso A

Tablas SO

CP

SP

PSW

Registrosespeciales

Tablas del sistema operativo

Tabla de procesos

- Tabla de memoria- Tabla de E/S- Tabla de Ficheros

BCP Proceso BBCP Proceso A BCP Proceso C

Mapa de memoriadel proceso B

Mapa de memoriadel proceso C

Registrosgenerales • Estado (regt.)

• Identificación• Control

• Estado (regt.)• Identificación• Control

• Estado (regt.)• Identificación• Control

Tablas de un SO

Page 46: Sistemas operativos; procesos

46

Estructuras de Control del SO

Tablas de memoria− Reservas de memoria principal por parte de los procesos.− Reservas de memoria secundaria por parte de los procesos.− Atributos de protección para acceder a regiones de memoria

compartida Ej: qué procesos pueden acceder a ciertas regiones compartidas

de memoria.− Información necesaria para manejar la memoria virtual.

Tablas de E/S− En un momento dado, un dispositivo de E/S puede estar

disponible o asignado a un proceso− Si se está realizando la operación de E/S el SO debe saber:

• Estado de la operación de E/S• Dirección en memoria principal usada como origen o

destino de la transferencia.

Page 47: Sistemas operativos; procesos

47

Estructuras de Control del SO

Tablas de archivos− Existencia de archivos.− Dirección del archivo en almacenamiento secundario.− Estado actual.− Atributos.− A veces esta información es mantenida por el sistema de

gestión de archivos (file system). Tablas de procesos

− Dónde está localizado el proceso.− Atributos en el PCB (process control block).

Seguimos con esto

Page 48: Sistemas operativos; procesos

48

Imagen de un Proceso

• Nos podemos referir al conjunto de programa, datos, pila y atributos como la imagen del proceso.– Programa

• Instrucciones a ejecutar.– Datos

• Variables locales estáticas y globales, constantes definidas.– Pila

• Para almacenamiento de parámetros y direcciones de retorno de procedimientos.

– Bloque de control del proceso:• colección de atributos para el SO, para que maneje y controle el

proceso.

Page 49: Sistemas operativos; procesos

49

Process Control Block

• La información necesaria para que el SO maneje un proceso se almacena en el PCB del proceso.

• Diferentes SSOO organizan esta información de forma diferente.

• El PCB contiene información agrupada en 3 categorías:

1. Identificación del proceso2. información del estado del procesador3. información de control de proceso

Page 50: Sistemas operativos; procesos

50

Process Control Block

1. Identificación del proceso– Identificadores

• identificador del proceso

• Identificador del proceso que creó este proceso (proceso padre)

• Identificador del usuario

Page 51: Sistemas operativos; procesos

51

Process Control Block

1. Información de estado del proceso– Registros visibles por el usuario

• Un registro visible por el usuario es uno que puede ser referenciado por el lenguaje de máquina que ejecuta el procesador cuando está en modo usuario.

– Registros de Control y EstadoSe utilizan para el control de operaciones. Estos incluyen:

• Program counter: contiene la dirección de memoria de la siguiente instrucción a ejecutar

• Condition codes: resultado de la más reciente operación aritmética o lógica (e.g., signo, cero, resto, igual, overflow)

• Status information: incluye flags de enabled/disabled de interrupciones, modo de ejecución, etc.

– Punteros a Pilas• Cada proceso tiene uno o muchos LIFO (last in first out) stacks de

sistema asociados.• Un stack es usado para almacenar parámetros y direcciones de

llamada a procedimientos y system calls.• El stack pointer apunta al tope del stack.

register int i;for(i=0;i<10;++i) {}

Page 52: Sistemas operativos; procesos

52

Process Control Block

1. Información de control del proceso– Información de estado y planificación

Esta es la información que el SO necesita para analizar las funciones de planificación. Elementos típicos de esta información son:

• Estado del proceso: define si esta listo o no el proceso para ser planificado para su ejecución (e.g., running, ready, waiting, halted).

• Prioridad: uno más campos que se pueden usar para escribir la prioridad de planificación del proceso. En algunos sistemas se utilizan varios valores (default, actual, máximo permitido)

• Información relativa a planificación: esto dependerá del algorítmo de planificación utilizado. por ejemplo, la cantidad de tiempo que el proceso estaba esperando y la cantidad de tiempo que el proceso ha ejecuta la última vez que estuvo corriendo.

• Evento: identificador del evento que el proceso está esperando antes de poder continuar su ejecución.

Page 53: Sistemas operativos; procesos

53

Process Control Block1. Información de control del proceso

– Estructuración de datos• Un proceso puede estar enlazado con otro.

– Ej: un proceso puede mostrar una relación padre-hijo (creator-created) con otro proceso, o todos los procesos en una cola de espera pueden estar enlazados.

• El PCB puede contener punteros a otros procesos para dar soporte a estas estructuras.

– Interprocess Communication• Indicadores (flags), señales y mensajes asociados a la comunicación

entre dos procesos.• Alguna o toda esta información se puede mantener en el PCB.

– Privilegios del proceso• Memoria a la que pueden acceder.• Tipo de instrucciones que pueden ejecutar.• Privilegios en cuanto al uso de servicios y utilidades del sistema.

– Gestión de memoria• Punteros a tablas de páginas o segmentos que describen la memoria

virtual asignada a este proceso. – Propiedad de los recursos y utilización (resource ownership and

utilization)• Recursos controlados por el proceso, como archivos abiertos.1. Historial de la utilización del procesador o de otros recursos.

Page 54: Sistemas operativos; procesos

54

Control de Procesos

El control de Procesos se refiere a como el SO gestiona los procesos.

En este sentido veremos:− Modos de ejecución: user y kernel.

− Pasos para la creación de un proceso.

− Cuándo cambiar de proceso.

− Cambio de modo y cambio de proceso.

− Modos de ejecución del SO.

Page 55: Sistemas operativos; procesos

55

Control de Procesos

El control de Procesos se refiere a como el SO gestiona los procesos.

En este sentido veremos:− Modos de ejecución: user y kernel.

− Pasos para la creación de un proceso.

− Cuándo cambiar de proceso.

− Cambio de modo y cambio de proceso.

− Modos de ejecución del SO.

Page 56: Sistemas operativos; procesos

56

Control de ProcesosModos de Ejecución

Modo usuario− Es el modo menos privilegiado.− Los programas de usuario ejecutan normalmente en este

modo. Sistemas, control o kernel Modo más privilegiado.

− El kernel del SO ejecuta en este modo.− Este modo es el utilizado para la gestión de procesos,

gestión de memoria, gestión de E/S, etc (sig diapositiva).

Page 57: Sistemas operativos; procesos

57

Control de ProcesosModos de Ejecución

Funciones del SO ejecutadas en modo kernel

Se necesita proteger al SO y las tablas principalesde interferencias con los programas de usuario.

Page 58: Sistemas operativos; procesos

58

Control de ProcesosModos de Ejecución

Cómo se modifica este modo?

– Mediante un bit del registro de estado o palabra de estado (PSW) → este bit indica el modo de ejecución.

– Ante una llamada al sistema o un evento que necesite al SO se cambia este modo de ejecución.

– Campo CPL (current privilege level) del PSW.

Se necesita proteger al SO y las tablas principalesde interferencias con los programas de usuario.

Page 59: Sistemas operativos; procesos

59

Control de Procesos

El control de Procesos se refiere a como el SO gestiona los procesos.

En este sentido veremos:− Modos de ejecución: user y kernel.

− Pasos para la creación de un proceso.

− Cuándo cambiar de proceso.

− Cambio de modo y cambio de proceso.

− Modos de ejecución del SO.

Page 60: Sistemas operativos; procesos

60

Creación de ProcesosAl crear un proceso, el SO deberá: Asignar un identificador único de proceso

− En este instante se agrega una nueva entrada a la tabla primaria de procesos, que contiene una entrada por proceso.

Reservar espacio para el proceso.− Para todos los elementos de la imagen del proceso: programa, datos, pilas, y

para el propio BCP. Inicializar el BCP.

− Inicializar la parte de identificación de proceso del BCP.− Información de estado del BCP: habitualmente se inicializa con la mayoría de

los campos en cero, excepto el contador de programa (fijado en el punto de entrada del programa) y los punteros de pila del sistema (fijados para definir los límites de la pila del proceso). Prioridad más baja, no posesión de recursos al menos pedido explícito.

Establecer los enlaces apropiados− Ej: agregar al nuevo proceso a la lista encadenada usada para la cola de

planificación (agregarlo a la cola de ready o ready/suspended). Crear (o expandir) otras estructuras de datos

− Ej: mantener un archivo de auditoría con información de todos los procesos.

Page 61: Sistemas operativos; procesos

61

Control de Procesos

El control de Procesos se refiere a como el SO gestiona los procesos.

En este sentido veremos:− Modos de ejecución: user y kernel.

− Pasos para la creación de un proceso.

− Cuándo cambiar de proceso.

− Cambio de modo y cambio de proceso.

− Modos de ejecución del SO.

Page 62: Sistemas operativos; procesos

62

Control de ProcesosCambios de procesos: suceden cuando el SO toma el control

(sacando al proceso que estaba ejecutándose). Entonces, esto sucede ante →

- una interrupción, trap (instrucción que genera una excepción, cond. de error, etc), una llamada al sistema.

¿Qué debe hacer un SO con las estructuras para realizar un cambio de proceso?

Otra situación justifica un cambio de modo y no un cambio de proceso, ¿cuando?

Page 63: Sistemas operativos; procesos

63

Cuándo Cambiar de Proceso

¿Cuándo realizar el cambio de proceso? Para realizar el cambio de proceso el control debe volver al SO. ¿Cómo?

Por Interrupción de reloj− el proceso ha ejecutado por el slice de tiempo máximo disponible.

Por Interrupciones E/S− si la acción de E/S constituye un evento que esperaban uno o más

procesos, el SO mueve todos los procesos a la lista de ready o ready/suspended. El SO debe luego decidir si reanuda el proceso que se estaba ejecutando o si lo expulsa para continuar con otro (de mayor prioridad, por ejemplo).

Por Fallo de Memoria (Memory fault)– la dirección de memoria está en memoria virtual, entonces debe ser

traído a memoria principal. El proceso pasa a estado bloqueado y se elige otro proceso para ejecutar -> Se trae el bloque (página o segmento) a memoria y una vez finalizada esta operación, el proceso que solicitó dicho bloque pasa a estado de listo.

Page 64: Sistemas operativos; procesos

64

Cuándo Cambiar de Proceso

¿Cuándo realizar el cambio de proceso? Para realizar el cambio de proceso el control debe volver al SO. ¿Cómo?

Trap: condición de error o de excepción asociada a la ejecución de una instrucción (la actual).

Trap− ocurre un error o una excepción.− Si el SO determina que es una condición de error o excepción

irreversible → el proceso es movido al estado Exit → cambio de proceso.

− Si el SO determina que es es reversible: se continúa en función de la naturaleza del error: rutina de recuperación, aviso al usuario, etc. Cambio de proceso o no.

.

Page 65: Sistemas operativos; procesos

65

Cuándo Cambiar de Proceso

¿Cuándo realizar el cambio de proceso? Para realizar el cambio de proceso el control debe volver al SO. ¿Cómo?

Llamada al sistema (system call):– Generadas por instrucciones del programa en ejecución.

− Ej: abrir archivo. La rutina forma parte del SO. El proceso de usuario es bloqueado. Se pasa a modo núcleo.

Page 66: Sistemas operativos; procesos

66

Control de Procesos

El control de Procesos se refiere a como el SO gestiona los procesos.

En este sentido veremos:− Modos de ejecución: user y kernel.

− Pasos para la creación de un proceso.

− Cuándo cambiar de proceso.

− Cambio de modo y cambio de proceso.

− Modos de ejecución del SO.

Page 67: Sistemas operativos; procesos

67

Cambio del ModoEl ciclo de instrucción incluye la comprobación de la

existencia de una interrupción pendiente. Si existe una interrupción, el SO:

- Salvar contexto del programa que se ejecuta (PCB → datos del contexto (describe el estado del procesador en el momento de la interrupción)).

Asignar al contador de programa (PC) el valor de la dirección de comienzo del programa de tratamiento de la interrupción.

Cambiar de modo usuario a modo núcleo, para que en el procesamiento de la interrupción pueda haber instrucciones privilegiadas.

Ejecutar rutina de tratamiento de interrupción.

Page 68: Sistemas operativos; procesos

68

Cambio del ModoLuego de atender la rutina de interrupción, es posible

que se siga ejecutando el mismo proceso. Entonces:

El cambio de modo no implica posterior cambio de estado del proceso que se estaba ejecutando.

Se puede cambiar de modo, ejecutar instrucciones privilegiadas en modo núcleo y volver a ejecutar el mismo proceso.

En estos casos, no hay cambio de estado del proceso en estado de Ejecución: no hay cambio de proceso.

¿Qué pasa si cambia el proceso en ejecución?

Page 69: Sistemas operativos; procesos

69

Cambio del Estado del Proceso• Proceso de estado Ejecutando a Listo o Bloqueado → los

pasos que se realizan para un cambio de proceso son:1. Salvar el estado del procesador, incluyendo el contador de programa y

otros registros.2. Actualizar el PCB del proceso que está actualmente en estado running

• Cambiar el estado del proceso al nuevo estado, actualizar otros campos como la razón por la cual el proceso deja el estado running, info de auditoría, etc.

1. Mover el PCB del proceso a la cola apropiada (ready, blocked, ready/suspend)

2. Seleccionar otro proceso para su ejecución (esto se verá con más detalle más adelante en el curso).

3. Actualizar el PCB del proceso elegido (ie: pasarlo al estado running).4. Actualizar las estructuras de datos de la gestión de memoria. (para

traducción de direcciones – se verá más adelante).5. Restaurar el contexto del proceso (actualizar registros del procesador

al que tenía en el último momento de dejar el procesador).

Page 70: Sistemas operativos; procesos

70

Cambio del Estado del Proceso

• ¿Quién realiza las operaciones anteriores para realizar un cambio de estado del proceso?– El sistema operativo.

• ¿Qué cambios hacen falta entonces?1. Cambio de modo

• a modo núcleo

1. S.O. realiza cambio de proceso2. Cambio de modo

• a modo usuario

Page 71: Sistemas operativos; procesos

71

Cambio de ProcesoSíntesis

1. Salvar contexto de P1 (PCB).2. Asignar el PC la dirección de comienzo de

programa para el tratamiento de interrupción de cambio de proceso.

3. Cambiar a modo núcleo.4. Ejecutar rutina tratamiento de interrupción

(cambio de proceso):– Actualizar el PCB que está en estado de ejecución

(nuevo estado: ready/blocked/…)– Mover el PCB a la cola apropiada (ready/blocked).– Seleccionar otro proceso para su ejecución.– Actualizar PCB seleccionado (nuevo estado: running)– Actualizar estructuras de datos de la gestión de

memoria (traducción de direcciones).– Restaurar contexto del proceso seleccionado

(actualizar registros del procesador), incluyendo modo.

Page 72: Sistemas operativos; procesos

72

Control de Procesos

El control de Procesos se refiere a como el SO gestiona los procesos.

En este sentido veremos:− Modos de ejecución: user y kernel.

− Pasos para la creación de un proceso.

− Cuándo cambiar de proceso.

− Cambio de modo y cambio de proceso.

− Modos de ejecución del SO.

Page 73: Sistemas operativos; procesos

73

Ejecución del Sistema Operativo El SO funciona de la misma forma que cualquier programa:

− es un programa que se ejecuta en el procesador. De acuerdo a la relación con procesos de usuario en cuanto a

ejecución (dónde y en qué modo se ejecutan) hay distintas arquitecturas de SSOO:

Page 74: Sistemas operativos; procesos

74

Ejecución del Sistema Operativo El SO funciona de la misma forma que cualquier programa:

− es un programa que se ejecuta en el procesador. De acuerdo a la relación con procesos de usuario en cuanto a

ejecución (dónde y en qué modo se ejecutan) hay distintas arquitecturas de SSOO:

− Kernel sin procesos Ejecuta el kernel fuera de cualquier proceso, en modo kernel. SSOO antiguos. El código del SO es ejecutado como una entidad separada que opera en

modo privilegiado. Cuando el proceso en ejecucuión se interrumpe o hace una llamada al

sistema, el contexto se guarda y se pasa el control al núcleo. El SO tiene su propia región de memoria y su propia pila. Luego de ejecutar el SO reanuda la ejecución del proceso de usuario

afectado o de otro proceso diferente.

Page 75: Sistemas operativos; procesos

75

Ejecución del Sistema Operativo El SO funciona de la misma forma que cualquier programa:

− es un programa que se ejecuta en el procesador. De acuerdo a la relación con procesos de usuario en cuanto a

ejecución (dónde y en qué modo se ejecutan) hay distintas arquitecturas de SSOO:

− Ejecución dentro de los procesos de usuario: Ejecuta las rutinas del SO en el contexto de un proceso de usuario: cada

proceso tiene sus regiones + áreas de programa, datos y pilas de los programas kernel.

El proceso se ejecuta en modo kernel cuando ejecuta código del SO. No es necesario cambio de contexto para llamadas al sistema (sólo

cambio de modo).

Page 76: Sistemas operativos; procesos

76

Ejecución del Sistema Operativo El SO funciona de la misma forma que cualquier programa:

− es un programa que se ejecuta en el procesador.− De acuerdo a la relación con procesos de usuario en cuanto a

ejecución (dónde y en qué modo se ejecutan) hay distintas arquitecturas de SSOO:

− Sistemas operativos basados en Procesos: Las funciones más importantes del kernel se organizan en procesos

separados.− implementa al SO como una colección de procesos de sistema

Diseño modular, interfaces claras entre módulos. Procesos de sistema se ejecutan en modo nucleo.


Top Related