Вы находитесь на странице: 1из 51

Captulo 3: Procesos

Contenido

Concepto Planificacin de Procesos Operaciones sobre Procesos Cooperacin de Processes Comunicacin entre Procesos (IPC) Comunicacin en Sistemas Cliente-Servidor

Sesion 1

Concepto

Un S.O. ejecuta una variedad de programas En sistemas por lotes se los denomina trabajos (job) En sistemas de tiempo compartido son programas de usuario o tareas (task) En GNU-LINUX, se usa los trminos trabajo o procesos de manera casi equivalente. Proceso: un programa en ejecucin; su ejecucin transcurre de manera secuencial Incluye: Contador del programa Pila Datos

Un Proceso en Memoria
Datos temporales Ej.: Parmetros de funciones

Datos dinmicos Ej: malloc Datos estticos Ej: variables globales Instrucciones del programa 5

Concepto de Proceso

Proceso es un programa en ejecucin Si el SO soporta mltiples procesos es porque se implementa . Pseudo-paralelismo Concurrencia A A B C

A B C Tiempo

Comp

B C

Vista conceptual

Estado de un Proceso
A medida que un proceso se ejecuta, cambia su estado nuevo: proceso est siendo creado en ejecucin: instrucciones estn ejecutndose en espera o bloqueado: el proceso est esperando a que algn evento ocurra listo: el proceso est listo para ejecutarse, esperando en cola terminado: el proceso ha terminado su ejecucin new, running, waiting, ready, terminated

Diagrama de Estados de un Proceso

Modelo de estados

Process Control Block (PCB)


Contiene informacin asociada con cada proceso: Estado Contador del programa Registros del CPU Informacin de planificacin del CPU Informacin de manejo de memoria Informacin de contabilidad Informacin de estado de E/S

10

Process Control Block (PCB, Cont.)

11

Process Control Block (PCB, Cont.)

Creado y administrado por el S.O. Dependiente de arquitectura de HW Tabla de procesos Contiene un PCB por cada proceso activo en el sistema

12

Tiempo Compartido del CPU

13

Colas de Planificacin del CPU

Cola de trabajos conjunto de todos los procesos en el sistema Cola de listos conjunto de todos los procesos residiendo en memoria principal, listos y esperando para ser ejecutados Colas de dispositivos conjunto de todos los procesos esperando por un dispositivo de E/S Los procesos migran entre las diversas colas

14

Algunas Colas

15

Planificacin de Procesos

16

Planificadores

Planificador de largo plazo (o planificador de trabajos) selecciona qu procesos deben moverse a la cola de procesos listos (ready queue) Planificador de corto plazo (o planificador del CPU) selecciona qu procesos deben ser ejecutados a continuacin, y asigna el CPU

17

Planificador de Mediano Plazo: Swapping

En ocasiones puede ser til remover procesos de memoria y as reducir el nivel de multi-programacin. Ms tarde, el proceso puede re-insertarse en memoria y continuar ejecutndose donde se qued.
18

Planificadores (Cont.)

El planificador de corto plazo se invoca muy frecuentemente Orden de milisegundos debe ser muy rpido El planificador de largo plazo se invoca muy poco frecuentemente Orden de segundos puede ser lento Este es el que controla el grado de multi-programacin Procesos pueden ser: Limitados por E/S (I/O-bound) pasan ms tiempo en E/S que computando, muchos picos de cortos CPU Limitados por CPU (CPU-bound) pasan ms tiempo realizando cmputos; pocos picos, uso intenso de CPU

19

Un rbol de Procesos Tpico en Solaris

20

Cambio de Contexto (Context Switch)

Cuando el CPU se cambia a otro proceso, el sistema debe guardar el estado del proceso anterior y cargar el estado del nuevo proceso El tiempo dedicado a cambios de contexto es una sobrecarga El sistema no realiza ningn trabajo til mientras hace el cambio Duracin depende del soporte de hardware

21

Cambio de Contexto (Cont.)

22

Cambio de Contexto (Context Switch)

Pasos Almacenar estado Actualizar PCB de proceso saliente. Seleccionar otro proceso para ejecucin Planificacin Actualizar estado de procesos implicados Mover el proceso a la cola adecuada Actualizar estructuras de gestin de memoria Cargar contexto en el procesador

23

Creacin de Procesos

Proceso padre crea procesos hijos, quienes, a su vez, pueden crear otros procesos, formando un rbol de procesos Compartiendo recursos Padres e hijos pueden compartir todos, algunos o ninguno de sus recursos Ejecucin Padre e hijos pueden ejecutarse concurrentemente Padre puede esperar a que hijo termine

24

Creacin de Procesos (Cont.)

Espacio de direcciones Hijo puede ser un duplicado del padre Se puede cargar un nuevo programa en hijo Ejemplos de UNIX fork: llamada de sistema que crea un nuevo proceso exec: llamada de sistema usada luego de fork para reemplazar el espacio de memoria de un nuevo proceso con un nuevo programa

25

Creacin de Procesos (Cont.)

26

Creacin de Procesos en POSIX

27

Creacin de Procesos en Win32

28

Creacin de Procesos en Java

29

Terminacin de Procesos

Procesos ejecutan el ltimo enunciado y piden al S.O. que los elimine (exit) Hijo puede retornar valor a padre (via waitpid) Recursos de procesos son liberados por el S.O. Padre puede terminar la ejecucin de procesos hijos (abort) Hijo a excedido los recursos asignados Tarea asignada a hijo ya no es requerida Padre va a terminar (exit) Algunos S.O. no permiten que un hijo contine si su padre termina Todos los hijos terminan terminacin en cascada

30

Sesion 2

31

Ventajas de tener un entorno de IPC


Compartir informacin, se puede accesar a los mismos recursos. Ej.: un archivo compartido. Reducin de tiempo de procesamiento (si hay varios CPUs), un proceso se puede dividir sus tareas en varios procesos. Modularidad, se divide las funciones del sistema en modulos. Conveniencia, un usuario puede trabajar en varias tareas de forma coordinada.

32

Comunicacin entre Procesos (IPC)


Paso de Mensajes Memoria Compartida

El kernel Implementa mecanismos 33

Los Procesos comparten variables

Memoria Compartida

Se remueve la restriccin de acceso a memoria de otro proceso. Ambos procesos deben de tener alguna referencia a la memoria para poder leer y escribir. El SO no tiene control del tamao o forma en que los datos se almacenan. Solo se hace uso de una llamada al sistema para crear la regin compartida. En que address space esta la regin de memoria?

34

Problema de Productor-Consumidor

Paradigma para procesos que cooperan Proceso productor produce informacin que ser consumida por proceso consumidor Se puede implementar usando Memoria compartida. Un proceso produce el otro consume. Las politicas para la produccion y consumo deben de implementarse en los procesos. Variantes Buffer-ilimitado no coloca lmites en el tamao del buffer. El consumidor consume lo que haya en el buffer y el productor coloca datos en el buffer. Buffer-limitado asume que el buffer tiene un tamao fijo. El consumidor debe esperar si el buffer se vaca y el productor si se llena.

35

Paso de Mensajes

36

Sistema de Mensajes procesos se comunican entre s, sin recurrir a variables compartidas. Procesos no ocupan un mismo lugar en la memoria o incluso un mismo computador. Operaciones mnimas de paso de mensajes: enviar(mensaje) tamao de mensaje puede ser fijo o variable recibir(mensaje) Si P y Q quieren comunicarse, deben: establecer enlace de comunicaciones entre ellos Intercambiar mensajes via enviar/recibir. Los enlaces de comunicacion se implementan de multiples maneras.

Detalles de Implementacin

Cmo se establecen los enlaces? Puede un enlace estar asociado con ms de dos procesos? Cuntos enlaces pueden haber entre cada par de procesos en comunicacin? Cul es la capacidad de un enlace? Es el tamao de un mensaje (que el enlace puede enviar) fijo o variable? Es un enlace unidireccional o bi-direccional? En esta sesin nos enfocaremos en la lgica mas que en la implementacion.

37

Comunicacin Directa

Procesos deben nombrarse el uno al otro directamente: enviar (P, message) recibir(Q, message) Propiedades del canal de comunicaciones Enlaces se establecen automticamente Un enlace est asociado con exctamente un par de procesos Entre c/par de procesos existe solo un canal Canal puede ser unidireccional; generalmente es bidireccional Que pasa si el identificador del proceso cambia?

38

Comunicacin Indirecta

Mensajes se direccionan y reciben de casilleros (tambin llamados puertos) Cada casillero (mailbox) tiene un ID asociado Procesos pueden comunicarse solamente si comparten un casillero Propiedades del enlace de comunicaciones Enlace se estable solamente si los procesos comparten un casillero Un enlace puede estar asociado con mltiples procesos Cada par de procesos puede compartir varios enlaces de comunicaciones Enlaces pueden ser unidireccionales o bidireccionales

39

Comunicacin Indirecta (cont.)

Operaciones Crear un nuevo casillero Enviar y recibir mensajes del casillero Destruir un casillero Primitivas (A es el casillero): enviar(A, message) recibir(A, message)
P2 A1

P1

P3

A2 40 Mailboxes (port)

P4

Comunicacin Indirecta (cont.)

Compartiendo casilleros P1, P2, y P3 comparten mailbox A


P1, enva; P2 y P3 reciben

Quien recibe el mensaje? Soluciones Permitir que un enlace est asociado a lo mucho a dos procesos Permitir que solo un proceso a la vez ejecute una operacin de recibir Permitir que el sistema escoja al receptor arbitrariamente; se informa a P1 quin recibi el mensaje

41

Sincronizacin

El paso de mensajes puede ser con bloqueo o sin bloqueo Bloqueo se considera sncrono Envo con bloqueo quien enva se bloquea hasta que el mensaje se recibe Recepcin con bloqueo quien recibe se bloquea hasta que hay un mensaje disponible Sin bloqueo se considera asncrono Envo sin bloqueo quien enva, enva el mensaje y contina Recepcin sin bloqueo quien recibe, recibe un mensaje vlido o un NULL

42

Buffering

Existe un cola de mensajes est ligada al enlace; tres maneras de implementarla: 1. Capacidad cero No pueden haber mensajes en cola. Quien enva debe esperar a quien recibe (rendezvous) para enviar el siguiente mensaje. 2. Capacidad limitada longitud finita de n mensajes Quien enva debe esperar si el canal est lleno. 3. Capacidad ilimitada longitud infinita Quien enva nunca espera y no se bloquea.

43

Paso de Mensajes en Windows XP

Se conoce como local prodecure call El SO implementa un subsistema que espera por pedidos de coneccion de clientes. Se crean puertos de comunicacin para el servidor y el cliente. Si los mensajes son pequeos se copian datos de un buffer a otro (ports). Si son grandes se crea una region de memoria compartida (shared section object) y se pasa el puntero a la ella.

44

Paso de Mensajes en Windows XP

45

Comunicacin Cliente-Servidor

Sockets Remote Procedure Calls

46

Comunicacin con Sockets

192.168.0.1:4564

200.9.176.5:80

Un socket es un endpoint de comunicacin Un par de procesos usan un par de sockets para comunicarse Un socket se identifica con la direccion IP:puerto 47

Comunicacin con Sockets


En general los procesos en el server esperan por conecciones. Ciertos procesos tienen asignandos puertos fijos (werbsever 80,ftpserver 21 ,etc) y menores a 1024. En el cliente el SO usalmente se le asigna un puerto > 1024. Ej: 9999 Cada conexin es unica, si un mismo computador quiere establecer otra coneccion con el mismo server, el puerto asignado es diferente (no 9999 de nuevo). El server abre el socket, espera por coneccion, acepta la coneccion, envia/recibe. El cliente abre un socket, solicita la coneccion, espera a que sea aceptada, envia/recibe. El susbsitema de red envia los datos a travez de la red, equipos intermedios pasan los mensajes hasta su destino (protocolo IP). Es posible tener conectar con sockets dos procesos en un mismo computador?

48

Remote procedure calls (RPC)

Abstrae los detalles de comunicacin de red en la llamada a servicios provistos por un SO/proceso remoto. Ej: escribir en disco a un computador remoto tal como se hace en el computador local. Los mensajes en RPC son estructurados, no simple paquetes de datos como en los sockets. Contienen los parametros de la funcin a ser llamada. Las llamadas a sistema RPC se encargan de coordinar la llamada al procedimiento remoto (matchmaking). Una vez que el puerto asociado al servicio RPC es encontrado el cliente envia los parametros del procedimiento y espera a que sea resuelto.

49

Execution of RPC

50

Fin del Captulo 3

Вам также может понравиться