sistemas operativos; procesos

Post on 21-Jul-2015

325 Views

Category:

Engineering

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Descripción y Control de 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)...”

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.

4

Multitarea

Grado de multiprogramación y utilización del procesador

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

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)

Grado de multiprogramación y utilización del procesador

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

Grado de multiprogramación y utilización del procesador

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

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).

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

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.

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.

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.

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

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.

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.

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.

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 ->

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 ->

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

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

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.

23

Modelo de Proceso de Dos Estados

El proceso puede estar en uno de dos estados

− Ejecutando, − No ejecutando

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)

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.

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.

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

28

El Modelo de Procesos de Cinco-Estados

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.

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.

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.

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)

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.

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.

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

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

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.

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

Creación de procesos

39

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

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

Creación de procesos

42

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.

44

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

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.

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

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.

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

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

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) {}

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.

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.

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.

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.

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).

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.

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.

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.

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.

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.

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?

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.

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.

.

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.

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.

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.

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?

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).

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

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.

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.

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:

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.

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).

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