PDF de programación - Tema 3 - Descripción y Control de Procesos

Imágen de pdf Tema 3 - Descripción y Control de Procesos

Tema 3 - Descripción y Control de Procesosgráfica de visualizaciones

Publicado el 2 de Junio del 2019
946 visualizaciones desde el 2 de Junio del 2019
554,0 KB
78 paginas
Creado hace 7a (06/02/2017)
Tema 3

Descripción y Control de Procesos

Stallings: 3.1 – 3.4

Contenido

 Introducción: qué es un proceso.
 Estados de un proceso: modelos de colas.
 Creación y terminación de procesos.
 Descripción de procesos: estructuras de

control.

 Control de procesos.
 Modos de ejecución.

A.Ortigosa

Principales requisitos de los

sistemas operativos

 Intercalar la ejecución de múltiples procesos
para maximizar la utilización del procesador
ofreciendo a la vez un tiempo de respuesta
razonable.

 Asignar los recursos a los procesos.
 Dar soporte a la comunicación entre procesos

y la creación de procesos por parte del
usuario.

A.Ortigosa

Proceso

 También se llama tarea.
 Ejecución de un programa individual.
 Traza del proceso:

 Listado de la secuencia de instrucciones que se

ejecutan para dicho proceso.

 Dintinguir entre Proceso (concepto dinámico) y

Programa (concepto estático).

Proceso = Código (texto)

+ Actividad (contador, registros, ficheros, E/S)
+ Pila (datos temporales, parámetros,...)
+ Datos (globales)

A.Ortigosa

Dirección
0
100

5.000

8.000

12.000

Memoria principal

Contador de programa

8000

Distribuidor

Proceso A

Proceso B
Proceso B

Proceso C
Proceso C

Figura 3.1. Instantánea de un ejemplo de ejecución (Figura 3.3)

en el ciclo de instrucción 13.

(a) Traza del proceso A

(b) Traza del proceso B

(c) Traza del proceso C

5000 = Dirección de comienzo del programa del proceso A
8000 = Dirección de comienzo del programa del proceso B
12000 = Dirección de comienzo del programa del proceso C

Figura 3.2. Trazas de los procesos de la Figura 3.1.

Fin de plazo

Fin de plazo

Solicitud de E/S

Fin de plazo

Fin de plazo

100 = Dirección de comienzo del programa distribuidor
Las áreas sombreadas indican ejecución del proceso distribuidor;
la primera y tercera columna cuentan los ciclos de instrucción;
la segunda y cuarta columna muestran la dirección de la
instrucción a ejecutar.

Figura 3.3. Traza combinada de los procesos de la Figura 3.1.

- Procedimiento empleado en Multiprogramación y Tiempo Compartido

Hardware

Interrupción

Interrupción

Proceso P0

Sistema Operativo

Proceso P1

Guarda estado en BCP0

Rutina de atención interr + Planificador

Recupera estado de BCP1

Guarda estado en BCP1

Rutina de atención interr + Planificador

Recupera estado de BCP0

Modo del Procesador:

Modo
Usuario

Modo
Núcleo

Modo
Usuario

Modelo de proceso con dos

estados

 Un proceso puede estar en uno de dos estados:

 Ejecución.
 No Ejecución.

Expedir

Entrar

No

No ejecución
Ejecución

Salir

Ejecución
Ejecución

Pausar

(a) Diagrama de transición de estados

A.Ortigosa

Proceso en estado de No Ejecución

en una cola

Entrar

Cola

Expedir

Salida

Proce-
sador

Pausa

(b) Diagrama de colas

Planificador
a corto plazo
(Dispatcher)

A.Ortigosa

Procesos

 No Ejecución:

 Listos para ejecutarse.

 Bloqueado:

 Esperan a que termine una operación de E/S.

 El distribuidor podría no seleccionar
exactamente el proceso que está en el
extremo más antiguo de la cola porque
podría estar bloqueado.

A.Ortigosa

Un modelo de cinco estados

 Ejecución.
 Listo.
 Bloqueado.
 Nuevo.
 Terminado.

A.Ortigosa

Admitir

Nuevo
Nuevo

Listo
Listo

Expedir

Fin del
tiempo

Ejecución
Ejecución

Salir

Terminado
Terminado

Ocurre
suceso

Espera
suceso

Bloqueado
Bloqueado

Figura 3.5. Modelo de procesos de cinco estados.

Diagramas de Gantt:

Proceso A

Proceso B

Proceso C

Planificador

0

5

10

15

20

25

30

35

40

45

50

Ejecución

Listo

Bloqueado

Figura 3.6. Estados de un proceso para la traza de la Figura 3.3.

Normalmente los diagramas no incluyen la actividad el SO (planificador)

Dos colas de bloqueados

Admitir

Cola de listos

Expedir

Salir

Proce-
sador

Fin de plazo

Cola de bloqueados

Esperar suceso

Ocurre
suceso

(a) Una sola cola de bloqueados

Planificador
a corto plazo
(Dispatcher)

A.Ortigosa

Admitir

Cola de listos

Expedir

Proce-
sador

Salir

Fin de plazo

Cola del suceso 1

Cola del suceso 2

Esperar suceso 1

Esperar suceso 2

Cola del suceso n

Esperar suceso n

(b) Varias colas de bloqueados

Ocurre
suceso 1

Ocurre
suceso 2

Ocurre
suceso n

Procesos suspendidos

 El procesador es más rápido que la E/S, por lo que suele

ser habitual que todos los procesos de memoria estén
esperando por E/S.

 Intercambiar una parte (memoria virtual) o todo el

proceso al disco para liberar memoria ppal.

 Cuando los procesos de la memoria principal están en el
estado Bloqueado, el sistema operativo puede suspender
un proceso poniéndolo en estado Suspendido.

 Dos nuevos estados:

 Bloqueado y suspendido.
 Listo y suspendido.

A.Ortigosa

Un estado de suspensión

Admitir

Nuevo
Nuevo

Listo
Listo

Expedir

Fin de plazo

Ejecución
Ejecución

Salir

Terminado
Terminado

Activar



o
s
e
c
u
s


e
r
r
u
c
O

Esperar suceso

Suspendido
Suspendido

Suspender

Bloqueado
Bloqueado

(a) Con un estado de suspensión

A.Ortigosa

Ejemplo (Diagrama de Gantt)

P A

P B

P C

P D

P E

Di

0

5

10

15

20

25

30

35

40

45

50

Ejecución

Listo

Bloqueado

Suspendido

Retorno E/S

t=0

t=5

t=10

t=17

PD

PE

PA

PB
PC

PD

PE

PA

PB
PC

PD

PE

PA

PB
PC

PA

PE

PD

PB
PC

Disco Memoria

Disco Memoria Disco Memoria Disco Memoria

t=25

t=38

t=48

PA

PB

PD

PE

PC

PD

PE

PA

PD

PC

PB

PE

PA

PB
PC

Disco Memoria

Disco Memoria Disco Memoria

Dos estados de suspensión

Nuevo
Nuevo

Admitir

A

d

m

i
t
i
r

Listo/

suspendido

Activar

Suspender



o
s
e
c
u
s


e
r
r
u
c
O

Listo



o
s
e
c
u
s


e
r
r
u
c
O

Bloqueado/
suspendido

Activar

Suspender

Bloqueado
Bloqueado

Suspender
Expedir

Fin de plazo

Ejecución
Ejecución

Salir

Terminado
Terminado

Esperar suceso

A.Ortigosa

(b) Con dos estados de suspensión

Creación de procesos

 Emisión de un trabajo por lotes.
 El nuevo usuario intenta conectarse.
 Se crea para ofrecer un servicio, como por

ejemplo la impresión.

 Un proceso puede originar la creación de

otro.

A.Ortigosa

Creación de procesos

 Proceso hijo inicialmente igual que padre: copia exactamente segmento

de datos, pila y estructura de usuario

 Forma de distinguirle del padre: mediante el retorno de fork : 0 para el

hijo y el pid del hijo para el padre

 A medida que el hijo va ejecutando otro código, su memoria, pila y

estructura se diferencia del padre

 El hijo no termina, hasta que el padre recoge su código de finalización

( devuelto con exit ).

 El hijo queda zombie, si el padre termina y no ha recogido su código

de finalización. El padre debe esperar a sus hijos.

 El hijo queda huérfano, si el padre muere cuando el hijo aún está en

ejecución.

A.Ortigosa

Creación de procesos

 Crear nuevo proceso:

 asignarle entrada en la tabla de procesos y su

}

A.Ortigosa

identificador (pid ).

 estado listo para ejecutar

Padre

Hijo

 Ejemplo:
int id ;
id = fork();
switch(id)
{
case -1 : /* error */ break ;
case 0 : /* hijo */ break ;
default : /* padre, id tiene el pid del hijo */ break ;

Creación de procesos

#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>

main( ) {
int childpid;
...
if ((childpid=fork())==0) fprintf(stderr,"Soy el hijo con PID

%d\n",getpid());

else if (childpid > 0) fprintf(stderr,"Soy el padre con PID

%d\n", getpid());

}

 La función fork() devuelve el PID del hijo al padre, devuelve el valor 0

al hijo

A.Ortigosa

Creación de procesos

Tabla de procesos

• Dirección BCP
•Atributos:
•PID
•Información de estado
•Información de control

Dirección
BCP A
+ ....

Dirección
BCP A
+ ....

fork( ) en el hijo:
• Nuevo PID
• Nueva descripción de memoria
•Distinto valor de retorno (hijo = 0)
Dirección
BCP B
+ ....

Memoria

Imagen
Proceso A

fork( )

Imagen
Proceso A

Imagen
Proceso B

A.Ortigosa

Creación de procesos

 Asignar una nueva entrada a la tabla principal

de procesos.

 Asignar espacio 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...

A.Ortigosa

Creación de procesos



Proceso hijo inicialmente igual que el padre salvo en el
PID: se copia exactamente el segmento de datos, pila y
estructura de usuario.

 El hijo no termina hasta que el padre recoge su código de

finalización devuelto con exit( ):



El S.O. libera los recursos utilizados, actualiza las estadísticas y lo
notifica al padre

 El padre debe esperar a sus hijos, espera con wait( ):
detiene al proceso que la invoca hasta que un hijo termine,
si no tiene hijos wait( ) regresa de inmediato.





A.Ortigosa

Creación de procesos

 Forma de distinguir el hijo del padre: mediante el retorno de fork( )



0 para el hijo

 PID del hijo para el padre.

 Tanto el padre como el hijo prosiguen con la ejecución a partir de la

siguiente instrucción a la del fork( ). Ambos procesos continúan
ejecutando el mismo código.

 Es posible que el proceso hijo reemplace su código inicial por otro

código ejecutable y así se diferencie de su padre: A medida que el hijo
va ejecutando otro código, su memoria, pila y estructura se diferencian
del padre.
 Familia de llamadas exec( )  Permite a un proceso cambiar su imagen de

memoria y ejecutar otro programa distinto.

A.Ortigosa

Creación de procesos

 Hijo zombie: Hijo termina y el padre no recoge el

código de finalización del hijo.
 Un proceso zombie no tiene ni área de código, ni
área de datos, ni pila, ni estructura ..., pero afecta
a la tabla de procesos del sistema, pues sigue
ocupando una entrada de la tabla.

 Los zombies permanecen
  • Links de descarga
http://lwp-l.com/pdf16024

Comentarios de: Tema 3 - Descripción y Control de Procesos (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