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 la
utilización (no se
ejecuta 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 SO
Tablas del SO
Tabla de procesos
BCP 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 procesos
BCP 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 SO
Tablas del SO
Tabla de procesos
BCP 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 otros
Dispositivos, 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 memoria
del proceso A
Tablas SO
CP
SP
PSW
Registros
especiales
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 memoria
del proceso B
Mapa de memoria
del proceso C
Registros
generales • 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 proceso
2. información del estado del procesador
3. 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 Estado
Se 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 Block
1. 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 Procesos
Modos 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 Procesos
Modos de Ejecución

Funciones del SO ejecutadas en modo kernel
Se necesita proteger al SO y las tablas principales
de interferencias con los programas de usuario.
58
Control de Procesos
Modos 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 principales
de 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 Procesos
Al 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 Procesos
Cambios 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 Modo
El 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 Modo
Luego 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 proceso
2. Cambio de modo
• a modo usuario
71
Cambio de Proceso
Sí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.

Sistemas operativos; procesos

  • 1.
  • 2.
    2  “...Para ejecutar unprograma é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.
    3 Multitarea  Se basa en3 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.
  • 5.
    Grado de multiprogramacióny utilización del procesador Grado de multiprogramación: número de procesos activos que mantiene un sistema.
  • 6.
    Grado de multiprogramacióny 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 la utilización (no se ejecuta el proceso nulo)
  • 7.
    Grado de multiprogramacióny utilización del procesador Fuente: Sistemas Operativos. Una visión Aplicada. Jesús Carretero (et al)
  • 8.
    Grado de multiprogramacióny utilización del procesador Fuente: Sistemas Operativos. Una visión Aplicada. Jesús Carretero (et al)
  • 9.
    9 Proceso  También llamado tarea.  Esun 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.
    10 Información del proceso  Elproceso 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 SO Tablas del SO Tabla de procesos BCP 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
  • 11.
    Información del proceso  Elproceso 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.
  • 12.
    Información del proceso  Elproceso 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.
    13 Información del proceso  Elproceso 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 procesos BCP 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.
    14 Información del proceso  Elproceso 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 SO Tablas del SO Tabla de procesos BCP 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.
    15 Elementos que caracterizanun 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.
    16 Process Control BlockSimplificado  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.
    17 Traza de unProceso  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.
    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.
    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.
    20 • Ahora vemosesas 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.
    21 Modelo de Procesode 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.
    22 Modelo de Procesode 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.
    23 Modelo de Procesode Dos Estados  El proceso puede estar en uno de dos estados − Ejecutando, − No ejecutando
  • 24.
    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.
    25 Del Modelo deProcesos 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.
    26 El Modelo deProcesos 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.
    27 El Modelo deProcesos 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.
    28 El Modelo deProcesos de Cinco-Estados
  • 29.
    29 Diagrama de Procesosen 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.
    30 Colas de Listosy 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.
    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.
    32 Procesos Suspendidos  El procesadores 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.
    33 Un Sólo EstadoSuspendido • 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.
    34 Introducción a DosEstados 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.
    35 Modelo de SieteEstados Actualizamos el modelo de transición de estados. Swapping: operación de E/S pero en disco es más rápida que en otros Dispositivos, lo que hace que generalemente mejora el rendimiento
  • 36.
    36 Modelo de SieteEstados 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.
    37 Razones para Suspenderun 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.
  • 38.
    Creación de procesos  Asignarnueva 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
  • 39.
  • 40.
    Creación de procesos intid ; 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
  • 41.
    Creación de procesos  Elproceso 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
  • 42.
  • 43.
    43 Estructuras de Controldel 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.
  • 45.
    Memoria P. Mapa de memoria delproceso A Tablas SO CP SP PSW Registros especiales 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 memoria del proceso B Mapa de memoria del proceso C Registros generales • Estado (regt.) • Identificación • Control • Estado (regt.) • Identificación • Control • Estado (regt.) • Identificación • Control Tablas de un SO
  • 46.
    46 Estructuras de Controldel 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.
    47 Estructuras de Controldel 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.
    48 Imagen de unProceso • 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.
    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 proceso 2. información del estado del procesador 3. información de control de proceso
  • 50.
    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.
    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 Estado Se 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.
    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.
    53 Process Control Block 1.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.
    54 Control de Procesos  Elcontrol 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.
    55 Control de Procesos  Elcontrol 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.
    56 Control de Procesos Modosde 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.
    57 Control de Procesos Modosde Ejecución  Funciones del SO ejecutadas en modo kernel Se necesita proteger al SO y las tablas principales de interferencias con los programas de usuario.
  • 58.
    58 Control de Procesos Modosde 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 principales de interferencias con los programas de usuario.
  • 59.
    59 Control de Procesos  Elcontrol 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.
    60 Creación de Procesos Alcrear 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.
    61 Control de Procesos  Elcontrol 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.
    62 Control de Procesos Cambiosde 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.
    63 Cuándo Cambiar deProceso ¿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.
    64 Cuándo Cambiar deProceso ¿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.
    65 Cuándo Cambiar deProceso ¿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.
    66 Control de Procesos  Elcontrol 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.
    67 Cambio del Modo Elciclo 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.
    68 Cambio del Modo Luegode 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.
    69 Cambio del Estadodel 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.
    70 Cambio del Estadodel 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 proceso 2. Cambio de modo • a modo usuario
  • 71.
    71 Cambio de Proceso Sí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.
    72 Control de Procesos  Elcontrol 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.
    73 Ejecución del SistemaOperativo  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.
    74 Ejecución del SistemaOperativo  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.
    75 Ejecución del SistemaOperativo  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.
    76 Ejecución del SistemaOperativo  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.