Trabajo Final Comunicacion y Sincronizacion

download Trabajo Final Comunicacion y Sincronizacion

of 11

description

Sistemas Operativo Comunicacion y Sincronizacion

Transcript of Trabajo Final Comunicacion y Sincronizacion

  • ndice

    INTRODUCCION ............................... ERROR! MARCADOR NO DEFINIDO.

    COMUNICACIN Y SINCRONIZACION ........................................................2

    ESQUEMA. .....................................................................................................4

    INDICADORES DE EVENTOS .......................................................................5

    ALMACENAMIENTO DE ARCHIVOS Y ARCHIVOS COMPARTIDOS .........5

    PRIMITIVAS ENVIAR Y RECIBIR ..................................................................6

    COMUNICACIN DIRECTA:................................................................................8

    FORMATO DE LOS MENSAJES .................................................................10

    CONCLUSION ................................... ERROR! MARCADOR NO DEFINIDO.

    BIBLIOGRAFIA ................................. ERROR! MARCADOR NO DEFINIDO.

  • Introduccin

    En los sistemas operativos multiprogramados surge el concepto de

    proceso, asociado a la ejecucin de un programa. En general, un proceso es

    un flujo de ejecucin, representado bsicamente por un contador de programa,

    y su contexto de ejecucin, que puede ser ms o menos amplio. As, un

    proceso incluye en su contexto el estado de la pila, el estado de la memoria y

    el estado de la E/S, mientras que un thread tpico tiene como contexto propio

    poco ms que la pila. En algunos sistemas es posible determinar el contexto

    propio de un proceso en el momento de su creacin, como ocurre con la

    llamada al sistema clone() de Linux. En adelante, sin perder generalidad,

    utilizaremos siempre el trmino proceso, independientemente de cul sea su

    contexto.

    Uno de los objetivos del sistema operativo es la representacin de los

    procesos y el soporte de los cambios de contexto entre procesos, que

    posibilitan la comparticin del recurso CPU. El acceso a otros recursos

    compartidos y la comunicacin entre procesos relacionados (por ejemplo, de

    una misma aplicacin) hacen necesaria la utilizacin de mecanismos de

    sincronizacin dentro del sistema operativo. Tpicamente, un proceso requiere

    la CPU durante un periodo de tiempo, realiza alguna operacin de E/S, y

    vuelve a requerir la CPU, repitindose este ciclo hasta la finalizacin del

    programa. El proceso pasa por diversos estados entre los que se definen

    transiciones, como representa, en su forma ms sencilla, el grafo de la Figura

    siguiente.

    Cada vez que un proceso pasa al estado preparado, est compitiendo

    por el recurso CPU. Un segundo objetivo del sistema operativo

    multiprogramado es la planificacin del uso del (de los) recurso(s) de proceso.

    Los criterios que se siguen para la planificacin y las polticas que se usan se

    estudiarn ms adelante en el desarrollo de la presente investigacin.

    Comunicacin y sincronizacin

  • Es una funcin bsica de los sistemas operativos. Los procesos pueden

    comunicarse entre s a travs de compartir espacios de memoria, ya sean

    variables compartidas o buffers, o a travs de las herramientas provistas por

    las rutinas de IPC. La IPC provee un mecanismo que permite a los procesos

    comunicarse y sincronizarse entre s, normalmente a travs de un sistema de

    bajo nivel de paso de mensajes que ofrece la red subyacente.

    Necesaria si se desea que varios procesos puedan colaborar para

    realizar una misma tarea.

    Sincronizacin funcionamiento coordinado en la resolucin de una tareaencomendada.

    El SO ofrece mecanismos bsicos de comunicacin, que permiten

    transferir cadenas de bytes. Deben ser los procesos que se comunican

    quienes interpreten el significado de las cadenas transferidas para su labor

    coordinada.

    Los mecanismos de comunicacin y sincronizacin son dinmicos. Es

    decir, cuando se necesita un mecanismo de este estilo, se crea, usa y

    destruye, de forma que no se establezca de forma definitiva ningn mecanismo

    de comunicacin, ya que ellos podran producir efectos indeseados. Es decir,

    la comunicacin es algo puntual.

    Los servicios bsicos de comunicacin son:

    a. crear: el proceso solicita la creacin del mecanismob. enviar o escribir: el proceso emisor enva informacin al proceso receptorc. recibir o leer: el proceso receptor recibe informacind. destruir: el proceso solicita la destruccin del mecanismo de comunicacin

    La comunicacin puede ser sncrona y asncrona:

  • a. Sncrona: los dos procesos han de ejecutar servicios de forma simultnea.El emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta

    recibir.

    b. Asncrona: el emisor hace el envo y prosigue su ejecucin. El SO ofreceun almacenamiento intermedio para guardar la informacin enviada, hasta

    que el receptor la solicite.

    Esquema.

    En un sistema operativo multiprogramado los procesos compiten por el

    acceso a los recursos compartidos o cooperan dentro de una misma aplicacin

    para comunicar informacin. Ambas situaciones son tratadas por el sistema

    operativo mediante mecanismos de sincronizacin que permiten el acceso

    exclusivo de forma coordinada a los recursos y a los elementos de

    comunicacin compartidos. Segn el modelo de sistema operativo descrito

    anteriormente, basado en colas de procesos y transiciones de estados, los

    procesos abandonan la CPU para pasar a estado bloqueado cuando requieren

    el acceso a algn dispositivo, generalmente en una operacin de E/S, pasando

    a estado preparado cuando la operacin ha concluido y eventualmente volver

  • a ejecucin. La gestin de estos cambios de estado, es decir, los cambios de

    contexto, es un ejemplo de seccin crtica de cdigo dentro del sistema

    operativo que debe ser ejecutada por ste en exclusin mutua. Otros ejemplos

    de cdigo que debe protegerse como seccin crtica incluyen la programacin

    de los dispositivos de E/S y el acceso a estructuras de datos y buffers

    compartidos.

    Indicadores de eventosLos indicadores de eventos es una tal solucin eficaz de medir y mejorar

    la calidad de software. Contadores de rendimiento de software han

    proporcionado una manera conveniente supervisar aplicacin ejecucin

    estado y recurso de uso en un nivel agregado. Evento instrumentacin tambin

    ha sido popular a lo largo de los aos. Eventos provocados por un componente

    de software en diferentes etapas de ejecucin pueden reducir

    significativamente el tiempo necesario para diagnosticar varios problemas.

    Adems de deteccin para determinados eventos o modelos de eventos, uno

    puede aplicar tcnicas de minera de datos y la correlacin de datos para ms

    analizar los eventos para generar datos estadsticos significativos e informes

    en ejecucin del programa y el comportamiento problemtico. La capacidad

    de recopilar eventos en los sistemas de produccin en tiempo real ayuda a

    evitar la necesidad de tener una instalacin del depurador inmanejable en

    equipos de cliente.

    Almacenamiento de archivos y archivos compartidosEn trminos fsicos, la mayora de los archivos informticos se

    almacenan en discos duros, discos magnticos que giran dentro de una

    computadora que pueden registrar informacin indefinidamente. Los discos

    duros permiten acceso casi instantneo a los archivos informticos.

    Hace unos aos solan usarse cintas magnticas para realizar copias de

    seguridad. Tambin se usaban otros medios de almacenamiento como discos

  • compactos grabables, unidades Zip, etctera. No obstante en la actualidad han

    cobrado mucho auge las memorias flash, dispositivos con mucha capacidad

    de almacenamiento que tienen la ventaja de ser pequeos y porttiles; suelen

    usarse para guardar archivos en dispositivos pequeos como telfonos

    mviles o reproductores de audio porttiles.

    La manera en que un sistema operativo organiza, da nombre, almacena y

    manipula los archivos se denomina globalmente como su sistema de archivos.

    Todos los sistemas operativos tienen al menos un sistema de archivos;

    algunos sistemas operativos permiten usar varios sistemas de archivos

    diferentes. Por ejemplo, en Microsoft Windows 7, se reconocen los antiguos

    sistemas de archivos FAT y FAT32 de las versiones antiguas de Windows,

    adems del sistema de archivos NTFS que es el sistema de archivos normal

    en las versiones recientes de Windows. NTFS no es ms moderno que FAT32;

    ha existido desde que Windows NT se public en 1993.

    Un archivo compartido es una propiedad de un archivo informtico que tiene

    la caracterstica de poder ser accedido o manipulado por mltiples personas,

    computadoras, sesiones o programas. Es un tipo de recurso compartido. Un

    grupo de archivos puede compartirse:

    Entre distintas computadoras de una red, con diferentes permisos para

    cada una de ellas.

    Entre distintas computadoras por internet con programas especiales

    como los de P2P.

    Entre distintas sesiones de usuarios de un sistema operativo

    Entre distintos programas que utilizan iguales archivos. Por ejemplo,

    muchos archivos DLL son compartidos por mltiples aplicaciones.

    Primitivas enviar y RecibirAlgunos kernel tienen operaciones especficas ajustadas a la

    invocacin remota. Amoeba, por ejemplo, tiene DoOperation/GetRequest--

  • SendReply. Es ms eficiente que el simple Send-Receive (y ms fiable y

    legible). Amoeba y otros sistemas tienen tambin comunicacin con grupos o

    radiado (parcial) (broadcast). Es importante para tolerancia de fallos, mejora

    de rendimiento y reconfigurabilidad. Diversas variantes: como mensajes, como

    mltiples RPCs, con un slo valor devuelto, con varios valores devueltos

    (todos juntos o pidiendo uno a uno), etc.

    En la prctica, mecanismos de comunicacin de alto nivel tales como

    RPC/RMI, radiado y notificacin de sucesos (parecido a los manejadores de

    interrupciones), se implementan en middleware y no en el kernel.

    Normalmente, sobre un nivel TCP/IP, por razones de transportabilidad,

    (aunque resulta ``caro").

    La IPC ofrece un mecanismo que permite a los procesos comunicarse

    y sincronizar sus acciones. La mejor forma de proveer la comunicacin entre

    procesos es mediante un sistema de mensajes.

    La funcin de un sistema de mensaje es permitir a los procesos

    comunicarse entre s sin tener que recurrir a variables compartidas.

    Un recurso IPC ofrece por los menos 2 operaciones:

    - enviar (mensaje) (send) y recibir (mensaje) (receive).

    Sea P y Q dos procesos que requieren comunicarse debern enviarse

    mensajes; para ello debe existir un enlace de comunicacin entre ellos. Este

    enlace puede implementarse de diversas maneras. Los mtodos para

    implementar lgicamente un enlace y las operaciones de enviar / recibir son:

    Comunicacin directa o indirecta

    Uso de buffer automtico o explcito

    Envo por copia o envo por referencia

    Mensajes de tamao fijo o variables

  • Comunicacin directa:

    Aqu cada proceso que desee comunicarse debe nombrar explcitamente el

    destinatario o el remitente de la comunicacin. Este esquema se define las

    primitivas de la siguiente manera:

    - Enviar (P,mensaje): Enviar un mensaje al proceso P.

    - Recibir (Q. Mensaje): Recibir un mensaje del proceso Q.

    Con las siguientes propiedades:

    Se establece automticamente el enlace entre cada par de procesos.

    Lo procesos slo necesitan conocer la identidad de otro para la

    comunicacin.

    Solo hay un enlace entre cada par de procesos.

    El enlace puede ser unidireccional o bidireccional.

    Este esquema exhibe un simetra de direccionamiento; es decir, los procesos

    tanto emisor como receptor necesitan nombrar al otro para comunicarse. Otra

    variante de este esquema es utilizar asimetra de direccionamiento, con las

    siguientes primitivas:

    - Enviar (P, mensaje): enviar un mensaje al proceso P.

    - Recibir (Id,mensaje) : recibir un mensaje de cualquier proceso con el que

    hubo comunicacin.

    Aqu slo el emisor nombra al destinatario; el destinatario no est obligado a

    nombrar al emisor.

    Comunicacin indirecta:

  • Aqu los mensajes se envan a, y se reciben de, buzones (tambin llamados

    PUERTOS). Un buzn puede considerarse en lo abstracto como un objeto en

    el que los procesos pueden colocar mensajes y del cual se pueden sacar

    mensajes. Cada buzn tiene una identificacin nica. Aqu dos procesos se

    pueden comunicarse slo si comparten un buzn. Las primitivas se definen

    como:

    - Enviar (A,mensaje): enviar un mensaje al buzn A.

    - Recibir (A,mensaje): recibir un mensaje del buzn A.

    Un enlace de comunicacin tiene las siguientes propiedades:

    Se establece un enlace entre un par de procesos slo si tienen un buzn

    compartido.

    Un enlace puede estar asociado a ms de dos procesos.

    Entre cada par de procesos en comunicacin puede haber varios

    enlaces distintos, cada uno de los cuales corresponder a un buzn.

    Los enlaces pueden ser unidireccionales o bidireccionales.

    Hay varias formas de designar el dueo de y los usuarios de un buzn dado.

    Una posibilidad es permitir que un proceso declare variables de tipo buzn. El

    proceso que declara un buzn es el dueo de ese buzn. Cualquier otro

    proceso que conozca el nombre de dicho buzn podr usarlo. Por otro lado,

    un buzn propiedad del S.O tiene existencia propia; es independiente y no est

    unido a ningn proceso especfico. El S.O establece un mecanismo que

    permite a un proceso:

    Crear un buzn nuevo

    Enviar y recibir mensajes a travs del buzn

    Destruir un buzn.

  • Formato de los mensajes

    Un mensaje es un contenedor que se emplea para intercambiar informacin

    entre dos o ms procesos. Los mensajes tienen un cierto formato

    generalmente compuesto por una cabecera, que contiene informacin sobre

    la fuente y el destinatario, y un cuerpo, que contiene informacin especfica.

    Los mecanismos de mensajera se refieren al conjunto de funcionalidades que

    permiten al sistema operativo realizar la entrega de un mensaje a uno o varios

    procesos. Mediante dicho mecanismo tambin es posible resolver problemas

    de concurrencia.

    Los sistemas operativos generalmente ofrecen dos llamadas al sistema para

    que un proceso pueda enviar y recibir mensajes:

    send(destino, mensaje): Enva un mensaje a un destino. receive(fuente, mensaje): Recibe un mensaje de una fuente.

    Una operacin compuesta derivada de las primitivas bsicas es:

    sendrec (dest_fuent, mensaje): Enva un mensaje a un destino y recoge larespuesta.

    Cualquier proceso que necesite comprobar si tiene mensajes para ser

    procesados por l debe invocar la llamada al sistema recv.

    Los formatos pueden ser:

    Fijos: Los procesos acuerdan emplear un formato fijo para sus

    mensajes.

    Variable: Usado en Netlink para la codificacin de atributos de un

    mensaje.

    Mixto: Los procesos acuerdan emplear mensaje con partes cuyo

    formato es fijo, como por ejemplo una cabecera inicial, seguido de

    partes de tamao variable.

  • Conclusin

    Luego de haber investigado y analizado se puede ver que se han

    desarrollado varios tipos de sistemas operativos con diferentes interfaces y

    categoras. Pero hemos podido observar que todos los sistemas operativos

    han sufrido cambios por parte de los programadores, y siguen evolucionando.

    El dilogo entre el usuario y la mquina suele realizarse a travs de una

    interfaz de lnea de comandos o de una interfaz grfica de usuario (GUI, siglas

    en ingls). Las interfaces de lnea de comandos exigen que se introduzcan

    instrucciones breves mediante un teclado. Las GUI emplean ventanas para

    organizar archivos y aplicaciones con iconos y mens que presentan listas de

    instrucciones. El usuario manipula directamente estos objetos visuales en el

    monitor sealndolos, seleccionndolos y arrastrndolos o movindolos con

    un Mouse.

    Existen diversos mtodos a nivel de lenguaje maquina y hardware que

    permiten un manejo automatizado y verstil en lo que procesos o bien la

    comunicacin entre ellos respecta, as como tambin la manipulacin de

    archivos como compartimiento pero va mas all se que solo un usuario maneja

    ya que lo que no es detectable a la vista que prcticamente todo una interfaz

    que maneje todo tipo de objetos se le llama un sistema de archivos global.