Lunes, 24 de Mayo de 2021 14:40: 2A 2021 Page 1
Lunes, 24 de Mayo de 2021 14:40: 2A 2021 Page 1
4. Administración de archivos
4.1. Organización, modos de acceso, atributos
4.2. Archivos. Directorios
4.3. Implementación de archivos
4.4. Implementación de directorios
4.5. Manejo de espacio en disco
4.6. RAID
5. Sistemas distribuidos
5.1 Hardware de red
5.1.1 Internet
5.2 Protocolos de red
5.3 Middleware
5.3.1 Basado en documentos
5.3.2 Basado en sistemas de archivos
5.3.3 Basado en objeto
5.3.4 Basado en coordinación
5.4 Grillas y mallas
SISTEMAS DE ARCHIVOS
Los archivos son fundamentalmente para la mayoría de las aplicaciones, ya que éstas obtienen información que requiere ser pro cesada desde un archivo o bien, una vez procesada la
información, las aplicaciones deben almacenarla en almacenamiento secundario a fin de no perder datos antes falta de energía. Asimismo, para evitar que cada aplicación deba disponer
de un código para interactuar con los archivos, se crea una abstracción que permite, por ejemplo, crear archivos, guardar información, copiarlos o eliminarlos.
Los archivos regulares son los que contienen información del usuario. Los directorios son sistemas de archivos para mantener la estructura del siste ma de archivos. Los archivos
especiales de caracteres se relacionan con la entrada/salida y se utilizan para modelar dispositivos de E/S en serie, tales como terminales, impresoras y redes. Los archivos especiales de
bloques se utilizan para modelar discos.
Accesos a archivos
Los primeros sistemas operativos proporcionaban sólo un tipo de acceso: acceso secuencial. En estos sistemas, un proceso podía leer todos los bytes o registros en un archivo en orden,
empezando desde el principio, pero no podía saltar algunos y leerlos fuera de orden.
Cuando se empezó a usar discos para almacenar archivos, se hizo posible leer los bytes o registros de un archivo fuera de orden, pudiendo acceder a los registros por llave en vez de
posición. Los archivos cuyos bytes o registros se pueden leer en cualquier orden se llaman archivos de acceso aleatorio. Son requeridos por muchas aplicaciones.
La E/S lógica permite a los usuarios y a las aplicaciones acceder a los registros. Por tanto, mientras que el sistema de fich eros básico trata con bloques de datos, el módulo de E/S
lógica trata con registros de ficheros. La capa de E/S lógica proporciona una capacidad de E/S de propósito general, a nivel de registros y mantiene datos básicos sobre los ficheros.
Los archivos están formados por registros, los cuales luego son convertidos en bloques para ser almacenado en el disco. La forma en que se accede a un registro determina la
estructura lógica de un archivo.
TIPOS DE ORGANIZACIÓN
→ PILA: forma simple para organizar un archivo. Los datos llegan y en ese orden se van formando los registros. Como estos pueden tener diferentes tipos de campos, estos deben
describirse. Su longitud debe estar indicada de manera exhaustiva para obtener un dato particular. Está búsqueda revisa todos los registro s y busca coincidencias entre registros,
campo y valor. No obstante, como en general, debe recorrer gran parte del archivo para encontrar el dato buscado, este método no es el más usado por la mayoría de las
aplicaciones.
→ ARCHIVO SECUENCIAL: todos los registros son de igual tamaño. Cada uno está compuesto por un número predefinido de campos de igual tamaño. Se denomina campo clave al
primer campo de cada registro, el cual identifica de forma única a cada registro y sirve, además, para realizar un orden, ya sea alfabético o numérico. Es ideal para aplicaciones por
lotes. Aun así, el rendimiento no es bueno, ya que se debe buscar la clave, lo cual lleva tiempo.
→ ARCHIVO SECUENCIAL INDEXADO: se agregan en este caso dos funcionalidades: índice y archivo de desbordamiento.
ÍNDICE: más rápido para buscar contenido, se recorren todas. Proporciona acceso aleatorio. Se forma con un archivo secuencial, cuyos registros se forman por dos campos: el
clave igual al del registro del archivo que contiene todos los datos y un puntero a dicho archivo principal. Así, ubicar un campo clave en el archivo índice es mucho más rápido
que hacerlo en el archivo principal. El archivo de desbordamiento es útil para agregar información.
→ Archivo indexado: permite realizar búsquedas por atributos que no sean el campo clave. Para lograrlo, se debe utilizar un índice por cada atributo que puede utilizarse para la
búsqueda. Un índice exhaustivo contiene una entrada por cada registro del fichero principal. Para facilitar la búsqueda, el índice a su vez, está organizado como un fichero
secuencial. Un índice parcial contiene entradas a los registros donde el campo de interés existe.
→ Conversión de registro en bloque: Los registros deben convertirse en bloques para poder inscribirse en un disco. Cada vez que se requiere grabar o leer un bloque, se necesita
una petición de E/S. El tamaño del bloque determina la cantidad de registros que podrían operarse en una misma solicitud. Si los bloques son demas iado grandes, se corre el riesgo
de transferir registros innecesariamente. Tres métodos:
- Bloques fijos: la longitud de los registros es fija, por lo que cierta cantidad de ellos entrarán en un bloque. Si sobra lugar, se genera fragmentación interna.
- Bloques expandidos de longitud variable: no es posible expandir un registro, como en el caso anterior, así que si el espacio que queda en un bloque no es suficiente para que
un registro lo utilice, no podrá ser utilizado y el registro completo demandará otro bloque.
2A 2021 Page 1
Liga o enlace duro La entrada de un archivo en un directorio Unix es la relación entre la ruta del archivo y el número de i-nodo en el sistema de archivos.
Liga o enlace simbólico Es un archivo especial, que meramente indica a dónde apunta. El encargado de seguir este archivo a su destino (esto es, de resolver la liga simbólica) es el
sistema operativo mismo; un proceso no tiene que hacer nada especial para seguir la liga.
Conceptos importantes
El sistema de archivo es la forma en el que el SO va a organizar la información dentro de un disco para su grabación y poster ior recuperación. Cada SO tiene su propio y único sistema
de archivos, lo que hace que no pueda funcionar con otros:
FAT: file allocation table. serie de sectores que alojan la mínima porción de información y una tabla que enlista los sectores libres y ocupados. Los sectores tienen dos
características; que con el tiempo, se le fueron en contra, que son de tamaño fijo. La otra, que cuanto más grande sea el disco, mayor es su tamaño. Los discos de menos de 1GB
tienen sectores de 16 kb, y más de 1GB, de 32kb. En este último caso un archivo 33 kb ocupa dos sectores, 64 kb, y desperdici a casi el 50% de esos 64 kb. Multiplicando estas
superficies no utilizadas por la cantidad de archivos que hay, no es raro tener entre 30 y 40 % del espacio de una unidad de almacenamiento desocupado.
FAT 16: es la mejor para unidades o particiones con menos de 200 MB. De más de 200 no se usa FAT ya que a medida que aumenta el tamaño máximo de 4Gb en Win NT y 2 Gb
en MS-DOS,. el rendimiento disminuye rápidamente. Los archivos están restringidos a nombres de tan solo 8 caracteres y 3 de extensión. No soporta archivos extremadamente
grandes.
FAT32: Misma estructura de sectores y tablas pero disminuye el tamaño de los sectores. Utiliza clústeres menores (de 4 kb a 8 kb) lo que significa un 10% y 15% de mejoras en el
uso del espacio con respecto a unidades grandes con sistemas de archivos FAT o FAT16. Es incompatible con todo lo anterior e incluso parte de lo posterior. El problema principal es
que las utilidades de disco no conocían este sistema; por lo que Microsoft actualizó todas sus utilidades . Aun así FAT 32 es la mejor.
Los SO de Microsoft distinguen FAT (12-16-32) utilizado en volumen mediante las siguientes reglas:
- Se obtiene el número total de sectores en el volumen
- Se le resta el espacio de sectores reservados
- Se le resta el espacio ocupado por el directorio raíz
- El total anterior se divide por el número de sectores en un cluster redondeando hacia abajo. El resultado R es el número de c lusters en el área de datos.
➔ R < 4085 → FAT-12
➔ R < 65525 → FAT-16
➔ R >= 65525 → FAT-32
NTFS: new technology file system: soporta completa seguridad. Puede decidir los tipos de acceso a archivos y directorios. Guarda un LOG (archivo) de actividades para reconstruir el
disco en el caso de problemas eléctricos. Soporta nombre de archivos y directorios de hasta 256 caracteres. Automáticamente genera archivos de corrección en DOS que pueden ser
utilizados y compartidos. Permite un diseño de programa para correr bajo otro sistema operativo, como el acceso MS-DOS a archivos de NTFS.
Cada fichero tiene asociada una entrada en la MFT (una base de datos que contiene los atributos de todos los ficheros) que contiene una serie de atributos. Debemos distinguir entre
atributos internos (almacenados en el propio registro de la MFT) y externos, que son referenciados mediante punteros en la MFT. Casi todos los atributos de cada fichero pueden ser
externos o internos.
¿Qué atributos se almacenan de cada fichero?
Una cabecera interna; un atributo con información estándar (timestamps para creación, modificación y acceso a cada fichero), así como un fichero es de solo lectura, oculto y demás;
otro atributo con el nombre del fichero (teniendo en cuenta que cada fichero tiene muchos nombres, podemos realizar hard links en distintos directorios a un mismo ar chivo); otro
atributo con los datos del propio fichero y un descriptor de seguridad (listas de control de acceso).
Los directorios indexan los archivos en estructuras más complejas que en FAT. De mera colecciones de registros podemos utilizar una estructura compleja como es el caso de un árbol B
+, ofreciendo rendimiento superior en operaciones que involucren a subconjuntos de ficheros o ficheros únicos.
Desventaja de NTFS, la MFT controla todo el sistema de ficheros. En el momento de formatear un volumen con este sistema de fichero se reserva aproximadamente un 12,5% del
tamaño del volumen para la MFT dado que este almacenado en zonas contiguas del disco. Esto hace que NTFS sea un sistema de fi cheros poco adecuados para sistemas de archivos
pequeños.
EXT
Los sistemas de archivos de Linux son similares porque existe una estructura por cada volumen con información de los archivos . Son distintos, a su vez, por el tipo de estructura. Es
inevitable hablar de inodos: registros identificados por un número entero que contienen los metadatos de los archivos . El concepto fue acuñado por Dennis Ritchie y se trata, realmente,
de una estructura de datos que contiene características de todos objetos contenidos en un sistema de ficheros , salvo su nombre, que se almacena en los ficheros de directorio. Más de
un directorio puede tener referencias a un inodo concreto (lo que se llama un enlace duro o hard link). Obviamente la estructura de inodo (nodo índice) no es imprescindible, aunque la
información tendría que ser almacenada en otro sitio y el sistema tendría que seguir contando con una funcionalidad equivalente, aunque no existieran los inodos como ente.
DIRECTORIOS
Para llevar el registro de los archivos, los sistemas de archivos por lo general tienen directorios o carpetas, que en muchos sistemas son también archivos.
Sistemas de directorios de un solo nivel
La forma más simple de un sistema de directorios es tener un directorio que contenga todos los archivos. Algunas veces se le llama directorio raíz, pero como es el único, el
nombre no importa mucho.
Sistemas de directorios jerárquicos
Lo que se necesita es una jerarquía (es decir, un árbol de directorios). Con este esquema, puede haber tantos directorios como se necesite para agrupar los archivos en formas
naturales. Además, si varios usuarios comparten un servidor de archivos común, como se da el caso en muchas redes de empresas, cada usuario puede tener un directorio raíz
privado para su propia jerarquía.
Nombres de rutas
Cuando el sistema de archivos está organizado como un árbol de directorios, se necesita cierta forma de especificar los nombres de los archivos. Por lo general se utilizan dos
métodos distintos. En el primer método, cada archivo recibe un nombre de ruta absoluto que consiste en la ruta desde el directorio raíz al archivo.. El otro tipo de nombre es el
nombre de ruta relativa. Éste se utiliza en conjunto con el concepto del directorio de trabajo (también llamado directorio actual). Un usuario puede designar un directorio como el
directorio de trabajo actual, en cuyo caso todos los nombres de las rutas que no empiecen en el directorio raíz se toman en forma relativa al directorio de trabajo.
VIRTUALIZACIÓN
2A 2021 Page 2
VIRTUALIZACIÓN
Es fundamental en el papel de servidores. Agrupa varias metodologías o tecnologías. “virtualizar consiste en proveer algo que no está ahí, para que parezca estarlo. "
- Anfitrión: es el HW o sistema real que ofrece el mecanismo de virtualización. En inglés se denomina host.
- Huésped: es el sistema o aplicaciones que se ejecutan en el entorno virtualizado. En inglés Guest.
EMULACIÓN
Emular consiste en implementar en software algo que se presente como el hardware de un sistema completo, típicamente de una arquitectura de hardware distinta a la del anfitrión. El
emulador puede ser visto como una lista de equivalencias, de cada una de las instrucciones en la arquitectura huésped a la ar quitectura del sistema anfitrión. Resulta obvio que emular
un sistema completo es una alternativa ineficiente. Los sistemas huéspedes resultantes típicamente tendrán un rendimiento cientos o miles de veces menor al del anfitrión. Técnic as
para reducir el tiempo que se desperdicia:
➔ Traducción dinámica: compilación parcial del código a ejecutar a formatos nativos, de modo que solo la primera vez que se ejecuta el código intermedio tiene que ser traducido.
➔ Traducción predictiva: anticipar cuáles serán las siguientes secciones de código que tendrán que ser ejecutadas para, paralelamente, al avance del programa, traducirlas a código
nativo de forma preventiva.
➔ Compilación justo a tiempo(JIT): almacenar copia del código ya traducido de un programa, de modo que no tenga que hacerse ni siquiera en cada ejecución, sino que solo una vez
en la vida de la máquina virtual.
ALMACENAMIENTO SECUNDARIO
Tamaño de bloque
Tener un tamaño de bloque grande significa que cada archivo (incluso un archivo de 1 byte) ocupa un cilindro completo. También significa que los pequeños archivos desperdician una
gran cantidad de espacio en disco.
Por otro lado, un tamaño de bloque pequeño significa que la mayoría de los archivos abarcarán varios bloques y por ende, necesitan varias bú squedas y retrasos rotacionales para leerlos,
lo cual reduce el rendimiento. Por ende, si la unidad de asignación es demasiado grande, desperdiciamos espacio; si es demasiado pequeña, desperdiciamos tiempo.
El sector 0 del disco se conoce como el MBR (Master Boot Record; Registro maestro de arranque) y se utiliza para arrancar la computadora. Cuando se arranca la computadora, el
BIOS lee y ejecuta el MBR. Lo primero que hace el programa MBR es localizar la partición activa, leer su primer bloque, conoc ido como bloque de arranque, y ejecutarlo. Por cuestión de
uniformidad, cada partición inicia con un bloque de arranque no contenga un sistema operativo que se pueda arrancar . Además, podría contener uno en el futuro.
El superbloque contiene todos los parámetros clave acerca del sistema de archivos y se lee en la memoria cuando se arranca la computadora o se entra en contacto con el sistema de
archivos por primera vez. La información típica en el superbloque incluye un número mágico para identificar el tipo del sistema de archivos, el número de bloques que contiene el
sistema de archivos y otra información administrativa clave.
IMPLEMENTACIÓN DE DIRECTORIOS
Una posibilidad obvia es almacenarlos directamente en la entrada de directorio. Muchos sistemas hacen eso. En este diseño simple, un directorio consiste en una lista de entradas de
tamaño fijo, una por archivo, que contienen un nombre de archivo (de longitud fija), una estructura de los atributos del arch ivo y una o más direcciones de disco (hasta cierto máximo)
que indique en dónde se encuentran los bloques de disco.
Para los sistemas que utilizan nodos-i, existe otra posibilidad para almacenar los atributos en los nodos-i, en vez de hacerlo en las entradas de directorio. En ese caso, la entrada de
directorio puede ser más corta: sólo un nombre de archivo y un número de nodo-i.
Para que funcione el sistema por bitácora, las operaciones registradas deben ser idempotentes, lo cual significa que pueden repetirse todas las veces que sea necesario sin peligro.
2A 2021 Page 3
Manejo de espacio en disco
Hay dos estrategias generales posibles para almacenar un archivo de n bytes: se asignan n bytes consecutivos de espacio en disco o el archivo se divide en varios bloques (no
necesariamente) contiguos. La misma concesión está presente en los sistemas de administración de memoria, entre la segmentación pura y la paginación. Casi todos los sistemas de
archivos dividen los archivos en bloques de tamaño fijo que no necesitan ser adyacentes
Cuotas de disco
Para evitar que los usuarios ocupen demasiado espacio en disco, los sistemas operativos multiusuario proporcionan un mecanism o para imponer las cuotas de disco. La idea es que el
administrador del sistema asigne a cada usuario una cantidad máxima de archivos y bloques y que el sistema operativo se asegure de que los usuarios no excedan sus cuotas. Este
método tiene la propiedad de que los usuarios pueden sobrepasar sus límites suaves durante una sesión, siempre y cuando eliminen el exceso cuando cierren su sesión. Los límites duros
nunca se pueden exceder.
NIVELES DE REDUNDANCIA
El almacenamiento secundario todavía está liderado por discos magnéticos. Estos presentan los siguientes inconvenientes:
1. Debido a su principio de funcionamiento, en comparación con la memoria principal son extremadamente lentos. Se requiere una gran cantidad de tiempo hasta que el cabezal de
lectura logra posicionarse sobre el sector donde hay que leer o escribir datos.
2. Como en los discos magnéticos tienen componentes mecánicos que permiten que los discos roten y el brazo donde se ubica el cabezal de lectura/escritura se mueva, tienden a
fallar luego de un determinado tiempo de uso.
Si se utiliza un solo disco como memoria secundaria el rendimiento será pobre y la probabilidad de perder información vital, alta. Para evitar esto, existen diferentes configuraciones que
agrupan los discos y mejoran el rendimiento, la probabilidad de pérdida de información o ambas.
NIVELES de RAID
Redundant Array of Independent Disks. El SO ve a este grupo como si fuera en realidad un solo dispositivo lógico, por lo que no tiene noción de lo que ocurre dentro del grupo. Existen
siete niveles, el número de nivel no depende que sea mejor, solo son diferentes.
RAID 0
No ofrece redundancia. Los datos se dividen en bandas (stripes) y cada uno de estos se ubica en discos diferentes. Mejora el rendimiento de lectura ya que si se requiere leer muchos
stripes se puede hacer en forma simultánea en varios discos. Cuantos más discos conformen RAID 0 mejor será el rendimiento. L a desventaja es que al no poseer redundancia, la falla
de un disco del grupo afecta a los datos que utilizaban esos stripes.
RAID 1
La forma básica de armarlo es utilizando dos discos. Cada stripe se graba en los dos discos. Debido a esto RAID 1 se denomina también disk mirroring. Como los datos están duplicados,
cualquier disco que falle, se recupera la información con el disco restante. La desventaja es su alto costo. Se requiere el doble de discos para el almacenamiento. Es útil para
aplicaciones críticas, el espacio queda limitado. Pero poder aumentarlo conservando las características es posible combinarlo con RAID 0: RAID 1 + 0 primero se espeja y se distribuyen
los stripes en cada lado del espejo.
RAID 2
No es utilizado ya que requiere gran cantidad de discos (menor que RAID 1 pero elevada). Se utiliza el código de hamming para corregir un error o detectar dos. Esta particularidad lo
hace diferente a otros tipos de RAID. No resulta atractiva debido a que en la actualidad los discos casi no producen error.
RAID 3
Solo necesita un disco redundante. La redundancia es provista por el denominado bit de paridad que se calcula utilizando función XOR (exclusive or) en todos los stripes. Este se
almacena en un disco denominado disco de paridad. En caso que falle, la información se reconstruye realizando la misma operación en los discos restantes. Para grandes flujo el
rendimiento es bueno, es posible leer y escribir en los discos de forma simultánea aunque no se puede hacer un pedido de E/S a la vez.
RAID 4
La diferencia con RAID 3 es que el cálculo de paridad se hace a nivel de bloque. Los discos funcionan de manera independiente, por lo cual es posible, a diferencia del 3, recibir
pedidos de E/S en forma paralela. Esta característica es compartida entre el 5 y 6. Lo que lo hace más adecuado a aplicaciones que generan gran número de E/S. Asimismo, comparten
la penalización de escritura, es decir, cada vez que debe escribirse un dato el hardware RAID debe:
➔ leer datos
➔ calcular paridad
➔ escribir datos
➔ escribir paridad
Cada petición de escritura genera esas cuatro acciones. (uno por disco). La desventaja de RAID 4 es que la unidad de paridad es un cuello de botella.
RAID 5
Funciona similar al 4. En lugar de un disco exclusivo para almacenar paridades, se distribuyen a lo largo de todos los discos que componen el conjunto. La ventaja es que se evita el
cuello de botella ubicado en el disco de paridad. La penalidad por escritura es la misma (4) y la cantidad mínima de discos que puede usarse es tres. Cuantos más discos se utilicen,
menor será el overhead del espacio destinado a la paridad pero mayor probabilidad de que un disco falle y se pierda información ya que solo puede reconstruir un disco cuando falla. Es
utilizado para diversas apps ya que es económico y posee un rendimiento aceptable.
RAID 6
Realiza dos cálculos de paridad. Esto aumenta la disponibilidad porque permite que dos discos del conjunto fallen al mismo tiempo sin ocasionar la pérdida de datos. Sin embargo, la
penalidad de escritura ahora es mayor (6), ya que tiene que leer datos y calcular paridad dos veces para luego escribir datos y calcular paridad dos veces más.
SISTEMAS DISTRIBUIDOS
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. Cada nodo en un sistema distribuido es una computadora completa, con todo un complemento
de periféricos. Los nodos de un sistema distribuido pueden estar esparcidos en todo el mundo. 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.
Hardware de red
Las redes se clasifican en dos variedades principales: LANs (Redes de área local), que cubren un edificio o un campus, y las WANs (Redes de área amplia), que pueden ser a nivel de
ciudad, del país o incluso a nivel mundial. El tipo de LAN más importante es Ethernet.
La Ethernet clásica, consiste en un cable coaxial al que se conectan varias computadoras. A este cable se le conoce como Ethernet, en relación al éter luminífero por medio del cual se
2A 2021 Page 4
La Ethernet clásica, consiste en un cable coaxial al que se conectan varias computadoras. A este cable se le conoce como Ethernet, en relación al éter luminífero por medio del cual se
pensaba hace tiempo que se propagaba la radiación electromagnética.
Internet
Internet consiste en dos tipos de computadoras: hosts y enrutadores. Los hosts son PCs, notebooks, dispositivos de bolsillo, servidores, mainframes y otras computadoras que poseen
individuos o empresas que se desean conectar a Internet. Los enrutadores son computadoras de conmutación especializadas, que aceptan los paquetes entrantes de una de varias líneas
entrantes, y los envían a lo largo de muchas líneas salientes. Los enrutadores se conectan entre sí en grandes redes, en donde cada enrutador tiene cables o fibras que van a muchos
otros enrutadores y hosts. Las compañías telefónicas y los ISPs (Proveedores de Servicio de Internet) operan extensas redes de enrutadores nacionales o mundiales para sus clientes.
Servicios de red
Las redes de computadoras proveen servicios a los hosts y procesos que las utilizan. El servicio orientado a conexión se modela con base en el sistema telefónico. Para utilizar un
servicio de red orientado a conexión, el usuario del servicio establece primero una conexión, la utiliza y después la libera. El aspecto esencial de una conexión es que actúa como un
tubo: el emisor mete los objetos (bits) en un extremo y el receptor los saca en el mismo orden del otro extremo.
Por el contrario, el servicio orientado a no conexión se modela con base en el sistema postal. Cada mensaje (carta) lleva la dirección de destino completa, y se enruta a través del
sistema de manera independiente a los otros mensajes. Por lo general, cuando se envían dos mensajes al mismo destino, el primero que se envíe será el primero en llegar . No obstante,
es posible que el primero que se envíe tenga un retraso y el segundo llegue primero. Con un servicio orientado a conexión, esto es imposible.
Protocolos de red
El conjunto de reglas mediante el cual se comunican computadoras específicas se conoce como protocolo . Existen muchos protocolos, incluyendo los de enrutador a enrutador, los de
host a host y varios más. Todas las redes modernas utilizan una pila de protocolos para distribuir los distintos protocolos en niveles, uno encima de o tro. En cada nivel se lidia con
distintas cuestiones.
Redes involucradas
Ante la gran diversidad de apps, SO, hardware y tipos de redes, la necesidad de estandarización derivó a la elaboración de un modelo de referencia por capas denominado modelo de
interconexión de sistemas abiertos OSI. Este modelo especifica siete niveles. Esto surgió después que el conjunto de protocolos TCP/IP. Este conjunto nació con la práctica. Se basa en
protocolos que fueron creados y perfeccionados. Define 4 niveles, los cuales comparten funcionalidades a los niveles de OSI. Algunos autores definen acceso de red en dos niv eles por
lo que se hacen 5.
- NIVEL 1 capa física: define señales que se usarán, distinguir entre 1 y 0 y los medios de transmisión que se utilizarán.
- NIVEL 2 enlace datos: se encarga de crear una trama e identificar los diferentes dispositivos de una misma red. Además realiza control de errores.
- NIVEL 3 capa de red: identifica dispositivos de redes diferentes y direccionamiento de los paquetes a través de esta.
- NIVEL 4 capa de transporte: permite la comunicación proceso a proceso entre dos computadoras. Se crea una abstracción del número de procesos generados por el SO y en su
lugar se utilizan números de puerto.
- NIVEL 5 capa de aplicación: da soporte a múltiples aplicaciones utilizadas en el sistema distribuidos, ej; páginas webs.
Como los datagramas IP no utilizan señales de reconocimiento, no es suficiente el protocolo IP para una comunicación confiabl e en Internet. Para proveer una comunicación confiable,
por lo general se utiliza otro protocolo conocido como TCP (Protocolo de control de transmisión) que se coloca en un nivel encima de IP. TCP utiliza a IP para proveer flujos orientados
a conexión.
Para establecer una conexión con un host remoto (o incluso para enviarle un datagrama) es necesario conocer su dirección IP. Como es inconveniente para las personas administrar
listas de direcciones IP de 32 bits, se inventó un esquema llamado DNS (Sistema de nombres de dominio) como una base de datos para asignar nombres ASCII para los hosts a sus
direcciones IP.
Implementaciones
Existen diversas para la arquitectura cliente servidor según cómo se realice el procesamiento. Se implementan así:
❏ Procesamiento basado en host: el dispositivo es una terminal boba, ya que todo se realiza en el servidor, inclusive la interfaz de usuario. La terminal solo se usa para acceder al
dispositivo remoto y realizar todo allí.
❏ Procesamiento basado en servidor: se realiza en el servidor y para el cliente solo está disponible la interfaz para que acceda el usuario .
❏ Procesamiento cooperativo: permite mayor productividad, ya que utiliza recursos tanto del cliente como del servidor para realizar las operaciones necesarias. Sin embargo, es más
compleja que el resto de las implementaciones.
❏ Procesamiento basado en el cliente: la mayoría las operaciones se realizan en el cliente, lo que libra el uso de los recursos del servidor y lo habilita para permitir más c liente
conectados.
El modelo cliente - servidor puede estar compuesto por tres capas. Entre el cliente y el servidor clásico se adiciona una capa central, que es ot ro servidor que puede ser utilizado para
convertir protocolos o procesar datos obtenidos del servidor clásico, lo que libera a éste de dichas tareas para que especial ice y mejore el rendimiento de otra.
PASO DE PARÁMETROS
La mayor parte de los lenguajes de programación permiten que los parámetros se pasen como valores (denominado por valor) o como punteros que contienen los valores (llamado por
referencia). Las llamadas por valor son fáciles de implementar en las llamadas a procedimiento remoto: los parámetros se copian en el mensaje y se envían al sistema remoto. Es más
difícil implementar las llamadas por referencia. Para cada objeto se necesita un puntero único y válido para todo el sistema. No suele merecer la pena el esfuerzo por la sobr ecarga que
2A 2021 Page 5
difícil implementar las llamadas por referencia. Para cada objeto se necesita un puntero único y válido para todo el sistema. No suele merecer la pena el esfuerzo por la sobr ecarga que
se genera.
Seguridad y Protección
La seguridad de los datos de un SO debe contemplar múltiples facetas:
- Protección ante posibles daños físicos de los datos (ruptura de discos u otro tipo de daño)
- Acceso indebido a los mismos (fallas de seguridad)
- La protección consiste en evitar que se haga un uso indebido de los recursos cuando se está dentro del ámbito del SOP.
- Debe existir mecanismos y políticas que aseguran que los usuarios sólo acceden a sus propios recursos.
Para poder garantizar estos aspectos deben tenerse en cuenta 3 aspectos de diseño:
- Evitar la pérdida de datos por medio de copias de seguridad
- Controlar la privacidad de los datos mediante cifrado, encriptado, etc.
- Controlar el acceso a los datos y recursos por medio de la identificación. contraseñas, etc.
Problemas de seguridad
- uso indebido o malicioso de programas (troyanos, etc).
- usuarios inexpertos o descuidados.
- usuarios no autorizados (errores de autenticación).
- gusanos: programas destructivos que se auto propagan.
- rompedores de sistemas de protección (analizadores de contraseñas).
- ataques por denegación de servicio.
Políticas de seguridad
- cada organización tiene requisitos de seguridad distintos.
- las políticas de seguridad dictan las normas a seguir para proporcionar protección y seguridad a los sistemas.
- no implica mecanismos, sólo políticas.
- existen leyes que se deben cumplir cuando se utiliza información confidencial.
- las políticas de seguridad deben dar confianza.
Política militar
Se basa en la clasificación de todos los recursos con requisitos de seguridad en los niveles:
➔ desclasificado
➔ restringido
➔ confidencial
➔ secreto
➔ alto secreto
Los usuarios tienen acceso a recursos de nivel I también lo tienen a los niveles i+1 Regla de lo que se necesita saber: solo se permite el acceso a datos sensibles a quien los necesita
para hacer su trabajo.
Política comercial
Se basa en la política militar, pero debilitan los requisitos. La muralla china clasifica a sus recursos y usuarios en 3 nive les de abstracción:
➔ objetos
➔ grupos
➔ clases de conflictos
Cada objeto pertenece a un único grupo y cada grupo una única clase de conflicto Una clase o conflicto, sin embargo, puede incluir a varios grupos. Política de control de acceso: una
persona puede acceder a la información siempre que antes no haya accedido a otro grupo de la clase de conflicto a lo que pert enece la información a lo que quiere acceder.
Modelos de seguridad
Un modelo es mecanismo que permite hacer explícita una política de seguridad.
➔ Modelos de seguridad multinivel: rangos de seguridad y separación rigurosa entre usuarios y objetos a los que no tienen acces o. Suelen ser modelos muy abstractos y costosos
de implementar.
➔ Modelos de seguridad limitada: responden formalmente a las propiedades que un sistema seguro debe satisfacer. Se basa en dos principios:
● Usan la teoría general de sistemas para definir un sistema formal de reglas de protección.
● Usan una matriz de control de acceso en cuya filas están entre los usuarios y en las columnas los objetos.
Los derechos de acceso del usuario i sobre el objeto j son los contenidos del elemento de la matriz (i, j)
Clusters
Grupo de computadoras completas e interconectadas, que trabajan juntas como un recurso de computación unificado y que pueden crear la ilusión de ser una única máquina. El término
computadora completa significa un sistema que puede ejecutar por sí mismo, aparte del cluster; en la literatura, cada computadora de un Cluster se denomina nodo.
BREW97 enumera cuatro beneficios:
• Escalabilidad absoluta. Posible crear un gran cluster que supere la potencia de incluso la mayor de las máquinas.
• Escalabilidad incremental. Se configura de tal manera que sea posible añadir nuevos sistemas al cluster en pequeños incrementos.
• Alta disponibilidad. El fallo de uno de los nodos no significa pérdida del servicio.
2A 2021 Page 6
• Alta disponibilidad. El fallo de uno de los nodos no significa pérdida del servicio.
• Relación precio/prestaciones. Usando bloques de construcción, es posible hacer un cluster con igual o mayor poder computacional que una única máquina mayor , con mucho menor
coste.
Es deseable tener la capacidad de recuperación de fallos (failover), lo que significa que si una computadora falla durante la ejecución de una aplicación, otra computadora del cluster
puede tomar el control y finalizar la aplicación.
La restauración de aplicaciones y de datos al sistema original una vez que se ha reparado, se denomina restauración de fallos (failback)
Este problema, conocido como "Cross-Linked Files", aunque generalmente grave y de difícil solución, afortunadamente poco frecuente. Dos ficheros no pueden ocupar el mismo espacio
físico en el disco.
ASPECTOS DE DISEÑO DE SO
GESTION DE FALLOS
En general, para el tratamiento de los fallos se pueden seguir dos enfoques:
• Clusters con alta disponibilidad. Ofrece alta posibilidad de que todos los recursos estén en servicio. Si sucede algún fallo, tal como la caída de un nodo o que se pierda un volumen,
se pierden las peticiones en progreso. Cualquier petición perdida que se reintente, será atendida por una computadora diferente del cluster. Sin embargo, el sistema operativo del
cluster no garantiza el estado de las transacciones parcialmente realizadas. Esto se necesita gestionar a nivel de aplicación
• Clusters con tolerancia a fallos. Asegura que todos los recursos están siempre disponibles. Esto se logra a través del uso de discos redundantes compartidos y mecanismos para
deshacer transacciones incompletas.
EQUILIBRADO DE CARGA
Un cluster necesita tener la capacidad de equilibrar la carga entre todas las computadoras disponibles. Esto incluye el requisito de que un cluster debe ser escalable. Cuando se añade
una nueva computadora al cluster, el servicio de equilibrado de carga debe incluir automáticamente la nueva computadora en la planificación de las aplicaciones. Los mecanismos del
middleware deben saber que pueden aparecer nuevos servicios en diferentes miembros del cluster, pudiendo migrar de un miembro a otro.
COMPUTACIÓN PARALELA
En algunos casos, el uso eficiente de los cluster necesita ejecutar una única aplicación en paralelo. [KAPP00] enumera tres e nfoques generales para este problema:
• Compilación paralela. Un compilador paralelo determina, en tiempo de compilación, qué partes de la aplicación se pueden ejecutar en paralelo. Estas partes se pueden asignar a
computadoras diferentes del cluster. El rendimiento depende de la naturaleza del problema y de lo bueno que sea el diseño del compilador.
• Aplicaciones paralelas. En este enfoque, el programador escribe la aplicación para que ejecute en un cluster y utiliza paso de mensajes para mover datos , según se requiera, entre
nodos del cluster. Esto supone una gran carga para el programador, pero probablemente es la mejor forma de explotar los cluster para algunas aplicaciones.
• Computación paramétrica. Este enfoque se puede utilizar si la esencia de la aplicación es un algoritmo que se debe ejecutar un gran número de veces, cada vez con un conjunto
diferente de condiciones o parámetros iniciales. Un buen ejemplo es un modelo de simulación, que ejecutará un gran número de diferentes escenarios y luego calculará estadísticas
de los resultados. Para que este enfoque sea efectivo, se necesitan herramientas de procesamiento paramétricas para organizar, ejecutar y gestionar los trabajos de forma ordenada.
Middleware
Es software que se sitúa entre un sistema operativo y las aplicaciones que se ejecutan en él. Básicamente, funciona como una capa de traducción oculta para permitir la comunicación y
la administración de datos en aplicaciones distribuidas. Permite a una aplicación o usuario en el cliente acceder a una variedad de servicios en el servidor sin preocuparse de las
diferencias entre los servidores.
Basado en documentos
El paradigma original detrás de Web era muy simple: cada computadora podía contener uno o más documentos, llamados páginas We b. Cada página Web contiene texto, imágenes,
iconos, so nidos, películas y demás, así como hipervínculos (apuntadores) a otras páginas Web. Cuando un usuario solicita una página Web mediante el uso de un programa llamado
navegador Web, la página se muestra en la pantalla. Al hacer clic en un vínculo, la página actual se sustituye en la pantalla por la página a la que apunta el vínculo. En esencia, Web
es un sistema cliente-servidor en donde el usuario es el cliente y el sitio Web es el servidor. Cuando el usuario proporciona un URL al navegador, ya sea escribiéndolo o haciendo
clic en un hipervínculo en la página actual, el navegador realiza ciertos pasos para obtener la página Web solicitada.
Basado en sistemas de archivos
Utilizar un modelo de sistema de archivos para un sistema distribuido significa que hay un solo sistema de archivos global, en el que usuarios de todo el mundo tienen autorización
de leer y escribir en archivos. Para lograr la comunicación, un proceso tiene que escribir datos en un archivo y otros procesos tienen que leer los datos de vuelta.
Modelo de envío/descarga y el modelo de acceso remoto. En el primer modelo, para que un proceso pueda utilizar un archivo debe copiarlo primero del servidor remoto en el que
se encuentra. Si el archivo sólo se va a leer, se lee entonces de manera local, para obtener un alto rendimiento. Si el archivo se va a e scribir, se escribe de manera local. Cuando el
proceso termina de usar el archivo, coloca el archivo actualizado de vuelta en el servidor. Con el modelo de acceso remoto, el archivo permanece en el servidor y el cliente le envía
comandos para realizar el trabajo ahí.
Basado en objeto
En vez de decir que todo es un documento o que todo es un archivo, decimos que todo es un objeto. Un objeto es una colección de variables que se incluyen con un conjunto de
procedimientos de acceso, llamados métodos. No se permite que los procesos accedan directamente a las variables. En vez de el lo, tienen que invocar los métodos.
Para que sea posible que un cliente en una plataforma invoque a un servidor en una plataforma distinta, se interponen ORBs Object Request Broker (Intermediarios en peticiones a
objetos) entre el cliente y el servidor para permitir que coincidan. Los ORBs desempeñan un papel tan importante en CORBA que hasta incluyen su nombre en el sistema. La
función de los ORBs es ocultar al código cliente y servidor todos los detalles de distribución y comunicación de bajo nivel. En especial, los ORBs ocultan al cliente la ubicación del
servidor, si éste es un programa binario o una secuencia de comandos, en qué hardware y sistema operativo se ejecuta el servi dor, si el objeto está activo en ese momento y cómo
se comunican los dos ORBs (por ejemplo, TCP/IP, RPC, memoria compartida, etcétera.).
Basado en coordinación
Los procesos independientes se comunican mediante un espacio de tuplas abstracto. El espacio de tuplas es global para todo el sistema, y los procesos en cualquier máquina
pueden insertar o quitar tuplas en el espacio de tuplas sin importar en dónde estén almacenadas. Para el usuario, el espacio de tuplas parece una gran memoria compartida global,
como hemos visto en varias formas anteriores.
Grillas y Mallas
Un grid es una gran colección de máquinas dispersas geográficamente y por lo general heterogénea, que se conecta mediante una red privada o Internet, y que ofrece un conjunto de
2A 2021 Page 7
Un grid es una gran colección de máquinas dispersas geográficamente y por lo general heterogénea, que se conecta mediante una red privada o Internet, y que ofrece un conjunto de
servicios para sus usuarios. Es una colección de computadoras independientes, por lo general en varios dominios administrativos, las cuales ejecutan un nivel común de middleware para
permitir que los programas y usuarios accedan a todos los recursos de una manera conveniente y consistente.
Por lo general, los grids funcionan así: cada máquina participante ejecuta un conjunto de programas que administran la máquina y la integran en el grid. Este software comúnmente se
encarga de la autenticación y el inicio de sesión de los usuarios remotos, de anunciar y descubrir recursos, programar y ubic ar trabajos, etcétera. Cuando un usuario tiene que hacer un
trabajo, el software del grid determina en dónde hay capacidad inactiva que tenga los recursos de hardware, software y de datos para r ealizar el trabajo, y después envía el trabajo ahí,
prepara su ejecución y después devuelve los resultados al usuario.
2A 2021 Page 8