Actualizado el 28 de Julio del 2017 (Publicado el 7 de Julio del 2017)
877 visualizaciones desde el 7 de Julio del 2017
359,7 KB
40 paginas
Creado hace 14a (04/11/2010)
Fariña, Pedreira: LBD@2010
Bloque II
Bloque II – Sistemas Operativos
Sistemas Operativos
3. Procesos. Introducción
3. Procesos. Introducción
Procesos y programas
y p g
Fariña, Pedreira: LBD@2010
• Programa Vs proceso:
P
– Un programa se puede ver como una entidad pasiva. Se puede ver
V
como código que reside en disco o memoria y que no ha sido activado.
– La activación de este código, implica:
• Su carga en memoria (todo o parte de él).
• La creación (por parte del S O ) de estructuras que permitan
• La creación (por parte del S.O.) de estructuras que permitan
controlar su ejecución. Estas estructuras constituyen el BCP
(bloque de control del proceso).
U
• Un proceso es por tanto una entidad activa.
• Un proceso se puede ver como una instancia de un programa en
tid d
ti
t
t
ejecución.
• P.ej. Un usuario puede abrir 2 veces el firefox, esto da lugar a que haya 2
procesos ejecutando el mismo código (aunque con estados diferentes)
– Un proceso es pues un programa en ejecución, incluyendo el
código o instrucciones que lo componen, el contador de programa,
los registros y las variables es decir contiene toda la información
los registros y las variables, es decir, contiene toda la información
relativa al entorno en donde se ejecuta.
Procesos y programas
y p g
Fariña, Pedreira: LBD@2010
• Todo programa que se ejecute lo hace en modo de un
d d
j
T d
proceso.
E
– la unidad de procesamiento gestionada por el S.O.
• En general, proceso se puede considerar como:
l h
id
d
l
• Para ejecutar un programa éste (su código máquina) ha de
• Para ejecutar un programa, éste (su código máquina) ha de
residir en el mapa de memoria (memoria que puede
direccionar), junto con sus datos.
direccionar), junto con sus datos.
• El S.O. ha de conocer, para cada proceso:
– Su estado, características y recursos utilizados
Su estado, características y recursos utilizados
• Esta información de cada proceso se guarda en un BCP (Bloque de
control de proceso)
– El S.O. guarda una Tabla de procesos que contiene 1 BCP x proceso.
bcp1
bcp2
bcp3
…
bcpN
Tabla de procesos del S.O.
Bloque de Control de Proceso (BCP)
)
q
(
Fariña, Pedreira: LBD@2010
•
•
Contiene la info básica de cada proceso
Contiene la info básica de cada proceso.
Información de identificación.
Identificador del proceso.
Identificador del proceso padre en caso de existir relaciones padre‐hijo (UNIX).
Información sobre el usuario (identificador de usuario, grupo)
)
•
•
•
( d
ó
b
d
d
f
f
l
–
–
–
–
–
Estado del procesador (registros, PC, …)
Información de control del proceso.
•
•
•
Información de planificación y estado:
– Estado del proceso: (en ejecución, listo, parado,…)
– Evento por el que espera (si está bloqueado)
– Prioridad del proceso
– Información de planificación (p.ej. Uso cpu, time‐stamp uso,…)
Info de los segmentos de memoria asignados al proceso
Info de los segmentos de memoria asignados al proceso
– Punteros a:
» segmento de datos:
•
•
Con/sin valor inicial (valores iniciales del programa)
dinámicos (se crean o destruyen durante la ejecución del programa)
» segmento de código (instrucciones máquina del programa)
» segmento de pila.
• Recursos asignados al proceso:
– Ficheros abiertos (tabla de descriptores)
– Puertos de comunicación asignados
– Temporizadores
ió
d
d
P
t
i
i
Punteros para estructurar los procesos (en colas, anillos, …)
Comunicación entre procesos: El BCP puede contener espacio para almacenar: Las señales y los mensajes
enviados al proceso
enviados al proceso.
Vida de un proceso
p
Fariña, Pedreira: LBD@2010
C
ió j
• Creación ejecución (interrup/activación) terminación/muerte
t
• Creación
ió (i t
ió ) t
ió /
ti
/
i
– La realiza un proceso (padre), salvo el proceso INIT (creado en el
La reali a n proceso (padre) sal o el proceso INIT (creado en el
arranque: Unix/linux)
– Consiste en completar todas las informaciones del proceso
p
p
• Asignar espacio de memoria para su “mapa de memoria” (todas
las regiones de memoria accesibles para él)
S l
• Seleccionar un BCP libre en la tabla de procesos
• Rellenar el BCP con la info del proceso (identificación, regiones de
BCP lib
bl d
i
l
memoria, valores iniciales,…)
)
e o a, a o es
c a es,
• Cargar:
– En segmento de código sus instrucciones + rutinas del sistema que usará.
– En el segmento de datos, los datos iniciales del programa (inicializados).
• Crear la pila inicial del proceso.
• Marcarlo como listo para ejecutarse el planificador lo tendrá en
Marcarlo como listo para ejecutarse. el planificador lo tendrá en
cuenta, cuando lo considere oportuno.
Vida de un proceso
• Fork() … unix/linux
C
(f k)
Creación de procesos (fork)
ió d
Fariña, Pedreira: LBD@2010
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
main()
{
k()
1 hij
int fpid,val=2;
f id f
//
fpid=fork(); //se crea 1 hijo que es copia exacta.
i
if (fpid==-1) //la ejecución continúa aquí (padre e hijo)
printf(“\n fork ha fallado”); /*error */
l
0)
else if (fpid==0)
val--; /*proceso hijo*/
else
/*proceso padre */
val++; /*proceso padre */
val++;
if (f id
printf("\n val= %d\n",val);
}}
Vida de un proceso
i t
ió
interrupción / activación
ió /
ti
Fariña, Pedreira: LBD@2010
•
ió d
I t
Interrupción de un proceso.
– Un proceso puede ver interrumpida su ejecución (pasar a estar
bloqueado o en espera) debido a una interrupción pasará a
ejecutarse el S.O. (modo kernel)
– Es necesario guardar el contenido de:
• Los registros de usuario en el BCP
Los registros de usuario en el BCP.
• Activación de un proceso.
Activación de un proceso.
– Activar un proceso consiste en ponerlo en ejecución.
– La realiza un módulo del S.O. llamado “activador” o “dispatcher”.
– Cuando se reactive el proceso, la cargarán los valores de los registros
d l
d
l
l
á l
l
(almacenados en el BCP) de nuevo en la CPU (incluido el PC), y se
continuará normalmente.
Esto es, se deja el computador exactamente tal y como se estaba antes
de que el proceso dejase la CPU.
Vida de un proceso
p
• Terminación de un proceso.
– Motivos:
Fariña, Pedreira: LBD@2010
• Terminación normal (exit en Unix)
• Terminación por error (p.ej. Fichero no existe)
)
• Error fatal (excepción, acceso a memoria no permitida,…)
• Terminado por otro proceso (kill ‐9 Pid)
(kill 9 Pid)
i d
(
T
t
– El S.O. debe recuperar los recursos que pudiese tener asignados.
El S O debe recuperar los recursos que pudiese tener asignados
• Recuperar recursos asignados exclusivamente al proceso (p.ej:
BCP, o una región de datos no compartidos).
BCP, o una región de datos no compartidos).
• Recuperar recursos compartidos: El S.O. sólo recupera el recurso
cuando deja de estar usado (contador de referencias = 0)
Estados de un proceso: activos
p
• Estados activos: El proceso compite por la cpu o puede hacerlo
• Estados activos: El proceso compite por la cpu o puede hacerlo.
– Ejecución: El proceso tiene el control de la cpu. El estado del procesador
reside en sus registros (registros de la cpu)… BCP puede tener copia sucia.
– Preparado o listo: Está preparado para acceder a la CPU cuando el
planificador lo considere oportuno. El estado reside en el BCP.
Fariña, Pedreira: LBD@2010
– Bloqueado o espera: Ante una operación que requiera tiempo largo (p.ej.
una E/S), el proceso queda bloqueado. El estado del procesador se guarda
en el BCP (otro proceso diferente podría ejecutarse mientras tanto).
)
p
(
p
j
j
ió
ejecución
termina
nuevo
nuevo
Listo/
/
preparado
Se produce evento
q
Bloqueado/
/
espera/ asleep
• Estados inactivos: Procesos no pueden competir por el procesador.
(1)Suspendido bloqueado, (2)Suspendido listo
Estados de un proceso: inactivos (suspendidos)
)
p
p
(
•
•
p
p
p
p
Estados activos: El proceso compite por la cpu o puede hacerlo.
– Ejecución, listo, bloqueado
Estados inactivos: Procesos no pueden competir por el procesador.
– Para aumentar el grado de multiprogramación (número de procesos activos en un
ti
P
momento dado) el S.O. puede suspender algunos procesos. Les retira sus marcos
de página y aumenta así la memoria disponible para otros procesos.
ió ( ú
d d
lti
p
t
l
d
Fariña, Pedreira: LBD@2010
• Los marcos retirados se van a disco: a la zona de intercambio.
d i t
ti d
di
bi
L
l
– Suspendido y listo: Estaba listo, y lo suspenden.
– Suspendido y bloqueado: Estaba bloqueado (esperando por un evento) y lo
suspenden.
ejecución
termina
Listo/
preparado
Recuperado
de disco
Enviado
a disco
Suspendido y
listo
Se produce evento
Se produce evento
Bloqueado/
espera/ asleep
Enviado a disco
Suspendido y
bloqueado
nuevo
nuevo
N
Nuevo
batch
s
o
o
d
a
t
s
E
s
s
o
v
i
t
c
a
s
s
o
d
a
t
s
E
s
o
o
v
i
t
c
a
n
i
Estados de un proceso:
motivos de transiciones de estado
t d
d t
i i
ti
d
Fariña, Pedreira: LBD@2010
Inicio de proceso inserción en cola de listos
Inicio de proceso inserción en cola de listos.
•
•
• Paso a ejecución se saca el primero de cola de listos
• Paso a bloqueado Un proceso
q
p
– Realiza una operación de E/S y debe esperar
– Estaba “suspendido y bloqueado” y cuando le toca reanudarse todavía no ha
desaparecido la causa de su bloqueo (espera).
• Paso a listo
– Ejecución del programa (inicio)
– Fin de operación de E/S
Fin de operación de E/S
– Interrupción que fuerza que se quite de la CPU a un proceso (p.ej fin quantum)
– Activación: Un proceso estaba suspendido y listo y se saca de estado de
suspensión.
p
• Paso a suspendido bloqueado.
– Estaba bloqueado y el S.O. da la orden de suspenderlo.
• Paso a suspendido listo
• Paso a suspendido listo.
– Suspensión de un proceso listo.
– Desbloqueo de un proceso suspendido y bloqueado (p.ej fin de E/S)
– Ejecución de un proceso batch (podría comenzar listo o suspendido y listo )
Ejecución de un proceso batch (podría comenzar “listo” o “suspendido y listo
Comentarios de: 3. Procesos. Introducción - Bloque II – Sistemas Operativos (0)
No hay comentarios