Sistemas operativos unidad 4

Solo disponible en BuenasTareas
  • Páginas : 9 (2123 palabras )
  • Descarga(s) : 0
  • Publicado : 28 de noviembre de 2010
Leer documento completo
Vista previa del texto
• 4.1.1  De Circuito, basada en bus, anillo o con conmutador
• La principal  problemática que se presenta entre dos  o más procesos sean locales o distribuidos  al compartir recursos es que cada proceso  tiene su propio espacio de direcciones.
 
• Cuando  se trata de procesos locales al estar  físicamente en el mismo hardware el espacio de direcciones se vuelve sencillo la compartición.  Esto no es sencillo en procesos distribuidos.
• En un  Sistema Operativo Distribuido, una computador  ejecuta los procesos en su memoria propia,  pero en caso de necesitar más memoria  utilizará los recursos disponibles de otra  computadora.
 
• La Memoria  compartida distribuida ayuda a que no  se formen los famosos cuellos de botella,  facilita el diseño y construcción de sistemas distribuidos.
Visión general  de la MCD
• El esquema  más básico de compartición de datos  en Sistemas Distribuidos es el paso de  mensajes (e.g. sockets). La problemática es  la latencia y la garantía de acceso  (puede llegar o no el mensaje).
 
• Existen  tres formas básicas de lograr compartición  de memoria en ambientes distribuidos: por  hardware, por sistema operativo o a nivel de usuario (software).  
• La compartición  de memoria se da por diversos esquemas,  siendo las más comunes: por paginación,  por variables compartidas y por objetos.
 
• El diseño  de la granularidad de compartición así  como la sincronización y manejo de consistencia  son elementos importantes en el diseño  de mecanismos de memoria compartida.
Replicación
(a) páginas distribuidas en 4 máquinas 
(b)  CPU 0 lee página 10 
 
(c)  CPU 1 lee página 10 
• Pseudo-Compartición
Memoria  compartida en IPC 
• La forma  más rápida de comunicar dos procesos  es que compartan una zona de memoria  compartida. 
 
• Las primitivas  para manipular memoria compartida son: shmget  para crear una zona d ememoria compartida  o utilizar una ya creada, shmctl para acceder y modificar la información administrativa  y de control, shmat para unir una  zona de memoria compartida a un proceso,  y shmdt para separa una zona previamente  unida.
#include 
int  shmget(key, size, shmflg); 
int  shmid;
if((shmid  = shmget(IPC_PRIVATE, 4096, IPC_CREAT | 0600))  == -1)
/*Error  al crear memoria compartida*/
• int shmctl(shmid,  cmd, buf)
 
• cmd indica la operación la cual puede ser: IPC_STAT,  IPC_SET, IPC_RMID, SHM_LOCK, SHM_UNLOCK.
 
• struct  shmid_s *buf
 
• smctl(shmid,  IPC_RMID, 0);
char  *shmat(shmid, shmaddr, shmflg);
int  shmdt(shmaddr); 
float  *memoria;
shmid  = shmget(llave, MAX * sizeof(float), IPC_CREAT  | 0600);
memoria  = shmat(shmid, 0, 0);
/*Operar  memoria*/
shmdt(memoria);
shmctl(shmid,  IPC_RMID, 0);
Arquitecturas  de MCD • Existen  varías formas de implantar físicamente memoria  compartida distribuida, a continuación se  describen cada una de ellas.
 
• Memoria  basada en circuitos : existe una única  área de memoria y cada micro tiene  su propio bus de datos y direcciones  (en caso de no tenerlo se vuelve  un esquema centralizado)

Arquitecturas de MCD

Existen varias formas de implantar físicamentememoria compartida distribuida, a continuación se describen cada una de ellas.

Memoria basada en circuitos: Existe una única área de memoria y cada micro tiene su propio bus de datos y direcciones (en caso de no tenerlo se vuelve un esquema centralizado).

MCD basada en bus: En este esquema los micros comparten un bus de datos y direcciones por lo que es más barato de implementar, se necesitatener una memoria caché grande y sumamente rápida. MCD basada en bus: En este esquema los micros comparten un bus de datos y direcciones por lo que es más barato de implementar, se necesita tener una memoria caché grande y sumamente rápida.

MCD basada en anillos: Es más tolerante a fallos, no hay coordinador central y se privilegia el uso de la memoria más cercana....
tracking img