Você está na página 1de 11

Resumen Sistemas Operativos

Administracin de la concurrencia de procesos


(O sincronizacin de procesos)
Proceso padre Proceso hijo (genera una imagen por separado)
Hilos (genera solamente una mini-imagen, que contiene TCB, datos y pila).
La concurrencia hace referencia a la ejecucin en paralelo de procesos. Para poder realizar esto,
necesito de la Mutua Exclusin, que significa que un solo proceso excluye temporalmente a los
dems para usar un recurso compartido. Para ello, si existe ms de un proceso ejecutando y
utilizando recursos compartidos, la Mutex controla y administra esos recursos para que el
resultado de dichos procesos sea el esperado.
Condiciones para que se pueda dar el Mutex:

Solo un proceso por vez puede utilizar el recurso compartido (que se lo llama regin
critica).
Un proceso no debe esperar indefinidamente para utilizar el recurso compartido o entrar en
la regin critica.
Si un proceso se cuelga o tiene error fuera de la regin critica, no debe interferir con el
resto.
Si no hay procesos en la regin critica, cualquiera podra acceder.
No se debe asumir: ni velocidad de procesamiento, ni cantidad de procesos, ni cantidad de
procesadores.

Estrategias para lograr la Mutua Exclusin:


1. Estrategia pura de software: uso de variables compartidas para lograr la mutua exclusin.
Tiene el problema de la espera activa, que es que un proceso este esperando a que se
libere el recurso. Se sola poner un sleep o delay para evitar la espera activa. Esta estrategia
no es confiable y es complicada de aplicar cuando hay muchos procesos.
2. Estrategia a travs del Hardware: uso de instrucciones especiales del Hardware. Entre ellas
tenemos:
Deshabilitar interrupciones: se pone una interrupcin (off) para que la
funcin sea atmica (se hace todo dentro de la funcin). Funcionaria si se
tiene solo un procesador, y si se cuelga la funcin, no hay posibilidad de
recuperarse. Este mtodo tiene el problema de la espera activa.
3. Estrategias basadas en el sistema operativo: Mtodo del semforo de Dijkstra. Tenemos una
clase Semforo con un contador numrico entero y una cola de espera de procesos, con dos
mtodos atmicos: UP y DOWN.
El contador define la cantidad de procesos que se van a ejecutar simultneamente. Cuando
un proceso est bloqueado, no se usa tiempo de CPU, por lo que no hay espera activa.
El problema de los semforos es con que valor inicial comenzar y donde ubicar los UP y los
DOWN.
4. Monitor: Clase que incluye a la regin critica. Posee un mtodo publico asociado a un
mtodo privado, que se encuentra dentro de la zona privada del SO. Este mtodo privado
ejecuta un proceso a la vez. Tiene la ventaja de ser mas fcil de implementar, y logra una
buena exclusin. mutua. La principal desventaja es que no es muy flexible.
Las estrategias 3 y 4 son implementadas por el sistema operativo.
1

Complemento para semforos

El semforo es un tipo de variable especial que se usa para la sealizacin de procesos.


Si un proceso est esperando una seal, se suspende hasta que se enva dicha seal.
Las operaciones de espera y sealizacin no pueden ser interrumpidas (son atmicas).
Se unas una cola para los procesos que esperar a un semforo para ejecutarse.
El semforo es una variable que tiene un valor entero: Debe inicializarse con un nmero no
negativo, las operaciones de espera (down) decrementan el valor de la variable, mientras que
las de sealizacin (up) incrementan el semforo.

Bloqueo Mutuo (DeadLock)


El deadlock hace referencia a la espera circular, que se produce cuando un par de procesos (como
mnimo) esperan que se libere un recurso, pero este nunca es liberado por otro proceso que lo esta
utilizando.
Condiciones para que se el deadlock:

Mutua exclusin.: solo un proceso puede utilizar un recurso a la vez.


Tomar y esperar: un proceso puede esperar por un recurso A mientra tiene tomado un
recurso B.
Recursos no apropiativos: un proceso no le puede sacar los recursos ya asignados a otro
proceso.
Espera circular (entre dos o ms procesos).

Estrategias para manejar el Deadlock:


1. Avestruz: No hacer nada con respecto al deadlock
2. Prevenir: eliminar alguna de las cuatro condiciones, ya que si alguna no se cumple, no hay
deadlock. Se puede usar la ordenacin de recursos (un proceso pide un recurso i. Si ese
proceso no tiene asignado un recurso j (que sea j>i), i se le asigna al proceso. En caso
contrario, no se le asigna). Siendo i, j los id de los recursos. Esto por lo general no
funciona.
3. Evitar: agregar mecanismos en la asignacin de recursos para que no suceda la espera
circular. Para ello, se usa el algoritmo del Banquero.
Algoritmo del banquero (Dijkstra): asigna un recurso si el sistema operativo
considera que el proceso le va a poder devolver ese recurso, osea, que puede terminar
su ejecucin. Para ello, va a necesitar saber: los recursos disponibles totales, los
recursos asignados por proceso (recursos ya asignados) y recursos que van a
necesitar los procesos (esto lo informa el proceso).
4. Detectar: Consiste en tratar de detectar y solucionar el deadlock. Utiliza un algoritmo de
deteccin que est basado en el algoritmo del banquero, para ver si existe espera circular.
Este algoritmo se ejecuta cada un tiempo X, no todo el tiempo.
Algoritmo de deteccin: Posee: recursos disponibles (RD), recursos solicitados (RP)
y recursos asignados por proceso (RA). En primer lugar, marca los procesos que no
tienen recursos asignados y que por ende, no pueden estar en deadlock. En segundo
lugar, inicializa W=RD. En tercer lugar, por cada proceso no marcado, analiza si
RP
<= W entonces marca ese proceso y hace W = W+ RA.
En cuarto lugar, repite el punto 3 mientras existan procesos no marcados, o haya
cambiado W.
2

Si se detecta un deadlock, se puede solucionar de las siguientes maneras:

Matar un proceso.
Rollback: llevar el proceso/s a un estado anterior en el que no exista aun el deadlock.
Liberar recursos: suspender el proceso para poder sacarle el recurso que tiene.

El mtodo de detectar (4) es l ms viable y efectivo.


Sistemas operativos y Redes.
En cuanto a la computadora, posee varios elementos de Hardware. La misma puede ser
monoprocesador o multiprocesador, en ambos casos con una nica memoria principal. La placa de
red consiste en un dispositivo de E/S, por lo que la red, en lneas generales, es una operacin de
E/S.
Para la comunicacin a travs de la red, tiene que haber estndares o protocolos para la
comunicacin (TCP/IP, uno de los ms seguros, UDP, l mas rpido y utilizado en streaming,
HTTP, FTP, el modelo OSI, etc.) Cambien, existen primitivas para realizar la conexin, que son
Pipe, Sockets (IP+Puerto), Mensajes y RCP.
La conexin va Socket puede ser Full-Duplex. Para ello, se crea un Socket (con un puerto), y se lo
deja escuchando , mientras que el cliente crea un socket y se conecta va el puerto especificado.
Esta operacin puede ser asncrona o sincrnica, bloqueando o no bloqueante, confiable y no
confiable.
RPC (llamada a procedimiento remoto): aprovecha los sockets para ejecutar un proceso que
requiera que otro proceso le devuelva algn resultado previo para poder continuar con su ejecucin.
Para ello, el proceso que requiere ese resultado tiene un STUB (prototipo de la funcin a ejecutar)
que esta vaca. La peticin se redirecciona al RPC mechanism, que es el mecanismo encargado de
resolver dicha peticin (tiene una tabla con la ubicacin de cada funcin). El RPC mechanism le
hace la peticin a la funcin de la cual se necesita el resultado, y se lo devuelve a la funcin que
inicialmente la pidi.
Implementacin de RPC: Corba, JMI y MS-COM.
Arquitectura de redes de computadoras
Cliente/Servidor: Consiste en muchos clientes que realizan peticiones a un servidor para que este les
devuelva lo que pidieron. Este servidor puede realizar procesamiento, tener pginas web, bases de
datos, etc.
Ventajas:
Los clientes no necesitan mucha capacidad de procesamiento o almacenamiento, ya que se
deriva al servidor.
Es sencillo y barato agregar un nuevo cliente.
Los clientes pueden compartir informacin entre s, sin conectarse directamente.

Arquitectura de tres capas:


Tenemos una capa de presentacin, una de Negocio (el servidor) y una de datos (servidor de datos).
Permite separar la carga de trabajo. Para la parte de negocio y datos, conviene tener un clster de
servidores, para mejorar la escalabilidad y la redundancia, adems de ser mas barato.
Cluster: Conjunto de computadoras (nodos) que trabajan en forma cooperativa. Las computadoras
involucradas tienen que tener caractersticas homogneas.
-Todas funcionan como una, por lo que tienen un objetivo en comn.
-El usuario piensa que su peticin la atiende un nico servidor, pero no es as.
-Balanceo de Carga: distribuyen los pedidos en base a la carga de cada nodo. Para ello, se necesita
que un nodo funcione como coordinador.
Sistemas Distribuidos
Consiste en un conjunto de computadoras que se integran para hacer desaparecer la dualidad localremoto para simular la visin de un sistema nico. Dentro de los mismos tenemos: Cluster
(centralizado), Grids (para la toma de decisiones) y P2P (descentralizado entre todos).
Caractersticas:

Alta disponibilidad, alto rendimiento, distribucin del trabajo, comparte recurso y permite
tener transparencia en el trabajo que se est realizando (id, replicacin, ejecucin.).
Tambin tiene modularidad, escalabilidad, interoperabilidad (sistema abierto), confiabilidad
(sistema seguro), cooperacin y concurrencia y consistencia.
Comparacin entre un sistema en red y un sistema distribuido.

SO en red

SO distribuido

Interconecta varias computadoras

Interconecta varias computadoras

Permite compartir recursos

Permite compartir recursos

Acceso a recursos de acuerdo a una ubicacin


real (transparencia)

Acceso a recursos de acuerdo a un nombre


global (independientemente de la ubicacin)

Trabajo independiente con control centralizado. Distribucin del trabajo con control
descentralizado (balanceo de carga). Ademas, es
cooperativo.
Los usuario se deben loguear en cada
computadora.

El usuario se loguea una nica vez.

Cluster

Grilla (Grid)

P2P (simetrico)

-Equipos homogeneos.
- Brindan servicios especficos.
- LAN pequea.
- Decisiones centralizadas.
- Nodo especializando.

- Equipos heterogneos.
- Realizan diferentes servicios y
tareas.
- WAN
- Decisiones mixtas.
- Nodos especializados (grupo)

- Equipos heterogneos.
- Realizan diferentes servicios y
tareas.
- LAN
- Decisiones descentralizadas.
- Nodos generalizados.

Los sistemas distribuidos ofrecen la visin de un sistema nico, y tienen las caractersticas antes
4

mencionadas.
Aclaraciones:
Los nodos especializados posee un nico servicio.
Un cluster tiene un nodo controlador, el cual decide que nodo o conjunto de nodos van a
realizar un trabajo especfico.
Si un nodo controlador se cae y deja de emitir un hearthbeat, otro puede tomar su lugar.
Los grid toman decisiones por grados o niveles (mixto). Dependiendo del grado de
procesamiento y la carga de cada nodo.
Framework Globus Toolkit.
Un grid puede contener clusters.
Nodos generalizados, significa que cualquier nodo puede realizar cualquier tarea que se le
asigne.
Distribucin de carga de trabajo en sistemas distribuidos
Para que hacerlo?

Para no sobrecargar una computadora.


Para poder considerar las prestaciones y capacidad de procesamiento de cada computadora.
Para aumentar el nivel de concurrencia.

Migracin de procesos:
Se realiza cuando un proceso migra a otro nodo, y se elimina del nodo original. Se migra toda la
imagen del proceso (PCB, datos, instrucciones, pila).
Requerimientos: deterministico, transparente, no perjudicial y escalable.
Funcionamiento.

Poltica de informacin: Sobre qu informacin? Cantidad de procesos, porcentaje de uso


del procesador y de la memoria, as. como tambin, del uso de la red. Como distribuye la
informacin? Lo realiza utilizando la red, en base a un broadcasting (para todos) o un
polling. Cuando lo realiza? Puede realizar peridicamente, por demanda o al cambiar de
estado.
Poltica de transferencia: Principios compartir la carga (no dejar que haya nodos muy
cargados. Esto se refiere a que los nodos pueden tener procesos, pero no deja que uno tenga
muchos ms que el promedio que tienen los dems), Balanceo de carga (todos los nodos
tienen la misma cantidad de procesos), optimizar recursos. Quien comienza la migracin?
El nodo de origen (ms intuitivo), el nodo de destino (ms eficiente) o de forma simtrica.
Poltica de seleccin: Como elegir? Si es no apropiativo, solo migro procesos nuevos, por
lo que trasfiero toda la imagen de un proceso para que empiece a ejecutar. Si es apropiativo,
puede migrar procesos nuevos o en cualquier estado: si el proceso ya se estaba ejecutando,
la transferencia puede ser completa (manda todo y luego sigue ejecutando), pre-copia
(manda una parte y mientras enva el resto, sigue ejecutando), ultimo usado (solo se
transfieren las ultimas paginas accedidas por el proceso) o por demanda (se manda lo
mnimo imprescindible para ejecutar el proceso).
Poltica de ubicacin: define el nodo de destino (si es necesario). Esta decisin la puede
tomar de forma esttica, dinmica o adaptativa.
5

Ms info sobre distribuidos


Objetivo: Distribuir el trabajo (migracin de procesos), lo que da como resultado un alto
rendimiento, alta escalabilidad y alta disponibilidad, adems de interoperabilidad, transparencia,
poco overhead, concurrencia, fiabilidad/compatibilidad.
Tambin permite compartir recursos, aunque aqu hay tres cuestiones:
1. Como identifico los recursos? Con un nombre global, independientemente de la ubicacin.
2. Como mejorar el acceso a los recursos? Con una transferencia masiva y cache de datos, o
bien con una tabla de recursos TR donde se tenga el nombre global, la ubicacin del recurso
y su nombre local.
1.

En cuanto a la transferencia masiva y cache (datos), consiste en enviar paquetes de informacin


grandes por la red. Tiene la ventaja de reducir el overhead de los protocolos de red, al enviar
menos paquetes (aunque relativamente ms grandes).
Cache: Almacena temporalmente el archivo (memoria y disco). Permite lectura y escritura
de los mismos, pero debe notificar al recurso los cambios que se produzcan en el recurso, lo
que se define como manejo de consistencia.
Este manejo, se puede realizar de tres formas:

Centralizado: El servidor notifica a todos los clientes que hubo cambios.


Descentralizado: Que el cliente pregunte al servidor si cambio la info del recurso
(con hash
de datos o timestamp).
Jerrquico: el servidor le notifica a algunos clientes, y esos clientes a su vez le
notifican a
otros (hasta que todos estn notificados).

(Grficos de cache de lectura y escritura).


El cache de escritura tiene dos variantes:

2.

Escritura inmediata: el servidor y el cliente tienen los mismos datos, debido a que las
actualizaciones se realizan inmediatamente. No le da mucho sentido al uso de la
cache.
Escritura demorada: Localmente se actualiza el dato, y se almacena en la cache.
Luego, se actualiza (cada cierto tiempo o al final, antes de liberar el recurso) el
servidor. Para que funcione, tengo que tener un mutex en el recurso.

Replicacin de recursos: Consiste en replicar un recurso local en el nodo que lo requiera. Rx =


Rx = Rx, que usa manejo transaccional de las operaciones y versionado con timestamp. En
base a esto, se pueden realizar las siguientes estrategias:
Actualizar todo o nada: se realizan todas las copias, o ninguna.
Primera copia (primary copy): escribe en la primera copia, y esa se encarga de escribir en
las dems. No se devuelve un resultado hasta que se actualizan todas las copias.
Gossiping: Los nodos van avisando la actualizacin a los dems.
6

Para redes particionadas, se aplica el algoritmo del consenso. Lo que busca este
algoritmo es llegar a un quorum, para determinar si se puede realizar o no una operacin.
Para ello, se define la cantidad mnima necesaria para realizar la escritura (NW) y para la
lectura (NR), donde:
- NR < NW
- NR + NW >= cantidad total de nodos.
- NW > Cantidad total de nodos / 2.
Sistemas de archivos distribuidos:
Dir 1----- Archivo 1a
Dir 2 ---- Archivo 2a
---- Directorio 2b ---- archivo 2b1
----- archivo 2b2
Un sistema de archivos posee una tabla de archivos global, donde se especifica la ubicacin de
cada uno:
Nombre del archivo.

Ubicacin

/Directorio1/archivo1a

Nodo1

/Directorio2/archivo2a

Nodo4, Nodo5

Memoria compartida distribuida:


Se aplican tres estrategias, que se realizan a nivel pgina:

Centralizada: Existe un nodo dueo al cual se tienen que reportar todas las peticiones de
datos, y las modificaciones de los mismos.
Descentralizado con Replicacin: replica localmente los datos. Si se actualiza uno, se deben
sincronizar todas.
Descentralizado con migracin: cada dato tiene una sola instancia, que se envi de nodo a
nodo, en base a la demanda.

Sincronizacin: Sistemas distribuidos.


Busca la mutua exclusin entre procesos, que significa que solo un proceso a la vez pueda acceder a
la regin crtica.

No espera indefinidamente para acceder a la regin critica.


No debe estar indefinidamente en la regin crtica.
No estima cantidad de procesos, cantidad de procesadores / velocidad de procesadores, tipo
de ejecucin.

Para evitar la espera activa, se puede usar un semforo o un monitor.


En un sistema distribuido, es muy difcil aplicar semforos o monitores, por lo que se recurre a:

Mensajes como mtodo de sincronizacin: Contiene primitivas de recibir (), enviar ().
Provee un canal seguro y confiable, en donde ambos mtodos son sincrnicos. El mtodo de
7

enviar (), al igual que el up de un semforo, no es bloqueante, mientras que el recibir () si lo


es.
Cmo lograr la sincronizacin con mensaje, cuando hay mas de un proceso?
Estrategias:

Centralizada: existe un nodo coordinador del recurso, que puede ser o no el dueo del
mismo.
Descentralizada con token: se realiza con Tokens. El proceso que tiene el token puede
acceder al recurso. Un token es un vector de pedidos de acceso al recurso. El proceso que
este en la primera posicin, va a poder acceder al mismo.
Descentralizada sin token: Se tiene que recibir un ok de que los otros nodos no quieren
acceder al recurso, y en el caso de tener ese ok, accede al mismo. En el caso de que otro
nodo quiera acceder al recurso, se anota la solicitud y no se manda el ok. Tiene la
desventaja de que enva una mayor cantidad de mensajes entre los nodos.

Relojes Virtuales:
Se utilizan para ordenar los mensajes enviados, y resolver el problema que genera tener distinta
hora en cada nodo al cual se enva dicho mensaje.

Relojes de Lamport: poseen un contador por nodo que se va incrementando, cada vez que
sucede un evento (enviar o recibir un mensaje) o algn otro evento importante.

Relojes Vectoriales: los mismos poseen un vector de contadores V(r1, r2, r3) el cual se va
incrementando de la misma forma que el anterior. Este mtodo funciona mejor si existen
muchos nodos.

DeadLock en sistemas distribuidos:


Mismas estrategias que antes, solamente que en detectar y solucionar, tenemos una distincin:
Detectar y solucionar: Identifica si hay o no deadlock. Si existe, se puede realizar un rollback o
matar algn proceso. En los sistemas distribuidos, es difcil de identificar, debido a que se debe
recolectar el estado global del sistema distribuido. Para ello, se recolecta el estado de los nodos
(algoritmo de snapshot, mensajes especiales, estado de cada nodo en memoria, mensajes en trnsito,
etc) y se analiza el estado para reconocer o no el deadlock.
Puede ser:
- Centralizado: en la que toda la informacin la recolecta un solo nodo.
- Descentralizado: que no es optimo.
- Jerarquizado: en la que se recolecta informacin por niveles.
Seguridad en sistemas distribuidos
La seguridad en un sistema distribuido hace referencia a autenticar al usuario, a tener listas o
matrices de acceso, un firewall y mandar mensajes seguros. En resumen, busca la confidencialidad,
integridad y autenticidad de los datos. Para ello, se definieron dos tcnicas distintas:
8

Kerberos: Se utiliza para autenticar usuarios, mediante la expedicin de tickets para el acceso a
servicios. Para el proceso, tenemos un nodo cliente, un authentication server y una tabla de usuarios
(DB). El cliente, en primera instancia, enva su user_id sin encriptar. El AS le enva dos cosas: el
hash del password, junto con el session key encriptados (M1), y la session key con el ticket_tgs,
tambin encriptados (M2). Si el Password es correcto, se le da un sessionKey al cliente. En caso
contrario, el cliente no va a poder desencriptar M2.
El ticket_tgs consta de: id+clientNodeId+ MacClientNode+ValidityKey+SessionKey.
Este mtodo solamente utiliza Hash y encriptacin simtrica. (Enc(key, data) = encrypted data).
Digital Envelop (PGP): Utiliza clave simtrica, algoritmos de Hash y claves asimetricas (clave
pblica y clave privada) para encriptar los datos. El proceso que realiza consiste de: encriptar los
datos con la clave simtrica, lo que nos da datos encriptados. En segunda instancia, se encripta la
clave publica del receptor con los datos encriptados anteriormente, para obtener una clave
encriptada. Luego, se le hace un Hash a los datos, y esos datos se utilizan para encriptar, junto con
la clave privada del emisor, una firma digital. Estos tres resultados (datos encriptados, mas clave
encriptada, mas una firma digital), conforman el Digital envelop.
Lo que se realiza luego, es el proceso de desencriptacion. Primero, se desencripta con la clave
privada del receptor y la clave encriptada, la clave simtrica. Luego, con esa clave simtrica y los
datos encriptados, se obtienen los datos, a los cuales se les realiza un Hash (1). Luego, se
desencripta con la clave publica del emisor y la firma digital, los datos Hasheados (del emisor, 2).
Se compara 1 y 2, y si son iguales, significa que los datos son autnticos e integro. Si no son
iguales, significa todo lo contrario.
Seguridad en el sistema operativo:
Manejo de fallos:
- Recuperacin de fallos: si sucede una falla, se trata de volver a un estado anterior seguro. Para
ello, se puede guardar un punto de restauracin o estados seguros, se puede registrar las
operaciones, para que, en el caso de que ocurra un fallo, se pueda hacer un rollback sobre las
operaciones, o puede ser Mixto.
Es transaccional, lo que quiere decir que es ACID (atmico, consistente, aislante y durable) y
realiza tres transacciones principales: beginTrx, commitTrx y rollbackTrx.
-Tolerante a fallos: Se puede enmascarar la falla, capturando la misma y tratando de que el
usuario no se entere. Por lo tanto, es el SO el que se encarga de resolverla solo. Tambin, se puede
definir un buen comportamiento ante fallas, que consiste en definir una serie de pasos para
solucionar el problema. Puede ser el usuario, un proceso o el SO el que defina estos pasos.
La recuperacin de fallos es ms genrica, pero genera ms overhead para el Sistema operativo.
Sistemas operativos en tiempo real:
Puede ser embebido o no.
Se utiliza para controlar aplicaciones en tiempo real, donde el tiempo es crtico.
Tiene que ser predecible. Se debe conocer y anticipar los tiempos de ejecucin. de las
rutinas del SO. (tiempo mximo que lleva el cambio de contexto y el tiempo mximo de
ejecucin. de una interrupcin).
Como seale antes, el tiempo es crucial, no tanto el rendimiento.
Planificadores de procesos especiales: de corto alcance, que toman en cuenta Milestones
(hitos) y prioridades de los procesos. Algunos son:
9

Round Robin con prioridades: RR normal, tomando en cuenta la prioridad de cada


proceso. Contempla el Aging de cada proceso (va aumentando la prioridad si el
proceso pasa mucho tiempo sin ejecutarse).
Monolitic: Le asigna una prioridad en base al periodo o la frecuencia con la que el
proceso entra al procesador. El mas infrecuente se ejecuta primero.
Earliest deadline first (EDF): Con deadline, se refiere a la cantidad de hitos que debe
cumplir un proceso antes de morir. Trata de ejecutar los procesos con los hitos ms
cercanos.
Estos algoritmos se clasifican en:

Duros: si un proceso se pasa un hito, es un error. Posee hitos o limites absolutos.


Blandos: Si un proceso se pasa un hito, no se considera un error.

Sistemas operativos embebidos:


Son sistemas operativo que se ejecutan en dispositivos que no corresponden a un Hardware
tradicional (que serian las computadoras), como por ejemplo una TV, una placa arduino/raspberry
pi, autos, aviones, etc.
Son sistemas operativos limitados, ya que no tienen memoria virtual, no cuentan con muchos
drivers (o ninguno), tienen un kernel muy pequeo, solo con las rutinas esenciales y estn muy
probados para el hardware y para las aplicaciones que se van a implementar.. fuera de eso, no
funcionan bien.
Concurrencia entre sistemas operativos o virtualizacion
La virtualizacin permite que distintos SO funcionen en paralelo (como si fueran procesos), que a
su vez van a tener sus propios procesos de usuario. Estos SO se ejecutan sobre una maquina virtual
(software), que emula un ambiente de hardware. Este puede ser igual (difcil), similar, distinto o
menor (caso que por lo general se da) al hardware real.
Ventajas, aplicaciones y usos:
- La virtualizacion facilita la instalacin de servicios en servidores virtuales (consolidacin entre
servidores y servicios).
- Recuperacin ante fallos.
- Permite ejecutar aplicaciones antiguas (emulando un hardware obsoleto).
- Permite ejecutar aplicaciones no confiables en forma segura.
- Facilita probar aplicaciones desarroladas, en distintos entornos. Tambien permite reproducir
situaciones, para realizar pruebas. Tambien ayuda a monitorear el rendimiento.
Clasificacin:
Arquitecturas (dependen de la VMM): Tenemos Hosted, la cual consiste (de abajo hacia arriba) de
un HW real, un SO hosting, una maquina virtual (que es una virtual machine monitor o VMM) y
arriba de esto, los SO guest. Ademas de esto, tenemos los Hypervisor, los cuales tienen un HW
real, una maquina virtual (en la que la VMM incluye funciones y rutinas del SO) y sobre esto, los
SO guest, que tienen una consola para la maquina virtual.
Tipos (dependen del SO guest): Tenemos virtualizacin completa, en el que el SO Guest no
conoce la existencia de la maquina virtual ni de otros SO con los que comparta la misma, y tenemos
10

Paravirtualizacion, en la que el SO Guest sabe que hay una maquina virtual y otros SO ejecutando
en la misma. Debido a esto, trata de no interferir o molestar a los otros SO.
La VMM tiene que encargarse de interceptar y capturar las instrucciones privilegiadas o de kernel
de los sistemas operativos Guest, para que estas nunca lleguen directamente al Hardware real.
Obviamente, estas instrucciones del SO Guest, en algn momento van a tener que pasar por el
procesador real, pero lo que se busca con esto es que la Computadora real, con el Hardware real no
pierda el control sobre los SO Guest.
WOW64: Maquina virtual de Windows 64 bits. Permite ejecutar aplicaciones de usuario que sean
de 32 bits. Por lo tanto, esta VM que trae Windows 64 bits es a nivel usuario, y no kernel (no se
pueden, por ejemplo, instalar drivers, antivirus, etc. si no son de 64 bits).
Qubes: sistema operativo totalmente seguro (segn sus creadores). Est basado en Hypervisor. Lo
que hace es dividir todo en dominios aislados, por ejemplo para todas las funcione de red o de
administracin. Estos dominios, al ser VM separadas y aisladas, pueden o no compartir
informacin, dependiendo de lo que se necesite.

11

Você também pode gostar