Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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
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.
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?
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.
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.
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
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.
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
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.
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
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