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

Post on 27-Jan-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

GESTIÓN DE PROCESOS

HILOS Y COMUNICACIÓN ENTRE PROCESOS

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

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.

HILOSMultihilo:

Pilas separadas para cada hilo

Boques de control para cada hilo

Solo hay un PBC y un espacio de direcciones

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)

Recursos compartidos y no

Compartidos:Código Variables globalesFicheros y dispositivos abiertos

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

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.

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

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

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

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.

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.

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.

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.

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

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.

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)

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.

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.

Paginas

Sirven

Unidad de almacenamiento de información y transferencial

Memoria principal memoria secundaria

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.

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.

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.

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.

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.

top related