Está en la página 1de 37

SISTEMAS OPERATIVOS II UNIDAD 4

ALUMNA: MARGARITA GALICIA CUAMATZI

ESPECIALIDAD: LIC. INFORMATICA

ASIGNATURA: SISTEMAS OPERATIVOS II TEMA: UNIDAD II

4.1 CONFIGURACIONES DE MCD. 4.2 MODELOS DE CONSISTENCIA. 4.3 MCD EN BASE A PGINAS.

FECHA:
4 DE NOVIEMBRE DEL 2011

PENSAR PARA SERVIR, SERVIR PARA TRIUNFAR

SISTEMAS OPERATIVOS II UNIDAD 4


4.1 CONFIGURACIONES DE MCD.
En 1986, Li propuso un esquema diferente, conocido como memoria compartida distribuida (DSM). Li y Hudak propusieron tener una coleccin de estaciones de trabajo conectadas por una LAN compartiendo un solo espacio de direcciones virtuales con pginas. En el hardware se hace una llamada a las pginas locales, con toda la velocidad de la memoria. Un intento por llamar a una pgina en una maquina diferente causan un fallo de pagina en hardware, el cual realiza un sealamiento al sistema operativo. Entonces, el sistema operativo enva un mensaje a la maquina remota, quien encuentra la pagina necesaria y la enva al procesador solicitante. Entonces se reinicia la instruccin detenida ty se puede concluir. Este diseo es similar a los sistemas de memoria virtual tradicionales; cuando un proceso toca una pgina no residente, ocurre un sealamiento y el sistema operativo busca la pagina y la asocia con el proceso. La diferencia aqu es que en vez de obtener la pagina del disco, el sistema operativo la obtiene de otro procesador en la red. Sin embargo, para el usuario de los procesos, el sistema se parece mucho a un multiprocesador tradicional, con varios procesadores libres para leer y escribir en la memoria compartida. Toda la comunicacin y la sincronizacin se puede hacer por medio de la memoria compartida sin que la comunicacin sea visible para el usuario de los procesos. De hecho, Li y Hudak disearon un sistema que es fcil de programar (memoria compartida lgicamente) y fcil de construir (sin memoria compartida fsicamente). Un mtodo consiste en no compartir todo el espacio de direcciones, sino solo una porcin seleccionada de este, a saber, aquellas variables o estructuras de datos que se necesitan utilizar en ms de un proceso. En este modelo, uno no piensa que cada mquina tiene acceso directo a una memoria ordinaria sino a una coleccin de variables compartidas, lo cual produce un alto nivel de abstraccin. Esta estrategia no solo reduce en gran medida la cantidad de datos por compartir, sino que, en la mayora de los casos, se dispone de informacin considerable acerca de los datos compartidos disponibles, como su tipo, lo que puede ayudar a optimizar la implantacin. Una posible optimizacin consiste en repetir las variables compartidas en varias maquinas. Al compartir las variables duplicadas en vez de pginas completas, el problema de simular un multiprocesador ha sido reducido al de conservar de manera consistente varias copias de un conjunto de estructuras de datos tipificados.

SISTEMAS OPERATIVOS II UNIDAD 4


QUE ES LA MEMORIA COMPARTIDA?
Las maquinas son importantes para comprender la memoria compartida distribuida, ya que gran parte del trabajo de la DSM ha sido inspirado por los avaneces en la arquitectura de multiprocesadores. Adems, muchos de los algoritmos son tan similares que a veces es difcil decir si una maquina avanzada es un multiprocesador o una multicomputadora que utiliza una implantacin en hardware de la memoria compartida distribuida.

4.1.1 MEMORIA EN CIRCUITOS


Estos circuitos se producen por millones y se utilizan con amplitud en los automviles, en aparatos e incluso en juguetes. En este diseo, la porcin de CPU del circuito tiene direcciones y lneas de datos que se conectan en directo a la porcin de memoria. Ejemplo: Diagrama simplificado de memoria de circuito. (a) Una computadora de un solo circuito (b) Un multiprocesador de memoria compartida hipottico

Uno puede imaginar que una extensin simple de este circuito tendra varios CPU compartiendo de forma directa la misma memoria. Aunque es posible construir un circuito como este, sera complicado, caro y poco usual. Un intento por construir un multiprocesador de un circuito de esta forma, con varios CPU que tengan un acceso directo a la misma memoria sera imposible.

SISTEMAS OPERATIVOS II UNIDAD 4


4.1.1 MULTIPROCESADOR BASADOS EN UN BUS Un bus est integrado en un circuito pero en muchos sistemas, los buses son externos y se utilizan para conectar tarjetas de circuitos impresos con CPU y parte de la memoria, donde se conectan las tarjetas de E/S. En una computadora de escritorio, el bus est grabado por lo general en la tarjeta principal (la tarjeta madre), que contiene al CPU y parte de la memoria, donde se conectan las tarjetas de E/S. En las minicomputadoras, el bus es a veces un cable plano tendido entre los procesadores, las memorias y los controladores de E/S. La forma simple pero prctica de construir un multiprocesador es basarlo en un bus al que se conecte ms de un CPU. Cuando cualquiera de los CPU desea leer una palabra de la memoria, coloca la direccin de la palabra deseada en el bus y tiende (coloca una seal en) una lnea de control de bus para indicar que desea realizar una lectura. Cuando la memoria ha encontrado la palabra requerida, coloca esta en el bus y tiende otra lnea de control para anunciar que esta lista. Entonces, el CPU lee la palabra. La escritura se realiza de manera anloga.

a) Un multiprocesador b) Un multiprocesador con ocultamiento.

Para evitar que dos o mas CPU intenten el acceso a la memoria al mismo tiempo, se necesita algn tipo de arbitraje del bus. Se pueden utilizar varios esquemas. Ejemplo: Para conseguir el bus, un CPU primero debe solicitarlo, al tender una lnea de solicitud especial. Despus de recibir el permiso podr utilizar el bus. La concesin de este permiso puede hacerse de forma centralizada, utilizando un dispositivo de arbitraje de bus, o de forma descentralizada, donde el primer CPU que realice una solicitud en el bus ganara cualquier conflicto. La desventaja de tener un solo bus es que, con tres o cuatro CPU, este de seguro se sobrecargara. El mtodo usual para reducir la carga del bus es equipar a cada CPU con un cache husmeador, llamado as debido a que husmea en el bus.

SISTEMAS OPERATIVOS II UNIDAD 4


Un protocolo en particular comn es el de escritura a travs del cache. Cuando un CPU lee por primera vez una palabra de memoria, esa palabra es llevada por el bus y guardada en el cache del CPU solicitante. Si mas tarde se necesita esa palabra, el CPU la toma del cache sin necesidad de hacer una solicitud a memoria, reduciendo as el trfico del bus. En los sistemas simples, solo se guarda en el cache la palabra solicitada, pero en la mayora de los sistemas, un bloque de palabras se trasfiere y guarda en el cache en el acceso inicial y se conserva ah para un posible uso posterior. Cada CPU realiza su ocultamiento en forma independiente de los dems, En consecuencia, es posible que una palabra en particular se oculte en dos o mas CPU al mismo tiempo. Ahora, consideremos lo que sucede cuando se realiza una escritura. Sin ningn CPU tiene la palabra escritura en su cache, la memoria solo se utiliza, como si el ocultamiento no hubiera sido utilizado. Esta operacin requiere un ciclo de bus normal. Si el CPU que realiza la escritura tiene la nica copia de la palabra, se actualiza su cache y tambin la memoria mediante el bus. El problema surge cuando un CPU desea escribir una palabra que se encuentre en los caches de dos o ms CPU. Si la palabra se encuentra en la actualidad en el cache del CPU que realiza la escritura, la entrada de cache se actualiza. Este o no, tambin se escribe en el bus para actualizar la memoria. Todos los dems caches ven la escritura y verifican si contienen tambin la palabra por modificar. Si es as, invalidan sus entradas de cache, de modo que despus de que completen la escritura, la memoria esta actualizada y solo una maquina tiene la palabra en cache. Una alternativa para invalidar otras entradas de cache es actualizarlas todas. Sin embargo, en la mayora de los casos, la actualizacin es ms lenta que la invalidacin, ya que la ultima solo requiere proporcionar la nueva entrada para el cache. Si estos dos elementos deben estar presentes en el bus de manera consecutiva, se requerirn ciclos adicionales. Aunque sea posible colocar una direccin y una palabra dato en el bus de manera simultnea, si el tamao de bloque del cache es mayor de una palabra, se necesitaran varios ciclos de bus para actualizarlo todo el bloque. El dilema invalidacin vs. Actualizacin aparece en todos los protocolos de cache y tambin en los sistemas DSM. El protocolo de escritura a travs del cache es fcil de entender e implantar, pero tiene la seria desventaja de que todas las escrituras utilizan el bus. Aunque es cierto que el protocolo reduce el trfico del bus en cierta medida, el nmero de CPU que se conecta a un bus es an muy pequeo como para permitir la construccin de multiprocesadores a larga escala que lo utilicen.

SISTEMAS OPERATIVOS II UNIDAD 4


Nuestro protocolo maneja bloques de caches, cada uno de los cuales puede estar en uno de los siguientes tres estados:
1. INVALIDO: Este bloque de chache no contiene datos validos. 2. LIMPIO: La memoria esta actualizada; el bloque puede estar en otros

caches.
3. SUCIO: La memoria es incorrecta; ningn otro cache puede contener al

bloque. La idea bsica es que una palabra leda por varios CPU est presente en todos sus caches. Una palabra en la que una maquina escribe repetidamente se guarda en su cache y no se vuelve a escribir en memoria despus de cada escritura, para reducir el trfico del bus. Ejemplo de la operacin del protocolo: Supondremos que cada bloque de cache consta de una palabra. En un principio, B tiene una copia oculta de la palabra en la direccin W. El valor es W1. La memoria tambin tiene una copia valida. Muchos multiprocesadores pequeos utilizan un protocolo de consistencia de cache similar a este, por lo general con pequeas variaciones. Tiene tres propiedades importantes: 1. La consistencia se logra haciendo que todos los caches husmeen el bus. 2. El protocolo se integra dentro de la unidad de administracin de memoria 3. Todo el algoritmo se realiza en un ciclo de memoria

SISTEMAS OPERATIVOS II UNIDAD 4


4.1.1 MULTIPROCESADOR BASADOS EN UN ANILLO En Memnet, un espacio de direcciones se divide en una parte privada y una compartida. La parte privada se divide en regiones, de modo que cada mquina tenga un pedazo para su pila y otros datos y cdigos no compartidos. La parte compartida es comn para todas las maquinas y se guarda de manera consistente mediante un protocolo de hardware parecido a los utilizados en los multiprocesadores basados en bus. La memoria compartida se divide en bloques de 32 bytes, que es la unidad mediante la cual se realizan las transferencias entre las maquinas. Todas las maquinas en Memnet estn conectadas mediante un anillo de fichas modificado. El anillo consta de 20 cables paralelos, que juntos permiten enviar 16 bits de datos y 4 bits de control cada 100 nanosegundos, para una velocidad de datos de 160 MB/segundo. La interfaz de anillo, MMU (Unidad de Administracin de memoria), el cache y una parte de la memoria se integran en el dispositivo Memnet.

a) Dispositivo Memnet

b) Una maquina c) La tabla del bloque

A diferencia de los multiprocesadores basados en bus de la anterior figura en

SISTEMAS OPERATIVOS II UNIDAD 4


Memnet no existe memoria global centralizada. En vez de esto, cada bloque de 32 bytes en el espacio compartido de direcciones tiene una maquina de origen donde la memoria fsica esta siempre reservada para l, en el campo de memoria de origen. Un bloque puede ocultarse en una maquina distinta a sus maquina de origen. Un bloque exclusivo de lectura puede estar presente en varias maquinas; un bloque de escritura-lectura solo puede estar presente en una maquina. En ambos casos, un bloque no tiene que estar presente en su mquina de origen. Todo lo que hace la mquina de origen es proporcionar un lugar seguro para guardar el bloque si ninguna otra mquina desea ocultarlo. Esta caracterstica es necesaria ya que no existe la memoria global. De hecho, la memoria global ha estado extendida sobre todas las maquinas. El dispositivo Memnet en cada mquina contiene una tabla, la cual contiene una entrada por cada bloque en el espacio compartido de direcciones, indizada por el nmero de bloque. Cada entrada contiene un bit Valido que indica si el bloque est presente en el cache y actualizado, un bit Exclusivo, especificando si la copia local, si existe, es la nica, un bit Origen, que se activa solo si esta es la mquina de origen del bloque, un bit de Interrupcin, del bloque en el cach si est presente y es vlido. El protocolo de la arquitectura de Memnet. Cuando el CPU desea leer una palabra de la memoria compartida, la direccin de memoria por leer se transfiere al dispositivo Memnet, el cual verifica la tabla del bloque para ver si est presente. De ser as, la solicitud es satisfecha de inmediato. En caso contrario, el dispositivo Memnet espera hasta capturar la ficha que circula; despus, coloca un paquete de solicitud en el anillo y suspende el CPU. El paquete de solicitud contiene la direccin deseada y un campo vacio de 32 bytes. Mientras el paquete pasa por el anillo, cada dispositivo en Memnet del camino verifica si tiene el bloque necesario, De ser as, coloca el bloque en el campo vacio y modifica el encabezado del paquete para inhibir la accin de las maquinas posteriores. Si el bit Exclusivo del bloque esta activo, se limpia. Como el bloque tiene que encontrarse en algn lado, cuando el paquete regresa al emisor, se garantiza que contiene al bloque solicitado. El CPU que enva la solicitud guarda entonces el bloque, satisface la solicitud y libera al CPU. Surge un problema si la maquina solicitante no tiene espacio libre en su cach para contener el bloque recibido. Para hacer espacio, toma al azar un bloque oculto y lo enva a su origen, con lo que libera un espacio del cach.

4.1.1 MULTIPROCESADORES CON CONMUTADOR

SISTEMAS OPERATIVOS II UNIDAD 4


Aunque los multiprocesadores basados en un bus y los basados en anillo trabajan bien para sistemas pequeos, no se escalan bien a sistemas con cientos o miles de CPU. Al agregar CPU, en algn punto se satura el ancho de banda del bus o el anillo. Aadir ms CPU no mejora el desempeo del sistema. Se tiene dos mtodos para atacar el problema del ancho de banda insuficiente: 1. Reducir la cantidad de comunicacin 2. Incrementar la capacidad de comunicacin. No obstante, de forma eventual llegara el momento en que se haya utilizado cada truco del libro, pero los insaciables diseadores querrn aadir ms CPU y no habr ms ancho de banda en el bus. La nica salida consiste en aadir ms ancho de banda de bus. Un mtodo consiste en cambiar la topologa, pasando, por ejemplo, de un bus a dos o a un rbol o una cuadricula. Al cambiar la topologa de la red de interconexin, es posible aadir una capacidad de comunicacin adicional. Un mtodo diferente consiste en construir el sistema como una jerarqua. Se continan colocando algunos CPU en un bus, pero ahora se considera toda esto como unidad. Se construye el sistema como varias unidades y se conectaran estas mediante un bus entre ellas. Mientras ms CPU se comuniquen principalmente dentro de su unidad, habr relativamente menos trfico entre las unidades. Si un bus entre las unidades es inadecuado, se aade un segundo bus de este tipo, o se rene un bus, un rbol o una cuadricula. Si se necesita mayor ancho de banda, se rene un bus, un rbol o una cuadricula de unidades en una superunidad, y se separa al sistema en varias superunidades. Las superunidades se pueden conectar mediante un bus, rbol, o cuadricula, y as en lo sucesivo. La maquina llamada Dash, fue construida como un proyecto de investigacin en la Universidad de Stanford. Aunque se han hecho muchas otras investigaciones con trabajos parecidos. Un diagrama simplificado del prototipo de Dash. Consta de 16 unidades, cada una de las cuales contiene un bus cuatro CPU; 16M de memoria global y algo de equipo de E/S y dos CPU de cada unidad. Cada CPU es capaz de husmear en su bus local. Directorios: Cada unidad tiene un directorio con un registro de las unidades que tienen copias de sus bloques. Como cada unidad tiene IM bloques de memoria, tiene IM entradas en su directorio, una por bloque. Cada entrada contiene un mapa de bits, con un bit por unidad, que dice si esa unidad tiene el bloque oculto. La entrada tambin tiene un campo de 2 bits que indica el estado del bloque. Como veremos los directorios son esenciales en la

SISTEMAS OPERATIVOS II UNIDAD 4


operacin de Dash. De hecho, el nombre Dash proviene de Directory Architecture for Shared memory (Arquitectura de directorios para memoria compartida). Con IM entradas de 18 bits cada una, el tamao total de cada directorio es mayor de 2M bytes. Con 16 unidades, la memoria de directorio total est sujeta justamente sobre los 36M, o cerca del 14% de los 256M. Si el numero de CPU por unidad se incrementa, la cantidad de memoria de directorio no cambia. De modo que el hecho de tener ms CPU, por unidad permite que el costo del directorio no cambia. Ocultamiento: El ocultamiento se hace en dos niveles; un cache de primer nivel y un cache mayor de segundo nivel. El cache de primer nivel es un subconjunto del cache de segundo nivel. Cada cache monitorea el bus local utilizando un protocolo similar al protocolo de membresa de cache. Cada bloque de cache puede estar en alguno de los siguientes estados: 1. NO OCULTO: La nica copia del bloque esta en esta memoria. 2. LIMPIO: La memoria esta actualizada; el bloque puede encontrarse en varios caches.
3. SUCIO: La memoria es incorrecta; solo un cach contiene al bloque.

El estado de cada bloque de cach se guarda en el campo Estado de su entrada de directorio. Protocolos: El protocolo Dash se basa en la membresia y la invalidacin. En cada momento, cada bloque de cach tiene un propietario. Para un bloque NO OCULTO o LIMPIO la unidad de origen del bloque es el propietario. Para un bloque SUCIO, la unidad que contiene la nica copia es el propietario. Para escribir en un bloque LIMPIO, primero hay que encontrar e invalidar todas las copias existentes. Aqu es donde entran los directorios.

Para ver cmo trabaja este mecanismo, consideremos primero como lee un CPU una palabra en memoria. Primero verifica sus propios cachs. Si ningn cach tiene la palabra, se hace una solicitud en el bus de la unidad local para ver si otro CPU de la unidad tiene el bloque con dicha palabra. Si uno la tiene, se ejecuta una transferencia del bloque entre los cachs, para colocar el bloque en el cach del CPU solicitante. Si el bloque est LIMPIO, se hace una copia; si est SUCIO, el directorio de origen es informado de que el bloque se encuentra ahora LIMPIO y compartido. De cualquier forma, un xito de uno de los caches satisface la instruccin pero no afecta ningn mapa de bits de directorio.

SISTEMAS OPERATIVOS II UNIDAD 4


Si el bloque no est presente en los cachs de las unidades, se enva un paquete de solicitud a la unidad de origen del bloque, lo que puede determinarse al examinar los 4 bits superiores de la direccin de memoria. La unidad de origen bien podra ser la unidad del solicitante, en cuyo caso el mensaje no se enva de forma fsica. El hardware para administracin de directorios en la unidad de origen examina sus tablas para ver el estado que guarda el bloque. Si se encuentra NO OCULTO o LIMPIO, el hardware toma el bloque de su memoria global y lo enva de regreso a la unidad solicitante. Entonces actualiza su directorio, marchando el bloque como oculto en la unidad solicitante. Sin embargo si el bloque necesitado se encuentra SUCIO, el hardware del directorio observa la identidad de la unidad que contiene al bloque y transmite la solicitud hacia ese punto. La unidad que contiene el bloque SUCIO lo enviamos entonces a la unidad solicitante y marca como LIMPIO. La escritura trabaja diferente. Antes de que se lleve a cabo una escritura, el CPU que realiza la escritura debe asegurarse de ser el propietario de la nica copia del bloque de cache en el sistema. Si ya tiene el bloque en su cache y este se encuentra SUCIO, puede realizar la escritura de inmediato. Si tiene el bloque LIMPIO, se enva primero un paquete a la unidad de origen solicitando localizar e invalidar las dems copias. Si el CPU solicitante no tiene el bloque cach, hace una solicitud en el bus local para ver si cualquiera de sus vecinos la tiene. En tal caso, se hace una transferencia entre los cachs. Si el bloque est LIMPIO, las dems copias, si existen, la unidad de origen debe invalidarlas. Si la transmisin local no puede encontrar una copia y el bloque esta albergado en algn otro lado, se enva un paquete a la unidad de origen. Se puede distinguir tres casos: Si el bloque se encuentra NO OCULTO, se marca como SUCIO y se enva al solicitante. Si est LIMPIO, se invalidan todas las copias y se sigue entonces el procedimiento para NO OCULTO. Si est sucio, la solicitud es transmitida a la unidad remota que actualmente es propietaria del bloque. Esta unidad invalida su copia y satisface la solicitud.

4.2 MODELOS DE CONSISTENCIA

SISTEMAS OPERATIVOS II UNIDAD 4


Aunque los multiprocesadores modernos tienen mucho en comn con los sistemas de memoria compartida distribuida, es tiempo de dejar el tema de los multiprocesadores y continuar. En las implantaciones sencillas, cuando una maquina remota llama a una pgina para escritura, ocurre un sealamiento y la pagina es ocupada. Sin embargo, si alguna de las pginas que se pueden escribir esta demasiado compartida, el hecho de tener solo una copia de cada una puede presentar un serio cuello de botella en cuanto al desempeo. Si se permite la existencia de varias copias, se facilita el problema del desempeo, pues basta con actualizar cualquier copia, pero esto introduce un nuevo problema: como mantener consistentes todas las copias. El mantenimiento de una consistencia perfecta es en especial doloroso cuando las diversas copias se encuentran en maquinas diferentes que solo pueden comunicarse al enviar mensajes por una red lenta, la solucin consiste en aceptar una menos prefecta como precio de mejor desempeo. El significado preciso de la consistencia y su relajacin sin hacer insoportable la programacin es una fundamental entre los investigadores de DSM. Un modelo de consistencia es en escencia un contrato entre el software y la memoria, dice que si el software acuerda obedecer ciertas reglas, la memoria promete trabajar de forma correcta. Si el software viola estas reglas, todo acaba y ya no se garantiza que la operacin de memoria sea la correcta. Existe un aspecto amplio de contratos que imponen solo restricciones menores en el software hasta aquellos que hacen la programacin normal casi imposible.

4.2.1 CONSISTENCIA ESTRICTA


Definicin: Cualquier lectura a una localidad de memoria x regresa el valor guardado por la operacin de escritura ms reciente en x. Esta definicin supone la existencia de un tiempo global absoluto (como en la fsica de Newton), para que la determinacin del evento "ms reciente" no sea ambigua. Los uniprocesadores han observado tradicionalmente una consistencia estricta y los programadores de los uniprocesos esperan que este comportamiento sea el normal. Un sistema donde el programa a=1; a=2; print(a); Imprime 1 o cualquier valor distinto de 2 producira con rapidez muchos programadores agitados.

SISTEMAS OPERATIVOS II UNIDAD 4


En un sistema DSM, el asunto es mas complicado. Supongamos que x es una variable que esta guardada solo en la maquina B. Imagine que un proceso en la maquina A lee x en el momento T1, lo que significa que se enva un mensaje a B oara obtener x. Poco despus, en T2, un proceso en B realiza una escritura en x. Si hay una consistencia estricta, la lectura siempre debe regresar el valor anterior sin importar la posicin de las maquinas y la cercana de T2, y T1. Sin embargo, si T2-T1 es, digamos, 1 nanosegundo, y las maquinas se encuentran a una distancia de 3 metros entre si, para que la solicitud de lectura de A a B se obtenga antes de la escritura, la seal debe viajar a 10 veces la velocidad de la luz, algo prohibido por la teora de la relatividad de Einstein. Esto nos lleva al asunto del contrato entre el softwate y la memoria. Si el contrato promete la consistencia estricta de manera implcita o explcita, entonces lo mejor ser que la memoria cumpla. Por otro lado, un programador que en realidad espera una consistencia estricta, de modo que sus programas fallen si no ocurre, vive en peligro. Aun en un multiprocesador pequeo, si un procesador comienza a escribir en la localidad de memoria a, y un nanosegundo ms tarde otro procesador comienza a leer a, es probable que el lector obtenga el valor anterior de su cache local. Cualquiera que escriba programas que fallen bajo estas circunstancias debe quedarse despus de clases a escribir un programa que imprima 100 veces Debo evitar las condiciones de competencia. En un ejemplo mas realista, uno puede imaginar un sistema que proporcione a los fanticos del soporte los marcadores de los eventos deportivos en el mundo, actualizados al minuto. En este caso, se podra aceptar una respuesta como si la solicitud se hubiera hecho 2 nanosegundos antes o despus, en especial si esto proporciona mejor desempeo al guardar varias copias de los datos. En este caso, la consistencia estricta no se promete, ni se cumple ni se necesita. Cuando la memoria tiene consistencia estricta, todas las escrituras son visibles al instante a toso los procesos y se mantiene en un orden de tiempo global absoluto. Si se cambia una localidad de memoria, todas las lecturas posteriores desde esa localidda v el nuevo valor, sin importar que tan pronto se haga la lectura despus del cambio y sin importar los procesos que estn haciendo la lectura ni la posicin de estos. De manera anloga, si se realiza una lectura, se obtiene el valor actual, sin importar lo rpido que se realice la siguiente escritura.

4.2.1 CONSISTENCIA SECUENCIAL


Aunque la consistencia estricta es el modelo de programacin ideal, es casi

SISTEMAS OPERATIVOS II UNIDAD 4


imposible, implantarla en un sistema distribuido. Adems, la experiencia muestra que los programadores suelen controlar bien los modelos ms dbiles. La consistencia secuencial es un modelo de memoria un poco mas dbil que la consistencia estricta. Fue definida por primera vez por Lamport (1979), quien dijo que una memoria con consistencia secuencial es la que satisface la siguiente condicin: El resultado de cualquier ejecucin es el mismo que si las operaciones de todos los procesos fueran ejecutadas en algn orden secuencial, y las operaciones de cada proceso individual aparecen en esta secuencia en el orden especificado por su programa. Lo que significa esta definicin es que cuando los procesos se ejecutan en paralelo en diferentes maquinas, cualquier intercalado valido es un comportamiento aceptable, pero todos los procesos deben ver la misma serie de llamadas a memoria. Una memoria donde un proceso ven un intercalado y otro proceso ve otro distinto no es una memoria con consistencia secuencial. La memoria con consistencia secuencial no garantiza que una lectura regrese el valor escrito por otro proceso un nanosegundo antes, un microsegundo antes, o incluso un minuto antes. Solo garantiza que todos los procesos vean todas las referencias a memoria en el mismo orden. Una nueva ejecucin de un programa podra no proporcionar el mismo resultado, a menos que se utilicen operaciones explicitas de sincronizacin.

4.2.1 CONSISTENCIA CAUSAL


Es un debilitamiento de la consistencia secuencial que hace distincin entre eventos potencialmente relacionados por causalidad y aquellos que no lo estn (Hutto y Ahamad, 1990). Si el evento B es causado o influido por un evento anterior, A, la casualidad requiere que todo vean primero a A, y despus vean a B. Ejemplo de memoria: Suponga que el proceso P 1 escribe una variable x. Despus P2 lee x y escribe y. Aqu la lectura de x y la escritura de y estn en potencial relacionadas de forma causal, pues el clculo de y podra depender del valor de x ledo por P2. Por otro lado, si dos procesos escriben de forma espontnea y simultanea en dos variables, no estn relacionados de forma causal. Cuando ocurre una lectura seguida por una escritura, los dos eventos estn en potencia

SISTEMAS OPERATIVOS II UNIDAD 4


relacionados de forma causal. De manera anloga, una lectura esta relacionada de forma causal con la escritura que proporciona el dato obtenido por la lectura. Las operaciones que no estn relacionadas de forma causal con concurrentes. Para que una memoria sea consistente de forma causal, obedece las siguientes condiciones: Las escrituras potencialmente relacionadas de forma causal son vistas por todos los procesos en el mismo orden. Las escrituras concurrentes pueden ser vistas en un orden diferente en mquinas diferentes.

Como por ejemplo de consistencia causal.

Aqu tenemos una sucesin de eventos permitida con memoria consistente de forma causal, pero prohibida para una memoria con consistencia secuencial o con consistencia estricta. Lo que hay que observar es que las escrituras W(x)2 y W(x)3 son concurrentes, por lo que no se requiere que todos los procesos los vean en el mimo orden. Si el software falla cuando procesos diferentes ven eventos concurrentes en orden distinto, se ha violado el contrato de memoria ofrecido por la memoria causal.

4.2.1 CONSISTENCIA DEBIL


Aunque la consistencia PRAM y del procesador tienen mejor desempeo que los modelos ms fuertes, siguen siendo demasiado restrictivos para muchas aplicaciones, pues requieren que las escrituras realizadas en un proceso sean vistas en todas partes en el mismo orden. Por ejemplo, si un proceso est en una seccin crtica y modifica algunas variables, se supone que ningn otro proceso puede modificarlas en ese momento y son seguras, pero la memoria no lo sabe y trata el caso con las mismas restricciones que cualquier otro. La mejor solucin es dejar que el proceso termine su seccin crtica y hacer que los resultados finales se enven a todas partes. Esto se lleva a cabo con variables especiales llamadas variables de sincronizacin. Las operaciones en ellas se utilizan para sincronizar la memoria.

SISTEMAS OPERATIVOS II UNIDAD 4


Dubois (1986) define este modelo, llamado de consistencia dbil con las siguientes condiciones: 1. Los accesos a las variables de sincronizacin son secuencialmente consistentes 2. No se permite realizar un acceso a una variable de sincronizacin hasta que las escrituras anteriores hayan terminado en todas partes 3. No se permite realizar un acceso a los datos (lectura o escritura) hasta realizar todos los accesos anteriores a las variables de sincronizacin El punto 1 dice que todos los procesos ven los accesos a variables de sincronizacin en el mismo orden. El punto 2 dice que el acceso a una variable de sincronizacin "dirige el flujo", obligando a terminar a todas las escrituras que estn en progreso, terminadas o de forma parcial en algunas memorias, pero no en otras. El punto 3 dice que cuando se tiene acceso a variables ordinarias ya se han realizado todas las sincronizaciones anteriores. Al realizar una sincronizacin antes de leer los datos compartidos un proceso puede estar seguro de obtener los valores ms recientes.

4.2.1 CONSISTENCIA DE LIBERACION


La consistencia dbil tiene la desventaja de que cuando se accesa una variable de sincronizacin, la memoria no sabe si esto se debe a que el proceso ha terminado de escribir en las variables compartidas o est a punto de iniciar su lectura, y debe realizar acciones en ambos casos. Para una implantacin ms eficiente se requieren dos tipos de variables de sincronizacin que diferencien estos casos. La consistencia de liberacin (Gharachorloo et al., 1990) proporciona estos dos tipos. Los accesos de adquisicin indican a la memoria del sistema que est a punto de entrar a una regin crtica. Los accesos de liberacin indican que acaba de salir de una regin crtica. Estos accesos se implantan como operaciones normales sobre variables o como operaciones especiales. El programador es responsable de colocar cdigo explcito en el programa para indicar cundo realizarlos.

SISTEMAS OPERATIVOS II UNIDAD 4


En general, una memoria distribuida tiene consistencia de liberacin si cumple las siguientes reglas: 1. Antes de realizar un acceso ordinario a una variable compartida, deben terminar con xito todas las adquisiciones anteriores del proceso en cuestin 2. Antes de permitir la realizacin de una liberacin, deben terminar todas las lecturas y escrituras del proceso 3. Los accesos de adquisicin y liberacin deben ser consistentes con el procesador (no se pide la consistencia secuencial) Si se cumplen todas las condiciones y los procesos utilizan la adquisicin y la liberacin de manera adecuada, los resultados sern equivalentes a los de una memoria con consistencia secuencial.

4.2.1 CONSISTENCIA DE ENTRADA


Utiliza los mismos conceptos de adquisicin y liberacin, como la consistencia anterior. La diferencia existe en que requiere que cada variable compartida ordinaria se asocie con alguna variable de sincronizacin, como una cerradura o barrera. Por ejemplo, si se desea acceso individual en paralelo a los diferentes elementos de un arreglo, cada elemento debe asociarse a una cerradura diferente. Cuando se realiza una adquisicin sobre una variable de sincronizacin slo se pide la consistencia de variables compartidas ordinarias protegidas por esa variable de sincronizacin. Asociar algunas variables compartidas a una variable de sincronizacin reduce el costo de la adquisicin y liberacin de dicha variable, ya que no hay que sincronizar toda la memoria. Tambin permite que varias regiones crticas se ejecuten simultneamente siempre que no utilicen variables compartidas comunes, lo que incrementa el paralelismo. Formalmente, la consistencia de entrada cumple las siguientes condiciones (Bershad y Zekauskas, 1991) : 1. No se permite realizar un proceso de adquisicin a una variable de sincronizacin con respecto de un proceso hasta que se realicen todas las actualizaciones de los datos compartidos protegidos con respecto de ese proceso 2. Antes de permitir la realizacin de un acceso de modo exclusivo a una variable de sincronizacin por un proceso, ningn otro proceso debe poseer la variable de sincronizacin, ni siquiera en modo no exclusivo

SISTEMAS OPERATIVOS II UNIDAD 4


3. Despus de realizar un acceso en modo exclusivo a una variable de sincronizacin, no se puede realizar el siguiente acceso en modo no exclusivo de otro proceso a esa variable de sincronizacin hasta haber sido realizado con respecto del propietario de esa variable La primera condicin dice que cuando se realiza una adquisicin, sta podra no concluir hasta actualizar todas las variables compartidas protegidas, o sea que, en una adquisicin, deben ser visibles todas las modificaciones remotas a los datos protegidos La segunda condicin dice que antes de actualizar una variable compartida, un proceso debe entrar a una regin crtica en modo exclusivo para garantizar que ningn otro proceso intenta actualizarla al mismo tiempo La tercera condicin dice que si un proceso desea entrar a una regin crtica en modo no exclusivo, primero debe verificar con el propietario de la variable de sincronizacin que protege la regin crtica para buscar las copias ms recientes de las variables compartidas protegidas La principal problemtica de la comparticin de memoria en ambientes distribuidos consiste en el manejo de la consistencia ya que varios procesos distribuidos pueden estar escribiendo en la zona de memoria compartida pudiendo invalidar el contenido de las lecturas que acaban de hacer algunos procesos. Para prevenir esta problemtica se han planteado muchos mecanismos que permiten evitar la inconsistencia de los datos. Una forma bsica pero costosa es el manejo de replicacin slo se debe considerar la granularidad de la rplica as como la reintegracin de las modificaciones. Se deben considerar el tipo de datos que se estn compartiendo: pginas, variables, objetos, etc.

4.3 MEMORIA COMPARTIDA DISTRIBUIDA CON BASE EN PGINAS

SISTEMAS OPERATIVOS II UNIDAD 4


El elemento esencial es que ningn procesador puede tener acceso directo a la memoria de otro procesador. Tales sistemas reciben el nombre de NORMA (sin acceso a memoria remota) en contraste con los sistemas NUMA. La diferencia entre NUMA y NORMA es que el primero, cada procesador puede hacer la diferencia a cada palabra en el espacio global de direcciones, solo leyendo o escribiendo en el. Las pginas estn distribuidas de manera aleatoria entre las memorias, sin afectar los resultados dados por los programas. Cuando un procesador hace referencia a una pgina remota, el sistema tiene la opcin de traerla o utilizarla de manera remota. La decisin afecta al desempeo, pero sigue siendo correcto. Las maquinas NUMA son verdaderos multiprocesadores; el hardware permite que cada procesador haga referencia a cada palabra del espacio de direcciones sin intervencin del software. Las estaciones de trabajo en una LAN son muy distintas de un multiprocesador. Los procesadores solo pueden hacer referencia a su memoria local. No existe el concepto de memoria compartida global, como en un NUMA o multiprocesador UMA. Sin embargo, el objetivo del trabajo DSM, es agregar software al sistema para permitir que una multicomputadora ejecute programas en un multiprocesador. En consecuencia, cuando un procesador hace referencia a una pgina remota, esa pgina debe ser trada. No existe opcin como en el caso NUMA. Gran parte de las primeras investigaciones acerca de los sistemas DSM se dedico a la cuestin de la forma de ejecutar de ejecutar los programas multiprocesadores existentes en las multicomputadoras. A veces, esto se conoce como el problema del escritorio polvoso. La idea es inyectar nueva vida a los antiguos programas, solo ejecutndolos en los nuevos sistemas. El concepto es en particular atractivo para las aplicaciones que necesitan todos los ciclos de CPU que puedan obtener y cuyos autores estn entonces interesados en utilizar multicomputadoras de gran escala en vez de multiprocesadores de pequea escala.

4.3.1 DISEO

SISTEMAS OPERATIVOS II UNIDAD 4


La idea detrs de DSM es sencilla; intentar emular el cach de un multiprocesador mediante MMU y el software del sistema operativo. En un sistema DSM, el espacio de direcciones se separa en pedazos, los cuales estn dispersos en todos los procesadores del sistema. Cuando un procesador hace referencia a una direccin que no es local, ocurre un sealamiento, y el software DSM trae el pedazo que contiene la direccin y reinicia la instruccin suspendida, que puede entonces concluir en el xito. Si el procesador 1 hace referencia a las instrucciones o datos, las referencias se realizan de manera local. Las referencias a los dems pedazos provocan sealamientos.

4.3.1 REPLICA
Una mejora al sistema bsico, que ayuda al desempeo en gran medida, consiste en duplicar los pedazos exclusivos para lectura; por ejemplo, texto de programa, constantes exclusivas para la lectura, u otras estructuras de datos exclusivas para la lectura. Otra posibilidad consiste en duplicar todos los pedazos no solo exclusivos para la lectura. Mientras se realicen lecturas, en realidad no habr diferencia entre la duplicacin de un pedazo exclusivo para lectura y uno para lectura-escritura. Sin embargo, si un pedazo duplicado sbitamente se modifica, hay que realizar una accin especial para evitar la existencia de varias copias inconsistentes.

4.3.1 GRANULARIDAD
Los sistemas DSM son similares a los multiprocesadores en varios aspectos fundamentales. En ambos sistemas, cuando se hace referencia a una palabra de memoria no local, se trae un pedazo de memoria con la palabra, desde su posicin actual, y se coloca en la maquina que hace la referencia. Un aspecto importante del diseo es el tamao de dicho plazo. Las posibilidades son una palabra, un bloque, una pgina o un segmento. Con un multiprocesador, el transporte de una palabra o unas docenas de bytes es factible, pues el MMU conoce con exactitud la direccin de referencia y el tiempo para establecer una transferencia en el bus se mide en nanosegundos. Memnet, aunque no es estrictamente un multiprocesador, tambin utiliza un tamao pequeo para el pedazo (32 bytes). Con los sistemas DSM, una granularidad tan fina es difcil o imposible, debido a la forma en que funciona MMU.

SISTEMAS OPERATIVOS II UNIDAD 4


Cuando un proceso hace referencia a una palabra ausente, provoca un fallo de pgina. Una eleccin obvia consiste en traer toda la pgina necesaria. Adems, la integracin de DSM con la memoria virtual hace ms sencillo el diseo total, pues se utiliza la misma unidad, la pagina, para ambos. Al ocurrir un fallo de pgina, la pagina faltante simplemente se trae de la otra pagina o del disco, de modo que el cdigo para el manejo de los fallos de pagina son iguales al caso tradicional. Sin embargo, otra opcin consiste en traer una unidad mas grande, digamos, una regin de 2, 4 u 8 pginas, incluyendo la pagina necesaria. De hecho, esto simula un tamao de pagina mas grande. Existen varias ventajas y desventajas del uso de un tamao mayor que un pedazo para DSM. La principal ventaja es que debido a que el tiempo de arranque de una transferencia en la red es esencial, no tarda mucho ms tiempo la transferencia de 1024 bytes que la de 512 bytes. Al transferir datos en grandes unidades, cuando hay que desplazar una gran parte del espacio de direcciones, el nmero de transferencias se reduce con frecuencia. Esta propiedad es en particular importante, pues muchos programas exhiben la localidad de las referencias, lo que significa que si un programa ha realizado una referencia a una palabra en una pgina, es probable que haga referencia a otras palabras de la misma pgina en un futuro inmediato. El problema aqu es que aunque las variables no estn relacionadas entre s, como aparecen por accidente en la misma pgina, cuando un proceso utiliza una de ellas, tambin obtiene la otra. Mientras mayor sea el tamao efectivo de pagina, ocurrir mas este fenmeno, y recprocamente, si el tamao efectivo de pagina es menor, este fenmeno ocurrir con menor frecuencia. No ocurre nada anlogo a este fenmeno en los sistemas de memoria virtual ordinarios. Los compiladores inteligentes que comprenden el problema y colocan variables en el espacio de direcciones de manera adecuada pueden ayudar a disminuir este fenmeno y mejorar el desempeo. Sin embargo, decir esto es mas fcil que haberlo. Adems, si el fenmeno consiste en que el procesador 1 utilice un elemento de un arreglo y el procesador 2 utilice un elemento diferente del mismo arreglo, un compilador inteligente puede hacer poco por eliminar el problema.

4.3.1 OBTENCION DE LA CONSISTENCIA

SISTEMAS OPERATIVOS II UNIDAD 4


Si las paginas no se duplican, no se pretende lograr la consistencia. Existe con exactitud una copia de cada pgina, y esta se desplaza de un lugar a otro de manera dinmica segn se necesite. Si solo se tiene una copia de cada pgina, no existe el peligro de que las diferentes copias tengan valores diversos. Si se duplican las paginas exclusivas para la lectura, tampoco existe el problema alguno. Las pginas exclusivas para la lectura nunca se modifican, de modo que las copias siempre son idnticas. Solo se conserva una copia de cada pgina para la lectura-escritura por lo que tambin son imposibles las inconsistencias en este caso. El caso interesante es el de las pginas de lectura-escritura duplicadas. En muchos sistemas DSM, cuando un proceso intenta leer una pgina remota, se crea una copia local pues el sistema no sabe lo que hay en la pagina o si se puede escribir en ella. La copia local y la pagina original estn configuradas en su MMU respectivo como exclusivas para la lectura. Mientras todas las referencias sean lecturas todo est bien. Sin embargo, si algn proceso intenta escribir en una pgina duplicada, puede surgir un problema debido a que la modificacin de una copia sin modificar las dems es inaceptable. Esta situacin es similar a lo que ocurre en un multiprocesador, cuando un procesador intenta modificar una palabra que est presente en varios cachs. El otro mtodo que adoptan los multiprocesadores se la invalidacin. Cuando se utiliza una estrategia, la direccin de la palabra por actualizar se transmite por el bus, pero el nuevo valor no. Cuando un cach ve que una de sus palabras est siendo actualizada, invalida el bloque de cach que contiene la palabra, lo que de hecho la elimina del cachs. El resultado final con la invalidacin es que solo un cache contiene ahora la palabra modificada, por lo que se evitan las palabras de inconsistencia. Si uno de los procesadores que ahora contienen una copia invalida del bloque cach intenta utilizarla, obtendr un fracaso del cach y traer el bloque de un procesador que contenga una copia valida.

4.3.1 BUSQUEDA DEL PROPIETARIO

SISTEMAS OPERATIVOS II UNIDAD 4


La optimizacin obvia consiste en no solo preguntar quin es el propietario, si no tambin indicar si el emisor desea leer y escribir y si necesita una copia de la pagina. El propietario puede enviar entonces un mensaje, transfiriendo la propiedad y la pagina segn sea necesario. La transmisin tiene la desventaja de interrumpir a cada procesador, obligndolo a inspeccionar el paquete de solicitud. Para todos los procesadores, excepto el propietario, Un problema con este protocolo es la carga potencial excesiva sobre el controlador de pginas, el cual maneja todas las solicitudes recibidas. Este problema se resuelve con varios controladores de pginas en vez de uno. Sin embargo, la divisin del trabajo en varios controladores introduce un nuevo problema: encontrar el controlador correcto. Una solucin sencilla consiste en utilizar los bits de menor orden del numero de pagina como un ndice en una tabla de controladores. As, se tienen 8 controladores de pagina, todas las paginas que terminen con 000 sern manejadas por el controlador 0, todas las paginas que terminen con 001 sern manejadas por el controlador 1.

4.3.1 BUSQUEDA DE LAS COPIAS.


El mtodo consiste en transmitir un mensaje con el numero de pagina y solicitar a todos los procesadores que contengan la pagina que la validen. Este mtodo solo funciona si los mensajes de transmisin son por completo confiables y nunca se pueden perder. La segunda posibilidad consiste en que el propietario o el controlador de pginas mantengan una lista del conjunto de copias, indicando los procesos que poseen tal cual. Cuando hay que invalidar una pgina, el antiguo propietario, el nuevo, o el controlador de pginas enva un mensaje a cada procesador que contenga la pagina y espera un reconocimiento. Cuando se ha reconocido cada mensaje, la invalidacin ha terminado. Dash y Menmmet tambin invalidan las pginas cuando hay un escritor nuevo, o el controlador de pginas, enva un mensaje a cada procesador que contenga la pagina y espera un reconocimiento. El proceso escritor enva el paquete al directorio, el cual rene todas las copias a partir de su mapa de bits, enea a cada una en un paquete de invalidacin y recoge todos los reconocimientos.

SISTEMAS OPERATIVOS II UNIDAD 4


Menmet trae la pagina necesaria e invalida todas las copias transmitiendo un paquete de invalidacin a travs del anillo. El primer procesador que tenga una copia la coloca en el paquete y enva un bit de encabezado diciendo que esta ah. Los dems procesadores solo invalidan sus copias. Cuando el paquete regresa por el anillo al emisor, los datos necesarios estn presentes y las dems copias han desaparecido.

CUESTIONARIO

SISTEMAS OPERATIVOS II UNIDAD 4


1. Quien propuso el esquema DSM? { = Li ~ Lamport ~Einstein

} 2. Que es DSM? { = Memoria compartida distribuida ~ Multiprocesos simultaneos direccionales ~ Distribucion de sistemas multiprocesos }

3. Que propusieron Li y Hudak? { ~ Trabajar juntos y formar una empresa de servidores en E.U.A = Tener una coleccion de estaciones de trabajo conectadas por una LAN ~ Ninguna de las nateriores }

4. Cul es el diseo facil de programar y construir de Li y Hudak?

{ ~ Memoria compartida logica ~ Sin memoria compartida fisicamente = Las dos anteriores

SISTEMAS OPERATIVOS II UNIDAD 4


}

5. En qu consiste un metodo de diseo?

{ ~ En no compartir todo el espacio de direcciones ~ Compartir una porcion seleccionada de este. = Todas las anteriores }

6. En qu consiste una optimizacion?

{ = En repetir las variables compartidas en varias maquinas. ~ Reducir los procesos de las maquinas ~ Ninguna de las anteriores}
7. Que representa el diagrama simplificado de memoria de circuito?

{ ~ Una computadora de un solo circuito ~ Un multiprocesador de memoria compartida hipotetico = Todas las anteriores }

8. Porque son importantes las maquinas? { = Para comprender la memoria compartida distribuida ~ Para realizar trabajos ~ Todas las anteriores

SISTEMAS OPERATIVOS II UNIDAD 4


}

9. En donde esta integrado un bus? { = En un circuito pero en muchos sistemas ~ En un chip ~ En las tarjetas de las computadoras }

10. Que son los buses? { = Los buses son externos y se utilizan para conectar tarjetas de circuitos ~ Son medios que transportan los datos a los servidores ~ Ninguna }

11. Qu es el bus en las minicomputadoras?

{ ~ Un cable plano tendido entre los procesadores ~ Un cable plano tendido en las memorias y los controladores = Todas las anteriores }
12. Cul es la desventaja de tener solo un bus?

{ = Que se puede sobrecargar ~ Que no se pueda trabajar rapidamente

SISTEMAS OPERATIVOS II UNIDAD 4


~No existen desventajas los bus siempre trabajan de manera correcta }

13. Cmo se llama el mtodo para reducir la carga del bus?

{ = Cache husmeador ~ Cache limpiador ~ Liberacin de espacio }

14. Porque se llama cache husmeador? { = Se llama asi debido a que husmea el bus ~ Se llama asi porque cacha los datos ~ Ninguna de las anteriores }

15. Cules son los bloques de caches que maneja el protocolo de bus?

{ ~ Invalido ~ Limpio y sucio = Todas las anteriores }

16. Qu hace el bloque invlido?

SISTEMAS OPERATIVOS II UNIDAD 4


{ = Este bloque de chache no contiene datos validos. ~ La memoria esta actualizada; el bloque puede estar en otros caches. ~ La memoria es incorrecta; ningn otro cache puede contener al bloque }

17. Qu hace el bloque limpio?

{ ~ Este bloque de chache no contiene datos validos. = La memoria esta actualizada; el bloque puede estar en otros caches. ~ La memoria es incorrecta; ningn otro cache puede contener al bloque }

18. Qu hace el bloque sucio?

{ ~ Este bloque de chache no contiene datos validos. ~ La memoria esta actualizada; el bloque puede estar en otros caches. = La memoria es incorrecta; ningn otro cache puede contener al bloque }

19. Cules son las propiedades de un protocolo de consistencia?

{ ~ La consistencia se logra haciendo que todos los caches husmeen el bus. ~ Todo el algoritmo se realiza en un ciclo de memoria = Todas las anteriores }

SISTEMAS OPERATIVOS II UNIDAD 4

20. Cmo se divide un espacio de direcciones?

{ ~ Privada ~ Compartida = Todas las anteriores }

21. Cmo es la parte privada?

{ = Se divide en regiones, y cada mquina tiene su pila, datos y cdigos no compartidos ~ Se guarda mediante un protocolo de hardware basados en bus ~ Ninguna de las anteriores }

22. Cmo es la parte Compartida?

{ ~ Se divide en regiones, y cada mquina tiene su pila, datos y cdigos no compartidos = Se guarda mediante un protocolo de hardware basados en bus ~ Ninguna de las anteriores }

23. En cuantos bloques se divide la memoria compartida? {

SISTEMAS OPERATIVOS II UNIDAD 4


= Bloques de 32 bytes ~ Bloques de 56 bytes ~ Bloques de 18 bytes }

24. De cuantos cables consta el anillo de fichas midificado?

{ ~ 34 cables paralelos ~ 10 cables cruzados = 20 cables paralelos }

25. Cuales son los metodos para atacar el ancho de banda? { ~ Reducir la cantidad de comunicacin ~ Incrementar la capacidad de comunicacin = Todas las anteriores }

26. Como esta formado un diagrama Dash? {

SISTEMAS OPERATIVOS II UNIDAD 4


~ Consta de 1 unidades, 1 bus y 4 CPU ~ Consta de 16 unidades, 3 bus y 4 CPU = Consta de 16 unidades, 1 bus y 4 CPU }

27. Cules son los niveles de ocultamiento?

{ = Un cache de primer nivel y un cache mayor de sengudo nivel ~ Un cache de primer nivel y un cache menor de sengudo nivel ~ Ninguna de las anteriores }

28. Qu es un cache de primer nivel?

{ ~ Se basa en la membresia y la invalidacin = Es un subconjunto del cache de segundo nivel ~ Ninguna de las anteriores }

29. En que se basa el protocolo Dash? { ~ En la conexin de los servidores = Se basa en la membreca y la invalidacin ~ Ninguna de las anteriores } 30. A que hace referencia NUMA?

SISTEMAS OPERATIVOS II UNIDAD 4


{ = Cada procesador puede hacer referencia a cada palabra en el espacio de direcciones ~ Las estaciones de trabajo en una LAN = Ninguna de las anteriores }

31. Como estn distribuidas las paginas?

{ = De manera aleatoria entre las memorias ~ De manera numrica ~ Todas las anteriores }

32. A qu hacen referencia los procesadores?

{ = A su memoria local ~ A su memoria compartida ~ A su memoria distribuida }

33. Cul es el objetivo de trabajo DSM?

{ = Agregar software al sistema para permitir que una multicomputadora ejecute programas ~ Distribuir memoria a las maquinas ~ Ninguna de las anteriores

SISTEMAS OPERATIVOS II UNIDAD 4


}
34. Qu ocurre cuando una maquina remota llama a una pgina para

escritura? { ~ Ocurre un sealamiento y la pagina no es ocupada. = Ocurre un sealamiento y la pagina es ocupada. ~ No hay sealamiento de la pagina ocupada }

35. Qu es el mantenimiento de una consistencia perfecta?

{ = Es algo doloroso cuando las diversas copias se encuentran en maquinas ~Diferentes que solo pueden comunicarse al enviar mensajes por una red lenta. ~Es buena ya que las redes son muy eficaces y rpidas }
36. Explica alguna solucin al problema anterior?

{ = La solucin consiste en aceptar una menos prefecta como precio de mejor desempeo. ~ Una perfecta que devuelva lento desempeo. ~ Ninguna de las 2.
37. Define lo que es un modelo de consistencia?

{ ~ Es una regla donde el software trabaja de acuerdo a la memoria. =Es en escencia un contrato entre el software y la memoria, dice que si el software acuerda obedecer ciertas reglas, la memoria promete trabajar de forma correcta }
38. Define que es la consistencia escrita?

{ = Cualquier lectura a una localidad de memoria x regresa el valor guardado por la operacin de escritura ms reciente en x.

SISTEMAS OPERATIVOS II UNIDAD 4


~Es una lectura especfica de una localidad de memoria, de la operacion mas reciente. ~ Es el valor de una localidad. }
39. Que consistencia escrita han observado tradicionalmente?

{ =Una consistencia escrita en los programas de los uniprocesos. ~ La inconsistencia escrita de los procesos ~ Consistencia de los programas }

40. Qu espera un programador acerca de un programa?

{ = Un programador que en realidad espera una consistencia estricta, de modo que sus programas fallen si no ocurre, vive en peligro. ~ El programador espera rapidez en su programa. ~ Un programador necesita fallar es un programa. }
41. Qu tiempo tarda tenga un procesador escribir en la localidad de memoria,

hasta que el lector obtenga el valor anterior a su cache local? { ~ Una milsima de segundo = Un nanosegundo ~ Tres nanosegundos }
42. Describe que pasa cuando una memoria tiene consistencia estricta?

{ ~ Son poco visibles, y sus procesos dejan de tener un orden de tiempo absoluto. =Las escrituras son visibles al instante a todos los procesos y se mantiene en un orden de tiempo global absoluto. ~ Las sobresescrituras no son visibles en el instante de los procesos y no mantiene un orden }
43. Qu es la consistencia secuencial?

SISTEMAS OPERATIVOS II UNIDAD 4


{ = Es un modelo de memoria un poco ms dbil que la consistencia estricta. ~ Es un tipo de memoria muy potente, que la escrita. ~ Ninguna de las anteriores }
44. Menciona y describe quien defini la consistencia secuencial?

{ = Fue definida por primera vez por Lamport (1979) ~ Definida en 1970 por Newton. ~ Ambas respuestas.

45. Selecciona la condicin correcta de la consistencia secuencial?

{ = El resultado de cualquier ejecucin es el mismo que si las operaciones de los procesos fueran ejecutadas en algn orden secuencial. ~ Los resultados de la ejecucin no tiene un orden secuencial. ~ El orden de las secuencias aparecen en una secuencia especifica por un programa }

SISTEMAS OPERATIVOS II UNIDAD 4

BIBLIOGRAFA
Libro: Sistemas Operativos Distribuidos Primera edicin Andrew S Tanenbaum

También podría gustarte