0% encontró este documento útil (0 votos)
140 vistas5 páginas

Capitulo 8

Un sistema multiprocesador permite que dos o más CPUs compartan acceso a una memoria común. Los sistemas operativos multiprocesadores administran recursos como la memoria y E/I de forma similar a sistemas uniprocesador, pero requieren características únicas como sincronización de procesos. Existen diferentes arquitecturas como UMA, NUMA y simétricas. El software de bajo nivel controla directamente el hardware, mientras que el de alto nivel oculta detalles de hardware y permite comunicación entre procesos.

Cargado por

Melissa Ramos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
140 vistas5 páginas

Capitulo 8

Un sistema multiprocesador permite que dos o más CPUs compartan acceso a una memoria común. Los sistemas operativos multiprocesadores administran recursos como la memoria y E/I de forma similar a sistemas uniprocesador, pero requieren características únicas como sincronización de procesos. Existen diferentes arquitecturas como UMA, NUMA y simétricas. El software de bajo nivel controla directamente el hardware, mientras que el de alto nivel oculta detalles de hardware y permite comunicación entre procesos.

Cargado por

Melissa Ramos
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Sistemas de Múltiples Procesadores

Un multiprocesador es un sistema de cómputo en el que dos o más CPUs comparten


todo el acceso a una RAM común. Un programa que se ejecuta en cualquiera de las
CPUs ve un espacio normal de direcciones virtuales (por lo general paginadas). La
única propiedad inusual que tiene este sistema es que la CPU puede escribir cierto valor
en una palabra de memoria y después puede volver a leer esa palabra y obtener un valor
distinto (tal vez porque otra CPU lo cambió). Si se organiza en forma correcta, esta
propiedad forma la base de la comunicación entre procesadores: una CPU escribe
ciertos datos en la memoria y otra lee esos datos.
Los sistemas operativos multiprocesadores son sólo sistemas operativos regulares, estos:
 Manejan las llamadas al sistema
 Administran la memoria
 Proveen un sistema de archivos
 Administran los dispositivos de E/S
Sin embargo, hay ciertas áreas en las que tienen características únicas, los cuales son:
 La sincronización de procesos
 La administración de recursos
 La programación de tareas

Multiprocesadores UMA que utilizan interruptores de Barras


Cruzadas
En este tipo de arquitectura, como bien dice su nombre, todos los accesos a memoria
tardan el mismo tiempo. Seguramente podemos pensar que es difícil que tengamos el
mismo tiempo de acceso si la memoria, aunque compartida, está dividida en módulos a
los que se accede a través de una red de interconexión basada en switches. Eso es cierto
y, para conseguir esta uniformidad de acceso, se tiene que aumentar el tiempo de los
accesos más rápidos.

Multiprocesadores UMA que utilizan redes de conmutación multietapa


En los multiprocesadores NUMA, a diferencia de los UMA, los accesos a memoria
pueden tener tiempos distintos. En estas máquinas la memoria también está compartida,
pero los módulos de memoria están distribuidos entre los diferentes procesadores con el
objetivo de reducir la contención de acceso a memoria.
El módulo de memoria que está junto a un procesador en un mismo nodo recibe el
nombre de memoria local a este procesador. Así, los accesos de un procesador a su
memoria local suelen ser mucho más rápidos que los accesos a la memoria local de otro
procesador (memoria remota).
Multiprocesadores Simétricos
Nuestro tercer modelo, el SMP (Multiprocesador simétrico), elimina esta asimetría. Hay
una copia del sistema operativo en memoria, pero cualquier CPU puede ejecutarlo.
Cuando se hace una llamada al sistema, la CPU en la que se hizo la llamada al sistema
atrapa para el kernel y procesa la llamada al sistema.
Este modelo equilibra los procesos y la memoria en forma dinámica, ya que sólo hay un
conjunto de tablas del sistema operativo. También elimina el cuello de botella de la
CPU, ya que no hay maestro, pero introduce sus propios problemas.

Software de Comunicación de Bajo Nivel

Un lenguaje de programación de características bajo nivel es aquel en el que sus


instrucciones ejercen un control directo sobre el hardware y están condicionados por la
estructura física de las computadoras que lo soportan. El uso de la palabra bajo en su
denominación no implica que el lenguaje sea menos potente que un lenguaje de alto
nivel, sino que se refiere a la reducida abstracción entre el lenguaje y el hardware. Por
ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de los sistemas
operativos, de aplicaciones en tiempo real o controladores de dispositivos.

Los lenguajes de bajo nivel como ser el lenguaje ensamblador puede ser más difícil que
los lenguajes de alto nivel debido a que está más íntimamente relacionado con las
características técnicas del hardware. Además, estos suelen carecer de abstracciones de
mayor nivel. No es posible una abstracción fuera de lo estipulado para el conjunto del
microcódigos del microprocesador de un ordenador.

Software de Comunicación a Nivel de Usuario


Para comunicarse, los procesos en distintas CPUs en una multicomputadora se envían
mensajes entre sí. En su forma más simple, este proceso de paso de mensajes está
expuesto para los procesos de usuario. En otras palabras, el sistema operativo
proporciona la forma de enviar y recibir mensajes, y los procedimientos de biblioteca
hacen que estas llamadas subyacentes estén disponibles para los procesos de usuario. En
una forma más sofisticada, el proceso actual para el paso de mensajes está oculto de los
usuarios, al hacer que la comunicación remota sea como una llamada a un
procedimiento.

Memoria Compartida Distribuida


Es una abstracción utilizada para compartir datos entre computadores que no comparten
memoria física. Los procesos acceden a DSM para leer y actualizar, dentro de sus
espacios de direcciones, sobre lo que aparenta ser la memoria interna normal asignada a
un proceso.
Virtualización
La virtualización a nivel de sistema operativo es un método de virtualización de
servidor en el cual el kernel de un sistema operativo permite que existan múltiples
instancias aisladas de espacios de usuario, en lugar de solo uno. Tales instancias, las
cuales son a veces llamadas contenedores, contenedores de software, motores de
virtualización o prisiones, puede verse y sentirse como un servidor real desde el punto
de vista de sus dueños y usuarios.
En ciertas situaciones, una empresa tiene una multicomputadora, pero en realidad no la
quiere. Un ejemplo común es cuando una empresa tiene un servidor de correo
electrónico, un servidor Web, un servidor FTP, algunos servidores de comercio
electrónico, y otros servidores más. Todos estos servidores se ejecutan en distintas
computadoras del mismo bastidor de equipos, y todos están conectados por una red de
alta velocidad; en otras palabras, es una multicomputadora.

El hipervisor, también llamado monitor de máquina virtual (VMM), es el núcleo central


de algunas de las tecnologías de virtualización de hardware más populares y eficaces,
entre las cuales se encuentran las de Microsoft: Microsoft Virtual PC, Windows Virtual
PC, Microsoft Windows Server e Hyper-V.

Tipos de Hipervisores

Hipervisores de tipo 1 (También llamados nativos): En ellos el hipervisor se ejecuta


directamente sobre el hardware físico; el hipervisor se carga antes que ninguno de los
sistemas operativos invitados, y todos los accesos directos a hardware son controlados
por él.

Aunque esta es la aproximación clásica y más antigua de la virtualización por hardware,


actualmente las soluciones más potentes de la mayoría de fabricantes usan este enfoque.
Algunos de los hipervisores 1 más conocidos son los siguientes:
 VMware ESXi
 Xen
 Citrix XenServer
 Microsoft Hyper-V Server
 Oracle VM Server para x86

Hipervisores de tipo 2 (también llamados hosted): En ellos el hipervisor se ejecuta en


el contexto de un sistema operativo completo, que se carga antes que el hipervisor. Las
máquinas virtuales se ejecutan en un tercer nivel, por encima del hipervisor. Algunos
hipervisores 2 más utilizados son los siguientes:

 Linux: KVM.
 Oracle: VirtualBox
 VirtualBox OSE
 VMware: Workstation (de pago)
 QEMU (varios sistemas operativos soportados)

Sistemas Distribuidos

Un sistema distribuido se define como una colección de computadoras separadas


físicamente y conectadas entre sí por una red de comunicaciones; cada máquina posee
sus componentes de hardware y software que el programador percibe como un solo
sistema (no necesita saber qué cosas están en qué máquinas). El programador accede a
los componentes de software (objetos) remotos, de la misma manera en que accedería a
componentes locales, en un grupo de computadoras que usan un middleware entre los
que destacan (RPC) y SOAP para conseguir un objetivo.

Los sistemas distribuidos deben ser muy confiables, ya que si un componente del
sistema se descompone otro componente debe ser capaz de reemplazarlo. Esto se
denomina tolerancia a fallos.

Ahora que hemos completado nuestro estudio de los multiprocesadores, las


multicomputadoras y las máquinas virtuales, es tiempo de analizar el último tipo de
sistema de múltiples procesadores: el sistema distribuido. Estos sistemas son similares a
las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada, sin
memoria física compartida en el sistema. Sin embargo, los sistemas distribuidos tienen
un acoplamiento aún más débil que las multicomputadoras.

Para empezar, los nodos de una multicomputadora comúnmente tienen una CPU, RAM,
una interfaz de red y tal vez un disco duro para la paginación. Por el contrario, cada
nodo en un sistema distribuido es una computadora completa, con todo un complemento
de periféricos. Además, los nodos de una multicomputadora por lo general están en un
solo cuarto, de manera que se pueden comunicar mediante una red dedicada de alta
velocidad, mientras que los nodos de un sistema distribuido pueden estar esparcidos en
todo el mundo. Por último, todos los nodos de una computadora ejecutan el mismo
sistema operativo, comparten un solo sistema de archivos y están bajo una
administración común, mientras que cada uno de los nodos de un sistema distribuido
puede ejecutar un sistema operativo diferente, cada uno con su propio sistema de
archivos, y pueden estar bajo una administración diferente.
Opinión

Los multiprocesadores es una tecnología que ha ido evolucionando con el paso de los
tiempos, gracias a esta se pueden ejecutar varias tareas pertenecientes a un mismo o
diferentes procesos, pero para que el multiprocesador realice sus funciones
correctamente es necesario que tengo un sistema operativo que es diseñado
específicamente para él.
Este como nos facilita así mismo nos reduce el tiempo para que realicemos nuestras
tareas o trabajos en la computadora los cual son realizadas con rapidez en un periodo
cortos de tiempo.
Otro tema muy interesante es la virtualización lo cual es un proceso que nos permite
ejecutar diversos sistemas operativos en un solo servidor sin la necesidad de desinstalar
el que tenemos en nuestra computadora incluyendo el que trae de fábrica, este avance de
la tecnología nos da más facilidad a la hora de realizar cualquier tipo de actividad o
trabajo, esto nos da muchas ventajas ya que nos permiten obtener resultados más
rápidos.

También podría gustarte