Procesos

Esta Diapositiva ha sido descargada el 04.Junio.2010 del sitio web de acceso público: http://ramos.elo.utfsm.cl/~elo321/02-2010/elo321.php Universidad Técnica Federico Santa María (Chile) Teoría de Sistemas Operativos Wolfgang Freund G. El contenido ha sido modificado para ajustarse a los objetivos del curso. Para acceder a la diapositiva original visitar el link anteriormente citado. El Profesor.

Procesos
Conceptos Scheduling Operación sobre Procesos Procesos Cooperativos Comunicación entre Procesos Comunicación en sistemas clienteservidor
ELO321 Procesos 2

Conceptos (1)
Un sistema operativo ejecuta una serie de programas:
Sistema batch – jobs Sistema de tiempo compartido – programas de usuario o tareas (tasks)

Proceso – un programa en ejecución; progreso secuencial

ELO321 Procesos

3

Conceptos (2) Un proceso incluye: program counter (pc) stack (sp) sección de datos (dp) ELO321 Procesos 4 .

. heap data text 0 5 ELO321 Procesos .Un Proceso en Memoria stack 0xfff.

Estado de un Proceso cambios de estado en su ejecución: new: durante su creación running: instrucciones siendo ejecutadas waiting: en espera de algún evento ready: esperando por CPU terminated: proceso ha finalizado ELO321 Procesos 6 .

Diagrama de Estados fin terminated espera por I/O running scheduler interrupción new admisión waiting I/O terminado ready ELO321 Procesos 7 .

contabilidad.Bloque de Control de Proceso Información asociada a un proceso (PCB: process control block) estado contador de programa (pc) registros de CPU información para scheduling información de adm. de memoria. estado del I/O ELO321 Procesos 8 .

límites lista de archivos abiertos … ELO321 Procesos 9 .Estructura del PCB estado pid pc registros reg.

Itineración de la CPU P0 interrupción / llamado al sistema sistema operativo P1 waiting guardar estado en PCB0 ------carga estado desde PCB1 waiting guardar estado en PCB1 ------carga estado desde PCB0 interrupción / llamado al sistema waiting ELO321 Procesos 10 .

Filas Asociadas al Scheduling Job queue – contiene todos los procesos del sistema Ready queue – conjunto de procesos en memoria principal en espera por tiempo de CPU Device queue – conjunto de procesos en espera por I/O procesos migran entre filas ELO321 Procesos 11 .

Dispositivos y Fila Ready fila ready head tail PCB20 registros …… PCB5 registros …… disco unidad 1 head tail PCB2 disco unidad 0 head tail PCB4 PCB13 PCB7 terminal 0 head tail ELO321 Procesos 12 .

hijo creación de un proceso hijo ocurre interrupción espera por interrupción ELO321 Procesos 13 .Representación del Scheduling fila ready CPU I/O fila de I/O requerimiento de I/O tèrmino de la ranura de tiempo ejecución p.

Schedulers Long-term scheduler (o job scheduler) – qué proceso es insertado en la fila ready Short-term scheduler (o CPU scheduler) – qué proceso es el próximo a ejecutar ELO321 Procesos 14 .

Swapet out Swapet out mediumterm shortterm ready queue ready queue CPU CPU nuevo terminado I/O I/O filas de espera filas de espera de I/O de I/O ELO321 Procesos 15 . parcialmente ej.Inserción de un Medium-Term scheduler long-term parcialmente ej.

4 0.8 0.7 0.2 0.Modelo de Multiprogramación Utilización de CPU 1 0.6 0.1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Nivel de Multiprogramación % Utilización de CPU I/O 50% I/O 60% I/O 70% I/O 80% ELO321 Procesos 16 .9 0.5 0.3 0.

Schedulers (1) Short-term scheduler es invocado muy frecuentemente (ms) ⇒ (debe ser eficiente) Long-term scheduler es invocado muy infrecuentemente (s. min) ⇒ (puede ser lento) El long-term scheduler controla el grado 17 de multiprogramación ELO321 Procesos .

Schedulers (2) Los procesos pueden ser clasificados como: I/O-bound – la mayor parte del tiempo se encuentran en I/O. CPU-bound – la mayor parte del tiempo se encuentran requiriendo CPU. ELO321 Procesos 18 . pocas pero muy largas ráfagas de CPU. ocurren muchas ráfagas cortas de uso de CPU.

Eficiencia depende del soporte de hardware.Cambio de Contexto Cuando la CPU cambia de proceso. El cambio de contexto es – overhead – el sistema no realiza trabajo útil durante el cambio de contexto. se debe respaldar el estado del proceso anterior y cargar el estado del proceso nuevo. ELO321 Procesos 19 .

Árbol de Procesos en una Máquina bajo Solaris ELO321 Procesos 24 .

Procesos Cooperativos Independientes el proceso no puede afectar ni ser afectado por la ejecución de otros procesos Cooperativos el proceso puede afectar o ser afectado por la ejecución de otro proceso Ventajas de la cooperación de procesos compartir información incremento en la velocidad de cómputo modularidad conveniencia ELO321 Procesos 27 .

Problema del Productor Consumidor Paradigma de procesos cooperativos: procesos productores producen información que es consumida por un proceso consumidor buffer – ilimitado no hay límite para la capacidad del buffer buffer – limitado asume una capacidad finita del buffer ELO321 Procesos 28 .

int out = 0. . . item_t buffer[BUFFER_SIZE].Buffer-finito: 1ª Solución vía memoria compartida datos compartidos #define BUFFER_SIZE 10 Typedef struct { . } item_t. int in = 0. esta solución es correcta sin embargo sólo puede usar BUFFER_SIZE-1 elementos ELO321 Procesos 29 .

in = (in + 1) % BUFFER_SIZE. } ELO321 Procesos 30 .Buffer-finito: Método insert() insert(item_t item) { while (((in + 1) % BUFFER_SIZE) == out) . // espera – no hay espacio buffer[in] = item.

} ELO321 Procesos 31 .Buffer-finito: Método remove() remove(item_t *item) { while (in == out) . out = (out + 1) % BUFFER_SIZE. // espera – no hay elementos *item = buffer[out].

} item_t. int in = 0.Buffer-finito: 2ª Solución vía memoria compartida datos compartidos #define BUFFER_SIZE 10 Typedef struct { . . item_t buffer[BUFFER_SIZE]. . int nitems = 0. ELO321 Procesos 32 . int out = 0.

} ELO321 Procesos 33 .Buffer-finito: Método insert() v. 2 insert(item_t item) { while (nitems == BUFFER_SIZE) . nitems++. // espera – no hay espacio buffer[in] = item. in = (in + 1) % BUFFER_SIZE.

2 remove(item_t *item) { while (nitems == 0) . } ELO321 Procesos 34 . // espera – no hay elementos *item = buffer[out]. nitems--.Buffer-finito: Método remove() v. out = (out + 1) % BUFFER_SIZE.

propiedades lógicas) intercambiar mensajes vía las primitivas send/receive ELO321 Procesos 35 . memoria compartida. deberán: establecer un canal de comunicación entre ellos Implementación de un canal de comunicación físico (ej.Comunicación entre Procesos (IPC) Proporciona mecanismos para comunicación y sincronizar acciones Sistema de mensajería: los procesos se comunican entre sí sin requerir variables compartidas El servicio IPC proporciona 2 operaciones: send(mesnsaje) – con un tamaño del mensaje fijo o variable receive(mensaje) Si P y Q desean comunicarse. bus) lógico (ej.

Aspectos de Implementación ¿Cómo se establecen canales? ¿Puede un canal estar asociado a más de 2 procesos? ¿Cuántos canales pueden existir entre cada par de procesos? ¿Cuál es la capacidad del canal? ¿El tamaño del mensaje es fijo o variable? ¿El canal es unidireccional o bidireccional? ELO321 Procesos 36 .

Modelos de Comunicación proceso A M proceso A M memoria compartida proceso B M proceso B M núcleo M núcleo ELO321 Procesos 37 .

Sincronización El paso de mensajes puede ser de tipo bloqueante (blocking) o no-bloqueante (non-blocking) Blocking es considerado sincrónico blocking send bloquea al trasmisor hasta que el receptor reciba el mensaje mensaje disponible blocking receive bloquea al receptor hasta que haya un Non-blocking es considerado asincrónico Non-blocking send envía el mensaje y continúa Non-blocking receive hace que el receptor reciba un mensaje válido o nada ELO321 Procesos 42 .

Comunicación Cliente Servidor Sockets Llamados a procedimientos remotos (RPC: Remote Procedure Calls) Invocación de métodos remotos (RMI: Remote Method Invocation) ELO321 Procesos 44 .

Contiene dirección IP y puerto.19.19.25.Sockets Un socket está definido como un punto de acceso para la comunicación. El socket 161. ELO321 Procesos 45 .25.8 La comunicación se establece entre un par de sockets.8:1625 se refiere al puerto 1625 del host 161.

1.23.1.3) socket (200.217.200:1625 web server (200.17.217.200) socket (129.Comunicación vía Socket host X (129.23.3:80 ELO321 Procesos 46 .17.

El stub en la máquina local. Stubs – estamento en el nodo cliente/servidor del procedimiento que se encuentra (físicamente) en la máquina remota o servidor. obtiene los parámetros y ejecuta el procedimiento ELO321 Procesos 47 .Llamados a Procedimientos Remotos Llamados a procedimientos remotos (RPC) permite la invocación de procedimientos en una red de computadores. localiza al servidor y envía los parámetros vía una estrategia conocida como marshalling (empaquetamiento de parámetros) El stub en la máquina remota recibe el mensaje.

Invocación de Métodos Remotos (RMI en Java) mecanismo equivalente a RPC permite a un programa en Java invocar un método (función) de un objeto que se encuentra en una máquina remota. JVM RMI programa en Java objeto remoto JVM ELO321 Procesos 49 .

Empaquetamiento de Parámetros (marshalling) ELO321 Procesos 50 .