martes, 5 de diciembre de 2017

Unidad 6 - Protección y Seguridad

6.1.- Concepto y Objetivos de Protección y Seguridad

Los procesos en un sistema operativo deben protegerse de las actividades realizadas por otros procesos. Para proporcionar dicha protección, podemos utilizar diversos mecanismos para garantizar que sólo los procesos que hayan obtenido la adecuada autorización del sistema operativo puedan operar sobre los archivos, los segmentos de memoria, sobre la CPU y sobre otros recursos del sistema.
El concepto de protección hace referencia a un mecanismo para controlar el acceso de los programas, de los procesos o de los usuarios a los recursos definidos por el sistema informático. Este mecanismo debe proporcionar un medio de especificar los controles que hay que imponer, junto con un modo de imponerlos. Podemos distinguir entre los conceptos de protección y seguridad; este último es una medida de la confianza en que se puedan preservar la integridad de un sistema de sus datos. 

Objetivos de la protección. 

A medida que los sistemas informáticos se han hecho más sofisticados y a medida que su rango de aplicaciones se ha ido incrementando, también ha crecido la necesidad de proteger la integridad de esos sistemas. La protección se concebía originalmente como algo asociado a los sistemas operativos multiprogramados, de modo que a los usuarios que no fueran de confianza pudieran compartir de manera segura un espacio lógico de nombres común, como por ejemplo un directorio de archivos, o compartir un espacio físico de nombres común, como por ejemplo la memoria. Los conceptos modernos de protección han evolucionado para incrementar la fiabilidad de cualquier sistema complejo que haga uso de recursos compartidos.

Concepto de Seguridad:

La seguridad está definida como el conjunto de medidas tomadas para protegerse contra robos, ataques, crímenes y espionajes o sabotajes. La seguridad implica la cualidad o estado de estar seguro, es decir, la evitación de exposiciones a situaciones de peligro y la actuación para quedar a cubierto frente a contingencias adversas.

Objetivo de Seguridad:

La seguridad, no solo requiere un sistema de protección apropiado, sino también considerar el entorno externo en el que el sistema opera. La protección interna no es útil si la consola del operador está al alcance de personal no autorizado, o si los archivos se pueden sacar simplemente del sistema de computación y llevarse a un sistema sin protección. Estos problemas de seguridad son esencialmente de administración, no problemas del sistema operativo.

6.2 – Clasificación Aplicada a la Seguridad

En esta clasificación específica, hay cuatro niveles de seguridad: a, b, c y d… a continuación, se describen estos niveles de seguridad y las características de cada uno.

 Nivel A: Es el Sistemas de seguridad certificados para acceder a este nivel, la política de seguridad y los mecanismos de protección del sistema deben ser verificados y certificados por un organismo autorizado para ello.es decir dos tipos:
1. Diseño verificado.
2. Desarrollo controlado.
3.

 Nivel B: Es el Control de acceso obligatorio en este nivel, los controles de acceso no son discrecionales de los usuarios o los dueños de los recursos, que deben existir obligatoriamente. Esto significa que todo objeto controlado debe tener protección sea del tipo que sea. Es decir que son tres y son:
1. Etiqueta de seguridad obligatoria.
2. Protección estructurada.
3. Y el dominio de seguridad.

 Nivel C: A la Capacidad discrecional para proteger recursos, La aplicación de los mecanismos de protección depende del usuario, o usuarios, que tienen privilegios sobre los mismos. Entonces esto significa que un objeto puede estar disponible para lectura, escritura o cualquier otra operación. Y entonces casi todos los sistemas operativos comerciales de propósito general, como Unix, Linux o Windows NT se clasifican en este nivel.es decir dos son:
1. Control de acceso por dominios.
2. Control de acceso individualizado.

 Nivel D: Es el Sistemas con protección mínima o nula no pasan las pruebas de seguridad mínima. MS-DOS y Windows 3. 1 son sistemas de nivel d. Puesto que están pensados para un sistema mono proceso y mono usuario, no proporcionan ningún tipo de control de acceso ni de separación de recursos.

6.3 – Funciones del Sistema de Protección

Dado que los sistemas de cómputo se han venido haciendo cada vez más sofisticados en sus aplicaciones, la necesidad de proteger su integridad, también ha crecido. Los aspectos principales de protección en un Sistema Operativo son:

1. Protección de los procesos del sistema contra los procesos de usuario.

2. Protección de los procesos de usuario contra los de otros procesos de usuario.

3. Protección de Memoria.

4. Protección de los dispositivos.

6.4 – Implantación de Matrices de Acceso

Los derechos de acceso definen que acceso tienen varios sujetos sobre varios objetos. Los sujetos acceden a los objetos, los objetos son entidades que contienen información.
Los objetos pueden ser:

Concretos:
Ej.: discos, cintas, procesadores, almacenamiento, etc.

Abstractos:
Ej.: estructuras de datos, de procesos, etc.

Los derechos de acceso más comunes son:
 Acceso de lectura.
 Acceso de escritura.
 Acceso de ejecución.

6.5 - Protección Basada en el Lenguaje.

La protección que se ofrece en los sistemas de computación existentes casi siempre se ha logrado con la ayuda del núcleo de un sistema operativo, que actúa como agente de seguridad que inspecciona y valida cada intento por acceder a un recurso protegido. Puesto que la validación de todos los accesos puede dar pie a un gasto extra considerable, debemos apoyarla con hardware para reducir el costo de cada validación o bien debemos aceptar que el diseñador del sistema podría inclinarse por sacrificar los objetivos de la protección. Es difícil satisfacer todos estos objetivos si los mecanismos de soporte con que se cuenta restringen la flexibilidad para implementar diversas políticas de protección. 

Las políticas para el uso de recursos también podrían variar, dependiendo de la aplicación, y podrían cambiar con el tiempo. Por estas razones, la protección ya no puede considerarse como un asunto que sólo concierne al diseñador de un sistema operativo; también debe estar disponible como herramienta que el diseñador de aplicaciones pueda usar para proteger los recursos de un subsistema de aplicación contra intervenciones o errores.

Aquí es donde los lenguajes de programación entran en escena. Especificar el control de acceso deseado a un recurso compartido en un sistema es hacer una declaración acerca del recurso. Este tipo de declaración se puede integrar en un lenguaje mediante una extensión de su mecanismo de tipificación. Si se declara la protección junto con la tipificación de los datos, el diseñado de cada subsistema puede especificar sus necesidades de protección así debería darse directamente durante la redacción del programa, y en el lenguaje en el que el programa mismo se expresa. Este enfoque tiene varias ventajas importantes:

        1. Las necesidades de protección se declaran de forma sencilla en vez de programarse como una secuencia de llamadas a procedimientos de un sistema operativo.
        2. Las necesidades de protección pueden expresarse independientemente de los recursos que ofrezca un sistema operativo en particular.
        3. El diseñador de un subsistema no tiene que proporcionar los mecanismos para hacer cumplir la protección.
        4. Una notación declarativa es natural porque los privilegios de acceso están íntimamente relacionados con el concepto lingüístico de tipo de datos.
          Hay diversas técnicas que una implementación de lenguaje de programación puede utilizar para hacer cumplir la protección, pero cualquiera de ellas deberá depender hasta cierto punto del grado de soporte de una máquina subyacente y su sistema operativo.


6.6 - Validación y Amenazas al Sistema. 

Amenazas a la seguridad en el acceso al sistema:
  • Intrusos.
  • Programas malignos.

Intrusos:

  1. Piratas o hackers: individuos que acceden al sistema sin autorización.
  2. Los sistemas presentan agujeros por donde los hackers consiguen colarse.
Técnicas de intrusión:

  1. Averiguar contraseñas (más del 80% de las contraseñas son simples).
  2. Probar exhaustivamente.
  3. Descifrar archivo de contraseñas.
  4. Intervenir líneas.
  5. Usar caballos de Troya. 
Técnicas de prevención de intrusos:

Establecer una buena estrategia de elección de contraseñas:

  • Contraseñas generadas por ordenador (difícil memorización).
  • Inspección activa (proceso periódico de averiguación).
  • Inspección proactiva (decidir si es buena en su creació
Técnicas de detección de intrusos:

Investigar actividades inusuales:

  • Detección de anomalías estadísticas.
  • Uso de registros de auditoría que recogen información del comportamiento de cada usuario.
  • Detección basada en reglas.
  • Conjunto de reglas empleadas para decidir si una actividad es inusual. 
Tipos de amenazas:

Amenazas pasivas:
  • Revelación del contenido del mensaje.
Amenazas activas:
  • Alteración del flujo de mensajes.
Privación del servicio:
  •  Impide el uso normal de los servicios de comunicaciones.
  Suplantación:
  •   Cuando una entidad finge ser otra diferente. 
  Análisis del tráfico:
  • En caso de que los mensajes vayan encriptados.
  • Determinar las máquinas que se comunican y la frecuencia y longitud de los mensajes.
  • Alteración del flujo de mensajes.



Clasificación de programas malignos:

Programas malignos que necesitan anfitrión:
Forman parte de un programa. 
Trampillas:
  • Punto de entrada secreto a un programa.
  • Se usan para depuración y prueba.
  • Pueden usarse para acceso no autorizado. 
Bomba lógica:
  • Se ejecutan cuando se cumplen ciertas condiciones.
  • Ej: se borra el disco duro si programador no estáen nómina. 
Caballo de Troya:
  • Código dañino incrustado en programa que se ejecuta cuando se ejecuta el programa. 

Programas malignos que no necesitan anfitrión:

Gusanos:
  • Programas independientes.
  • Se reproducen a través de la red.
  • Además de propagarse pueden causar daños. 
Bacterias:
  • No dañan explícitamente.
  • Su único objetivo es reproducirse.
  • Se reproducen exponencialmente agotando la capacidad del procesador. 
Virus:
  • Código incrustado en un programa.
  • Se reproducen e insertan en otros programas.
  • Pueden causar daños.

Algoritmo de virus muy simple (tan sólo se reproduce):
  • Encontrar 1ª instrucción de un ejecutable del disco.
  • Sustituirla por salto a posición siguiente a la última instrucción.
  • Insertar copia del código de virus (este algoritmo) en dicha posición.
  • Hacer que el virus simule la instrucción sustituida por el salto.
  • Saltar a la segunda posición.

6.7 - Cifrado.

Concepto de Cifrado.

El cifrado es un método que permite aumentar la seguridad de un mensaje o de un archivo mediante la codificación del contenido, de manera que sólo pueda leerlo la persona que cuente con la clave de cifrado adecuada para descodificarlo. Por ejemplo, si realiza una compra a través de Internet, la información de la transacción (como su dirección, número de teléfono y número de tarjeta de crédito) suele cifrarse a fin de mantenerla a salvo. Use el cifrado cuando desee un alto nivel de protección de la información.

Métodos y Técnicas de Cifrado:

Cifrado de sustitución
El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente letras) de un mensaje por una o más entidades diferentes.
Existen varios tipos de criptosistemas de sustitución:
  • La sustitución monoalfabética consiste en reemplazar cada una de las letras del mensaje por otra letra del alfabeto.
  • La sustitución polialfabética consiste en utilizar una serie de cifrados monoalfabéticos que son re-utilizados periódicamente.
  • La sustitución homófona hace posible que cada una de las letras del mensaje del texto plano se corresponda con un posible grupo de caracteres distintos.
  • La sustitución poligráfica consiste en reemplazar un grupo de caracteres en un mensaje por otro grupo de caracteres.

Cifrado César

Este código de cifrado es uno de los más antiguos ya que su uso se remonta a Julio César. El principio de cifrado se basa en la adición de un valor constante a todos los caracteres de un mensaje o, más precisamente, a su código ASCII.
Cifrado ROT 13
El caso específico del cifrado César donde la clave de cifrado es N (la 13º letra del alfabeto) se denomina ROT 13? (se eligió el número 13, la mitad de 26, para que sea posible cifrar y descifrar fácilmente mensajes textuales).

Cifrado de Transposición

El método de cifrado por transposición consiste en reordenar datos para cifrarlos a fin de hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los datos geométricamente para hacerlos visualmente inutilizables.

El Cifrado Simétrico.

El cifrado simétrico (también conocido como cifrado de clave privada o cifrado de clave secreta) consiste en utilizar la misma clave para el cifrado y el descifrado.
El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar utilizando la clave privada para hacerlos ininteligibles. El algoritmo más simple (como un OR exclusivo) puede lograr que un sistema prácticamente a prueba de falsificaciones (asumiendo que la seguridad absoluta no existe).

El Cifrado Asimétrico.

El cifrado asimétrico (también conocido como cifrado con clave pública). En un criptosistema asimétrico (o criptosistema de clave pública), las claves se dan en pares:
  • Una clave pública para el cifrado.
  • Una clave secreta para el descifrado.
En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.





Unidad 5 - Sistemas de Archivos

5.1 Concepto

El “Sistema de Archivos” es la parte del sistema de administración del almacenamiento responsable, principalmente, de la administración de los archivos del almacenamiento secundario.
Es la parte del S. O. responsable de permitir “compartir controladamente” la información de los archivos.
El sistema de archivos es un método para el almacenamiento y organización de archivos en una computadora y en los datos que estos contienen, para hacer más fácil la tarea de encontrarlos y accederlos. Los sistemas de archivos son usados en dispositivos de almacenamiento como discos duros y CD-ROM e involucran el mantenimiento de la localización física de los archivos.

También un sistema de archivos es un conjunto de tipo de datos abstractos que son implementados para el almacenamiento, la organización jerárquica, la manipulación, el acceso, el direccionamiento y la recuperación de datos. Los sistemas de archivos comparten mucho en común con la tecnología de las bases de datos.



5.2 Noción de archivo real y virtual


Un archivo virtual 

Es un archivo de uso temporal que es utilizado por los procesos del sistema mientras se están ejecutando dichos procesos.(Fig.5.2.1). Estos archivos se crean durante la ejecución de un sistema y los utiliza para el almacenamiento de información, intercambio y organización mientras se ejecuta el sistema (Fig. 5.2.2), su tamaño es muy variable y terminan al detener la ejecución del sistema, muchos de ellos son borrados, por ejemplo, los archivos *.tmp (Fig. 5.2.3) .
Se le conoce como archivo virtual, aquel que contiene los datos generados por el usuario.



Archivo Real 

Es un objeto que contiene programas, datos o cualquier otro elemento. 
Un archivo se muestra de manera real, en la información del espacio que ocupa en un disco duro o sistema de almacenamiento, en otras palabras su tamaño en bytes. (Fig. 5.2.4).


5.3 Componentes de un sistema de archivos

Lo conforman todas aquellas rutinas encargadas de administrar todos los aspectos relacionados con el manejo de Archivos. 


En UNIX se define un File System como un sistema de software dedicado a la creación, destrucción, organización y lectura, escritura y control de acceso de los archivos, funcionalmente los componentes de un sistema de archivos son lenguajes de comandos, interpretador de comandos, manejador del almacenamiento secundario, sistema de entrada y salida y mecanismos de respaldo y recuperación.

En general, un Sistema de Archivos está compuesto por: Métodos De Acceso, Administración De Archivos, Administración De Almacenamiento Secundario, Mecanismos De Integridad. 

Métodos De Acceso. Se ocupan de la manera en que se tendrá acceso a la información almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc. 

Administración De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, así como para hacer referencia a ellos. 

Administración De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario. En la siguiente figura se muestra un ejemplo de la administración de espacio en un disco duro. 

Mecanismos De Integridad. Se ocupan de garantizar que no se corrompa la información de un archivo, de tal manera que solo la información que deba estar en el, se encuentre ahí. 

Mecanismos de Organización Lógica. Contiene las diferentes rutinas y comandos a través de los cuales el usuario podrá estructurar sus archivos virtuales. 

Directorio de Identificadores. Convierte los identificadores simbólicos de los archivos en identificadores internos, los cuales apuntarán a su descriptor o a una estructura que permite encontrar el archivo. 

Sistemas Teóricos de Archivos. Su objetivo es el de activar y desactivar a través de las rutinas de abrir y cerrar archivos y verifica el modo de acceso. 

Mecanismos de Organización Física. Traslada las direcciones lógicas en direcciones físicas correspondientes a las estructuras de memoria secundaria y los buffers en memoria principal necesarios para la transferencia de datos. 

Mecanismos de E/S. Por cada petición de acceso al archivo real, este mecanismo genera la secuencia de operaciones elementales de entrada y salida que se necesita. 

SCHEDULING E/S. En este nivel es donde se tiene el número de peticiones pendientes así como de las que se están realizando y lleva el control y asignación de tiempo de CPU a las diferentes peticiones de E/S.


5.4 Organización lógica y física

La administración de archivos se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así como las diferentes maneras en que ésta puede ser accesada. Dado que hay 2 niveles de visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de organización de archivos: Organización de archivos lógicos y de archivos físicos. 

La mayoría de las computadoras organizan los archivos en jerarquías llamadas carpetas, directorios catálogos . (El concepto es el mismo independientemente de la terminología usada.) Cada carpeta puede contener un número arbitrario de archivos, y también puede contener otras carpetas. Las otras carpetas pueden contener todavía más archivos y carpetas, y así sucesivamente, construyéndose un estructura en árbol en la que una «carpeta raíz» (el nombre varía de una computadora a otra) puede contener cualquier número de niveles de otras carpetas y archivos. A las carpetas se les puede dar nombre exactamente igual que a los archivos (excepto para la carpeta raíz, que a menudo no tiene nombre). El uso de carpetas hace más fácil organizar los archivos de una manera lógica.

Pilas

Es la forma más fácil de organizar un archivo. Los datos se recogen en el orden en que llegan.
Su objetivo es simplemente acumular una masa de datos y guardarla.
Los registros pueden tener campos diferentes o similares en un orden distinto. Cada campo debe ser autodescriptivo, incluyendo tanto un campo de nombre como el valor. La longitud de cada campo debe indicarse implícitamente con delimitadores, explícitamente incluidos como un subcampo más.

Archivos secuenciales


Es la forma más común de estructura de archivos. Se emplea un formato fijo para los registros, son de la misma longitud y constan del mismo número de campos de tamaño fijo con un orden determinado.
Se necesita almacenar los valores de cada campo; el nombre del campo y la longitud de cada uno son atributos de la estructura del archivo. Cada registro tiene un campo clave que lo identifica (generalmente es el primero de cada registro). Los registros se almacenan en secuencia por la clave.

Archivos secuenciales indexados

Los registros se organizan en una secuencia basada en un campo clave presentando dos características, un índice del archivo para soportar los accesos aleatorios y un archivo de desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se ubiquen siguiendo un puntero desde su registro predecesor.

Archivos indexados
A los registros se accede solo a través de sus índices. No hay resticción en la ubicación de los registros, al menos un índice contiene un puntero a cada registro y pueden emplearse registros de longitud variable.
Se suelen utilizar dos tipos de índices, uno exhaustivo que contiene una entrada para cada registro del archivo principal y se organiza como un archivo secuencial para facilitar la búsqueda, el otro índice es parcial que contiene entrada a los registros donde esté el campo de interés.

Organización física

Los datos son arreglados por su adyacencia física, es decir, de acuerdo con el dispositivo de almacenamiento secundario. Los registros son de tamaño fijo o de tamaño variable y pueden organizarse de varias formas para constituir archivos físicos. 

Cinta magnética

En este dispositivo el archivo físico esta formado por un conjunto de registros físicos, y los bloques están organizados en forma consecutiva, ya que se asigna en igual forma.

Discos Magnéticos


El archivo físico en un disco es una colección de registros físicos de igual tamaño, los cuales pueden estar organizados en forma consecutiva, ligada o con una tabla de mapeo. 

En la organización contigua, el archivo utiliza registros físicos contiguos, siguiendo la secuencia normal de direcciones.


5.5 Mecanismos de acceso a los archivos


Directorios

Generalmente son utilizados por los S. O. para llevar un registro de los archivos. En muchos sistemas son a su vez también archivos.
Sistemas Jerárquicos de 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.
Mecanismo de control de acceso

·         Control de un sistema de información especializado en detectar los intectos de acceso, permitiendo el paso de las entidades autorizadas, y denegando el paso a todas las demás. Involucra medios técnicos y procedimientos operativos.

·         Mecanismo que en función de la identificación ya autenticada permite acceder a datos o recursos.

Procedimientos para abrir y cerrar archivos

·         Open (abrir): antes de utilizar un archivo, un proceso debe abrirlo. La finalidad es permitir que el sistema traslade los atributos y la lista de direcciones en disco a la memoria principal para un rápido acceso en llamadas posteriores.
·         Close (cerrar): cuando concluyen los accesos, los atributos y direcciones del disco ya no son necesarios, por lo que el archivo debe cerrarse y liberar la tabla de espacio interno.

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.
Puede incluir la siguiente información:
  • Nombre simbólico del archivo.
  • Localización del archivo en el almacenamiento secundario.
  • Organización del archivo (método de organización y acceso).
  • Tipo de dispositivo.
  • Datos de control de acceso.
  • Tipo (archivo de datos, programa objeto, programa fuente, etc.).
  • Disposición (permanente contra temporal).
  • Fecha y tiempo de creación.
  • Fecha de destrucción.
  • Fecha de la última modificación.
  • Suma de las actividades de acceso (número de lecturas, por ejemplo).
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.

5.6 Manejo de espacio en memoria secundaria


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.

Vector de bits

El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada block es representado por un bit y si el bloc es libre el bit es cero de lo contrario está asignado.11000111.

Lista ligada

Una lista ligada de todos los blocks libres. Otra implantación se consigue guardando la dirección del primer block libre y el número de los blocks libres contiguos que le siguen. Cada entrada de la lista de espacio libre consiste de una dirección de disco y un contador (por conteo). 


Por agrupación

Se almacena la dirección en n blocks libres en el primer block libre y el último contiene la dirección de otro block que contiene la dirección de otros blocks libres.
Para manejar los espacios en disco existen los siguientes métodos:
  • Contiguos
  • Ligados
  • Indexados
Contiguos

Esta asignación requiere que cada archivo ocupe un conjunto de direcciones contiguas en el disco, su asignación es definida por la dirección del primer bloc y la longitud del archivo.
Cuando se crea un archivo se le asigna un único conjunto contiguo de bloques, esta es un estrategia de asignación previa que emplea secciones de tamaño variable. La tabla de asignación de archivos necesita solo una entrada por cada archivo y que muestre el bloque de comienzo y la longitud del archivo. La asignación contigua es la mejor para un archivo secuencial.
La asignación contigua presenta algunos problemas, como la fragmentación externa. Lo que hace difícil encontrar bloques contiguos de espacio de tamaño suficiente., lo que lleva a ejecutar un algoritmo de compactación para libera el espacio adicional en el disco.

 Asignación ligada o encadenada

Cada archivo es una lista ligada de blocks y el directorio contiene un apuntador al primer bloc y al último.
La asignación se hace con bloques individuales, cada bloque contendrá un puntero al siguiente bloque de la cadena. La tabla de asignación de archivos necesita una sola entrada por cada archivo que muestre el bloque de comienzo y la longitud del mismo, cualquier bloque puede añadirse a la cadena. No hay que preocuparse por la fragmentación externa porque solo se necesita un bloque cada vez.

5.7 Modelo jerárquico


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.

Directorio único: el sistema tiene un solo directorio con todos los archivos de todos los usuarios (ver Figura 5.7.3).



Un directorio por usuario: el sistema habilita un solo directorio por cada usuario (ver Figura 5.7.4).

Un árbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como necesite, respetando una jerarquía general (ver Figura 5.7.5).





5.8 Mecanismos de recuperación en caso de falla


Recuperación

Los archivos y directorios se mantienen tanto en memoria principal como en disco, y debe tener. Se cuidado para que los fallos del sistema no provoquen una pérdida de datos o una incoherencia en los mismos.

Manejo de un bloque defectuoso:

Se utilizan soluciones por hardware y por software.

La solución en hardware:
  • Consiste en dedicar un sector del disco a la lista de bloques defectuosos.
  • Al inicializar el controlador por primera vez:
    • Lee la “lista de bloques defectuosos”.
    • Elige un bloque (o pista) de reserva para reemplazar los defectuosos.
    • Registra la asociación en la lista de bloques defectuosos.
    • En lo sucesivo, las solicitudes del bloque defectuoso utilizarán el de repuesto.
La solución en software:
  • Requiere que el usuario o el sistema de archivos construyan un archivo con todos los bloques defectuosos.
  • Se los elimina de la “lista de bloques libres”.
  • Se crea un “archivo de bloques defectuosos”:
    • Esta constituido por los bloques defectuosos.
    • No debe ser leído ni escrito.
    • No se debe intentar obtener copias de respaldo de este archivo.
Respaldos (copias de seguridad o de back-up)

Es muy importante respaldar los archivos con frecuencia.
Los discos magnéticos fallan en ocasiones y es necesario tener cuidado para garantizar que los datos perdidos debido a esos fallos no se pierdan para siempre. Con este fin, pueden utilizarse programas del sistema para realizar una copia de seguridad de los datos del disco en otro dispositivo de almacenamiento, como por ejemplo un disquete, una cinta magnética, un disco óptico incluso otro disco duro. La recuperación de la pérdida de un archivo individual o de un disco completo puede ser entonces, simplemente, una cuestión de restaurar los datos a partir de la copia de seguridad.
Los respaldos pueden consistir en efectuar copias completas del contenido de los discos (flexibles o rígidos).
Una estrategia de respaldo consiste en dividir los discos en áreas de datos y áreas de respaldo , utilizándolas de a pares:
  • Se desperdicia la mitad del almacenamiento de datos en disco para respaldo.
  • Cada noche (o en el momento que se establezca), la parte de datos de la unidad 0 se copia a la parte de respaldo de la unidad 1 y viceversa.
Consistencia del sistema de archivos

Muchos sistemas de archivos leen bloques, los modifican y escriben en ellos después.
Si el sistema falla antes de escribir en los bloques modificados, el sistema de archivos puede quedar en un “estado inconsistente”.
La inconsistencia es particularmente crítica si alguno de los bloques afectados son:
  • Bloques de nodos-i.
  • Bloques de directorios.
  • Bloques de la lista de bloques libres.
La mayoría de los sistemas dispone de un programa utilitario que verifica la consistencia del sistema de archivos:
  • Se pueden ejecutar al arrancar el sistema o a pedido.
  • Pueden actuar sobre todos o algunos de los discos.
  • Pueden efectuar verificaciones a nivel de bloques y a nivel de archivos.
  • La consistencia del sistema de archivos no asegura la consistencia interna de cada archivo, respecto de su contenido.
  • Generalmente pueden verificar también el sistema de directorios y / o de bibliotecas.
Generalmente los utilitarios utilizan dos tablas:
  • Tabla de bloques en uso.
  • Tabla de bloques libres.
  • Cada bloque debe estar referenciado en una de ellas.
Si un bloque no aparece en ninguna de las tablas se trata de una falla llamada bloque faltante:
  • No produce daños pero desperdicia espacio en disco.
  • Se soluciona añadiendo el bloque a la tabla de bloques libres.
También podría detectarse la situación de falla debida a un bloque referenciado dos veces en la tabla de bloques libres:

  • Esta falla no se produce en los sistemas de archivos basados en mapas de bits, sí en los basados en tablas o listas.
  • La solución consiste en depurar la tabla de bloques libres.

Unidad 6 - Protección y Seguridad

6.1.- Concepto y Objetivos de Protección y Seguridad Los procesos en un sistema operativo deben protegerse de las actividades realiza...