520 likes | 811 Views
Sistemas Operativos. Gestión de procesos Objetivo : Comprender el concepto de proceso , como un programa de sistema que tiene un modelo de registros y valores particulares de la computadora y que conduce a la multiprogramación. Sección 1 : Procesos . Módulo 2, Sección 1. Procesos.
E N D
Sistemas Operativos Gestión de procesos • Objetivo :Comprender el concepto de proceso, como un programa de sistema que tiene un modelo de registros y valores particulares de la computadora y que conduce a la multiprogramación. • Sección 1: Procesos
Módulo 2, Sección 1 Procesos
Procesos Objetivo:Comprenderel sistema como una colección de procesos que ejecutan código del sistema de manera concurrente con programas del usuario que ejecutan código del usuario
Temas • Idea Conceptual de Proceso • Coordinación de Procesos • Operación sobre los Procesos • Procesos Cooperativos • Comunicación entre los Procesos
Idea Conceptual de Proceso • Un sistema operativo ejecuta una variedad de programas: • Tareas en Batch • Tareas o programas de usuario en Tiempo Compartido • Los términos tarea y proceso se usancasi como sinónimos y son la unidad de trabajo de los sistemas modernos. • Proceso – un programa en ejecución; • la ejecución de un proceso debe progresar de manera secuencial. • Un proceso incluye: • program counter • stack • Sección de Datos
Bloque de Control del Proceso (PCB) Información asociada con cada proceso. • Estado del proceso • Program counter • Registros del CPU • Información para la coordinación del CPU • Información para la Administración de Memoria • Información para la Contabilidad • Información del Estado de la E/S
Estados del Proceso • Cuando un proceso se ejecuta, este cambia de estado. • nuevo: El proceso se esta creando.Cargador- Ligador • listo: El programa esta en la Memoria Principal en espera de ser asignado a un proceso. • corriendo: Las instrucciones se están ejecutando en el CPU. • esperando: El proceso esta en elDisco en espera de que ocurra algún evento. • terminado: El proceso ha finalizado su ejecución y es enviado al Disco.
Diagrama de Estado del Proceso Interrupción Admitido Salir Memoria Principal CPU Despacho-Coordinador Espera por E/S o suceso Terminación de E/S o suceso Disco Duro
Intercambio del CPU de un Proceso a otro Proceso Interrupción o llamada al sistema Interrupción o llamada al sistema
Colas de la Coordinación de Procesos • Cola de tareas – conjunto de todos los procesos en el sistema. • Cola de procesos listos – conjunto de todos los procesos residentes en la memoria-principal, listos y en espera para ejecutarse. • Cola de dispositivos –conjunto de todos los procesos en espera de un dispositivo de E/S. • Migración de los Procesos entre las distintas colas.
Cola de Listos y Varias Colas de Dispositivos de E/S Cola de procesos listos
Diagrama de Colas de la Coordinación de Procesos Coordinador de Largo plazo Coordinador de Corto plazo Coordinador de Mediano plazo
Schedulers-Coordinadores • Coordinador de largo plazo (o coordinador de tareas) – selecciona cual proceso deberá ser traído a la cola de procesos listos. • Coordinador de corto plazo (o coordinador del CPU) –selecciona cual proceso deberá ser ejecutado enseguida y colocarlo en el CPU. • Coordinador de mediano plazo( en sistemas de tiempo compartido) – realiza intercambio (swapping), para liberar a la memoria principal y reducir el grado de multiprogramación y también para mejorar la mezcla de procesos
Coordinador de mediano plazo Entra por intercambio Sale por intercambio
Schedulers-Coordinadores (Cont.) • Los procesos pueden ser descritos como: • Procesos limitados por E/S – pasan mas tiempo realizando E/S que computaciones, y vamuchas veces al CPU -de carrera corta. • Procesos limitados por CPU –pasan mas tiempo realizando computaciones; y va muy pocas vecesal CPU-de carrera larga. • El sistema con el mejor rendimiento tiene una buena mezcla de ambos procesos.
Schedulers-Coordinadores (Cont.) • El coordinador de corto plazo es invocado muy frecuentemente: (en milisegundos) (deberá de ser rápido). • El coordinador de largo plazo es invocado muy infrecuentemente:(en segundos, o minutos) (deberá de ser lento). • El coordinador de largo plazo controla el grado de multiprogramación.
Cambio de Contexto • Cuando el CPU cambia a otro proceso, el sistema deberá:guardar el estado del proceso viejo y cargar el estado guardado para el nuevo proceso. • El tiempo de cambio-contexto es solo (overhead) gasto extra; el sistema no realiza trabajo útil durante la conmutación. • Este tiempo depende del hardware.
Operación sobre los Procesos:Creación • Los procesos padres crean procesos hijos, los cuales, a su vez crean otros procesos, formando un árbol de procesos. • Recursos compartidos • Los padres dividen todos sus recursos entre sus hijos. • Los hijos comparten un subconjunto de los recursos de los padres. • Padres e hijos comparten datos de iniciación (entradas).
Creación de Procesos (Cont.) Cuando se crea un proceso nuevo (Posibilidades): • Espacio de direcciones • El hijo es un duplicado del padre. • Se carga un programa dentro del proceso hijo • Ejecución • El padre sigue ejecutándose concurrentemente con sus hijos. • El padre espera hasta que uno de los hijos, o todos, han terminado.
Creación de Procesos (Cont.) • Ejemplo UNIX :Cada proceso se identifica con un número entero único • El llamado a sistema fork (bifurcar) crea un nuevo proceso con una copia del espacio de direcciones del proceso original • El llamado a sistema execve usado después de un fork para reemplazar el espacio de memoria del proceso con un programa nuevo.
Terminación de Procesos • El proceso termina cuando ejecuta su ultima proposición y pide al sistema operativo que lo elimine con (exit). • Devuelve datos de salida desde el hijo al padre(vía wait). • Los recursos del proceso son liberados por el sistema operativo.
Terminación de Procesos (Cont.) • Padres pueden terminar la ejecución de los procesos hijos (abort): • El hijo ha excedido los recursos que se le asignaron. • Las tareas asignadas a los hijos ya no son necesarias. • El padre esta saliendo. • El sistema operativo no le permite al hijo continuar si su padre termina. • Terminación en cascada de todos sus hijos.
Procesos Cooperativos • Proceso Independiente no puede afectar ni ser afectado por la ejecución de otro proceso (no comparte datos). • Proceso Cooperativopuede afectar y ser afectado por la ejecución de otro proceso (comparte datos). • Ventajas de la cooperación de procesos. • Información compartida • Aceleración de la Computación • Modularidad (procesos individuales) • Comodidad
Problema del Productor-Consumidor • Paradigma de los procesos cooperativos, el proceso productor produce información que es consumida por un proceso consumidor. • Buffer: que el productor pueda llenar y el consumidor pueda vaciar. • Buffer-ilimitado sin prácticamente limite sobre el tamaño del buffer. • Buffer-limitado supone que hay un tamaño fijo para el tamaño del buffer.
BufferLimitado – Solución MemoriaCompartida • Datos Compartidos varn; typeitem = … ; varbuffer. array [0..n–1] ofitem; in, out: 0..n–1; • Proceso Productor repeat … produce an item in nextp … whilein+1 modn= outdono-op; buffer[in] :=nextp; in :=in+1 modn; untilfalse;
Buffer-Limitado (Cont.) • Proceso Consumidor Repeat whilein = outdono-op; nextc := buffer [out]; out := out+1 modn; … consume the item in nextc … untilfalse; • Solución correcta, pero solo puede llenar n–1 buffers.
Hilos • Un Hilo (oproceso ligero) es la Unidad básica de utilización del CPU; consiste de: • program counter • Conjunto de registros • Espacio en el stack • Un hilo comparte con su hilo par (del mismo nivel): • sección de código • Sección de datos • Recursos del sistema- operativo como archivos abiertos y señales lo que se conoce como tarea(task). • Un proceso tradicional (o proceso pesado) es igual a una tarea con un solo hilo
Hilos Múltiples dentro de una Tarea Hilos Tarea
Hilos (Cont.) • En una tarea de hilos múltiples, mientras un hilo servidor es bloqueado y esta esperando,un segundo hilo de la misma tarea puede correr. • Cooperación de hilos múltiples en una misma tarea confiere alto rendimiento y un desempeño mejorado. • Aplicaciones que requieren un buffer comúncompartido (ejemplo, productor-consumidor) se benefician de la utilización de hilos. • Los hilos proveen un mecanismo que permite a los procesos secuenciales hacer llamados de bloqueo mientras realizan paralelismo.
Hilos (Cont.) • Kernel-soportado por hilos(Mach y OS/2). • Hilos a nivel de usuario; soportado sobre el kernel, vía un conjunto de llamadas a biblioteca al nivel de usuario(Proyecto Andrew de CMU). • Aproximación Híbrida implementa hilos a nivel de usuario y kernel-soportado por hilos (Solaris 2).
Hilos en Solaris 2 • Solaris 2 es una versión de UNIX con soporte de hilos a nivel de kernel y de usuario, multiprocesamiento simétrico, y coordinación en tiempo real. • LWP: Procesos Ligeros – nivel intermedio entre hilos a nivel de usuario e hilos a nivel de kernel.
Solaris 2 :Hilos hilo en el nivel de usuario Proceso ligero hilo del núcleo
Hilos en Solaris 2 (Cont.) • Recursos que requieren los distintos tipos de hilos: • Hilo de Kernel : estructura de datos pequeña y un stack; el cambio entre hilos no requiere cambiar la información de acceso a memoria – relativamente rápidos. • Procesos Ligeros (LWP): PCB con datos de registro, información de memoria y de contabilidad;el cambio entre procesos ligeros es relativamente lento. • Hilos a nivel de usuario: solo necesitan stack y program counter; el no involucramiento del kernel significa cambios rápidos..
Comunicación Ínter-procesos (IPC) • Mecanismo para comunicar procesos cooperativos y para sincronizar sus acciones. • Sistema de Mensajes – comunica procesos uno con otro sin frecuentar el área de la memoria-compartida. • La comunicación ínter- procesos provee dos operaciones primitivas: • send(message) • receive(message) • el tamaño del mensaje es fijo o variable
Comunicación Ínter-procesos (IPC) Cont. • Si P y Q desean comunicarse, ellos tienen que: • Establecer un (link) enlace de comunicación entre ellos • Intercambiar mensajes vía send/receive • Para establecer el (link) enlace de comunicación, tienen que: • físico (ejemplo, memoria-compartida, bus en hardware o una red) • lógico (ejemplo, propiedades lógicas)
Propiedades Lógicas • ¿Como establecer los enlaces? • ¿Puede un enlace estar asociado con mas de dos procesos? • ¿Cuántos enlaces puede haber entre cualquier par de procesos en comunicación? • ¿Qué capacidad tiene un enlace? • ¿El tamaño de un mensaje, que el enlace puede acomodar, es fijo o variable? • ¿El enlace es unidireccional o bi-direccional?
Intercambio de Mensajes:Comunicación Directa • Los procesos deberán referirse uno al otro explícitamente: • send (P, message): enviar un mensaje al proceso P • receive(Q, message):recibir un mensaje del proceso Q • Propiedades de los lazos de comunicación • Los enlaces son establecidos automáticamente. • Un enlace esta asociado con exactamente un parde procesos en comunicación. • Entre cada par existe exactamente un enlace. • El enlace puede ser unidireccional, • pero usualmente esbi-direccional.
Intercambio de Mensajes:Comunicación Indirecta • Los mensajes son dirigidos y recibidos desde mailboxes (también llamados ports). • Cada buzón tiene unid(identificador) único. • Los procesos pueden comunicarse solo si comparten un buzón • Propiedades de un lazo de comunicación: • El enlace se establece solo si los procesos comparten un buzón común • Un enlace puede estar asociado con muchos procesos. • Cada par de procesos puede compartir varios enlaces de comunicación. • El enlace puede ser unidireccional o bi-direccional.
Comunicación Indirecta (Cont.) • Operaciones • create un nuevo buzón • send y receive mensajes por medio del buzón • destroy un buzón
Comunicación Indirecta (Continuación) • Buzón compartido • P1, P2, y P3 comparten el buzón A. • P1, sends; P2y P3receive. • ¿Quién tiene el mensaje? • Soluciones • Permitir que un enlace este asociado cuando mucho a dos procesos . • Permitir que solo un proceso a un tiempo ejecute una operación receive . • Permitir que el sistema seleccione arbitrariamente al receptor. El transmisor será notificado de quien fue el receptor.
Buffering: Uso de Buffers • Implementado en una de la tres formas siguientes: • Capacidad cero –Sin Buffer: 0 mensajes • El transmisor deberá de sincronizarse: • esperar por el receptor (rendezvous) • o enviar el mensaje sin esperar aunque se pierda. • Comunicarse de manera asíncrona no-responsiva: • esperar el acuse de recibo del receptor, • ó por medio de la primitiva reply( P, mensaje).
Buffering: Uso de Buffers (Cont.) • Cola de mensajes adherida alenlace (link); implementada en una de las formas siguientes: • Capacidad limitada – longitud finita de los n mensajes • El transmisor deberá de esperar, si el Buffer esta lleno. • Capacidad ilimitada –longitud infinita • El transmisor jamás espera.
Condiciones de Excepción y Recuperación Cuandoocurre un falloantes de que se procese un mensaje o durante la comunicación: • El proceso termina. • Notificación • Mensajes perdidos • Retransmite el mensaje • Retransmite el mensaje, si el emisor desea hacerlo • Mensajes alterados • Códigos de verificación de errores • Retransmisión