Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas de Operaciones
Sistemas de Operaciones
Universidad de Oriente
Extensión Anaco
Sistemas operativos
Profesora: Bachiller:
Fecha: 26/04/2021
Estructura de los sistemas operativos
Sistemas monolíticos
Este tipo de organización es, con diferencia, la más común. El sistema operativo
se escribe como una colección de procedimientos, cada uno de los cuales puede
llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cada
procedimiento del sistema tiene una interfaz bien definida en términos
de parámetros y resultados, y cada uno de ellos es libre de llamar a cualquier
otro, si éste último proporciona un cálculo útil para el primero.
Para construir el programa objeto real del sistema operativo siguiendo este punto
de vista, se compilan de forma individual los procedimientos, o los ficheros que
contienen los procedimientos, y después se enlazan en un sólo fichero objeto con
el enlazador. En términos de ocultación de la información, ésta es prácticamente
nula: cada procedimiento es visible a los demás (en contraste con una estructura
con módulos o paquetes, en la que la mayoría de la información es local a un
módulo, y donde sólo los datos señalados de forma expresa pueden ser llamados
desde el exterior del módulo).
Modelo cliente-servidor
Una tendencia de los sistema operativos modernos es la de trasladar el código a
capas superiores, y eliminar la mayor parte posible del sistema operativo para
mantener un núcleo mínimo. El punto de vista usual es el implantar la mayoría de
las funciones del sistema operativo como procesos de usuario. Para solicitar
un servicio, como la lectura de un bloque de cierto fichero, un proceso de usuario
(denominado en este caso proceso cliente) envía la solicitud a un proceso lt
servidor, que realiza el trabajo y devuelve la respuesta.
Lo único que hace el núcleo es controlar la comunicación entre los clientes y los
servidores. Al separar el sistema operativo en partes, cada una de ellas controla
una faceta del sistema, como el servicio a ficheros, servicio a procesos, servicio a
terminales o servicio a la memoria; cada parte es pequeña y controlable. Además,
puesto que todos los servidores se ejecutan como procesos en modo usuario, y no
en modo núcleo, no tienen acceso directo al hardware.
Un sistema operativo es una complicada y enorme agrupación de rutinas de software que por lo
general se divide en pequeños módulos. Los principales módulos de un sistema operativo son:
1. El administrador de procesos.
5. El administrador de ficheros.
6. El sistema de protección.
8. El intérprete de comandos.
Al interior de los sistemas operativos existen diferentes estructuras y son las siguientes:
Consiste en un macroprograma con miles de líneas de código. No hay una estructura interna
exacta entre los módulos del sistema operativo. Emplean técnicas de programación modular.
Además es complejo su mantenimiento y actualización. Allí todos los elementos que la integran
están muy enlazados. No es posible ninguna clase de misterio o secretos en la información. Su
comportamiento es de un solo proceso. Disponen de una buena capacidad y funcionamiento
hardware.
Estructura modular
Se realiza una división del núcleo en módulos con respectivas funciones bien establecidas. De
acuerdo a la metodología podemos mencionar:
En ella se ordena el sistema operativo como una jerarquía de estratos o capas. Cada capa se
integra empleando únicamente aquellas acciones que le brindan el nivel instantáneamente inferior.
Se utilizan métodos modulares y de diseño top-down. La limpieza y comprobación del sistema es
mucho más simple. La mayor complicación está en establecer las capas. Los procedimientos al
tener que pasar por varias capas, resultan menos eficientes u óptimos.
Máquinas virtuales
La definición de una máquina virtual es diseñar sobre un equipo real distintas máquinas virtuales
en las que puedan avanzar sistemas operativos diferentes al mismo tiempo.
Estructura de micronúcleo
Consiste en un núcleo mínimo que desarrolla las funciones mínimas que debe realizar un núcleo.
Las demás funciones se diseñan como procesos del sistema. Estos procesos del sistema se llevan
a cabo en modo usuario. Cuando un usuario demanda un servicio al núcleo este transmite el
control al proceso del sistema respectivo. Cuando finaliza, el núcleo transmite la respuesta al
usuario. El núcleo efectúa una transmisión de mensajes.
https://www.loyvan.com/informatica/cuales-son-las-estructuras-de-un-sistema-operativo/
Hoy en día todos manejamos un ordenador, o un teléfono inteligente, tableta o demás, todos ellos
tienen en común el uso de un sistema operativo, el cual es el encargado de gestionar los procesos
y tareas que se llevan acabo dentro del dispositivo en tiempo real. En pocas palabras una de las
funciones del S.O. es gestionar los procesos, asignar recursos a los procesos, permitir el
intercambio de información entre los mismos facilitando la sincronización de procesos, si, si, hasta
yo me mareé con puro proceso.
Según definicion.mx un proceso es una secuencia de pasos dispuesta con algún tipo de lógica que
se enfoca en lograr algún resultado específico. Esto es cierto, si hablamos de nuestro ordenador,
todo programa abierto cuenta como proceso o tarea mientras se este ejecutando, por ejemplo el
simple reproductor de música, su tarea es la reproducción de sonido, para ello realiza varias
acciones desde buscar el archivo en memoria, decodificar la información del audio, reproducir el
sonido, entre otras, todos esto son pasos que tiene que seguir el programa y su resultado final es
que nosotros escuchemos nuestra canción favorita sin mas.
En resumidas cuentas podemos definir un proceso como un programa en ejecución, sin mas ni
menos ni tanto texto (lo siento pero era necesario dar el concepto técnico). Ahora cada proceso
requiere de dos componentes básicos, los cuales son la memoria de trabajo (RAM) y la CPU para
funcionar.
Ahora los procesos que se ejecutan internamente dentro de nuestro ordenador tienen 3 estados
basicos:
Proceso Listo
Proceso en ejecución
Proceso Bloqueado
Nuevo: Se dice que un proceso está en estado de nuevo cuando apenas se encuentra en proceso
de crearse.
Listo: Un proceso está en estado de listo, generalmente esperando su turno para usar la CPU.
En ejecución: Se dice que un proceso está en estado de ejecución, si en ese momento esta usando
la CPU ejecutando alguna serie de instrucciones.
Bloqueado: Se dice que un proceso está en estado de bloqueado, si espera que ocurra algo, como
por ejemplo, la terminación de una E/S, para así poder ponerse en marcha.
Pongamos un ejemplo, digamos que he creado un programa que sume 2 números, entonces este
programa pasara por los 5 estados al ejecutarse de la siguiente manera:
Usemos por decir este código escrito en pyhton para ejemplificar esto:
a=7
b=9
resultado=7+9
nombre=input("Ingrese su nombre")
print(resultado)
Nuevo: al ejecutarse este entrara en el estado de nuevo, pues el S.O. reconoce que el usuario a
llamado a ejecutarse un proceso, en este estado el proceso no esta en memoria, solo se recibe la
instrucción de que se requiere consecuentemente cargar los datos del programa del disco duro a
la memoria principal, posteriormente reservar la memoria necesaria para este programa. En pocas
palabras es cuando se le indica al sistema operativo que existe un proceso que necesita ser
ejecutado y debe proveerle los recursos para ejecutarlo.
Listo: en este caso el proceso o programa ya estará cargado en memoria y simplemente esta
esperando su turno para pasar sus instrucciones al procesador para llevarlas a cabo.
Ejecución: aquí se dice que ha llegado el turno del programa para usar el procesador (lo están
despachando, imaginemos todo esto como una tienda, cada programa es un cliente, la memoria
RAM es la sala de espera y el CPU es el empleado que despacha la mercancía una vez atiende al
cliente). En este caso el CPU recibirá las instrucciones de tomar de memoria los valores de las
variables "a" y "b" sumándolas y asignando el resultado a otra variable llamada "resultado".
Terminado: Finalmente terminara el programa al mostrar los resultados y de acuerdo a como este
programado se cerrara la ventana, es decir se acabo su ejecución.
Si no sabes mucho de programación o solo te resolví puedes consultar este vídeo, esta muy bien
explicado, al menos a mi me gusto su forma de ejemplificarlo en forma practica:
Cuando un proceso pasa de un estado a otro se dice que hace una transición de estado,
describamos estas transiciones:
Despertar (Bloqueo->Listo): La única transición posible en nuestro modelo básico ocurre cuando
acaba una operación de E/S (o alguna otra causa por la que esté esperando el proceso), y esta
termina pasa a el estado de listo.
De acuerdo a cosas de concurrencia y de acuerdo a la arquitectura del ordenador (si quieres saber
mas lee nuestra entrada: Concurrencia y Secuencialidad (Sistemas Operativos)) cada proceso se
ejecuta un cierto tiempo en el procesador, es decir un proceso permanece durante digamos
1nanosegundo ejecutando sus instrucciones y después descansa y le sede el lugar a otro proceso,
haciendo esto miles de veces por segundo se crea la ilusión de que todo funciona al mismo
tiempo. Habiendo explicado esto pongamos un ejemplo:
Supongamos que mandamos a imprimir desde word (tal vez debería decir un programa de
impresión pero para hacerlo fácil quedemosnos asi) entonces pasara lo siguiente:
Admitido (Nuevo->Listo):
Estado nuevo: word le dice al S.O. que necesita imprimir, para lo cual debe llamar a un subproceso
del mismo programa. El sistema operativo por lo tanto deberá hacer espacio para este subproceso
en memoria y proveerle de los recursos necesarios.
Listo: Posteriormente estará cargado en memoria y estará a la espera de su turno para ejecutar
instrucciones en el CPU.
Todas las instrucciones y tareas que se realizan desde el estado de nuevo al estado de listo son
atribuidas a la Transición de Admitido.
Listo: Como ya dijimos, aquí el proceso se encuentra cargado en memoria esperando a que toque
su turno de procesar instrucciones en el CPU.
Ejecución: El sistema le ha dado paso para ocupar el CPU con sus tareas.
Como mencionábamos cada proceso tiene un tiempo determinado para usar el CPU, este es
contado y es muy corto (desde la vista humana), pues sucede todo esto en tiempo de
nanosegundos, una vez que este tiempo se haya acabado, ya sea que el proceso terminase o no lo
que estaba haciendo, deberá dejar todo donde lo dejo y dejarle el uso del CPU a otro proceso,
entonces esperara a que nuevamente toque su turno de trabajar con el procesador. A esta
transición se le denomina Tiempo excedido.
Ahora siguiendo con nuestro ejemplo para esta explicación, digamos que empezamos a imprimir
pero se acabo el papel, la impresora se detendrá y notificara al sistema, el proceso de impresión
seguirá activo pasando por la transición de Ejecución->Listo y Listo->Ejecución un par de veces,
pero al recibir la notificación de que debe esperar a que un humano ponga papel en la impresora y
al no tener que hacer durante ese tiempo (aunque seamos muy rápidos en recargar papel a la
bandeja, aun así la computadora estaría bostezando durante ese tiempo) el sistema operativo
mandara este proceso a un estado de bloqueado, esta transición se le denomina Bloqueo.
Si no te quedo claro, es la típica que aplicamos los estudiantes cuando sale el profesor del salón
mientras explicaba algo y dice "muchachos quedense aquí, tardare solo un momento", pero
sabemos que es mentira y se tardara su buen rato y le pedimos a nuestro compañero que nos
despierte cuando vuelva al salón por que nos hecharemos un sueño.
Despertar (Bloqueo->Listo):
Siguiendo con la analogía anterior, la siguiente transición es Despertar, que en nuestro caso seria
cuando vuelve el profe al salón y nuestro compañero nos despierta para despabilarnos y volver a
poner antención.
Lo mismo sucede aquí, se recibe la instrucción de que ya tenemos papel en la bandeja, el proceso
de impresión es despertado por el sistema y se prepara para tomar su turno en el CPU.
Un identificador (ID): Cada proceso debe tener un nombre o identificador, pues es posible correr 2
procesos de un mismo programa. En otras palabras es posible tener tanto 2 ventanas de un mismo
programa. Por ejemplo podemos tener abiertos 2 archivos de word, pero cada uno aunque sea un
mismo programa cuenta como un proceso diferente, es en este caso que es necesario identificar
por un identificador cual corresponde a cual.
Por ejemplo en windows, cada servicio en ejecución tiene un identificador lladamado PID (Process
Identifier) el cual por medio de una numeración identifica a cada proceso.
Prioridad: cada proceso tiene una diferente prioridad o importancia, no es lo mismo que ejecutar
un reproductor de música que el servicio de windows update (al menos no para windows, todos
sabemos que para windows son sus actualizaciones o muerte).
SEGURIDAD Y PROTECCIÓN DE LOS SISTEMAS OPERATIVOS
El Sistema operativo es normalmente solo una porción del total de software que corre en un
sistema particular. Pero el Sistema Operativo controla el acceso a los recursos del sistema. La
seguridad de los Sistemas Operativos es solo una pequeña parte del problema total de la seguridad
en los sistemas de computación, pero éste viene incrementándose en gran medida. Hay muchas
razones para que la seguridad de los Sistemas Operativos reciba especial atención hoy en día.
La evolución de los sistemas de computación, ha sido en las últimas décadas de una magnitud
asombrosa. Las computadoras se han tornado más accesibles, también se tiene un aumento en los
riesgos vinculados con la seguridad. Pero hay una cosa que se ha mantenido constante a través de
todo este tiempo, y es que los sistemas digitales se han vuelto cada vez más complejos. Los
microprocesadores se han vuelto más complejos. Los sistemas operativos se han vuelto más
complejos. Los ordenadores se han vuelto más complejos. Las redes se han vuelto más complejas.
Las redes individuales se han combinado y han aumentado todavía más su complejidad. Ejemplo
claro de ello es Internet, la gran red de computadoras, a medida que aumenta su complejidad va
tornándose más insegura.
Si tenemos en cuenta que todo software no está libre fallos, entonces un software complejo es
probable que falle y un porcentaje de estos fallos afecte a la seguridad.
También es importante mencionar que los sistemas complejos son necesariamente modulares, ya
que de otra manera no se podría manejar su complejidad. Pero el aumento de la modularidad
significa que la seguridad disminuye porque falla a menudo donde dos módulos se comunican.
La única manera razonable de probar la seguridad de un sistema es realizar evaluaciones de
seguridad en él. Sin embargo, cuanto más complejo es el sistema, más dura se vuelve la evaluación
de su seguridad. Un sistema más complejo tendrá más errores relacionados con la seguridad en su
análisis, diseño y programación. Y desgraciadamente, el número de errores y la dificultad de
evaluación no crece de acuerdo con la complejidad, crece mucho más rápido.
Cuanto más complejo es un sistema, más difícil es de entender. Hay toda clase de puntos de
vulnerabilidad -interface entre usuario y máquina, interacciones del sistema- esto crece
exponencialmente cuando no se puede mantener el sistema completo en la cabeza.
Seguridad Operacional
Existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de memoria,
CPU, y otros recursos administrados por el Sistema Operativo.
Por ejemplo, el direccionamiento de memoria asegura que unos procesos puedan ejecutarse solo
dentro de sus propios espacios de dirección. El timer asegura que los procesos no obtengan el
control de la CPU en forma indefinida.
La protección se refiere a los mecanismos para controlar el acceso de programas, procesos, o
usuarios a los recursos definidos por un sistema de computación. Seguridad es la serie de
problemas relativos a asegurar la integridad del sistema y sus datos.
Hay importantes razones para proveer protección. La más obvia es la necesidad de prevenirse de
violaciones intencionales de acceso por un usuario. Otras de importancia son, la necesidad de
asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con
las políticas fijadas para el uso de esos recursos.
Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario
incompetente. Los sistemas orientados a la protección proveen maneras de distinguir entre uso
autorizado y desautorizado.
Mecanismos y Políticas
Vigilancia
Una manera de reducir los riesgos de seguridad es tener rutinas de control en el sistema operativo
para permitir o no el acceso a un usuario. Estas rutinas interactúan con los programas de usuario y
con los archivos del sistema. De esta manera, cuando un usuario desea realizar una operación con
un archivo, las rutinas determinan si se niega o no el acceso y en caso de que el mismo fuera
permitido devuelven los resultados del proceso.
Además las rutinas de control permiten detectar los intentos de penetración al sistema y advertir en
consecuencia.
Amplificación
Como ya dijimos, los programas de vigilancia interactúan con los programas de usuario y los
archivos del sistema. A veces estos programas (los primeros) requieren de más derechos de acceso
de los que posee el usuario para realizar una operación determinada. Esto se conoce como
amplificación.
Auditoría
La auditoria normalmente es realizada en sistemas manuales “después del hecho”. Los auditores
son llamados periódicamente para examinar las transacciones recientes de una organización y para
determinar si ha ocurrido actividad fraudulenta.
El registro de auditoria es un registro permanente de acontecimientos de importancia que ocurren
en el sistema de computación. Se produce automáticamente cada vez que ocurren los eventos y es
almacenado en un área protegida del sistema.
Las auditorias periódicas prestan atención regularmente a problemas de seguridad; las auditorias al
azar ayudan a detectar intrusos.
Controles de acceso
Los derechos de acceso definen qué acceso tienen los sujetos sobre los objetos. Los objetos son
entidades que contienen información, pueden ser físicos o abstractos. Los sujetos acceden a los
objetos, y pueden ser usuarios, procesos, programas u otras entidades.
Los derechos de accesos más comunes son: acceso de lectura, acceso de escritura y acceso de
ejecución. Estos derechos pueden implementarse usando una matriz de control de acceso.
Políticas
El esquema de matriz de acceso provee el mecanismo para especificar una variedad de políticas. Se
debe asegurar que un proceso que se ejecuta en el dominio Di puede acceder sólo a aquellos
objetos especificados en la fila i.
Las decisiones de política concernientes a la protección pueden implementarse por la matriz de
acceso. Las decisiones políticas definen qué derechos deben estar incluidos en las entradas (i,j). A
veces decide el dominio de cada proceso ejecutable. Esta última política es generalmente decidida
por el sistema operativo.
Los usuarios normalmente deciden el contenido de las entradas de la matriz de acceso. Cuando un
usuario crea un nuevo objeto Oj, la columna Oj es agregada a la matriz de acceso con las entradas
de inicialización apropiadas.
Criptografía
Criptoanálisis
Criptoanálisis es el proceso de intentar regenerar el mensaje desde el texto cifrado pero sin
conocimiento de las claves de encriptación. Esta es la tarea normal de los intrusos. Si el intruso o
criptoanalista no puede determinar un mensaje desde el texto cifrado (sin la clave), entonces el
sistema de criptografiado es seguro.
Cesar
Está técnica consistía simplemente en sustituir una letra por la situada tres lugares más allá en el
alfabeto esto es la A se transformaba en D, la B en E y así sucesivamente hasta que la Z se
convertía en C.
Gronsfeld
Este método utiliza más de un alfabeto cifrado para poner en clave el mensaje y que se cambia de
uno a otro según se pasa de una letra del texto en claro a otra.
Es decir que deben tenerse un conjunto de alfabetos cifrados y una forma de hacer corresponder
cada letra del texto original con uno de ellos.
RSA
En los sistemas tradicionales de cifrado debe comunicarse una clave entre el emisor y el receptor
del mensaje, el problema aquí es encontrar un canal seguro para transmitir dicha clave. Este
problema viene a resolverse en los sistemas de clave pública la clave de cifrado, pues un tiempo
enormemente de ordenador es necesario para encontrar una transformación de descifrado a partir
de la de cifrado.
DES
DES fue desarrollado por IBM a mediados de los setenta. Aunque tiene un buen diseño, su tamaño
de clave de 56 bits es demasiado pequeño para los patrones de hoy.
DES (Data Encryption Standard) es un mecanismo de encriptación de datos de uso generalizado.
Hay muchas implementaciones de hardware y software de DES. Este transforma la información de
texto llano en datos encriptados llamados texto cifrado mediante el uso de un algoritmo especial y
valor semilla llamado clave. Si el receptor conoce la clave, podrá utilizarla para convertir el texto
cifrado en los datos originales. Es un mecanismo de encriptado simétrico.
Esta técnica propuesta por Donald Rivest. Es más un intento de esquivar las restricciones a la
criptografía en EE.UU. (y otros países) que una propuesta razonable debido al tamaño de los
mensajes resultantes.
El término inglés “winnowing” se tomará como aventar es decir separar el grano de la paja y el
término “chaffing” por el castellano empajar (cubrir o rellenar con paja). La idea básica consiste en
mezclar la información real (grano) con otra de relleno (paja) de modo que sea imposible
separarlas excepto para el destinatario.
SKIPJACK
Este algoritmo fue descalificado por el gobierno de Estados Unidos. Algunos detalles sobre el
algoritmo en sí y sus aplicaciones en la práctica a los chips Clipper y Capstone.
Skipjack fue desarrollado por la NSA inicialmente para los chips Clipper y Capstone. Su diseño
comenzó en 1985 y se completó su evaluación en 1990.
BÍFIDO
El método Bífido es un cifrado fraccionario. Es decir que cada letra viene representada por una o
más letras o símbolos, y donde se trabaja con estos símbolos más que con las letras mismas.
WLBYKYAAOTB
Este método altera la frecuencia de los caracteres a diferencia de lo que ocurre por ejemplo con
los cifrados monoalfabéticos. Admite algunas variaciones como por ejemplo dividir la lista en 3,4,...,
n partes.
Cifrado exponencial
Es un sistema basado en la exponenciación modular, debido Pohlig y Hellman (1978). Este
método es resistente al criptoanálisis.
Blowfish
Este algoritmo realiza un cifrado simple en 16 ciclos, con un tamaño de bloque de 64 bytes para
un total de 448 bits. Aunque hay una fase compleja de la inicialización. El cifrado de datos es muy
eficiente en los microprocesadores grandes.
Un sistema criptográfico de clave pública es tan seguro como su clave. La distribución de las claves
debe ser manejada sobre canales altamente seguros. Esto suele consumir mucho tiempo. A veces,
tales canales de seguridad no están disponibles.
Los sistemas de clave pública no tienen tal problema en la distribución de la clave. En el sistema
criptográfico convencional el cifrado y descifrado están íntimamente relacionados. Estos sistemas
usan una clave encriptada, E, y una clave descifrado, D, de manera que no es computacionalmente
viable (dentro de un tiempo razonable) determinar E a partir de D.
De esta forma, E puede ser hecha pública sin comprometer la seguridad de D. Esto simplifica el
problema de la distribución de la clave. Cada usuario genera una clave de cifrado y una de
descifrado, la clave de cifrado está hecha pública y la clave cifrada se mantiene secreta. Así
cualquiera puede enviar un mensaje encriptado a un usuario particular (porque la clave de cifrado
es pública), pero solo aquellos usuarios pueden descifrar el mensaje (porque la clave de descifrado
es privada). E es llamada una clave pública y D es llamada una clave privada.
Firmas digitales
Para que una firma digital sea aceptada como sustituta de una firma escrita debe ser:
· Fácil de autentificar (reconocer) por cualquiera.
· Producible únicamente por su autor.
En los cripto-sistemas de clave pública el procedimiento es:
· El remitente usa la clave privada para crear un mensaje firmado.
· El receptor:
o Usa la clave pública del remitente para descifrar el mensaje
o Guarda el mensaje firmado para usarlo en caso de disputas
Medidas básicas de seguridad
En general se puede afirmar que si la llave privada solo es conocida y accesible por el sujeto A,
sería prácticamente imposible, para otro sujeto B, falsificar una firma digital del sujeto A, o abrir un
sobre digital dirigido al sujeto A, utilizando métodos matemáticos. El atacante de un sistema va a
centrar su esfuerzo en encontrar debilidades en la implementación del software o hardware de
seguridad. A continuación se mencionan los dos puntos de ataque más comunes:
· Generación de números aleatorios
La generación de las llaves utiliza métodos pseudoaleatorios por lo que es muy importante que un
sujeto B no puede replicar el procedimiento que siguió un sujeto A cuando este generó sus llaves.
· Ataque a la Llave Privada
La llave privada, que normalmente reside en un archivo debe mantenerse encriptada con un
algoritmo simétrico, utilizando como llave una contraseña. La contraseña debe ser elegida por el
usuario en forma tal que resulte impredecible para quien intente adivinarlo por asociación de ideas.
La encriptación por contraseña es normalmente presa de ataques denominados de diccionario que
buscan exhaustivamente entre un conjunto de palabras formadas por letras del abecedario. Otro
ataque más sutil se concentra en intentar por prueba y error las posibles contraseñas que un sujeto
utiliza en base a acciones de ideas, por ejemplo, su apodo, el nombre de su esposa, su apodo y
fecha de nacimiento, etc.
La llave privada solo se debe de encontrar desencriptada cuando está en la memoria de la
computadora y mientras el programa de seguridad esté funcionando. Si el sujeto se encuentra en
un entorno de cómputo en donde sea posible que un atacante realice un vaciado a disco del estado
de la memoria del programa de seguridad, entonces la llave privada está en peligro. Si se está en
un entorno de cómputo en donde sea posible que un atacante intercepte el teclado entonces, su
llave privada está en peligro. Si se está en un entorno de cómputo en donde sea posible sustituir el
programa de seguridad por uno falso que capture su contraseña y su llave privada encriptada
entonces, su llave privada está en peligro.
Las formas más seguras de evitar el robo de llaves privadas es de firmar y abrir sobres en una
computadora aislada física y virtualmente del mundo exterior. A dicha computadora deben de
entrar mensajes a firmar y deben de salir mensajes firmados, nunca debe de salir ni exponer la
llave privada. Este es el caso de por ejemplo, los Agentes Certificadores, Autoridades Certificadoras
y en general aplicaciones altamente sensitivas.
NTFS
Se trata de un sistema de archivos que lleva con nosotros desde Windows NT y NT
3.1; en otras palabras, fue introducido en 1993. Está basado en el antiguo sistema que
usaba IBM (HPFS), que también fue usado en Mac OS. Ese sistema de archivos quedó
atrás y ha sido sucedido por NTFS.
Actualmente, es el sistema de archivos que Windows utiliza por defecto en los
discos duros cuando instalamos su sistema operativo en un SSD o HDD.
Está caracterizado por no tener límites de tamaño por archivo y es una opción
ideal para unidades de almacenamiento con gran capacidad que se vayan a utilizar en
Windows.
Teóricamente, NTFS ofrece un tamaño de archivo de 16 EB, que equivalen a
16000000000 GB. No creo que necesitéis mucho más ¿Verdad? Desde Windows XP
no se ha mejorado mucho este sistema. Entre sus características más importantes,
encontramos las siguientes:
Compatibilidad con archivos dispersos.
Cuotas de uso.
Cifrado de archivo independiente.
HFS+ y APFS
Estamos ante el sistema de archivos por defecto de Apple, al igual que NTFS es el
de Windows. Curiosamente, también tenían este formato los iPods y las particiones se
denominan HFS Extended o Mac OS Extended. Se le denomina «+» o «plus»
porque es una evolución de HFS, el cual tenía un soporte limitado en relación al
tamaño de los archivos.
Con HFS+ podemos nombrar a un fichero con hasta 255 caracteres. Mejora a HFS
usando una tabla de asignación de 32 bits, algo que era necesario cuando se empezó a
estandarizar los archivos de 1 GB. Así que, HFS+ soporta un archivo de hasta 8 EB.
Este sistema se ha quedado atrás porque le ha sucedido APFS, que es el sistema
de archivos por defecto de Mac desde macOS 10.13 en adelante. Éste ha mejorado
la encriptación, el espacio compartido o la redimensión de las carpetas. La diferencia
principal de APFS es que se enfoca en SSD o almacenamiento Flash, pero se puede
utilizar en HDD igualmente.
Ventajas:
o
No tiene límite por archivo.
Sistema ideal para dispositivos Mac o para usar macOS.
Es compatible con GNU/Linux.
Desventajas:
o
No son detectados por Windows, ni lectura, ni escritura. La única forma es
utilizando programas de terceros.
Los discos duros con este sistema pueden no ser detectados en medios de
reproducción (TV, DVD, etc.).
FAT32
En 1996 llegó FAT32 como un sistema ideal para dispositivos portátiles porque
contiene una limitación de tamaño por archivo de 4 GB, independientemente de
que nuestro pendrive tenga 128 GB. Su principal baza es la altísima
compatibilidad que presenta en cualquier sistema operativo o medios de
reproducción. Lleva con nosotros desde Windows 95 y sustituyó a FAT16.
FAT significa «File Allocation Table» y es famoso por ser un sistema de archivos
viejo, robusto y algo anticuado. Entre sus limitaciones más remarcables,
encontramos las siguientes:
No se pueden almacenar archivos individuales de 4 GB.
Una partición FAT32 no puede ser superior a 8 TB.
En un principio, era ideal para memorias USB porque éstas no tenían más de 16 GB y
era raro ver archivos individuales que pesaran más de 4 GB. No obstante, la actualidad
«le pesa» bastante porque supone una limitación importante. Pensad que, ahora, es
muy común ver archivos de 4 GB o más, como hay pendrives de 128 GB.
Ventajas:
o
Compatible con todos los SO, videoconsolas, televisiones, etc.
Perfecto para unidades pequeñas con archivos pequeños.
Desventajas:
o
Limitación de 4 GB por archivo.
Partición inferior a 8 TB.
exFAT
Es el sucesor de FAT32, ya que éste último se ha quedado algo desfasado. Nace
en 2006 de la mano de Windows XP y Vista. Es la evolución de FAT32 porque
se elimina las limitaciones que tenía FAT32. Además, es compatible con Windows y
Mac, por lo que es perfecto para aquellos discos duros externos que queráis utilizar en
ambos sistemas operativos.
La «pena» es que no es tan compatible con Linux, ya que requiere una instalación de
un software específico. Igualmente, no podremos crear una partición desde Linux, si
el sistema de archivos es exFAT. Por tanto, sólo podremos escribir y leer datos.
Ventajas:
o
Es compatible con Windows y Mac.
Ideal para pendrives y discos duros externos que se usen en ambos SO.
Se eliminan las limitaciones de FAT32.
Desventajas:
o
No es del todo compatible con Linux.
Puede no ser compatible con ciertos medios de reproducción.
FAT
Es cierto que es algo antiguo este sistema de archivos, como poco utilizado. Sin
embargo, es compatible con Windows y Mac, por lo que puede ser útil para
unidades que tengan una capacidad de hasta 32 GB. Como su nombre indica, es
una tabla de asignación de archivos, pero es descartado por la cantidad de
limitaciones que tiene:
Si se va la luz o hay una bajada de tensión, pueden dañarse todos los datos
fácilmente.
Tiene la limitación de tamaño por archivo. FAT 16 tiene un límite de 2 GB.
No tiene permisos de seguridad.
Los formatos pueden no dejar limpia la unidad, lo que supone una pérdida de
rendimiento a la larga.
1. Compartir recursos
2. Aumentar la velocidad
3. Confiabilidad
4. Comunicaci�n
Indice
1. Introducción a los sistemas de archivos distribuidos
2. Diseño de los sistemas de archivos distribuidos
3. Implantación de un sistema de archivos distribuidos
4. Tendencias en los sistemas distribuidos
5. Bibliografía
1. Introducción a los sistemas de archivos distribuidos
La Era de la Informática ha sufrido diversos cambios desde que apareciera allá por los años 40’.
Era una época en la que a nadie se le hubiera ocurrido la loca idea de tener
una computadora en casa, ya que éstas en su comienzo consistían en un gran conjunto de tubos
de vacío y consolas de gran tamaño que solo podían ser ubicadas en enormes salas con un
acondicionamiento especial para su mejor funcionamiento. Sin mencionar que su adquisición
era solamente apta para las grandes billeteras de la época.
En esos tiempos tener una computadora en casa era idea de nadie, pues no era necesario, ya
que en aquellos tiempos la revolución tecnológica se encontraba aun dando sus primeros pasos.
Hoy los tiempos han cambiado, y simplemente no se concibe la idea de no tener una
computadora en casa o de no tener un correo electrónico en el cual recibir boletines de los más
variados tema de interés y a través del cual comunicarse con amigos de todas partes del mundo.
Por supuesto, para llegar a nuestros tiempos muchas cosas tuvieron que surgir. En este caso, de
la Era de la Informática, ocurrieron dos causas contemporáneas a las que se les atribuye este
gran cambio: primero, el desarrollo de poderosos y económicos microprocesadores (eso en
relación a la Ley de Grosch), que permitieron tener el poder de un computador mainframe
respetable, y; segundo, el desarrollo de las ahora famosas Redes de Área Local (LANs: Local
Area Network) de alta velocidad que permiten la interconexión de cientos de computadores con
las cuales se consigue transferir pequeñas cantidades de información en pequeñas fracciones
de tiempo. Cada una de las cuales ofreciendo sus mejores características y ventajas que
ayudarían a la revolución de la que ahora somos testigos.
Como resultado de estas importantes invenciones, encontramos sistemas computacionales
compuestos de una gran cantidad de computadores y/o procesadores conectados entre sí
mediante una red de alta velocidad. A los que llamaremos a partir de ahora: Sistemas
Distribuidos.
Es preciso mencionar que estos sistemas distribuidos necesitan de software muy distinto al que
utilizan los sistemas centralizados, y en la actualidad, los sistemas operativos para estos
sistemas aún se encuentran en su etapa de aparición.
Existe un importante antecedente de las redes de computadores, el ARPANET, que apareció en
los Estados Unidos en el año 1969. Creado por el Departamento de Defensa de los Estados
Unidos, esta primitiva red permitía que los proveedores e investigadores de la defensa
pudieran continuar comunicándose después de un ataque nuclear. Es decir, en lugar de tratar
de fortalecer la red contra las armas nucleares, los diseñadores de ARPANET decidieron
hacerla resistente distribuyendo los recursos de modo totalmente descentralizado, de manera
que la destrucción de una parte cualquiera de la red, no detuviese el flujo global de
información. Esta red encontró rápida y satisfactoria acogida entre los científicos informáticos
e ingenieros de la industria y en las universidades, y se convirtió en un enlace vital
de comunicación entre colaboradores remotos. Era prácticamente desconocida para los
extraños.
En 1989, cuando el gobierno de los Estados Unidos decidió dejar de subvencionar la
ARPANET, los usuarios que dependían de la red planificaron una sucesora que se
denominaría Internet.
Este hecho marca el inicio de la idea de los sistemas distribuidos.
2. Diseño de los sistemas de archivos distribuidos
Generalmente, un sistema de archivos distribuidos consta de dos componentes muy distintos
entre sí: el servicio de archivos y el servicio de directorios.
La Interfaz del Servicio de Archivos
Un archivo es una secuencia de bytes sin interpretación alguna. Esto quiere decir que el
contenido y estructura de un archivos es interpretado por el software de aplicación mas no por
el sistema operativo sobre el que se está trabajando.
Un archivo se caracteriza por tener atributos, tales como: el propietario, el tamaño, la fecha de
creación y el permiso de acceso.
La utilidad del servicio de archivos consiste en proporcionar una adecuada administración de
los atributos, definidos por el usuario, que estas poseen. Lo más común es encontrar algunos
sistemas avanzados que permitan modificarlos después de sus creación, pero en algunos
sistemas distribuidos las únicas operaciones que pueden realizarse sobre un archivo es
CREATE y READ (Crear y Leer). Es decir, una vez creado el archivo no puede modificarse. A
este tipo de archivos se les denomina archivos inmutables.
Existen dos tipos de servicios de archivos distribuidos: modelo carga/descarga y modelo de
acceso remoto.
Modelo Carga/Descarga: Consiste básicamente en dos operaciones: lectura y escritura. Como
se muestra en la Figura 1.1, la primera operación consiste en la transferencia de un archivo
completo desde el servidor hacia el cliente solicitante; la segunda operación consiste en el envío
de un archivo del cliente al servidor, es decir, en sentido contrario. Mientras tanto los archivos
pueden ser almacenados en memoria o en un disco local, según sea el caso.
El modelo carga/descarga
Modelo de Acceso Remoto: Este tipo de modelo consiste en que todas las operaciones (abrir y
cerrar, leer y escribir, etc.) se realizan en el servidor mas no en los clientes. Esto se muestra
claramente en la Figura 1.2.
Figura 1.2. El modelo de acceso remoto
Estos dos modelos se diferencian en que en el primero se debe transferir el archivo completo
del servidor al cliente y viceversa, lo que no es necesario en el modelo de acceso remoto.
Debemos tener en cuenta que el solo hecho de compartir archivos puede traer
dos problemas principales por resolver: el permiso de acceso y la gestión de los accesos
simultáneos.
Permisos de Accesos:
Un sistema de archivos distribuidos provee al usuario de una herramienta flexible que permite
compartir archivos extensos entre ellos. Esta herramienta actualmente utilizada con
mucho éxito (pero con algunas deficiencias) no es más que una lista de derechos de acceso los
cuales pueden ser asignados a un usuario en particular para un archivo en particular. Estos
derechos de acceso se muestran en la siguiente tabla:
El usuario puede cambiar los derechos de acceso que han sido otorgados a los
Cambio de protección
usuarios.
Según Satyanarayanan (1981), las propiedades más comunes de los sistemas de archivos son
las siguientes:
La mayoría de los archivos son pequeños (menos de 10 K).
La lectura es más común que la escritura.
La lectura y escritura son secuenciales: es raro el acceso aleatorio.
La mayoría de los archivos tienen una vida corta.
Es poco usual compartir archivos.
Los procesos promedio utilizan sólo unos cuantos archivos.
Existen distintas clases de archivos con propiedades diferentes.
Ventajas:
Tolerancia de fallas
No necesita llamadas OPEN/CLOSE
No se desperdicia el espacio del servidor en tablas
No existe límite para el número de archivos abiertos
No hay problemas si un cliente falla
Servidores con Estado: Conservan la información de estado de los clientes entre las
solicitudes. Esto es lo que ocurre en los sistemas centralizados.
Ventajas:
Mensajes de solicitud más cortos
Mejor desempeño
Es posible la lectura adelantada
Es más fácil la idempotencia
Es posible la cerradura de archivos
Ocultamiento
En un sistema cliente – servidor, en el que cada uno cuenta con su memoria principal y un
disco, pueden almacenarse los archivos o partes de ellos en cuatro lugares diferentes: el disco
del servidor, la memoria principal del servidor, el disco del clientes o la memoria principal del
cliente. Esto se puede observarse en la Figura 1.5.
Cuatro lugares para guardar archivos o partes de ellos
Cada lugar en donde se guarde los archivos presenta ventajas y desventajas respecto a la
velocidad de transferencia. Aun así, se puede lograr un mejor desempeño ocultando
(conservando) los archivos en la memoria principal del servidor. Como la memoria principal
siempre es de menor capacidad que el disco, entonces debe implementarse un algoritmo para
decidir qué archivos o partes de ellos permanecerán en el caché del servidor.
Este algoritmo deberá resolver dos problemas que se presentarán: Uno de los problemas es el
tamaño de la unidad que administra el caché, ya que puede administrar archivos completos o
bloques del disco. Si se ocultan los archivos completos, éstos se pueden almacenar en forma
adyacente en el disco (o al menos pedazos muy grandes), lo cual permite transferencias a alta
velocidad entre la memoria y el disco, así como un buen desempeño en general. Sin embargo, el
ocultamiento de bloques de disco utiliza el caché y el espacio en disco en forma más eficiente.
El segundo problema es que el algoritmo debe decidir qué hacer si se utiliza toda la capacidad
del caché y hay que eliminar a alguien. En este caso podría utilizarse cualquiera de los
dos algoritmos de ocultamiento, pero como las referencias al caché son poco frecuentes
comparadas con las referencias a memoria, por lo general es factible una implantación exacta
de LRU mediante punteros (listas enlazadas).
Réplica
En general, los sistemas de archivos distribuidos proporcionan la réplica de archivos como
servicio a sus clientes. Es decir, se dispone de varias copias de algunos archivos, donde cada
copia está en un servidor de archivos independiente. Este servicio de réplica se brinda por
diversa razones, a continuación presentamos las principales razones:
Aumentar la confiabilidad al disponer de respaldos independientes de cada archivo. Es
decir, si un servidor falla o se pierde permanentemente, no se pierden los datos.
Permitir el acceso al archivo aunque falle un servidor de archivos. Si un servidor falla esto
no debe ocasionar que el sistema se detenga.
Repartir la carga de trabajo entre varios servidores. Con varios archivos duplicados en dos o
más servidores, se puede utilizar el que tenga menor carga.
Existen tres formas de realizar la réplica: réplica explícita, réplica retrasada y réplica de
archivos mediante un grupo.
Réplica explícita: Consiste en que el programador controle todo el proceso. Cuando un
proceso crea un archivo, lo hace en un servidor específico. Entonces se puede crear copias
adicionales en otros servidores.
Réplica retrasada: Consiste en crear un sola copia de cada archivo en el servidor. Luego, el
propio servidor crea réplicas de este archivo en otros servidores automáticamente.
Réplica de archivos mediante un grupo: En este caso, todas las llamadas WRITE al sistema
se transmiten en forma simultánea a todos los servidores a la vez, por lo que todas las copias
adicionales se hacen al mismo tiempo que el original.
Veremos a continuación algunos aspectos en los que podrían presentarse cambios en un futuro
no muy lejano, teniendo en cuenta que los cambios tecnológicos se producen día a día y en
desmesurado avance.
Hardware reciente
Existen muchos dispositivos hardware que en los últimos años están abaratando sus costos,
tales como las memorias. Esto mejoraría circunstancialmente los actuales servidores de
archivos puesto que se podrá adquirir gran cantidad de gigabytes de memoria, aunque todavía
se presente el problema de que la memoria sea volátil, es decir, que cuando se apaga el sistema
se borran los archivos.
Una nueva innovación en hardware son los discos ópticos que ahora pueden ser utilizados más
de una vez. Aunque son un poco más caros que las cintas de video siempre han sido un aporte
importante para los sistemas de archivos, principalmente en el soporte de backups.
Otro desarrollo importante en hardware son las redes de fibra óptica de alta velocidad que
agilizarían la transferencia de archivos y se podría prescindir de la memoria caché. Esto
también simplificaría en mucho el software a utilizarse en los sistemas de archivos distribuidos.
Existen muchas más innovaciones tecnológicas que poco a poco harán más eficiente el manejo
y administración de los sistemas de archivos, por lo que en el futuro se podría aun encontrar
diversos tipos de soluciones específicas para un sistema determinado por sus propias
características y requerimientos.
Escalabilidad
El concepto de escalabilidad propone que cualquier computador individual ha de ser capaz de
trabajar independientemente como un sistema de archivos distribuido, pero también debe
poder hacerlo conectado a muchas otras máquinas.
Un sistema de archivos debería funcionar tanto para una docena de equipos como para varios
millares. Igualmente no debería ser determinante el tipo de red utilizada (LAN o WAN) ni las
distancias entre los equipos.
Aunque este punto sería muy necesario, puede que las soluciones impuestas para unos cuantos
equipos no sean aplicables para varios otros. De igual manera, el tipo de red utilizada
condiciona el rendimiento del sistema, y podría ser que lo que funcione para un tipo de red,
para otro necesitaría un diseño diferente.
Redes de área amplia
La mayor parte del trabajo que se realiza actualmente en los sistemas distribuidos se basa en
los sistemas alojados en redes LAN. La tendencia en el futuro es que veremos conectados entres
sí muchos sistemas distribuidos LAN con el fin de formar sistemas distribuidos transparentes a
través de todo el mundo. Pero para esto tendría que tomarse como punto de importancia el
hecho de que no todos los países utilizan un mismo tipo caracteres para sus archivos, es decir,
si en latinoamérica utilizamos los códigos ASCII, puede ser que en otras partes del mundo no
se utilice este mismo concepto, lo que produciría una incompatibilidad de datos.
Por otro lado, también es importante el cambio que se producirá en las aplicaciones, puesto
que la mayoría de experimentos que actualmente se realizan en las universidades están basados
en sistemas parecidos a UNIX.
Un problema que se presentará aun mucho más tiempo es que la conexión de fibra
óptica tardará muchos años en instalarse en todos los rincones del planeta y también la
existencia de una red de mayor ancho de banda será difícil y costosa de implementar pues no se
cuenta, todavía, con una mayor aceptación del potencial público usuario.
Usuarios móviles
A medida que la tecnología de las comunicaciones se digitaliza, se encuentra sujeta a las
mismas mejoras exponenciales que han hecho que una computadora portátil de 2000 dólares
actual tenga más capacidad que una computadora IBM de 10 millones de dólares de hace veinte
años. Por esta razón las computadoras portátiles presenta un mayor crecimiento en la
tecnología informática.
Pero este hecho presenta la inconveniencia de que estos usuarios no estarán conectados todo el
tiempo al sistema, es decir, solo lo estarán algún tiempo y luego no aparecerán. Esto es debido
a que todavía no se cuenta con una adecuada red instalada en diversos lugares para que el
usuario pueda conectar su laptop, notebook y su PC de bolsillo a su respectivo sistema o al
sistema al cual desea conectarse.
Además, como todavía no se cuenta con un ancho de banda mayor, la transferencia de archivos
se hace aun mucho más lenta. Se espera que en el futuro existan mejores ventajas para que
sobresalga este de desarrollo tecnológico que los últimos ha demostrado tener una verdadera
tendencia a seguir creciendo.
Tolerancia de fallas
En la actualidad, la mayor parte de los sistemas de cómputo no presentan tolerancia a fallas. Es
común escuchar en las agencias bancarias la frase: "No hay sistema", por lo que tomamos este
hecho como algo absolutamente normal. Salvo algunos sistemas especializados como los que se
utilizan para el control de tráfico aéreo, otros sistemas no presentan este comportamiento que
debería ser el óptimo.
Para que los sistemas de archivos cumplan con este requisito, deberá existir o implementarse
una consistente infraestructura de hardware lo cual permita a los sistemas ser realmente
confiables y seguros en cuanto a tiempo de funcionamiento efectivo se refiere.
5. Bibliografía
Sistemas Operativos Distribuidos - William Stallings
https://www.monografias.com/trabajos11/archi/archi.shtml
BLOQUEO MUTUO
En sistemas operativos, el bloqueo mutuo (también conocido como interbloqueo, traba mortal,
deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de procesos o hilos de
ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican
entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución
general para los interbloqueos.
Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o
más procesos. En la vida real, un ejemplo puede ser el de dos niños que intentan jugar al arco y
flecha, uno toma el arco, el otro la flecha. Ninguno puede jugar hasta que alguno libere lo que
tomó.
En el siguiente ejemplo, dos procesos compiten por dos recursos que necesitan para funcionar,
que sólo pueden ser utilizados por un proceso a la vez. El primer proceso obtiene el permiso de
utilizar uno de los recursos (adquiere el lock sobre ese recurso). El segundo proceso toma el lock
del otro recurso, y luego intenta utilizar el recurso ya utilizado por el primer proceso, por lo tanto
queda en espera. Cuando el primer proceso a su vez intenta utilizar el otro recurso, se produce un
interbloqueo, donde los dos procesos esperan la liberación del recurso que utiliza el otro proceso.
CONDICIONES
· Condición de no expropiación: los recursos no pueden ser expropiados por los procesos, es
decir, los recursos sólo podrán ser liberados voluntariamente por sus propietarios.
PREVENCION
Los bloqueos mutuos pueden prevenirse asegurando que no suceda alguna de las condiciones
necesarias vistas anteriormente.
· Eliminando la exclusión mutua: ningún proceso puede tener acceso exclusivo a un recurso.
Esto es imposible para procesos que no pueden ser encolados (puestos en un spool), e incluso con
colas también pueden ocurrir interbloqueos.
· La condición de posesión y espera puede ser eliminada haciendo que los procesos pidan
todos los recursos que van a necesitar antes de empezar. Este conocimiento por adelantado
muchas veces es imposible nuevamente. Otra forma es requerir a los procesos liberar todos sus
recursos antes de pedir todos los recursos que necesitan. Esto también es poco práctico en
general.
Existen muchos tipos distintos de sistemas operativos, desde los básicos como el POST
(Power On Self Test), Sistemas operativos de tiempo real, Sistemas Operativos de Redes,
Mono-Usuarios, Multi-Usuarios entre otros. En el desarrollo de este trabajo estaremos
desarrollando el concepto de Sistema operativo Distribuido, su historia, sus funciones y
aplicaciones y modo de trabajo.
Los sistemas operativos distribuidos desempeñan las mismas funciones que un sistema
operativo normal, pero con la diferencia de trabajar en un entorno distribuido. Su Misión
principal consiste en facilitar el acceso y la gestión de los recursos distribuidos en la red.
En un sistema operativo distribuido los usuarios pueden acceder a recursos remotos de la
misma manera en que lo hacen para los recursos locales. Permiten distribuir trabajos, tareas o
procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores
esté en un equipo o en diferentes, lo cual es transparente para el usuario.
Los sistemas distribuidos deben de ser muy confiables y estables ya que si un componente
del sistema se descompone otro componente debe de ser capaz de reemplazarlo
inmediatamente y no afectar los procesos del sistema.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes:
Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características básicas
• Transparencia
• Eficiencia
• Flexibilidad
• Escalabilidad
Existen dos esquemas básicos: Los Fuertemente Acoplados y los débiles. Un sistema
fuertemente acoplado es aquel que comparte la memoria y un reloj global, cuyos tiempos de
acceso son similares para todos los procesadores. En un sistema débilmente acoplado los
procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria
local.
Transparencia
El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del
sistema, pero el sistema operativo debe controlar que tanto los usuarios como los
programadores vean el núcleo del sistema distribuido como un único procesador, Es decir que
la programación y la ejecución de los programas y tareas sean exactamente iguales que las
de los sistemas operativos normales en aspectos visuales y de programación, pero mas
rápidos y eficientes por la distribución de la tareas.
Eficiencia
La idea base de los sistemas operativos distribuido es la de obtener sistemas mucho mas
rápidos que los utilizados de procesador único, Y para lograr esto tenemos que olvidar la idea
antigua de ejecutar los programas en estos procesadores y pensar en distribuir las tareas a
los procesadores libres mas rápidos en cada momento.
El concepto global de que un procesador haga todas las tareas y la desarrolle rápido depende
de muchos factores concretos: Velocidad, Memoria y tipo de procesamiento, Pero para un
sistema operativo distribuido esto es mucho mas fácil y eficiente, solo buscara un procesador
mas rápido y mas libre para que desarrolle las tareas y hará un display de los resultados
obtenidos.
Flexibilidad
Dicha capacidad es una virtud y un conflicto. Una Virtud debido a las grandes necesidades de
los sistemas operativos de mejorar después de las primeras versiones y un conflicto que surge
entre los sistemas de con Núcleo Monolítico y los sistemas con Micro núcleo las cuales son
dos arquitecturas distintas del núcleo del sistema operativo.
Núcleo Monolítico
Como ejemplo de sistema operativo de núcleo monolítico esta UNIX, estos sistemas tienen en
núcleo grande y complejo, que engloba todos los servicios del sistema. Esta programado de
forma no modular, y tiene un rendimiento mayor que un micro núcleo. Sin embargo, cualquier
cambio a realzar en cualquiera de los servicios, requiere de hacer un STOP a todos los
servicios y la recopilación del núcleo.
Micro Núcleo.
Escalabilidad
Un sistema operativo distribuido debería funcionar tanto para una docena de computadoras
como para mil en una sola red, el tipo de red utilizada no debe de ser un problema ni su
topología (LAN o WAN) (TOKEN RING o ETHERNET) y mucho menos la distancia entre los
equipos. Sin embargo todo esto influye, Aunque estos puntos serian muy deseables, pude que
la solución valida para unas cuantas computadoras no sean aplicables como para mil. Del
mismo modo el tipo de red condiciona grandemente el rendimiento del sistema y puede que lo
funcione para un tipo de red requiera modificaciones para otro.
Los sistemas operativos distribuidos necesitan de grandes estándares para trabajar y sobre
todo de ajustes a las necesidades principales de cada red y sus usuarios. Este concepto
propone que cualquier computador debe funcionar perfectamente como un sistema operativo
distribuido, pero de la misma forma debe de formar parte y trabajar como más equipos no
importan la cantidad o los recursos que estos le puedan proporcionar.
Sincronización
Los sistemas operativos distribuidos tienen un reloj por cada ordenador del sistema, con lo
que es fundamental una coordinación entre todos los relojes para mostrar una hora única. Los
osciladores de cada ordenador son ligeramente diferentes, y como consecuencia todo los
relojes sufren un desfase y deben ser sincronizados continuamente. La sincronización no es
trivial, porque se realiza a través de mensajes por la red. Cuyo tiempo de envió pude ser
variable y depender de muchos factores como la distancia, la velocidad de transmisión y la
propia estructura de la red.
El Reloj.
La sincronización del reloj no tiene que ser exacta y bastara con que sea aproximadamente
igual en todos los ordenadores. Hay que tener en cuenta eso si. El modo de actualizar la hora
de un reloj es particular. Es fundamenta no retrasar nunca la hora, aunque el reloj adelante.
En vez de eso, hay que atrasar la actualizaron del reloj. Frenarlo. Hasta que alcance la hora
aproximada. Existen diferentes algoritmos de actualizan de la hora.
El Reloj es únicamente uno de los tantos problemas de sincronización que existen en los
sistemas operativos distribuidos.
A medida en la que hemos ido desarrollando el tema, hemos declarado que un sistema
operativo distribuido dentro de sus funciones básicas, es capaz de encontrar mecanismos
para la asignación de tareas a procesadores que pueden estar dentro o fuera del equipo que
esta ejecutando el programa.
Añadido a esto los sistemas operativos distribuidos brindan mas servicios de distribución como
son los siguientes:
• Servicios de Comunicación
• Servicios de Nombres
• Gestión de Procesos
• Servicio de Seguridad
Servicios de Comunicación
Los servicios de comunicación son los típicos servicios de red, pero en el caso de los sistemas
operativos distribuidos son mas especializados en ciertas áreas.
Toda la coordinación de los SOD son sincronizados por medio de SOCKETS lo cuales son
paso de mensajes por la red que le permiten a los sistemas verificar cual es el equipo que
esta disponible o simplemente el estado de un equipo actual. Los SOCKETS también son
utilizados para la actualización del reloj.
Dicho sistema permite que los usuarios compartan información de forma transparente. Un
buen ejemplo de esto es los contactos compartidos de cada terminal los cuales se reflejan en
un solo modulo de contactos cada vez que una persona abre sus contactos.
Servicios de Nombres
Estos servicios identifican y localizan los recursos en el entorno distribuido. Existen dos:
Páginas Blancas y Paginas Amarillas. El servicio de páginas blancas es el propiamente dicho
de nombres y el de páginas amarillas es el de directorios.
Servicios de Sincronización
Los servicios de Sincronización son los que nos permiten mantener el los relojes de las
computadoras individuales en un tiempo aproximado y apropiado.
La sincronización puede ser de relojes Físicos, los cuales sincronizan los relojes de hardware
y de Relojes Lógicos, los cuales ordenan la entrada, ejecución y salida de los eventos.
La Memoria compartida distribuida ayuda a que no se formen los famosos cuellos de botella,
debido que busca los recursos necesarios para lograr cumplir todas las tareas asignadas.
Servicios de Seguridad
Los servicios de seguridad de un SOD van ligados a permisos de acceso tanto a los datos
compartidos como a los recursos. Los recursos de memoria por ejemplo, son asignados
permisos a la cantidad de memoria compartida siguiendo las necesidades físicas de cada
computadora.
Ejemplo: Una computadora de 128 MB RAM, la cual trabaja mucho es muy probable que en
vez de poder compartir memoria requiera de memoria compartida de otras computadoras.
Debido a esto, el DSM (Distribuid Shared Memory o Memoria Distribuida Compartida) es
Deshabilitado para que no se disponga de recursos libres de este computador.
Existe una diferencia vital entre los sistemas operativos distribuidos y los sistemas distribuidos.
Podríamos llamar a un Sistema Distribuido una capacidad del Sistema operativo Distribuido,
es decir: Un sistema distribuido es la relación que existe entre una computadora
independiente y un servidor de archivos o dispositivos compartidos. Cada computadora
ejecuta sus programas en su memoria propia haciendo uso de su único microprocesador y
memoria, este no comparte memoria ni asigna tareas a otros procesadores de la red.
Sin embargo, un Sistema operativo distribuido tiene acceso a todos los dispositivos
compartidos de la red incluyendo procesadores y memoria RAM.
Por muy maravillosos que nos puedan pareces los sistemas operativos distribuidos, también
tienen sus desventajas. La sincronización del sistema es una tarea Árdea de la cual nunca se
descansa y la estandarización del sistema es un tanto complicada y limitante.
Debido a que no todos los sistemas operativos son de de carácter distribuido enlazar los
distintos tipos de sistemas operativos es un poco complicado.
Conclusión
El sistema operativo distribuido es usado a menudo como sub sistemas operativos utilizando
sus ventajas como por ejemplo el sistema de clusters para almacenamiento. Creemos que si
podemos encontrar sub soluciones a la distribución que sean ventajosas, deberíamos de
incursionar el futuro de la informática a la distribución total.
https://html.rincondelvago.com/sistemas-operativos-distribuidos_2.html
A diferencia de la Memoria Principal la Memoria Secundaria, auxiliar, masiva, externa no es
tan veloz pero tiene gran capacidad para almacenar información en dispositivos tales como
discos, cintas magnéticas, discos ópticos. Frecuentemente los datos y programas se graban en la
Memoria Secundaria, de esta forma, cuando se ejecuta varias veces un programa o se utilicen
repetidamente unos datos, no es necesario darlos de nuevo a través del dispositivo de entrada.
ARCHIVO
En la Memoria Secundaria un archivo consta de un conjunto de bloques (correspondiente a la
cantidad de información que se transfiere físicamente en cada operación de acceso (lectura o
escritura).
Características de los Archivos
El sistema de archivos permite al usuario especificar alguna estructura adicional a los archivos,
aparte de su estructura básica (bits, bytes).
Algunos sistemas operativos permiten el uso del ALIAS, lo cual hace que los usuarios hagan
referencia a un mismo archivo físico mediante nombres lógicos diferentes.
Cuando se utiliza un archivo , el descriptor es copiado en memoria principal para las referencias
que a éste se hagan.
Nombre: Nombre asignado por el usuario.
Atributos
Atributos de un archivo
Los atributos de un archivo son: el nombre, el tipo, la localización (donde se ubica), derechos de
acceso, tiempo de creación/acceso/modificación, UID del creador, etc.
Podemos también citar como características las siguientes:
ü Descriptores de archivos.
A cada uno de los archivos se le asigna un descriptor el cual contendrá toda la información que
necesitará el sistema de archivos para ejecutar con él los comandos que se le soliciten. El
descriptor se mantendrá en memoria principal desde que el archivo es abierto hasta que sea
cerrado, y debe tener al menos la siguiente información, identificación del archivo, lugar de
almacenamiento, información del modo de acceso.
Identificación del archivo. Consiste de dos partes que es el nombre simbólico que es el que le da
el usuario y un identificador interno que es asignado por el sistema operativo (número). Lugar
de almacenamiento así como el tamaño del archivo. Modo de acceso. Se debe indicar en forma
explícita quien puede accesar el archivo y conque derecho.
puntero de archivo (file pointer) para operaciones de lectura y escritura, contador de archivos
abiertos
ubicación del archivo en el dispositivo, derechos de acceso.
Algunos sistemas proveen sistema de acceso único a un archivo (lock) por parte de los
procesos.
A su vez, varios sistemas implementan el mapeo de archivos al espacio de usuario del proceso.
De esta forma, no es necesario realizar read y write para operar sobre el archivo, sino accederlo
directamente. Esto trae el beneficio de no hacer el llamado a sistema para operar sobre el
archivo.
Directorio
Un directorio es una agrupación de archivos de datos, atendiendo a su contenido, a su
propósito o a cualquier criterio que decida el usuario. Técnicamente el directorio almacena
información acerca de los archivos que contiene: como los atributos de los archivos o dónde se
encuentran físicamente en el dispositivo de almacenamiento.
OBJETIVOS DE
ARCHIVO
OBJETIVO GENERAL
Dar a conocer a cada uno de los dispositivos de almacenamiento que son parte de la memoria
secundaria de una CPU.
OBJETIVOS ESPECÍFICOS
Determinar las características de cada uno de los dispositivos de almacenamiento y comprender
su funcionamiento
Demostrar el avance que ha tenido la tecnología durante la creación de las diversas memorias
secundarias.
Distinguir las ventajas y desventajas de los diversos dispositivos de almacenamiento.
Explicar los métodos de diagnósticos que incorpora el sistema operativo Windows para mantener
un disco duro en buen estado.
Directorio único: el sistema tiene un solo directorio con todos los archivos de todos los
usuarios.
.
Un directorio por usuario: el sistema habilita un solo directorio por cada usuario.
Un árbol de directorios por usuario: el sistema permite que cada usuario tenga tantos
directorios como necesite, respetando una jerarquía general.