hilos y comunicaciÓn entre procesos. recibe el nombre de proceso ligero. se refiere sintáctica y...

25
GESTIÓN DE PROCESOS HILOS Y COMUNICACIÓN ENTRE PROCESOS

Upload: iago-plaza

Post on 27-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

GESTIÓN DE PROCESOS

HILOS Y COMUNICACIÓN ENTRE PROCESOS

Page 2: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

HILOSRecibe el nombre de proceso ligero.Se refiere sintáctica y semánticamente a hilos de ejecución.

Multihilo: Capacidad de un SO para mantener varios hilos en ejecución dentro de un mismo proceso

Page 3: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

HILOSMonohilo: Un solo hilo de ejecución por proceso. No existe concepto de hilo. Un proceso incluye su PBC Espacio de direcciones del proceso.

Pila de proceso. Pila de núcleo.

Page 4: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

HILOSMultihilo:

Pilas separadas para cada hilo

Boques de control para cada hilo

Solo hay un PBC y un espacio de direcciones

Page 5: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Estructura de los hilos

Hilo:Unidad básica de utilización de la CPU Contador de programa Juego de registrosEspacio de pila

Comparten:Sección de códigoSección de datosRecursos del SO (archivos abiertos y señales)

Page 6: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Recursos compartidos y no

Compartidos:Código Variables globalesFicheros y dispositivos abiertos

No compartidos:Contador del programaRegistro del CPUPila para las variables localesEstado

Page 7: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Estados de un hilo

Principales: Ejecución, preparado y bloqueado.

Cambio de estado: Creación: Cada ves que se crea un proceso de crea un hilo.

Bloqueo: Al esperar se bloquea para que se ejecute otro.

Desbloqueo: Cuando se produce su suceso.

Terminación: Cuando finaliza se libera su contexto y sus pilas.

Page 8: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Ventajas

Se tarda menos en crear un nuevo hiloSe tarda menos tiempo en terminar un hilo Se tarda menos tiempo en conmutar entre hilos

Hace mas rápida la comunicación entre procesos

Page 9: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Hilos Hilos a nivel usuario: La realiza una aplicación.

Hilos a nivel núcleo:Todo lo realiza un núcleoTodos los hilos pertenecen a un mismo proceso

Page 10: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

COMUNICACIÓN ENTRE PROCESOSMemoria compartida:

Necesitan un mecanismo de sincronización externo

La responsabilidad de la comunicación recae en los procesos

Paso de mensajes:Proporciona un enlace lógico entre procesosSólo invocan send y receive (bloqueantes o no).

Page 11: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Tipos de comunicación

Direccionamiento simétrico: Se nombra el destino y origen

Direccionamiento asimétrico: Se nombra solo el destino.

Comunicación indirecta: Se utilizan buzones. Un enlace puede asociarse a más de dos procesos. Dos procesos pueden compartir varios enlaces. El enlace puede ser unidireccional o bidireccional. Compilación independiente.

Page 12: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Tipos de comunicaciónComunicación directa:

El enlace lógico es implícito entre cada par de procesos. Un enlace está asociado sólo a dos procesos. Entre cada par de procesos existe un único enlace. El enlace es bidireccional. No compilación independiente

Sincrona: Quien envía permanece bloqueado esperando a que llegue una respuesta del receptor antes de realizar cualquier otro ejercicio.

Asincrona: Quien envía continúa con su ejecución inmediatamente después de enviar el mensaje al receptor.

Page 13: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Tipos de comunicación

Persistente: El mensaje se almacena tanto tiempo como sea necesario para ser entregado.

Momentánea: Se descarta el mensaje si el receptor no esta operativo.

Uso de buffers automático: El transmisor se boquea hasta que el receptor recibe el mensaje.

Page 14: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Capacidad de enlace

Capacidad 0: Los procesos deben estar sincronizados.

Capacidad N: La sincronización sólo es necesaria si el enlace esta lleno.

Capacidad ilimitada: El emisor nunca tiene que esperar.

Page 15: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

GESTIÓN DE ALMACENAMIENTOASIGNACIÓN CONTIGUA Y PAGINACIÓN

Page 16: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

ASIGNACIÓN CONTIGUA

Cada fichero ocupa: bloques contiguos en el disco.

Numero de búsquedas y tiempo de búsquedas mínimos para acceder a los archivos contiguos.

Definida por:Dirección en disco del bloque inicialLongitud del área asignada al archivo (# bloques)

Permite el acceso secuencial y directo.

Page 17: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

ProblemasAsignación de dinámica de almacenamiento: Estrategias de primer y mejor ajuste.Selección de un hueco libre del conjunto de los disponibles.

Inserción de los datos difíciles.Fragmentación externa:

Al borrar un fichero no puede ser usado por otro completamente.

Solución: compactación (creación de un único hueco grande)

Page 18: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Resumen

Se necesita la dirección del primer bloqueTodo archivo se puede leer solo una vezEl método no es realizable, a menos que se conozca el tamaño Max de archivos, al momento de crearlo.

Produce bastante fragmentación externa.Fácil acceso directo a bloques. Importante la gestión de espacio libre.

Page 19: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

PAGINACIÓN

Técnica de manejo de memoria, el espacio de memoria se divide en secciones física de igual tamaño, llamadas marcos de página.

Denominadas páginas: Tienen el mismo tamaño que los marcos de pagina.

Page 20: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Paginas

Sirven

Unidad de almacenamiento de información y transferencial

Memoria principal memoria secundaria

Page 21: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Paginación

Las paginas de un programa deben estar contiguamente en memoria.

Los mecanismos de paginación permiten la correspondencia correcta entre las direcciones virtuales (dadas por programas) y las reales de la memoria.

Cada pagina consiste en: Z palabras contiguas. Espacio de direcciones N consiste en n paginas. Espacio de memoria consiste en m marcos de paginas.

Page 22: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Paginación

Control de las paginas: Mantenerse una tabla en memoria denominada tabla de mapas de pagina para cada uno de los procesos.

Tablas de paginas Cada pagina tiene un índice Tiene un numero de marco correspondiente

Finalidad de las tablas: Asociar las paginas virtuales con los marcos.

Page 23: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Características de la paginaciónEl espacio de direcciones lógico puede ser no contiguo.La memoria se divide en bloques físicos fijos llamados marcos (frames)

La memoria se divide en bloques llamados paginas.La información se mantiene en los marcos libres.Se establece una tabla de paginas para trasladar las direcciones lógicas a físicas.

Se produce fragmentación interna.

Page 24: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Ventajas

Se puede ejecutar un programa cargando una parte en la memoria y lo que queda bajo solicitud.

No es necesario que las paginas sean contiguas , no se necesitan programas de compactación cuando hay marcos libres dispersos en la memoria.

Es fácil controlar las paginas por su mismo tamaño.

Page 25: HILOS Y COMUNICACIÓN ENTRE PROCESOS.  Recibe el nombre de proceso ligero.  Se refiere sintáctica y semánticamente a hilos de ejecución.  Multihilo:

Desventajas

El costo del software y hardware va creciendo por la nueva información que se va ingresando. Se consume mucha memoria y tiempo de CPU para su implantación.

Se deben reservar áreas de memoria para los procesos. Al no tener un tamaño fijo se crea un problema de desperdicio de memoria.