Академический Документы
Профессиональный Документы
Культура Документы
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
Modelo de estados
10
11
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
13
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
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
20
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
22
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
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
26
27
28
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
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
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
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
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
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
45
Comunicacin Cliente-Servidor
46
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
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
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