módulo 3 - principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, p 2, y p 3 comparten...

21
1 Módulo 3 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Procesos Sistemas Operativos Procesos JRA © 2008 Procesos Concepto de Proceso Planificación de Proceso Operaciones sobre Procesos Comunicaciones Interprocesos (IPC) Ejemplos de Sistemas de IPC Comunicación en un Sistema Cliente- Servidor

Upload: others

Post on 21-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

1

Módulo 3

Departamento de Ciencias e Ingeniería de la Computación

Universidad Nacional del Sur

Procesos

Sistemas Operativos – ProcesosJRA © 2008

Procesos

Concepto de Proceso

Planificación de Proceso

Operaciones sobre Procesos

Comunicaciones Interprocesos (IPC)

Ejemplos de Sistemas de IPC

Comunicación en un Sistema Cliente-

Servidor

Page 2: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

2

Sistemas Operativos – ProcesosJRA © 2008

Objetivos

Introducir la noción de proceso – un programa

en ejecución, el cual conforma la base de toda

computación

Describir varias características de procesos,

incluyendo planificación, creación y

terminación, y comunicación

Describir la comunicación en sistemas cliente-

servidor

Sistemas Operativos – ProcesosJRA © 2008

Concepto de Proceso

Un SO ejecuta una variedad de programas:

Sistema Batch – jobs

Sistemas de Tiempo Compartido – programas de usuario o tareas

Los términos job, tarea y proceso se usan con similar sentido.

Proceso – un programa en ejecución; la ejecución de los procesos debe progresar en forma secuencial.

Un proceso incluye:

contador de programa

stack

sección de datos

Page 3: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

3

Sistemas Operativos – ProcesosJRA © 2008

Procesos en Memoria

datos

texto

Sistemas Operativos – ProcesosJRA © 2008

Estado de los Procesos

En tanto que un proceso ejecuta, cambia de estado

nuevo: el proceso es creado.

corriendo: las instrucciones están siendo ejecutadas.

espera: el proceso está esperando que ocurra algún evento.

listo: el proceso está esperando ser asignado a la CPU.

terminado: el proceso ha finalizado su ejecución.

Page 4: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

4

Sistemas Operativos – ProcesosJRA © 2008

Diagrama de Estados de un Proceso

terminado

listos

espera

corriendo

nuevo

exit

evento e/s

despacho

interrup

evento

completado

Sistemas Operativos – ProcesosJRA © 2008

Diagrama de Estados de un Proceso

terminado

listos

espera

corriendo

nuevo

exit

evento e/s

despacho

interrup

evento

comp

Diagrama con cinco estados

Susp-espSusp-listoevento comp

react

react

suspsusp

Page 5: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

5

Sistemas Operativos – ProcesosJRA © 2008

Bloque de Control de Procesos (PCB)

Es una estructura de dato que contiene información asociada con cada proceso.

Estado de Proceso

Contador de Programa

Registros de CPU

Información de planificación de CPU

Información de administración de memoria

Información contable

Información de estado E/S

PCB: Process Control Block

Sistemas Operativos – ProcesosJRA © 2008

Bloque de Control de Proceso (PCB)

estado

proceso

proxprevio

id proceso

contador programa

registros de CPU

estructura memoria

tabla de arch abiertos

etc

Page 6: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

6

Sistemas Operativos – ProcesosJRA © 2008

Conmutación de CPU de Proceso a Proceso

carga estado de PCB-0

salva estado en PCB-0

carga estado de PCB-1

salva estado en PCB-1

.

.

.

.

.

.

ocioso

ocioso

ocioso

ejecución

ejecución

ejecución

P-0 P-1interrupción o llamada al sistema

interrupción o llamada al sistema

SO

Sistemas Operativos – ProcesosJRA © 2008

Colas de Planificación de Procesos

Cola de Job (o tareas) – conjunto de todos los procesos en el sistema.

Cola de listos – conjunto de todos los procesos residentes en memoria principal, listos y esperando para ejecutar.

Colas de dispositivos – conjunto de procesos esperando por una E/S en un dispositivo de E/S.

Migración de procesos entre las colas.

Page 7: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

7

Sistemas Operativos – ProcesosJRA © 2008

Colas de listos y de Dispositivos de E/S

inicio

final

inicio

final

inicio

final

inicio

final

reg

reg reg

reg

reg

regcola delistos

cinta magunidad 0

discounidad 0

terminalunidad 0

PCB-7

PCB-6

PCB-4

PCB-5PCB-14PCB-0

Sistemas Operativos – ProcesosJRA © 2008

Representación de Planificación de Procesos

cola de listo cpu

cola I/O i/o req I/O

Expira taja-

da de tiempo

fork hijo

requiererecursocola recurso

cola espera

ejecutahijo

join

Page 8: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

8

Sistemas Operativos – ProcesosJRA © 2008

Planificadores de Procesos

Planificador de largo término ( o planificador

de jobs ) – selecciona que procesos deberían

ser puestos en la cola de listos.

Planificador de corto término (o planificador de

CPU ) – selecciona que procesos deberían ser

proximamente ejecutados y colocados en la

CPU.

Sistemas Operativos – ProcesosJRA © 2008

Planificación de mediano término

procesos parcialmente

ejecutados al swapping

cola de listos CPU

E/S cola de

espera E/S

fuera de

swappingentrada en

swapping

fin

Page 9: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

9

Sistemas Operativos – ProcesosJRA © 2008

Planificadores de Procesos (Cont.)

El planificador de corto término es invocado muy frecuentemente (milisegundos) (debe ser rápido).

El planificador de largo término es invocado poco frecuentemente (segundos, minutos) (puede ser muy lento).

El planificador de largo término controla el grado de multiprogramación.

Los procesos pueden ser descriptos como:

Procesos limitados por E/S – pasa mas tiempo haciendo E/S que computaciones, ráfagas (burst) de CPU muy cortas.

Procesos limitados por CPU – pasa mas tiempo haciendo computaciones que E/S, ráfagas (burst) de CPU muy largas.

Sistemas Operativos – ProcesosJRA © 2008

Cambio de contexto

Cuando la CPU conmuta a otro proceso, el sistema

debe salvar el estado del viejo proceso y cargar el

estado para el nuevo proceso vía un cambio de

contexto.

El contexto de un proceso está representad o en el

PCB

El tiempo que lleva el cambio de contexto es

sobrecarga; el sistema no hace trabajo útil mientras

está conmutando.

El tiempo depende del soporte de hardware .

Page 10: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

10

Sistemas Operativos – ProcesosJRA © 2008

Creación de Procesos

Procesos padres crean procesos hijos, lo cuales, a su vez crean otros procesos, formando un árbol de procesos.

Recursos compartidos

Padres e hijos comparten todos los recursos.

Hijo comparte un subconjunto de los recursos del padre.

Padre e hijo no comparten ningún recurso.

Ejecución

Padres e hijos ejecutan concurrentemente.

Padres esperan hasta que los hijos terminan.

Sistemas Operativos – ProcesosJRA © 2008

Creación de Procesos (Cont.)

Espacio de direcciones

El hijo duplica el del padre.

El hijo tiene un programa cargado en él.

Ejemplos de UNIX

La llamada a sistema fork crea un nuevo proceso

La llamada a sistema execve es usada después del

fork para reemplazar el espacio de memoria del

proceso con un nuevo programa.

Page 11: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

11

Sistemas Operativos – ProcesosJRA © 2008

Creación de Procesos

padre

hijo

Se reactiva

Sistemas Operativos – ProcesosJRA © 2008

Árbol de Procesos en UNIX

Page 12: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

12

Sistemas Operativos – ProcesosJRA © 2008

Terminación de Procesos

El proceso ejecuta la última sentencia y espera que el SO haga algo (exit).

Los datos de salida del hijo se pasan al padre (via wait).

Los recursos de los procesos son liberados por el SO.

El padre puede terminar la ejecución del proceso hijo (abort).

El hijo ha excedido los recursos alocados.

La tarea asignada al hijo no es mas requerida.

El padre está terminando.

El SO no permite a los hijos continuar si su padre termina.

Terminación en cascada.

Sistemas Operativos – ProcesosJRA © 2008

Comunicación Interprocesos (IPC)

Los procesos en un sistema pueden ser independientes o

cooperativo

Los procesos cooperativos pueden afectar o ser afectados por

otros procesos, cuando incluyen datos compartidos

Razones para procesos cooperativos

Información compartida

Speedup de computación

Modularidad

Conveniencia

Los procesos cooperativos necesitan comunicación

interprocesos (IPC)

Dos modelos de IPC

Memoria compartida

Pasaje de Mensajes

Page 13: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

13

Sistemas Operativos – ProcesosJRA © 2008

Modelos de Comunicación

Pasaje de mensajes Memoria compartida

proceso A

proceso Bproceso B

proceso A

memoria compartida

kernel kernel

Sistemas Operativos – ProcesosJRA © 2008

Procesos Cooperativos

Un proceso independiente no puede afectar ni ser

afectado por la ejecución de otro proceso.

Un proceso cooperativo puede afectar o ser afectado

por la ejecución de otro proceso.

Ventajas de los procesos cooperativos

Información compartida

Aceleración de la computación

Modularidad

Conveniencia

Page 14: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

14

Sistemas Operativos – ProcesosJRA © 2008

Problema del Productor-Consumidor

Paradigma procesos cooperativos, el proceso

productor produce información que es

consumida por un proceso consumidor .

buffer ilimitado - no tiene límites prácticos en

el tamaño del buffer.

buffer limitado supone que hay un tamaño fijo

de buffer.

Sistemas Operativos – ProcesosJRA © 2008

Comunicación entre Procesos (IPC)

Mecanismo de los procesos para comunicarse y sincronizar sus acciones.

Sistema de mensajes – los procesos se comunican uno con otro sin necesidad de variables compartidas.

Las facilidades de IPC provee dos operaciones:

send(mensaje) – mensaje de tamaño fijo o variable

receive(mensaje)

Si P and Q desean comunicarse, necesitan:

Establecer un vínculo de comunicación entre ellos

Intercambiar mensajes via send/receive

Implementación de un vínculo de comunicación

lógico (p.e., propiedades lógicas)

físicol (p.e., memoria compartida, canal hardware)

Page 15: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

15

Sistemas Operativos – ProcesosJRA © 2008

Preguntas sobre la Implementación

¿Cómo se establecen los vínculos?

¿Puede un vínculo ser asociado con mas de dos

procesos?

¿Cuántos vínculos puede haber entre cada par de

procesos que se comunican?

¿Cuál es la capacidad de un vínculo?

¿El vinculo puede aceptar tamaño de mensajes fijo o

variable?

¿Es vínculo unidireccional o bi-direccional?

Sistemas Operativos – ProcesosJRA © 2008

Comunicación Directa

Los procesos deben nombrar al otro explicitamente:

send (P, mensaje) – envía un mensaje al proceso P

receive(Q, mensaje) – recibe un mensaje del proceso Q

Propiedades del vínculo de comunicación

Los vínculos son establecidos automaticamente.

Un vínculo está asociado con exactamente un par de procesos que se comunican.

Entre cada par existe exactamente un vínculo.

El vínculo puede ser unidireccional, pero es usualmente bi-direccional.

Page 16: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

16

Sistemas Operativos – ProcesosJRA © 2008

Comunicación Indirecta

Los mensajes son dirigidos y recibidos desde mailboxes(también referidas como ports).

Cada mailbox tiene una única identificación.

Los procesos pueden comunicarse solo si comparten un mailbox.

Propiedades de un vínculo de comunicación

El vínculo se establece solo si los procesos comparten un mailbox común.

Un vínculo puede ser asociado con muchos procesos.

Cada par de procesos puede compartir varios vínculos de comunicación.

Los vínculos pueden ser unidireccionales o bi-direcciona-les.

Sistemas Operativos – ProcesosJRA © 2008

Comunicación Indirecta (cont.)

Operaciones

crear un nuevo mailbox

enviar y recibir mensajes por medio del mailbox

destruir un mailbox

Primitives are defined as:

send(A, message) – send a message to mailbox A

receive(A, message) – receive a message from

mailbox A

Page 17: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

17

Sistemas Operativos – ProcesosJRA © 2008

Comunicación Indirecta (cont.)

Mailbox compartida

P1, P2, y P3 comparten el mailbox A.

P1, envía; P2 y P3 reciben.

¿Quién toma el mensaje?

Solución

Permitir que un vínculo está asociado a lo sumo con dos procesos.

Permitir que un solo proceso a la vez ejecute la operación receive.

Permitir que el sistema seleccione arbitrariamente el receptor. El enviador es notificado quien fue el receptor del mensaje.

Sistemas Operativos – ProcesosJRA © 2008

Sincronización

El pasaje de mensajes puede ser bloqueante o no

bloqueante.

Bloqueante es considerado sincrónico

Send bloqueante mantiene al enviador bloqueado hasta

que el mensaje es recibido

Receive bloqueante hmantiene al receptor bloqueado

hasta que el mensaje esté disponible

No bloqueante es considerado asincrónico

Send no bloqueante: el emisor envía el mensaje y

continúa

Receive no bloqueante : el receptor recibe un mensaje

válido u o nulo

Page 18: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

18

Sistemas Operativos – ProcesosJRA © 2008

Buffering

La cola de mensajes asociada al vínculo se puede

implementar de tres maneras.

1.Capacidad – 0 mensajes

El enviador debe esperar por el receptor (rendez-

vous).

2.Capacidad limitada – longitud finita de n mensajes

El enviador debe esperar si el vínculo está lleno.

3.Capacidad ilimitada – longitud infinita

El enviador nunca espera.

Sistemas Operativos – ProcesosJRA © 2008

Comunicación Cliente-Servidor

Sockets

Llamadas a Procedimientos Remotors

(RPC:Remote Procedure Calls)

Invocación a Métodos Remotos (RMI:Remote

Method Invocation (Java))

Page 19: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

19

Sistemas Operativos – ProcesosJRA © 2008

Sockets

Un socket es definido como un punto final de

comunicación.

Concatenación de dirección IP y pórtico

El socket 161.25.19.8:1625 se refiere al pórtico 1625 en

el host 161.25.19.8

La comunicación se lleva a cabo entre un par de

sockets.

Sistemas Operativos – ProcesosJRA © 2008

Comunicación por Sockets

Page 20: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

20

Sistemas Operativos – ProcesosJRA © 2008

Llamadas a Procedimientos Remotos

(RPC: Remote Procedure Calls)

Las RPCs produce una llamada a procedimiento entre

procesos sobre un sistema de redes.

Stubs – proxy del lado del cliente y del lado del

procedimiento del servidor.

El stub del lado del cliente localiza el servidor y hace

marshall de los parámetros.

El stub del lado del servidor recibe este mensaje,

desempaca los parámetros y ejecuta el procedimiento

en el servidor.

Sistemas Operativos – ProcesosJRA © 2008

Invocación de Métodos Remotos (RMI)

RMI es un mecanismo de Java similar a los RPCs.

RMI permite a un programa Java, sobre una máquina,

invocar un método sobre un objeto remoto.

Page 21: Módulo 3 - Principalcs.uns.edu.ar/~ldm/data/so/apuntes/03-procesos.pdf · 1, P 2, y P 3 comparten el mailbox A. P 1, envía; P 2 y P 3 reciben. ¿Quién toma el mensaje? Solución

21

Módulo 3

Departamento de Ciencias e Ingeniería de la Computación

Universidad Nacional del Sur

Fin