Está en la página 1de 49

República Bolivariana de Venezuela

Universidad de Oriente

Extensión Anaco

Sistemas operativos

Profesora: Bachiller:

Carmen Salas Luis D. González Ci: 27.143.015

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).

Los servicios (mediante llamadas al sistema) que proporciona el sistema


operativo se solicitan colocando los parámetros en lugares bien definidos, como
los registros o la pila, para después ejecutar una instrucción especial de trampa, a
veces referida como llamada al núcleo o llamada al supervisor. Esta
instrucción cambia la máquina del modo usuario al modo núcleo (también
conocido como modo supervisor), y transfiere el control al sistema operativo

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.

CUÁLES SON LAS ESTRUCTURAS DE UN


SISTEMA OPERATIVO?

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.

2. El administrador o gestor de memoria principal.

3. El administrador del almacenamiento secundario.

4. El administrador del sistema de E/S.

5. El administrador de ficheros.

6. El sistema de protección.

7. El sistema de comunicaciones o trabajo en red.

8. El intérprete de comandos.

Al interior de los sistemas operativos existen diferentes estructuras y son las siguientes:

Estructura simple o monolítica

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.

Algunos ejemplos de esta clase de estructura son:

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:

a. Núcleo estructurado: utilizando una metodología estructurada.


b. Núcleo orientado a objetos: empleando una metodología enfocada a objetos.
Estructura por capas o estratos

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.

Un ejemplo es el sistema operativo VM que distancia los aspectos de multiprogramación y máquina


extendida a través de un monitor de máquina virtual, que ofrece multiprogramación, y por otra parte
se encuentran los núcleos de los sistemas operativos que brindan la cualidad de máquina
extendida.

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/

Administración de Procesos y del Procesador

septiembre 17, 2018

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.

¿Pero que es un 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.

Ahora es importante resaltar la diferencia entre programa y proceso, un programa es básicamente


una serie de instrucciones escritas en un lenguaje de programación guardadas en un archivo, y un
proceso es la acción de ejecutar estas instrucciones.

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.

Estados de los procesos:

Ahora los procesos que se ejecutan internamente dentro de nuestro ordenador tienen 3 estados
basicos:

Proceso Listo

Proceso en ejecución

Proceso Bloqueado

Sin embargo la lista completa de sus estados son:

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.

Terminado: Cuando un proceso se ha completado su ejecución pasa a ser un proceso terminado.


Ahora expliquemos sobre como funciona esto de una forma mas detallada. Todo programa en
ejecución o proceso que se ejecute en nuestro ordenador debe esperar su turno para ejecutarse,
como por decirlo de una forma cotidiana, al abrir un programa pasa a hacer cola para ser
atendido, pues se inserta al final de la “Lista de Procesos Listos”, el proceso se desplaza poco a
poco en esta lista ("la cola") a medida que los procesos se van ejecutando. Cuando el proceso
llega al principio de la lista, se le asigna el CPU, ahora realmente no notamos ese tiempo de espera
debido a que la ejecución de los programas se realizan en cuestión de nanosegundos, sumado a las
actuales arquitecturas de los ordenadores que mejoran aún mas los tiempos de ejecución de
ciertos trabajos.

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:

#Codigo que suma 2 numeros

a=7

b=9

resultado=7+9

nombre=input("Ingrese su nombre")

print(nombre+" tiene una cantidad de manzanas igual a: ")

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".

Bloqueado: la siguiente instrucción provocara que el programa entre en un estado de bloqueado,


puesto que hasta que el programa no reciba un nombre escrito por teclado este no podrá
continuar, es decir se quedara esperando infinitamente el tiempo que sea hasta que alguien
escriba un nombre. Cabe destacar que este proceso no permanecerá todo este tiempo
ejecutandose en la CPU hasta que se ingrese un numero, pero esto lo explicaremos mas abajo.

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:

Admitido (Nuevo->Listo): Cuando un proceso se ha creado y se le es permito competir por la CPU.

Despacho (Listo->En ejecución): La asignación de la CPU al primer proceso de la lista de listos es


llamado despacho y es ejecutado por la entidad de sistema llamada despachador. Mientras que el
proceso tenga la CPU se dice que esta en ejecución.

Tiempo excedido (En ejecución->Listo): El S.O , cuando un proceso se le expira el intervalo de


tiempo asignado para estar en ejecución (CUANTO), hace que este proceso que se hallaba en
estado de ejecución pase al estado de listo y inmediatamente el despachador hace que el primer
proceso de la lista pase a estado de ejecución.
Bloqueo (En ejecución->Bloqueado): Si un proceso que se encuentra en estado de ejecución inicia
una operación de E/S antes que termine su cuanto, el proceso voluntariamente abandona la CPU,
es decir, el proceso se bloquea a sí mismo.

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.

Salir (En ejecución->Terminado): Esta transición ocurre cuando el proceso se ha terminado de


ejecutarse, y pasa a un estado de terminado.

Expliquemos estos últimos, pero antes de continuar es necesario mencionar algo:

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.

Despacho (Listo->En ejecución):

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.

A esta transición se le denomina Despacho.

Tiempo excedido (En ejecución->Listo):

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.

Bloqueo (En ejecución->Bloqueado):

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.

Salir (En ejecución->Terminado):


Finalmente tenemos salir, que es simplemente el espacio de tiempo entre terminar las tareas y el
fin del proceso.

Ahora ya para finalizar, cada proceso debe tener además de un estado:

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 Interna y Externa

La seguridad interna está relacionada a los controles incorporados al hardware y al Sistema


Operativo para asegurar los recursos del sistema.
La seguridad externa está compuesta por la seguridad física y la seguridad operacional. La
seguridad física incluye la protección contra desastres (como inundaciones, incendios, etc.) y
protección contra intrusos.

Seguridad Operacional

La seguridad operacional  consiste en varias políticas y procedimientos implementados por el


administrador del sistema de computación.
Mediante la autorización se determina qué acceso se permite y a qué entidad.
Como punto crítico se destaca la selección del personal y la asignación del mismo. Generalmente se
dividen responsabilidades, de esta manera un operario no debe conocer la totalidad del sistema
para cumplir con esas responsabilidades.
Se deben instrumentar diversos controles, y el personal debe saber de la existencia de dichos
controles, pero desconocer cuáles son, para reducir la probabilidad de que intrusos puedan
evadirlos.

 Protección. Metas de la protección

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

El rol de la protección es proveer un mecanismo para el fortalecimiento de las políticas que


gobiernan el uso de recursos. Tales políticas se pueden establecer de varias maneras, algunas en el
diseño del sistema y otras son formuladas por el administrador del sistema. Otras pueden ser
definidas por los usuarios individuales para proteger sus propios archivos y programas.
Las políticas son diversas, dependen de la aplicación y pueden estar sujetas a cambios a lo largo
del tiempo.
Un principio importante es la separación de políticas de los mecanismos. ‘Los mecanismos
determinan cómo algo se hará. Las políticas deciden que se hará’.
La separación es importante para la flexibilidad del sistema.

Vigilancia

La vigilancia se compone de la verificación  y la auditoria del sistema, y la identificación de


usuarios. En la vigilancia se utilizan sistemas muy sofisticados, a tal punto, que a veces pueden
surgir problemas en la autentificación generando un rechazo al usuario legítimo.

    Monitoreo de amenazas

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.

  Protección por contraseña

Existen tres clases principalmente de elementos que permiten establecer la identidad de un


usuario:
        ·        Algo sobre las personas. Esto incluye huellas digitales, reconocimiento de voz,
fotografía y firmas.
        ·        Algo poseído por la persona. Esto incluye distintivos, tarjetas de identificación y llaves.
        ·        Algo conocido por el usuario. Esto incluye contraseñas, nombre de la suegra,
combinación de cerraduras.El esquema de autentificación más común es la simple protección por
contraseña. El usuario elige una palabra que se le viene a la memoria, y la tipea de inmediato para
ganar admisión al sistema de computación.
Muchos sistemas no muestran la contraseña tal como ha sido ingresada (mostrar asteriscos en
lugar de letras).
La protección por contraseña es un esquema débil. En el sentido de que los usuarios tienden a
elegir contraseñas fáciles de recordar. Entonces alguien que conoce al usuario podría intentar
ingresar al sistema usando nombres de gente que la persona conoce. Esto puede resultar en una
violación de la seguridad por los intentos repetitivos de ingreso.
Algunos sistemas usan contraseñas cortas lo que facilita la conformación rápida de la lista de todas
las posibles combinaciones. Los sistemas actuales utilizan contraseñas largas para frenar tales
intentos de penetració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 

  La criptografía es usada para la transformación de datos para hacerlos incomprensibles para


todos, excepto para el usuario destinatario. El problema de la privacidad tiene relación con la
prevención de la no autorización para la extracción de información desde un canal de
comunicación. Los problemas de autentificación están relacionados con la prevención contra
intrusos que intentan modificar una transmisión o insertar falsos datos dentro de una transmisión.
Los problemas de disputa están relacionados con la providencia de reserva de un mensaje con
prueba legal de la identidad enviada.

    Sistema de privacidad criptográfico

     En un sistema de privacidad criptográfico, el remitente desea transmitir cierto mensaje no


cifrado a un receptor legítimo, la transmisión ocurre sobre un canal inseguro asume ser
monitoreado o grabado en cinta por un intruso.
El remitente pasa el texto a una unidad de encriptación que transforma el texto a un texto cifrado o
criptograma; el mismo no es entendible por el intruso. El mensaje es transmitido entonces, sobre
un canal seguro. Al finalizar la recepción el texto cifrado pasa a una unidad de descripción que
regenera el texto. 

    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.

 Metodos y técnicas de encriptación

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.

Chaffing & Winnowing

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.

  Sistemas de clave pública

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.

Es importante saber qué es el sistema de archivos de un disco duro a la hora de


formatear uno. Dentro, te explicamos todo sobre ellos.
No es algo que aparezca siempre en el uso de un sistema operativo, pero hay
ocasiones que precisan su conocimiento. Normalmente, cuando formateamos un disco
duro o pendrive nos viene la pregunta a la cabeza «¿Qué será el sistema de archivos?»
Pues bien, vamos a eliminar las interrogaciones para enseñaros qué son y cuáles son
las ventajas y desventajas de cada uno.

¿Qué es el sistema de archivos?


No existe una definición tipo de «sistema de archivos», pero podría definirse como
un conjunto de normas y procesos que se utilizan para almacenar la información. Se le
denomina «sistema de archivos» porque cada archivo contiene unos datos
independientes, por lo que es necesario que la información que contiene cada
archivo se agrupe con cierto orden.
Para ello, el sistema operativo utiliza las famosas «carpetas» o «directorios» con el
fin de organizar todas las rutas y localizar la información contenida en el disco duro.
En conclusión, el sistema de archivos de un sistema operativo es el que organiza
todos los datos contenidos en el disco duro de una forma determinada. Ya no sólo
eso, sino que cada unidad de almacenamiento tiene un sistema de archivos que es
impuesto tras su formato.
Los principales tipos sistemas de archivos que encontramos son los siguientes:
 NTFS (New Technology File System).
 HPFS (High Performance File System).
 EXT (Extended file System).
 HFS+ (Hierarchical File System).
 APFS (Apple File System).
 FAT (File Allocation Table).
 exFAT (Extended File Allocation)
 FAT32.
A continuación, vamos a comentar cada uno para desmenuzar sus ventajas y
desventajas.

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.

NTFS está soportado tanto en escritorio, como en sistemas operativos


para servidores (Linux, principalmente). El problema viene con
la incompatibilidad que presenta en otros sistemas operativos, como Mac. En OS X
podemos leer toda la información de una unidad NTFS, pero no podemos escribir en
ella.
 Ventajas:
o
 No tiene límite por archivo.
 Es un sistema ideal para unidades que se utilicen en Windows.
 Desde Mac se puede leer toda la información.
 Es compatible con GNU/Linux.
 Desventajas:
o
 En Mac no podremos escribir en un NTFS, ni es un SO compatible con este
sistema.
 En TVs antiguas, los USB tenían que ser FAT32, pero es algo casi extinto.

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.

Como es lógico, presenta más desventajas que ventajas porque existen


alternativas como FAT32 o exFAT mucho más interesantes para el día de hoy.
Esperamos que esta información os haya sido de ayuda. Si tenéis alguna duda al
respecto, podéis comentar e intentaremos «vaciar vuestra mente» de dudas.
En computación, los sistemas de archivos, como su nombre lo indica, son redes que
contienen conjuntos de bits que almacenan información. Es un método, una forma
utilizada para el almacenamiento y organización de datos en una computadora.

(Los sistemas de archivos son conjuntos de carpetas)


El conjunto de bits antes mencionado (o grupo de datos) se denomina archivo, que
son las carpetas en donde se guarda información virtual. Por lo tanto, los sistemas de
archivos son los conjuntos de carpetas que utiliza un sistema operativo para reconocer
cada formato, y denominarlo con un tipo específico de clasificación.
Todos los sistemas operativos contienen sistemas de archivos. El más reconocido, y
que todos los sistemas comparten, se denomina: carpeta. Gracias a los sistemas de
archivos, la clasificación, organización y almacenamiento de datos, así como su
búsqueda y encuentro, es más rápido y ordenado.

Sistemas de archivos: clasificación


Según su estructura y propósito, los sistemas de archivos pueden clasificarse en:

Sistemas de Archivos de Disco: Son aquellas estructuras de almacenamiento de


información que tienen como soporte el uso de unidades de discos duros. Estos sistemas
pueden estar interrelacionados, de manera directa o indirecta, a un procesador de
datos y cuentan, en general, con gran capacidad de almacenamiento y de velocidad
de transmisión de información, según sus características, tipo de conexión,
características del procesador, etc. Esto corresponde al almacenamiento físico de un
sistema de archivos. Con respecto a la unidad virtual de disco, nombraremos algunos
tipos de sistemas de archivos más comunes:
-Sistemas de Archivos de Microsoft:
FAT: Se trata del primer sistema de archivos utilizado por Microsoft y corresponde a
los sistemas operativos MS Dos, Windows 3.11 y Windows 95. Este sistema de
archivos funciona como una tabla compuesta de diversas celdas en donde se guarda la
información. Con cada archivo nuevo o nueva operación, se guarda tanto la
información en la celda como su ubicación dentro de la tabla, y como en un mapa
luego podrá ser localizada para su ejecución.
Los tamaños de las celdas, llamadas clúster, tenían como máximo 8.192 Bytes. Luego
se creó el FAT 32 que correspondía  a los SO Windows 98 y Windows Millenium y su
tabla de datos funcionaba a 32 bits lo que daba la capacidad de trabajo con discos
duros mucho más grandes.
NTFS: Es el sistema usado en los SO Windows XP, Vista y Windows 7. Utiliza
diversos permisos para acceder a archivos y carpetas y no es compatible con otros
sistemas operativos, salvo algunos pero de solo lectura. A su vez, los sistemas NTFS
pueden reconocer y manejar los anteriores sistemas FAT y FAT 32. El tamaño de los
clúster en estos sistemas se puede definir desde 512 bytes y puede soportar hasta 2
Terabytes por partición dependiendo de la capacidad del soporte.
exFAT: Este tipo de sistemas al igual que FAT, también utiliza una tabla de localización
de archivos, pero ésta es extendida, lo cual permite mucha mayor capacidad de
almacenamiento y procesamiento de datos. Fue creada para utilizarse en dispositivos
de almacenamiento como memorias USB o SD.
-Sistemas de Archivos de UNIX y LINUX:
Los sistemas de archivos utilizados en las diversas distribuciones de Linux y Unix son
los EXT,EXT2,EXT3 y EXT4. Estos protocolos tienen la capacidad de actualizarse de
uno a otro sin necesidad de formateo o pérdida de datos, y tienen gran rendimiento
tanto en discos duros como en memorias como USB, SD y otras. Es considerado más
consistente en cuanto a seguridad y menor consumo total de memoria. Estos sistemas de
archivos no son reconocidos por distribuciones de Microsoft u otros sistemas pero los
SO de Linux o Unix puede reconocer cualquier tipo de sistemas de archivos.
-Sistemas de Archivos de Mac Os:
Los sistemas de archivos utilizados por las tecnologías de Apple son  los HFS y
HFS+,  sistema de archivos por jerarquía y sistema de archivos por jerarquía
extendido. Este sistema permite asignaciones de espacio en disco de 64 bits y puede
utilizar bloques de archivos de 32 bits para lograr mayor eficiencia en el disco.
Está compuesto de cinco estructuras diferentes de asignación de bloques. Estos sistemas
también permiten reconocer otros tipos de sistemas como FAT32 o NTFS y también el
almacenamiento de archivos utilizados por UNIX.

Sistemas Operativos Distribuidos

Un sistema distribuido es una colecci�n de procesadores conectados


en red, la cual es imprescindible para su funcionamiento. Estos
procesadores no comparten memoria entre s�, en lugar de eso, cada
procesador tiene su propia memoria local. Desde el punto de vista de un
procesador especifico en un sistema distribuido, el resto de los
procesadores y sus respectivos recursos son remotos, mientras que sus
propios recursos son locales. Estos sistemas proveen al usuario de
recursos compartidos que mantiene el sistema. Por lo que brindan una
mayor velocidad computacional, accesibilidad de los datos y fiabilidad.
Razones para la existencia de los Sistemas Distribuidos

Existen cuatro razones que justifican la existencia de estos sistemas:

1. Compartir recursos

Los usuarios de un host (servidor que provee servicios a otras


computadoras) pueden disponer de los recursos de los dem�s
host. En general se ofrecen mecanismos para compartir archivos
remotos, procesar informaci�n en sistemas de bases de datos
distribuidos, imprimir archivos en host remotos, usar equipos de
hardware especializados, etc.

2. Aumentar la velocidad

Si un determinado problema se puede dividir en subproblemas de


manera que diferentes procesadores se encarguen de cada una de
las partes queda claro que ese hecho har� que se obtenga una
soluci�n m�s r�pidamente. Otro elemento a tomar en cuenta
es que si un procesador espec�fico est� muy cargado se puede
pasar su trabajo hacia otro que est� menos cargado, lo cual se
denomina carga compartida, lo que, evidentemente, redundar�
en una mayor velocidad de respuesta.

3. Confiabilidad

Si un host de un sistema distribuido falla el resto de los host


pueden continuar funcionando. Si el sistema est� compuesto por
una cantidad de instalaciones aut�nomas (por ejemplo
computadoras de prop�sito general) la falla de un host no
afectar� el resto, sin embargo si el sistema est� formado por
peque�as m�quinas y cada una de ellas tiene alguna
responsabilidad crucial, una simple falla afectar� la operaci�n.
Para resolver esta situaci�n debe tenerse suficiente redundancia
de recursos (en hardware y datos).

La falla de un host debe detectarse por el sistema, el cual tendr�


que tomar una acci�n adecuada para recuperarse de ella, entre
las acciones est� ver si existe la posibilidad de que otro host se
encargue de la tarea de aquel que fall� haciendo la oportuna
transferencia de funciones.

4. Comunicaci�n

Como los host est�n conectados entre s�, pueden intercambiar


informaci�n. La informaci�n se puede transferir a�n cuando
los host est�n a distancias considerables.

Entre los diferentes Sistemas Operativos distribuidos que existen


tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring,
Amoeba, Taos, etc.
Caracter�sticas que identifican a los Sistemas Operativos Distribuidos

1. Colecci�n de sistemas aut�nomos capaces de comunicaci�n y


cooperaci�n mediante interconexiones hardware y software .
2. Gobierna operaci�n de un Sistema Computacional y proporciona
abstracci�n de m�quina virtual a los usuarios.
3. Su objetivo clave es la transparencia.
4. Generalmente proporcionan medios para la compartici�n global
de recursos.
5. Servicios a�adidos: denominaci�n global, sistemas de archivos
distribuidos, facilidades para distribuci�n de c�lculos (a trav�s
de comunicaci�n de procesos internodos, llamadas a
procedimientos remotos, etc.).

6. El sistema de archivos distribuidos (DFS, Distributed File System) también se


denomina sistema de archivos de red y consiste en aglutinar en un único árbol de
directorios archivos y directorios ubicados en cualquier parte de la red.
7. Los usuarios de la red no necesitan saber en qué servidor se encuentra cada archivo ya
que la estructura encapsula esta información para presentarle un árbol único.
8. El sistema de archivos distribuido es especialmente útil cuando se precisa que los
usuarios de la red tengan acceso a información compartida en varias ubicaciones de
forma ininterrumpida.
9. Una de las principales ventajas de utilizar este sistema es que se puede optimizar la
carga de la red haciendo que nodos con mucho tráfico deriven recursos compartidos a
otras ubicaciones de la red. De esta manera, se minimiza el riesgo de cuello de botella y se
optimiza la velocidad de acceso a la información.
10. Como se puede deducir, el DFS es un sistema bastante flexible. La información puede
moverse a lo largo de toda la red sin necesidad de realizar cambios complejos en la
estructura. Así, la integración de nuevos equipos (con nuevos recursos), es muy sencilla.
11. Muchos sistemas de archivos hacen uso de este modelo. De entre ellos destacamos, por
su importancia, NTFS para Windows, y NFS y AFS para Linux.

SISTEMAS DE ARCHIVOS DISTRIBUIDOS


Enviado por josewalter

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:
 

Derecho de Acceso Descripción

En el que el usuario no puede determinar la existencia del archivo y mucho menos


Ninguno acceder a éste y sus directorios. Tampoco puede conocer la ruta que especifica su
ubicación actual.

El usuario conoce sobre la existencia del archivo y quién es su dueño. Puede


Conocimiento
solicitar tener algunos derechos de acceso a este archivo.

Ejecución El usuario puede ejecutar y cargar el programa pero no copiarlo.

Lectura El usuario puede leer el archivo, también copiarlo y ejecutarlo.

El usuario puede agregar datos al archivo (generalmente al final), pero no puede


Adición
modificar o borrar su contenido.

Actualización El usuario puede modificar, borrar y agregar datos al archivo.

El usuario puede cambiar los derechos de acceso que han sido otorgados a los
Cambio de protección
usuarios.

Borrado El usuario puede borrar el archivo de su ubicación actual.

Puede brindarse acceso a las siguientes clases de usuario:


 Usuario específico: Usuarios individuales quienes son designados por su ID de usuario.
 Grupos de usuario: Conjunto de usuarios no definidos individualmente.
 Todos: Es decir, todos los usuarios que tengan acceso al sistema. Los archivos son públicos.
 Gestión de Accesos Simultáneos:
El sistema operativo o el sistema de gestión de archivos permite al usuario (que previamente ha
tenido acceso a determinado archivo) que él mismo pueda bloquear el archivo cuando vaya a
utilizarlo , o en todo caso, bloquear los registros individuales durante la actualización. Si no se
considera ninguna de estas dos opciones, entonces se analizará aspectos de exclusión mutua e
interbloqueo.
La Interfaz del Servidor de Directorios
El propósito general del servidor de directorios es poder crear y eliminar directorios, nombrar
o cambiar el nombre de archivos y mover éstos de un directorio a otro.
El sistema distribuido es el encargado de definir el alfabeto y la sintaxis para formar los
nombres de los archivos y directorios. Por ejemplo, Windows divide los nombres de lo archivos
en dos partes: nombre y extensión (tipo de archivo), los cuales se denotan separados por un
punto: nombre_archivo.extensión; así tenemos que libro.txt es un archivo cuyo nombre es
libro y es de tipo texto. En otros sistemas, como el UNIX, clasifican a los archivos según sus
atributos (en UNIX un archivo ejecutable se pinta de otro color).
Todo sistema distribuido permite la existencia de subdirectorios (directorios dentro de otro
directorio), permitiéndose a los usuarios clasificar sus archivos a sus gusto. Estos
subdirectorios, a su vez, pueden contener otros subdirectorios lo que se conoce como sistema
jerárquico de archivos.
Algunos sistemas distribuidos permiten crear apuntadores o enlaces a un directorio
determinado, construyendo, de esta manera, no solamente árboles sino también gráficas de
directorios los cuales son más consistentes.
Un árbol de directorios contenido en una máquina
Esta diferencia entre árboles y gráficas es de gran importancia en un sistema distribuido y
radica en la eliminación de enlaces entre un directorio y otro. Es decir, en un árbol se puede
eliminar un enlace con un directorio si el directorio al cual se apunta es vacío, mientras que en
una gráfica solo puede eliminarse enlaces mientras exista al menos otro enlace.
Una gráfica de directorios en dos máquinas
Semántica de los Archivos Distribuidos
Existen hasta cuatro métodos para utilizar los archivos compartidos en un sistema distribuido:
 Semántica de UNIX: En la que cada operación en un archivo es visible a todos
los procesos de manera simultánea. Esto implica que cada operación cumpla un estricto
orden con respecto al tiempo, puesto que el archivo es actualizado inmediatamente después
de realizada cada operación.
 Semántica de Sesión: En la que ningún cambio es visible a otros procesos hasta que l
archivo que está siendo utilizado se cierra. Esto produce un desfasamiento en la
actualización del archivo, puesto que un archivo puede estar siendo utilizado por dos o más
clientes en forma simultánea y se tendrá como resultado el archivo cuyo cliente lo cierra
después que todos los demás.
 Archivos inmutables: En la que no existen actualizaciones, puesto que una vez creado el
archivo no puede modificarse. Así es más fácil compartir y replicar archivos.
 Transacciones: En la que todos los cambios tienen la propiedad del todo o nada. Es decir,
cada operación que es llamada al sistema no se detiene hasta que finaliza propiamente. De
esta manera, si una operación es requerida mientras está siendo utilizada por otra, esta
última no se ejecutará hasta que finalice la ejecución de la primera.

3. Implantación de un sistema de archivos distribuidos


Uso de Archivos
Existen diferentes formas de utilizar los archivos, pero también existen dos formas de medir el
grado de utilización de cada uso que se le puede dar a un archivo. Estas formas son: mediciones
estáticas y mediciones dinámicas.
 Mediciones Estáticas: En este tipo de mediciones se observa el sistema en un determinado
momento, esto quiere decir que se verifica su estado en un instante de tiempo. Entre
algunas de estas mediciones estáticas podemos encontrar: la distribución de tamaños de los
archivos, la distribución de tipos de archivos y la cantidad de espacio que ocupan los
archivos de varios tamaños y tipos.
 Mediciones Dinámicas: Este tipo de mediciones se encarga de registrar todas las
operaciones en una bitácora para un análisis posterior. De esta manera se tiene información
respecto a la frecuencia con que se realizan ciertas operaciones.

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.

Estructura del Sistema


La estructura de un sistema es determinante para el servicio de archivos y directorios, para eso
se debe diferenciar entre quiénes son los clientes y quiénes son los servidores.
En algunos sistemas el servidor solamente puede actuar como servidor y el cliente solamente
como cliente. Esto puede tener sus ventajas y desventajas puesto si en algún momento el
servidor falla, entonces todo el sistema se paralizaría. En otros sistemas, sin embargo, el
servidor de archivos y el de directorios son solamente programas del usuario, de esta manera se
puede configurar el sistema para que ejecute o no el software de cliente o servidor en la misma
máquina, como se desee.
Pero se ha de considerar el aspecto estructural de los servidores de archivos y directorios, en
cuanto a que deben o no contener los estados de los clientes. Es decir, existen dos tipos
de pensamiento con respecto a este tema: los servidores sin estado y los servidores con estado.
 Servidores sin Estado: Consiste en que cuando un cliente envía una solicitud a un servidor,
éste la lleva a cabo, envía la respuesta y elimina de sus tablas internas toda la información
correspondiente a dicha solicitud. El servidor no guarda la información relativa a los
clientes entre las solicitudes.

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.

4. Tendencias en los sistemas distribuidos


Los cambios tecnológicos de los últimos años pueden traer también cambios muy importantes
en los sistemas de archivos distribuidos. Además con el rápido avance que se da en las redes
de comunicaciones y su incremento en el ancho de banda la creación de paquetes que ofrecen
la compartición de archivos es común de encontrarse en el mercado. En la industria, el
esquema más solicitado es aquel que permite acceder a los grandes volúmenes de información
de los grandes servidores desde las computadores personales o convencionales y desde otros
servidores. Es por eso que la principal solución que adoptada por las pequeñas empresas es
contar con Novell Netware en un servidor 486 o superior y acceder a los archivos
desde máquinas similares.
Entre los sistemas de archivos distribuidos más populares que existen en la actualidad,
tenemos los que nos proporciona Netware, tales como:
 Remote Filke Sharing (RFS en UNIX)
 Network File System (de Sun Microsystems)
 Andrew File System (AFS)

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 exclusión mutua: existencia de al menos de un recurso compartido por los


procesos, al cual sólo puede acceder uno simultáneamente.

· Condición de retención y espera: al menos un proceso Pi ha adquirido un recurso Ri, y lo


retiene mientras espera al menos un recurso Rj que ya ha sido asignado a otro proceso.

· 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.

· Condición de espera circular: dado el conjunto de procesos P0...Pm(subconjunto del total de


procesos original),P0 está esperando un recurso adquirido por P1, que está esperando un recurso
adquirido por P2,... ,que está esperando un recurso adquirido por Pm, que está esperando un
recurso adquirido por P0. Esta condición implica la condición de retención y espera.

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.

· La condición de no expropiación puede ser también imposible de eliminar dado que un


proceso debe poder tener un recurso por un cierto tiempo o el procesamiento puede quedar
inconsistente.

· La condición de espera circular es la más fácil de atacar. Se le permite a un proceso poseer


sólo un recurso en un determinado momento, o una jerarquía puede ser impuesta de modo tal
que los ciclos de espera no sean posibles.

Sistemas Operativos Distribuídos


 Compartir      0 Me sirvió       0 No me sirvió

Un sistema operativo es un conjunto de sistemas y procedimientos que actúa como


intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar
un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un sistema
operativo es lograr que el sistema de computación se use de manera cómoda, y el objetivo
secundario es que el hardware del computador se emplee de manera eficiente.

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.

Sistemas Operativos Distribuidos

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

Los sistemas operativos distribuidos están basados en las ideas 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 concepto de transparencia de un Sistema operativo distribuido va ligado a la idea de que


todo el sistema funcione de forma similar en todos los puntos de la red, debido a esto queda
como labor del sistema operativo coordinar el mecanismo que logre la unificación de todos los
sistemas y recursos totalmente transparente para el usuario o aplicación.

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

La Flexibilidad dentro de sistema operativo distribuido, describe su capacidad para soportar


cambios, actualizaciones y mejoras que le permitan irse desarrollando al mismo ritmo de la
evolución tecnológica.

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.

La arquitectura ofrece la alternativa al núcleo monolítico, se basa en una programación


altamente modular y tiene un tamaño mucho menor que el núcleo monolítico. Como
consecuencia, el refinamiento y el control de errores son mas rápidos y sencillos. Además, la
actualización de los servicios es más sencilla y ágil. Ya que solo es necesario la recopilación
del servicio y no de todo el núcleo. Como desventaja, El rendimiento se ve afectado
negativamente.

En la actualidad la mayoría de los sistemas operativos distribuidos en desarrollo tienden a un


diseño de micro núcleo el cual aun siendo un poco mas lento, garantiza una estabilidad mayor
y un aumento de la flexibilidad del sistema.

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

La sincronización es un punto clave para los sistemas operativos distribuidos. Para


computadores únicos no es nada importante, pero en el caso de los recursos compartidos de
la red, la sincronización es sumamente importante.

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.

Funcionamiento Lógico del Sistema

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

• Sistemas de Ficheros (File Sharing)

• Servicios de Nombres

• Servicios de Sincronización y Coordinación

• Memoria Compartida Distribuida

• 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.

Los sistemas operativos distribuidos utilizan un concepto de interconexión llamado Multicast


(Comunicación en Grupo) que le permite a todos los computadores del sistema trabajar como
un solo elemento de la red.

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.

Sistemas de Ficheros (File Sharing)

El concepto del sistema de ficheros esta basado en la gestión de distintos dispositivos en


diferentes nodos ofreciendo a usuarios la misma visión que un Sistema Centralizado.

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.

Memoria Compartida Distribuida (DSM)

En un sistema operativo distribuido, la memoria pasa a ser físicamente privada pero


lógicamente compartida. Es decir, un computador ejecuta los programas en su memoria
propia, pero en caso de necesitar mas memoria utilizara los recursos disponibles de otra
computadora que este capacitada y preparada dentro de la red para compartir su memoria.

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.

Sistema Operativo Distribuido vs Sistema Distribuido

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.

Desventajas de los SOD

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.

El interés de hacer el SOD lo mas transparente posible lo hace muy complicado en su


programación y el lograr que el sistema operativo no tenga problemas para que no cause
problemas a otros equipos que le asignaron tareas es un poco dificultoso.

Conclusión

El futuro de los sistemas operativos Distribuidos esta en la formación de un nuevo kernel


universal que soporte distribución para que este pueda ser aplicado a todos los sistemas
operativos sin importar su plataforma. O por lo menos que los sistemas puedan ser
distribuidos entre las computadoras que corran este mismo sistema dentro de la misma red y
unificado por un servidor de sistemas operativos distribuidos.

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.

      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).

El Sistema Operativo o Sistema de Gestión de Archivos es el encargado de la asignación de


bloques a archivos, de lo que surgen dos cuestiones, en primer lugar, debe asignarle el espacio
de Memoria Secundaria a los archivos y, en segundo lugar, es necesario guardar constancia del
espacio disponible para asignar.

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).

El Sistema Operativo o Sistema de Gestión de Archivos es el encargado de la asignación de


bloques a archivos, de lo que surgen dos cuestiones, en primer lugar, debe asignarle el espacio
de Memoria Secundaria a los archivos y, en segundo lugar, es necesario guardar constancia del
espacio disponible para asignar.

 
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:

 Volatilidad, que es la frecuencia con la que se agregan y borran ítems en un archivo;


 Actividad, que es el porcentaje de ítems accedidos durante un determinado período detiempo;
 Medida, que es la cantidad de información almacenada en el archivo
Bloque de Archivo
      Existen varios mecanismos para acceder los archivos: Directorios, descriptores de archivos,
mecanismos de control de acceso y procedimientos para abrir y cerrar archivos.

ü Descriptores de archivos.

ü El descriptor de archivos o bloque de control de archivos es un bloque de control que contiene


información que el sistema necesita para administrar un archivo.

ü Es una estructura muy dependiente del sistema.

ü Los descriptores de archivos suelen mantenerse en el almacenamiento secundario; se pasan al


almacenamiento primario al abrir el archivo.

ü El descriptor de archivos es controlado por el sistema de archivos ; el usuario puede no hacer


referencia directa a él.

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.
 

                           Operaciones Sobre El


Bloque De Control De Archivo
 
El sistema operativo brinda servicios para la manipulación de archivos:

 Crear y abrir: provee la creación de un archivo en el sistema de archivos. Se debe proveer un


nombre del nuevo archivo. Además, se provee la apertura de un archivo ya existente para
acceder o modificar la información.
 Escribir: poder escribir información en un archivo previamente abierto.
  Leer: poder leer información en un archivo previamente abierto.
 Reposicionar dentro de un archivo: lograr acceder a cualquier parte del archivo.
 Eliminar: destruir el archivo a nivel del sistema de archivo.
 Truncar: eliminar la información que está dentro del archivo, pero sin eliminar  el archivo.
Por lo general, los sistemas tienen una tabla de archivos abierto por proceso. Estos archivos se
abren a través de un llamado al sistema y, de esa forma, se puede operar con ellos (leer,
escribir, etc.). Finalmente, el archivo es cerrado antes que finalice la ejecución del proceso.
Tener un archivo abierto para el sistema implica mantener una estructura que tenga por lo
menos:

 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.

SISTEMA JERARJICO DE LOS DIRECTORIOS 


El directorio contiene un conjunto de datos por cada archivo referenciado.
Una posibilidad es que el directorio contenga por cada archivo referenciado:
 El nombre.
 Sus atributos.
 Las direcciones en disco donde se almacenan los datos.
Otra posibilidad es que cada entrada del directorio contenga:

 El nombre del archivo.


 Un apuntador a otra estructura de datos donde se encuentran los atributos y las
direcciones en disco.
Al abrir un archivo el S. O.:

 Busca en su directorio el nombre del archivo.


 Extrae los atributos y direcciones en disco.
 Graba esta información en una tabla de memoria real.
 Todas las referencias subsecuentes al archivo utilizarán la información de la memoria
principal.
El número y organización de directorios varía de sistema en sistema:

 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.

                          
   

También podría gustarte