1 / 48

Sistemas Operativos

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.

brenna
Download Presentation

Sistemas Operativos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 

  2. Módulo 2, Sección 1 Procesos

  3. 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

  4. Temas • Idea Conceptual de Proceso • Coordinación de Procesos • Operación sobre los Procesos • Procesos Cooperativos • Comunicación entre los Procesos

  5. 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

  6. Stack: Direcciones de Retorno

  7. Stack: Paso de Parámetros

  8. Stack: Cambio de Contexto

  9. 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

  10. Bloque de Control del Proceso (PCB)

  11. 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.

  12. 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

  13. Intercambio del CPU de un Proceso a otro Proceso Interrupción o llamada al sistema Interrupción o llamada al sistema

  14. 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.

  15. Cola de Listos y Varias Colas de Dispositivos de E/S Cola de procesos listos

  16. Diagrama de Colas de la Coordinación de Procesos Coordinador de Largo plazo Coordinador de Corto plazo Coordinador de Mediano plazo

  17. 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

  18. Coordinador de mediano plazo Entra por intercambio Sale por intercambio

  19. 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.

  20. 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.

  21. 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.

  22. 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).

  23. 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.

  24. 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.

  25. Un Árbol de Procesos en un Sistema UNIX

  26. 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.

  27. 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.

  28. 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

  29. 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.

  30. 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;

  31. 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.

  32. 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

  33. Hilos Múltiples dentro de una Tarea Hilos Tarea

  34. 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.

  35. 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).

  36. 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.

  37. Solaris 2 :Hilos hilo en el nivel de usuario Proceso ligero hilo del núcleo

  38. 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..

  39. 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

  40. 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)

  41. 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?

  42. 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.

  43. 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.

  44. Comunicación Indirecta (Cont.) • Operaciones • create un nuevo buzón • send y receive mensajes por medio del buzón • destroy un buzón

  45. 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.

  46. 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).

  47. 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.

  48. 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

More Related