PDF de programación - 3. Procesos. Introducción - Bloque II – Sistemas Operativos

Imágen de pdf 3. Procesos. Introducción - Bloque II – Sistemas Operativos

3. Procesos. Introducción - Bloque II – Sistemas Operativosgráfica de visualizaciones

Actualizado el 28 de Julio del 2017 (Publicado el 7 de Julio del 2017)
780 visualizaciones desde el 7 de Julio del 2017
359,7 KB
40 paginas
Creado hace 13a (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



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

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

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
  • Links de descarga
http://lwp-l.com/pdf4972

Comentarios de: 3. Procesos. Introducción - Bloque II – Sistemas Operativos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad