You are on page 1of 15

Repblica Bolivariana de

Venezuela
Universidad Alejandro de
Humboldt
Sede Los dos caminos
Ctedra: Sistemas operativos
Seccin: 0501
















Comunicacin y sincronizacin de los sistemas operativos

















Autores:
Herrera Gerardo
C.I V- 22.761.389
Villoria Hosward
C.I V- 21.149.173
Yepez Pablo
C.I V-21.471.255


Caracas, Octubre de 2014
ndice




INTRODUCCION ............................................................................. ERROR! BOOKMARK NOT DEFINED.
COMUNICACIN Y SINCRONIZACION ................................................................................................ 5
ESQUEMA. ............................................................................................................................................. 6
INDICADORES DE EVENTOS ............................................................................................................... 7
ALMACENAMIENTO DE ARCHIVOS Y ARCHIVOS COMPARTIDOS ....................................................... 9
PRIMITIVAS ENVIAR Y RECIBIR ........................................................................................................ 10
COMUNICACIN DIRECTA: ....................................................................................................................... 11
FORMATO DE LOS MENSAJES .......................................................................................................... 13
CONCLUSION ................................................................................. ERROR! BOOKMARK NOT DEFINED.
BIBLIOGRAFIA ............................................................................... ERROR! BOOKMARK NOT DEFINED.














3
Introduccin



Los primeros sistemas (1945-1955) eran grandes mquinas operadas desde la consola
maestra por los programadores. Durante la dcada siguiente (1955-1965) se llevaron
a cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnticas,
etc. Esto a su vez provoc un avance en el software: compiladores, ensambladores,
cargadores, manejadores de dispositivos, etc.
A finales de los aos 1980, una computadora Commodore Amiga equipada con una
aceleradora Video Toaster era capaz de producir efectos comparados a sistemas
dedicados que costaban el triple. Un Video Toaster junto a Lightwave ayud a
producir muchos programas de televisin y pelculas, entre las que se incluyen
Babylon 5, SeaQuest DSV y Terminator 2. Luego llega un nuevo avance en
hardware: Surge un nuevo avance en el hardware: el hardware con proteccin de
memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:

Se solapa el clculo de unos trabajos con la entrada/salida de otros trabajos.
Se pueden mantener en memoria varios programas.
Se asigna el uso de la CPU a los diferentes programas en memoria.

Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo
que ste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas
Operativos multiprogramados, los cuales cumplen con las siguientes funciones:
Administrar la memoria.
Gestionar el uso de la CPU (planificacin).
Administrar el uso de los dispositivos de E/S.
Cuando desempea esas tareas, el monitor residente se transforma en un
sistema operativo multiprogramado.

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.

4
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.
Para realizar el estudio de dichas polticas se realiza una sintetizada referencia a la
representacin de los procesos, para luego definir hilos de ejecucin o threads,
estableciendo diferencias entre procesos y hilos de ejecucin, sus ventajas
desventajas, estados, sincronizacin y tipos, para luego empezar a estudiar el
fenmeno de la sincronizacin de procesos, estableciendo su definicin y
caractersticas, se esboza la definicin, modelo, propiedades de la seccin critica, as
como la descripcin detallada de algunos de los principales modelos de
sincronizacin tales como el de exclusin mutua (mutex), semforos y mensajes, para
despus describir los diferentes problemas de sincronizacin tales como; el fumador
de cigarrillos, la panadera de Lamport, los filsofos que cenan (sabios), el barbero
dormiln, lectores y escritores, y productor consumidor y finalmente se estudia el
interbloqueo estableciendo su definicin, caractersticas, condiciones necesarias y
suficientes para su existencia, en cuanto a su deteccin y recuperacin.











5

Comunicacin y sincronizacin

Necesaria si se desea que varios procesos puedan colaborar para realizar una
misma tarea. Sincronizacin === funcionamiento coordinado en la resolucin de una
tarea encomendada.
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 mecanismo
b. enviar o escribir: el proceso emisor enva informacin al proceso receptor
c. recibir o leer: el proceso receptor recibe informacin
d. 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 ofrece
un almacenamiento intermedio para guardar la informacin enviada, hasta que el
receptor la solicite.








6
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.
Dentro del dentro del ncleo del sistema operativo, el espacio de direcciones es nico,
por lo que la comunicacin se resuelve mediante el uso de variables de memoria
compartida. Como contrapartida a la agilidad de este esquema, es necesario utilizar
mecanismos explcitos de sincronizacin para garantizar acceso exclusivo a las
variables compartidas. Si se definen buffers o colas compartidas a las que se
proporciona acceso exclusivo, se pueden utilizar esquemas de comunicacin ms
elaborados, como es el caso del productor-consumidor. El esquema cliente-
servidor es un caso particular del productor-consumidor donde los clientes producen
peticiones que son consumidas por el servidor de un determinado recurso. Un sistema
operativo con estructura cliente-servidor resulta atractivo por la claridad de su diseo.
Cuando los procesos que se comunican mediante estos esquemas no comparten el
espacio de direcciones, lo que sucede en particular en sistemas basados en micro
ncleo, se requieren primitivas de comunicacin por paso de mensajes, que, al

7
gestionar implcitamente la sincronizacin, simplifican la programacin de la
comunicacin.
En los apartados siguientes vamos a tratar el problema de la seccin crtica y
sus soluciones. La seccin crtica no es el nico problema a resolver en un sistema
operativo. Aunque se utilicen esquemas de comunicacin elaborados, las
interacciones en el uso de los recursos pueden conducir a interbloqueos, problema
que se tratar ms adelante.

Indicadores de eventos

Reciente complejidad del software y las expectativas del usuario superiores en
calidad, por lo tanto, presentan un desafo difcil en el desarrollo de software. Cuando
se produce un problema inesperado, es casi imposible predecir estados internos de
todos los componentes correspondientes. El historial de flujo de ejecucin es
engorroso y complicado, pero a menudo es necesario en averiguar la causa raz de los
problemas de software. Cuando los usuarios tengan problemas tras la
implementacin, esperan la causa raz del problema identificada y solucionada
rpidamente. El nmero abrumador de combinaciones de hardware y software,
caractersticas de carga de trabajo diferente y patrones de uso de los usuarios finales
realizar dichas tareas dificulta incluso. La capacidad de utilizar un mecanismo que
permite comprender la ejecucin de sistema de forma transparente, con una
sobrecarga mnima, es un valor incalculable.
Los 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.

8
Se introdujo en el sistema operativo Windows 2000, es eventos seguimiento para
Windows (ETW) una plataforma de seguimiento de eventos general en los sistemas
operativos Windows. Utilizando un bfer eficaz y un mecanismo de registro
implementado en el ncleo, ETW proporciona un mecanismo para conservar los
eventos generados por las aplicaciones en modo de usuario y controladores de
dispositivo en modo de ncleo. Adems, ETW ofrece a los usuarios la posibilidad de
habilitar y deshabilitar el registro dinmicamente, lo que se reinicia fciles de realizar
el seguimiento detallado en entornos de produccin sin necesidad de o aplicacin se
reinicia.
Como se mencion anteriormente, ETW es una plataforma de registro que
eficazmente registra los eventos enviados por las aplicaciones de software o
componentes de modo de ncleo. Utilizar proveedor ETW API, cualquier aplicacin,
DLL o el controlador puede convertirse en un proveedor de eventos (un componente
que provoca eventos) para ETW. Un proveedor registra primero con eventos ETW y
enva desde diversos puntos en el cdigo insertando llamadas a API de registro de
ETW. Cualquier actividad grabable de importancia puede ser un evento y est
representado por un dato escrito por ETW en el momento del registro. Estas llamadas
de API de registro se omiten cuando el proveedor no est habilitado. Una aplicacin
de controlador ETW inicia una sesin ETW y permite que determinados los
proveedores. Cuando un proveedor de eventos habilitados hace una llamada a la API
de registro, el evento, a continuacin, se dirige a la sesin designada por el
controlador. Los eventos enviados a una sesin pueden almacenarse en un archivo de
registro, consumir mediante programacin en tiempo real o mantienen en memoria
hasta que el controlador de solicitudes un vaciado de los datos a un archivo. Un
artculo anterior, "Mejorar la depuracin y rendimiento ajuste con
ETW"(msdn.microsoft.com/en-us/magazine/dvdarchive/cc163437.aspx), tiene ms
detalles sobre la tecnologa ETW y cmo agregar instrumentacin ETW en una
aplicacin. En los aos, ha llegado ETW para admitir muchos modos de registro
distintos y caractersticas, que estn documentadas en MSDN.


9


Almacenamiento de archivos y archivos compartidos

En 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.
Cada sistema de archivos tiene sus propias ventajas y desventajas. La FAT estndar
solamente permite nombres de archivo de ocho bytes (u ocho caracteres de slo 1
byte) sin espacios (ms una extensin de tres bytes/caracteres), por ejemplo, mientras
que NTFS permite nombres mucho ms largos que pueden contener espacios, y tener
varias letras Unicode. Se puede llamar a un archivo "Registros de nminas" en NTFS,
mientras que en FAT estara limitado a algo como "nominas.dat" (salvo que estuviera
usando VFAT, una extensin de FAT que permite nombres de archivo largos).

10
Los programas gestores o administradores de archivos son utilidades que le permiten
manipular archivos directamente. Le permiten mover, crear, borrar y renombrar
archivos y carpetas, aunque no le permiten realmente leer el contenido de un archivo
o almacenar informacin en l. Cada sistema informtico proporciona al menos un
programa gestor de archivos para su sistema de archivos nativo. En Windows, el
gestor de archivos usado ms comnmente es Windows Explorer.
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 Recibir

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

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

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

13
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 la
respuesta.
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.

14

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.
Los sistemas operativos empleados normalmente son UNIX, Macintosh OS, MS-
DOS, OS/2, Windows 95 y Windows NT. El UNIX y sus clones permiten mltiples
tareas y mltiples usuarios. Otros SO multiusuario y multitarea son OS/2,
desarrollado inicialmente por Microsoft e IBM, Windows NT y Win95 desarrollados
por Microsoft. El SO multitarea de Apple se denomina Macintosh OS. El MS-DOS es
un SO popular entre los usuarios de PCs pero solo permite un usuario y una tarea.



15

Bibliografa
- Electrnica:
http://es.slideshare.net/helmer614/sistemas-operativos-1802129
https://www.uclm.es/profesorado/licesio/Docencia/IB/IBTema3b.pdf
http://www.monografias.com/trabajos/so2/so2.shtml
http://www.alegsa.com.ar/Dic/archivo%20compartido.php
http://es.wikipedia.org/wiki/Archivo_%28inform%C3%A1tica%29#Almacen
amiento_de_archivos
http://florysel.blogspot.com/2012/11/163-primitivas-de-comunicacionipc.html