Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Entrada/Salida ...................................................................................................................................... 3
Hardware de E/S ............................................................................................................................... 3
Controladores de dispositivos ...................................................................................................... 4
Controladores de Disco ................................................................................................................ 5
Estructuras de Almacenamiento Masivo......................................................................................... 5
DISCOS MAGNÉTICOS ................................................................................................................... 5
DISCOS DE ESTADO SÓLIDO (SSD) ................................................................................................ 6
Almacenamiento............................................................................................................................. 10
NAS Almacenamiento conectado a la red ................................................................................. 10
SAN Redes de área de almacenamiento .................................................................................... 10
RAID Arreglos redundantes de disco independientes (el más efectivo) .................................. 11
Archivos .............................................................................................................................................. 13
¿Qué es un ARCHIVO? ................................................................................................................ 13
Sistemas de archivos ...................................................................................................................... 15
ATRIBUTOS .................................................................................................................................. 16
OPERACIONES DE ARCHIVOS...................................................................................................... 17
DIRECTORIOS .................................................................................................................................. 18
Implementación del sistema de Archivos: .................................................................................... 19
ASIGNACIÓN CONTIGUA............................................................................................................. 20
ASIGNACIÓN DE LISTA ENLAZADA ............................................................................................. 21
ASIGNACIÓN DE LISTA ENLAZADA UTILIZANDO UNA TABLA DE MEMORIA ............................ 22
IMPLEMENTACIÓN DE ARCHIVOS NODO ÍNDICE (i-nodos) ...................................................... 22
IMPLEMENTACIÓN DE DIRECTORIOS......................................................................................... 23
ARCHIVOS COMPARTIDOS .......................................................................................................... 24
SISTEMAS DE ARCHIVOS POR BITÁCORA ................................................................................... 25
SISTEMAS DE ARCHIVOS VIRTUALES .......................................................................................... 25
ADMINISTRACION Y OPTIMIZACION DEL SISTEMA DE ARCHIVOS ............................................... 26
SERVIDORES DE ARCHIVOS ......................................................................................................... 26
SISTEMAS MULTIPROCESADORES ..................................................................................................... 27
UN MULTIPROCESADOR CON MEMORIA COMPARTIDA .............................................................. 27
¿Cómo es el HARDWARE? ¿Cuántos tipos hay? hay 2 tipos: ................................................... 27
¿Cómo es el SOFTWARE? ¿Cuántos tipos hay? hay 3 tipos: .................................................... 29
¿Cómo es la PLANIFICACIÓN? ¿Cuántos tipos hay? hay 2 tipos: ............................................. 30
2 MULTICOMPUTADORAS .............................................................................................................. 30
¿Cómo es el HARDWARE? .......................................................................................................... 31
¿Cómo es el SOFTWARE? ........................................................................................................... 31
3 SISTEMA DISTRIBUIDO................................................................................................................. 32
TIPOS DE SO DISTRIBUIDO:......................................................................................................... 32
COMPARACIÓN DE LOS 3 TIPOS DE SISTEMAS DE MÚLTIPLES CPUs........................................... 33
SISTEMAS DE TIEMPO REAL (SOTR)................................................................................................... 34
CLASIFICACIÓN: ............................................................................................................................... 34
CARACTERÍSTICAS (para ambos): ............................................................................................... 34
3 ESTRATEGIAS PARA LA TRADUCCIÓN DE DIRECCIONES: ........................................................... 34
IMPLEMENTACIÓN, tener en cuenta: ........................................................................................ 35
ALGORITMOS DE PLANIFICACIÓN: ................................................................................................. 35
1. PLANIFICACIÓN POR PRIORIDAD MONÓTONA EN TASA: ..................................................... 35
2. PLANIFICACIÓN POR PRIORIDAD EN FINALIZACIÓN DE PLAZO (EDF): ................................. 35
3. PLANIFICACIÓN CON CUOTA PROPORCIONAL: ..................................................................... 35
4. PLANIFICACIÓN EN PTHREAD: ................................................................................................ 35
Lab - Archivos ..................................................................................................................................... 36
Lab - Virtualizacion ............................................................................................................................. 39
Entrada/Salida
Se estructura en diferentes niveles. Cada aplicación necesita un manejo de dispositivos de E/S,
dándose de una manera rápida, transparente y flexible => debe proveer al menos una interfaz o mecanismo
de abstracción entre los diferentes controladores de dispositivos (o drivers) y los diferentes dispositivos de
E/S. Esta interfaz del SO puede estar dentro de los sistemas de archivos, dentro de un servicio de
administración de red, etc. Entonces, los dispositivos, atreves de encapsulamiento también deberían
brindar al usuario la información.
La E/S es muy importante, según algunos autores es inclusive más importante que el procesamiento
ya que no importa cuando procesamiento haga, ese resultado se le debe volcar al usuario. El papel del SO
en esta, es generar y controlar las operaciones y dispositivos de E/S, emitiendo comandos para los
dispositivos, captando las interrupciones y manejando los errores.
Adicionalmente el SO debe proporcionar una interfaz simple y fácil de usar entre los dispositivos y el
resto del sistema. Hasta donde sea posible, la interfaz deber ser igual para todos los dispositivos.
ENTONCES → Función importante del SO: Administrar los dispositivos de Entrada/Salida de una
manera correcta:
Hardware de E/S
Los dispositivos de E/S pueden dividirse en dos categorías, aunque no todos los dispositivos se
adaptan a esta clasificación básica, como por ejemplos los asistentes de vos, sensores, etc.
Dispositivo de bloques → Almacena la información en bloque de tamaño fijo, cada uno con su propia
dirección. Todas las transferencias se realizan en unidades de uno o más bloques completos consecutivos.
Los dispositivos pueden leer o escribir cada bloque de manera independiente a los demás. Por ejemplo: un
disco rígido, DVD, USB.
Dispositivos de carácter → Envía ya acepta un flujo de caracteres, sin importar la estructura del
bloque. No es direccionable y no tiene ninguna operación de búsqueda. Por ejemplo: un teclado, mouse,
interfaces de red.
Otra clasificación:
DISPOSITIVOS MIXTOS (entrada y salida): impresora multifunción, pendrive, placa de red inalámbrica,
pantalla táctil.
Los dispositivos de E/S cubren un amplio tango de velocidades, lo cual impone una precisión
considerable en el sw para obtener un buen desempeño sobre muchos órdenes de magnitud en
velocidades de transferencias de datos. Tienden a hacerse más rápidos. Requieren de un SO que soporte
esta cantidad de información, no solo el software.
Velocidades de trasferencia de datos comunes de algunos dispositivos redes y buses
Controladores de dispositivos
El SO debe asegurarse de que pueda manejar varios dispositivos a través de la misma interfaz.
Ejemplos: mouse usb, teclado usb, impresora usb.
Cada controlador tiene registros útiles para comunicarse con la CPU. El so puede escribir o leer en
esos registros, y el dispositivo a su vez, por ejemplo, puede recibir datos.
↓
¿CÓMO SE COMUNICAN CON LA CPU?
A cada registro de control se le asigna un número de puerto de E/S (8 Y 16 bits). Hay un conjunto de
puertos o espacio de puertos de E/S:
Controladores de Disco
Buses, se pueden desenchufar y enchufar y siguen funcionando. Son los más actuales.
DISCOS MAGNÉTICOS
Que el cabezal (brazo) se mueva por todos los cilindros y vaya buscando información (en todas las
pistas), cuando se cuenta con una cola de pedidos el brazo haga la menor cantidad de movimientos por
cada cilindro → voy a obtener el algoritmo que sea más óptimo.
Un SSD no es más que una evolución lógica de los HD mecánicos tradicionales. Es un dispositivo de
almacenamiento secundario hecho con componentes electrónicos en estado sólido.
También contienen en su interior un procesador que controla la lectura, escritura y decide donde se
aloja cada parte de la información (un controlador al igual que el anterior).
Consta de bloques de memoria no volátil (inmóvil), en lugar de los platos giratorios y cabezal.
VENTAJAS:
DESVENTAJAS:
DESVENTAJAS????:
Degradación de rendimiento al cabo de mucho uso en las memorias NAND (solucionado, en parte,
con el sistema TRIM).
Menor velocidad en operaciones de E/S secuenciales (ya se ha conseguido una velocidad similar).
Vulnerabilidad contra cierto tipo de defectos, incluyendo pérdida de energía abrupta, campos
magnéticos y cargas estáticas comparados con los discos duros normales (que almacenan los datos dentro
de una Jaula de Faraday).
Adaptaciones de los File Systems (importante, como manejar tablas de memoria, caché de disco
→ se logran todas esas adaptaciones y funcionan bien).
SATA: puerto más común. Existe además mSATA que solo otorga el puerto para conectar
directamente notebooks y portátiles.
PCI Express: utilizado comúnmente por placas de video. Es de alta velocidad > 26 Bs. Mayor costo.
CLASIFICACION DE TECNOLOGÍA DE ALMACENAMIENTO
1. MEMORIA NAND FLASH: las de uso más común, son un chip de silicio que también se utiliza en
pendrives y posee una memoria no volátil.
a) controladora: módulo central, administra y gestiona todos los módulos que hay de memoria.
b) caché: pequeño dispositivo de memoria DRAM.
c) condensador: necesario para mantener la integridad de los datos de la memoria caché el
tiempo suficiente para que se puedan enviar los datos retenidos hacia la memoria no volátil.
2. SSD DRAM: información volátil, funciona como una memoria RAM, son mucho más costosos,
comunes, se necesita energizarlos continuamente, mayor velocidad, tiempos de respuesta menores, poco
adecuados para uso cotidiano.
DESVENTAJA IMPORTANTE: cuando desaparecen los electrones (el voltaje) pueden confundirse entre
dos estados, o no se puede recuperar la información. Mientras más cantidad de estados la diferenciación
entre ellos es menor.
Almacenamiento
Agrupación de discos.
Es lo más básico donde se pueden agrupar una cantidad finita de discos rígidos o discos de estado
sólido. Un cliente puede acceder a un NAS y montar la información que está en ella en su directorio.
Dentro de NAS generalmente hay una matriz de disco organizada de alguna manera, el orden común
es a través de un RAID, conjunto de discos que tiene una función global.
↓
Deriva de este → DAS (Direct Attached Storage) almacenamiento adjunto directo cuando lo
conecto a la NAS desde un puerto usb.
Un poco más flexible, pero un poco más compleja. En vez de conectarse por la red utiliza protocolos
de almacenamiento propietarios.
SAN divide servidores, procesamiento de datos, gestores de contenido (procesamiento y memoria
RAM), del almacenamiento físico.
Define, este servidor puede tener acceso a este storage y el otro servidor solamente de lectura al
otro storage.
Flexibilidad de escalar recursos respecto a servicios es lo que hace que sea una de las más usadas.
En lo que se conoce como la nube.
Los recursos de los servidores pueden asignarse de forma dinámica (permitir o prohibir).
Permiten clusters de servers con múltiples storages.
Buses FC o con conexiones de alta velocidad.
Otros factores, como virtualización, gerenciamiento de recursos, de servicios que hacen a toda una
infraestructura.
Realiza entre varios discos físicos agrupaciones lógicas que pueden llegar a incrementar la
confiabilidad de un sistema o a incrementar la velocidad del sistema. Se puede dar:
Por HARDWARE: dispositivo NAS, que dentro tiene un controlador que hace que todos los discos
de ese NAS al conectarlo a una computadora, lo reconozca como un solo disco rígido → 1 disco logico (los
4 fisicos) → STRIPING.
Por SOFTWARE.
Nivel 1+0: los discos se duplican en parejas y luego se distribuyen, mirroring + striping.
Nivel 0+1: se distribuye en bandas y luego se duplica * striping + mirroring.
Archivos
Todas las aplicaciones requieren almacenar y recuperar información pero existen diferentes
problemas o limitaciones.
Mientras un proceso está en ejecución, ¿puede almacenar información? Si puede pero una cantidad
limitada de información, dentro de su propio espacio de direcciones.
¿El mantenimiento de la info dentro del espacio de direcciones se conserva en el tiempo? Cuando el
proceso termina la información limitada se pierde. Se pierde, la manera de hacerle frente es un
almacenamiento externo (cuando se requiere conservar esa información).
¿Qué pasa si hay una falla en la compu/servidor y se termina el proceso? Hay métodos para recuperar
info, pero lo q esta en si en memoria ante una falla se pierde
¿Qué pasa si varios procesos desean acceder a cierta información al mismo tiempo? Si pueden acceder
pero no exactamente al mismo tiempo (milisegundos de diferencia). La información debe ser
independiente de los procesos.
¿Qué es un ARCHIVO?
Estructura de datos que la genera el sistema operativo - bloque de info - creados por el proceso -
tienen datos lógicos definidos por el usuario
4 definiciones:
Es una unidad lógica - Los procesos son los que pueden efectuar operaciones sobre los archivos - se
almacenan en un medio no volátil - los archivos tienen info que está relacionada al archivo en sí la
existencia del archivo es lógica y está dispersa físicamente en el disco Los archivos son la estructura
empleada por el sistema operativo para almacenar información en un dispositivo físico como un disco
duro, un pendrive, un CD-ROM. Con todas las herramientas y programas existentes se puede acceder a
estos archivos para ver su contenido o modificarlo. La base del sistema de archivos de Linux, es
obviamente el archivo o archivo
Vision fisica → como está almacenado, disperso o ordenado en memoria secundaria la vision fisica
del archivo se componen por bloques que asu vez pueden estar dentro del espacio físico de un disco o
distribuido,en la vision lógica esta todo ordenado por nombre ruta podemos ver donde esta q contiene q
programa las abre
Archivo de 200M y tengo bloques de 1K → archivo distribuido en 2mil bloques y esos bloques
pueden estar en distintos lugares en SSD (unidad de estado sólido) no hay un gran problema con esta
fragmentación pero un HDD (unidad de disco duro) si
SISTEMA OPERATIVO: visión física ligada a dispositivos. Conjunto de bloques (como se encuentra
almacenado verdaderamente).
Para su buena construcción se definen 3 preguntas:
Los archivos son administrados por el sistema operativo. La manera en que se estructuran,
denominan, abren, utilizan, protegen, implementan y administran son tópicos fundamentales en el diseño
de sistemas operativos. La parte del sistema operativo que trata con los archivos se conoce como sistema
de archivos.
Sistemas de archivos
Es la forma en que se almacenan los archivos y directorios, administra los espacios y determina la
forma en que todo sea eficiente.
1. tamaño
2. dirección
3. estado
4. tipo
“Métodos de acceso” relacionados con la manera de acceder a los datos almacenados en archivos.
“Administración de archivos” referida a la provisión de mecanismos para que los archivos sean
almacenados, referenciados, compartidos y asegurados.
“Administración del almacenamiento auxiliar” para la asignación de espacio a los archivos en los
dispositivos de almacenamiento secundario.
“Integridad del archivo” para garantizar la integridad de la información del archivo.
En algunos sistemas (como UNIX) las extensiones de archivo son sólo convenciones y no son
impuestas por los sistemas operativos. En esos casos la extensión es solo parte del nombre, si es
ejecutable o no y con qué programas se lo define dentro de los atributos. En cambio en otros sistemas
(como WINDOWS) las extensiones son muy importantes, definen cómo se ejecutarán.
ATRIBUTOS
Todo archivo tiene un nombre y sus datos. Además, todos los sistemas operativos asocian otra
información con cada archivo; por ejemplo, la fecha y hora de la última modificación del archivo y su
tamaño. A estos elementos adicionales les llamaremos atributos del archivo. Los principales y que si o si
tienen todos:
Los primeros cuatro atributos se relacionan con la protección del archivo e indican quién puede
acceder a él y quién no.
OPERACIONES DE ARCHIVOS
Los archivos existen para almacenar información y permitir que se recupere posteriormente.
Distintos sistemas proveen diferentes operaciones para permitir el almacenamiento y la recuperación. A
continuación se muestra un análisis de las llamadas al sistema más comunes relacionadas con los archivos.
Muchas veces no vemos todas las operaciones que se realizan dentro diariamente.
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.
El directorio un archivo especial que agrupa otros archivos de una forma estructurada. Es un
conjunto de archivos, que a su vez pueden contener otros directorios. Los directorios también poseen
permisos, y eso es muy importante para evitar que los usuarios sin experiencia, borren o modifiquen algo
que no deban. El árbol de directorios nos ayuda a saber dónde se encuentra un archivo.
ANTES
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, con nombres para identificarlos.
Las ventajas de este esquema son su simpleza y la habilidad de localizar archivos con rapidez;
después de todo, sólo hay un lugar en dónde buscar. A menudo se utiliza en dispositivos incrustados
simples como teléfonos, cámaras digitales y algunos reproductores de música portátiles. Tener un solo
nivel es adecuado para aplicaciones dedicadas simples (e incluso se utilizaba en las primeras computadoras
personales), pero para los usuarios modernos con miles de archivos, sería imposible encontrar algo si todos
los archivos estuvieran en un solo directorio.
DESPUÉS
Sistema 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. La
capacidad de los usuarios para crear un número arbitrario de subdirectorios provee una poderosa
herramienta de estructuración para que los usuarios organicen su trabajo. Por esta razón, casi todos los
sistemas de archivos modernos se organizan de esta manera.
El directorio raíz es la base para todo el árbol de directorios, es allí donde están contenidos todos los
directorios del sistema.
CUADRADO simboliza DIRECTORIO
CÍRCULO simboliza ARCHIVOS
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.
Los nombres de ruta absolutos → muestra toda la ruta a un archivo → siempre empiezan en el
directorio raíz y son únicos. En UNIX, los componentes de la ruta van separados por /. En Windows el
separador es \. En MULTICS era >.
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). el path relativo a un determinado directorio,
por ejemplo si no encontramos en el directorio /home, el path relativo al archivo Carta.txt es luis/Carta.txt
Elementos sistema de archivos: 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.
Para gestionar qué bloques van con que archivo se usan varios métodos:
ASIGNACIÓN CONTIGUA
Almacena cada archivo como una serie contigua de bloques. Se lleva un registro de 2 números:
1. Donde inicia
2. Tamaño del archivo (nos permite saber dónde termina).
Ejemplo:
Por desgracia, la asignación contigua también tiene una desventaja ligeramente significante: con el
transcurso del tiempo, los discos se fragmentan. Al principio esta fragmentación no es un problema, ya que
cada nuevo archivo se puede escribir al final del disco, después del anterior. Sin embargo, en un momento
dado el disco se llenará y será necesario compactarlo, lo cual es muy costoso o habrá que reutilizar el
espacio libre de los huecos. Para reutilizar el espacio hay que mantener una lista de huecos, cuando se cree
un nuevo archivo será necesario conocer su tamaño final para poder elegir un hueco del tamaño correcto
y colocarlo.
No se pierde espacio por fragmentación (excepto por la fragmentación interna en el último bloque)
y solo es necesario llevar un solo valor de registro: Cual es el siguiente bloque físico que corresponde.
Físicamente, los bloques se encuentran distribuidos de forma dispersa en disco, lo que le permite
crecer sin problemas.
Por otro lado, aunque la lectura secuencial un archivo es directa, el acceso aleatorio es en extremo
lento. Para poder encontrar un archivo determinado se deben recorrer todos uno por uno hasta llegar al
deseado (lento).
ASIGNACIÓN DE LISTA ENLAZADA UTILIZANDO UNA TABLA DE MEMORIA
Ambas desventajas de la asignación de lista enlazada se pueden eliminar si tomamos la palabra del
apuntador de cada bloque de disco y la colocamos en una tabla en memoria. El -1 no es un número de
bloque válido solo nos indica dónde termina cada archivo. Dicha tabla en memoria principal se conoce
como FAT (File Allocation Table, Tabla de asignación de archivos).
La principal desventaja de este método es que toda la tabla debe estar en memoria todo el tiempo
para que funcione.
Consiste en asociar a cada archivo una estructura de datos conocida como i-nodo a nodo índice. La
cual lista atributos y las direcciones de disco de los bloques que componen el archivo. Dado el nodo-i,
entonces es posible encontrar todos los bloques del archivo.
Ventaja: solo está en memoria cuando el archivo está abierto y por lo general ocupa menos espacio
que FAT y más eficiente para discos grandes.
Un nodo-i de ejemplo:
IMPLEMENTACIÓN DE DIRECTORIOS
La función principal del sistema de directorio es asociar el nombre ASCII del archivo a la información
necesaria para localizar los datos.
a. DIRECTORIO SIMPLE (windows): contiene entradas de tamaño fijo, con las direcciones de
disco y los atributos en la entrada de directorio.
b. DIRECTORIO CON NODOS (Unix): un directorio en el que cada entrada sólo hace referencia
a un nodo-i.
El desperdicio de espacio para entradas de archivos de tamaño fijo puede ser un problema. La
solución es permitir una longitud variable. Dos maneras de manejar nombres de archivos largos en un
directorio: Tres archivos:
1. sexto-proyecto
2. personaje
3. ave
1) EN LÍNEA:
2) EN UN HEAP:
ARCHIVOS COMPARTIDOS
Cuando es necesario tener un archivo compartido en dos directorios distintos que pertenezcan a
distintos usuarios.
B y C son directorios. Ahora puedo ver el archivo desde C o desde B, si eliminara C el propietario
seguiría figurando como C solo que ahora tendrá un puntero en B (tiene más padres).
La idea básica de aquí es mantener un registro de lo que va a realizar el sistema de archivos antes de
hacerlo, por lo que si el sistema falla antes de poder realizar su trabajo planeado, al momento de re-
arrancar el sistema puede buscar en el registro para ver lo que estaba ocurriendo al momento de la falla y
terminar el trabajo.
Ejemplo: estábamos editando un archivo y se corta la luz, cuando vuelve la luz busca inconsistencias
y repara.
Idea principal ABSTRACCIÓN, el propósito de un VFS es permitir que las aplicaciones cliente tengan
acceso a diversos tipos de sistemas de archivos concretos de una manera uniforme. Puede ser utilizada
para tender un puente sobre las diferencias en los sistemas de archivos de Windows, de Mac OS y Unix, de
modo que las aplicaciones pudieran tener acceso a archivos en los sistemas de archivos locales de esos
tipos sin tener que saber a qué tipo de sistema de archivos están teniendo acceso.
Linux puede “montar” en su estructura de directorio diferentes sistemas de archivos (FS). Posición
del sistema de archivos virtual:
➔ una CPU puede escribir cierto valor en una palabra de memoria y después
puede volverla a leer esa palabra y obtener un valor distinto (tal vez porque otra
CPU la cambio
UMA:
Acceso uniforme a memoria, cada uno de los procesadores accede a memoria principal a la misma
velocidad (leer cada palabra de memoria a la misma velocidad).
UMA.1: HARDWARE DE MULTIPROCESADOR CON ARQUITECTURA DE BUS:
● Cada una de las CPU accede a un bus y tenemos una memoria compartida.
● Cuando cada una de las CPU a su vez tiene un caché (pueden ser incluso de 2 niveles).
● Cada CPU tiene a su vez su propia porción de memoria privada y hay una parte de memoria
compartida.
UMA.2: INTERRUPTORES DE BARRAS CRUZADAS: para lograr algo mejor que con el bus, se necesita un
tipo diferente de interconexión → conmutador o interruptor de barras cruzadas (conecta n CPU a k
memorias).
UMA.3: REDES DE COMUNICACIÓN MULTIETAPA: dos entradas a y b, y dos salidas X e Y. Cada CPU
puede acceder a cada uno de los módulos de memoria agregando etapas. Cada uno de los mensajes tiene
4 partes.
NUMA:
Acceso a memoria no uniforme, cada uno de los procesadores trabajan a su propia velocidad y se
accede a través de una red de computación como una red LAN de alta velocidad.
Un solo espacio de direcciones visibles para las CPU.
El acceso a la memoria remota es mediante instrucciones LOAD y STORE.
El acceso a la memoria remota es más lento que el acceso a la memoria local.
Todos los nodos trabajan en forma conjunta para resolver un problema. Cada una de las memorias
tiene su propia velocidad de acceso.
CADA CPU TIENE SU PROPIO SO: cada CPU accede a una porción de memoria donde cada una de ellas
tiene sus propios datos. Divide estáticamente la memoria y guarda su propia copia privada del SO. Las n
CPU operan como n CPUs independientes. Actualmente no es muy utilizado.
MULTIPROCESADORES MAESTRO ESCLAVO: hay una CPU que ejecuta instrucciones de SO, las demás
CPU solo ejecutan procesos de usuario. Esa CPU puede transformarse en un cuello de botella. Esta
arquitectura solo funciona para pequeños sistemas multiprocesadores (pocas CPU).
MULTIPROCESAMIENTO SIMÉTRICO: elimina la asimetría anterior hay una copia del SO en memoria
por lo que cualquier CPU puede ejecutar.
El problema es si 2 CPU están ejecutando código del SO al mismo tiempo. SOLUCIÓN: cada CPU puede
adquirir su bloqueo por región crítica de SO cuando la usa (cuidado para evitar interbloqueo).
Exclusión mutua es parecido, la TSL debe primero bloquear el bus, puede fallar si el bus no se puede
bloquear. SOLUCIÓN: proporcionar a cada CPU su propia variable de bloqueo privada para evaluarla.
TIEMPO COMPARTIDO: se establecen listas de procesos por cada nivel de prioridad y se van ejecutando
en ese orden en las CPU disponibles.
ESPACIO COMPARTIDO: los hilos están relacionados entre sí de alguna manera. Divide la CPU para que
atiendan hilos que están relacionados. Solo puede atender esos hilos relacionados cuando hay CPUs
suficientes para atender al mismo.
2 MULTICOMPUTADORAS
Cada CPU tiene su propia memoria y están conectadas a través de una red
de alta velocidad. Más simples desde el punto de vista del procesamiento.
➔ No comparten memoria.
El nodo básico consiste en una CPU, memoria, disco e interfaz de red. La CPU puede ser
multiprocesador con múltiples chips de varios núcleos. A menudo se conectan cientos o miles de nodos
haciendo sistemas de computación paralela de alto rendimiento para problemas complejos.
TECNOLOGÍA DE INTERCONEXIÓN: cada nodo tiene una interfaz de red con cables o fibras a switchs
en estrella o en diversas topologías.
¿Cómo es el SOFTWARE?
Software de comunicación de bajo nivel (Interfaz de comunicación de nodo a red) y a nivel de usuario
(comparación entre llamadas con bloqueo y sin bloqueo).
Llamada a procedimiento remoto RPC, aspectos de implementación.
MEMORIA COMPARTIDA DISTRIBUIDA:
3 SISTEMA DISTRIBUIDO
Cada nodo es una computadora compleja (no comparten memoria), se
comunican entre sí a través de varios tipos de redes de comunicaciones.
Un sistema distribuido, SD, es una colección de procesadores que no
comparten ni memoria, ni una señal de reloj (débilmente acoplados). En lugar de
ello, cada procesador tiene su propia memoria local. Los procesadores se
comunican entre sí a través de varios tipos de redes de comunicaciones, como
buses de alta velocidad o líneas telefónicas.
Un SD puede tener uniformidad frente a diferentes SO y su HW mediante un
nivel de SW por encima del SO. Middleware. Propone ciertas estructuras de datos
y operaciones que permiten a los procesos y usuarios que están en máquinas remotas interoperar de una
manera consistente.
TIPOS DE SO DISTRIBUIDO:
Su eficiencia no solo depende de la exactitud de los resultados de cómputo, sino también del
momento en que los entrega. La predictibilidad es su característica principal. A diferencia de los sistemas
tradicionales, que tienden a distribuir en forma equitativa los recursos disponibles entre las diferentes
tareas a ejecutar, los sistemas de tiempo real deben asegurar la distribución de recursos de tal forma que
se cumplan los requerimientos de tiempo.
Además de datos correctos debe cumplir un periodo de tiempo específico, después de ese periodo
puede que ese resultado obtenido no sirva, ejemplo: auto (sensores).
SISTEMA INTEGRADO → Dentro de uno mayor
Ejemplo: auto autónomo (existen sensores que interactúan todo el tiempo, de los cuales el usuario
no es consciente).
SISTEMAS DE SEGURIDAD CRÍTICA →La operación incorrecta genera una catástrofe
Ejemplos: sistema de control de vuelos, sistema de control de trenes, sistema de control de la
seguridad de una central atómica.
CLASIFICACIÓN:
1. ESTRICTA respecto a la criticidad y el tiempo para ejecutar tareas. Ejemplo: reactor nuclear
(dispositivo donde se produce una reacción en cadena controlada).
2. NO ESTRICTA se limitan a garantizar que las tareas de tiempo real críticas tengan mayor prioridad
y que retengan es prioridad. Ejemplo: información meteorológica con 24 hs de anticipación.
Único proceso y a menudo bastante simple. Ejemplo: control de un sistema antibloqueo de frenos.
Son de pequeño tamaño.
De bajo costo y producción en masa.
Requisitos de temporización específicos.
¿Cómo se planifica?
PLAZO PREFIJADO para la ejecución de una tarea.
Todos requieren la CPU en intervalos constantes o periodos.
Cada proceso:
➢ Tiempo de procesamiento fijo “t”.
➢ “d” plazo antes del cual debe ser servido por la CPU.
➢ Periodo “p” tiempo en el que se hace un cambio de contexto (apropiación).
0≤t≤d≤p
ALGORITMOS DE PLANIFICACIÓN:
1. PLANIFICACIÓN POR PRIORIDAD MONÓTONA EN TASA:
a) Utiliza política de prioridad estática con apropiación (cambio de contexto), es decir que cada
proceso tenga una prioridad y esta sea única (estática).
b) Un proceso con mayor prioridad desalojada a uno de menor prioridad.
c) Política: más corto el periodo → mayor es la prioridad. Considera que se solicita más a menudo. RT
Linux.
a) Cuanto más cerca esté de finalizar mayor prioridad va a tener (dinámica), las prioridades no son
fijas.
b) Política: cuando un proceso pasa a ser ejecutable, debe anunciar sus requisitos de plazos al
sistema.
c) No requiere que los procesos sean periódicos.
4. PLANIFICACIÓN EN PTHREAD:
Rootkit: este malware está diseñado para modificar el sistema operativo a fin de crear una puerta
trasera. Los atacantes luego utilizan la puerta trasera para acceder a la computadora de forma remota. La
mayoría de los rootkits aprovecha las vulnerabilidades de software para realizar el escalamiento de
privilegios y modificar los archivos del sistema. También es común que los rootkits modifiquen las
herramientas forenses de supervisión del sistema, por lo que es muy difícil detectarlos. A menudo, una
computadora infectada por un rootkit debe limpiarse y reinstalarse.
Spyware: este malware está diseñado para rastrear y espiar al usuario. El spyware a menudo incluye
rastreadores de actividades, recopilación de pulsaciones de teclas y captura de datos. En el intento por
superar las medidas de seguridad, el spyware a menudo modifica las configuraciones de seguridad. El
spyware con frecuencia se agrupa con el software legítimo o con caballos troyanos.
Troyano: un troyano es un malware que ejecuta operaciones maliciosas bajo la apariencia de una
operación deseada. Este código malicioso ataca los privilegios del usuario que lo ejecuta. A menudo, los
troyanos se encuentran en archivos de imagen, archivos de audio o juegos. Un troyano se diferencia de un
virus en que se adjunta a archivos no ejecutables.
Ransomware: este malware está diseñado para mantener cautivo un sistema de computación o los
datos que contiene hasta que se realice un pago. El ransomware trabaja generalmente encriptando los
datos de la computadora con una clave desconocida para el usuario. Algunas otras versiones de
ransomware pueden aprovechar vulnerabilidades específicas del sistema para bloquearlo. El ransomware
se esparce por un archivo descargado o alguna vulnerabilidad de software.
● Describa los diferentes mecanismos de autenticación. Qué SO vistos utilizan autenticación por
contraseñas y cuáles biométricos. ¿Es posible utilizar sistemas biométricos en sistemas móviles?
La mayoría de los métodos para autenticar usuarios cuando tratan de iniciar sesión se basan en
uno de tres principios generales, que a saber identifican:
1. Algo que el usuario conoce, por ejemplo, mediante una contraseña.
2. Algo que el usuario tiene, por ejemplo, mediante un objeto que introduce en la
computadora.
3. Algo que el usuario es, por ejemplo, mediante un escáner biométrico.
Verificación de voz
En los sistemas de reconocimiento de voz se intenta identificar una serie de sonidos y sus
características para decidir si el usuario es quien dice ser.
Verificación de escritura
Aunque la escritura (generalmente la firma) no es una característica estrictamente biométrica, no
se busca entender lo que el usuario escribe en el lector, sino autenticarlo basándose en ciertos rasgos tanto
de la firma como de su rúbrica.
Verificación de huellas
Típicamente la huella dactilar de un individuo es un patrón bastante bueno para determinar su
identidad de forma inequívoca, ya que está aceptado que dos dedos nunca poseen huellas similares.
Actualmente, este método de verificación se utiliza mucho en sistemas operativos móviles como Android
o iOS
Al crear una política de seguridad, debemos tener en cuenta que debe ser simple y fácil para todos
los usuarios. El objetivo de la política debe ser proteger los datos manteniendo intacta la privacidad de los
usuarios. Debe desarrollarse en torno a estos puntos:
Accesibilidad al sistema
Derechos de instalación del software en el sistema
Permiso de datos
Recuperación de fallas
Al desarrollar una política de seguridad, un usuario debe utilizar solo aquellos servicios para los que
se ha concedido permiso. Todo lo que no esté permitido debe restringirse en la política.
Una contraseña es una forma de autentificación que utiliza información secreta para controlar el
acceso hacia algún recurso, normalmente debe mantenerse en secreto ante aquellos a quien no se les
permite el acceso. Algunos de los sistemas operativos que utilizan este método de autenticación son,
por ejemplo, Windows o Unix.
En cualquier sistema, la contraseña juega un papel muy importante en términos de seguridad. Una
contraseña deficiente puede hacer que los recursos de una organización se vean comprometidos. Todos
los miembros de la organización deben cumplir la política de protección de contraseña, desde los usuarios
hasta el nivel de administrador. Siguiendo los puntos anteriores podemos asegurar que la contraseña es
segura.
Para la política de creación:
Un usuario no debe usar la misma contraseña para todas las cuentas de una organización
Todas las contraseñas relacionadas con el acceso no deben ser iguales
Cualquier cuenta a nivel del sistema debe tener una contraseña diferente a cualquier otra cuenta
del mismo usuario.
Figura 2. Cuando el sistema operativo en una máquina virtual ejecuta una instrucción que sólo se puede
ejecutar en modo de kernel, se atrapa en el hipervisor si hay tecnología de virtualización presente. [2]
El otro tipo de hipervisor es el de tipo 2 (Figura 3) que es un programa de usuario que se ejecuta
en el entorno del sistema operativo que se ejecuta en el hardware, el cual se denomina sistema operativo
anfitrión. El sistema operativo que se ejecuta dentro del hipervisor se denomina sistema operativo
huésped como se muestra en la figura.
Cabe aclarar, que las máquinas virtuales actúan de la misma forma que el hardware real. El
hipervisor es el encargado de brindarnos esa “ilusión”.
Para una mejor comparación de ambos visores, se puede observar la Figura 4.
Antes mencionamos mucho las máquinas virtuales, pero no dimos ninguna definición exacta de
estas. Las MV nos ofrecen una rápida y buena solución al tener instalados nuevos programas de aplicación,
es decir, son un entorno que nos permiten simular un sistema de computación. Es como un “duplicado”
de una máquina física, pero con cierta limitación de recursos.
Pero, necesitamos un nexo que permita la comunicación entre el sistema operativo anfitrión y un
hipervisor, es para ello que está la paravirtualización.
Entonces, ¿qué es la paravirtualización?
Como se dijo anteriormente, es un método que le permite al software que se está ejecutando en
el sistema virtual, omitir la interfaz virtual y ejecutar operaciones del hardware real del sistema. Entonces,
el software que se está ejecutando en el entorno virtual, con la paravirtualización, accede a los recursos
reales.
Por lo tanto, esta técnica hace referencia a la comunicación entre el sistema operativo huésped y
el hipervisor, para que así mejore el rendimiento y la eficiencia.