6.1 CONCEPTO Y OBJETIVOS DE PROTECCIÓN Y SEGURIDAD

La protección es un mecanismo control de acceso de los programas, procesos o usuarios al sistema o recursos.

Hay importantes razones para proveer protección. La mas 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.




Objetivos


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.
1.- Inicialmente protección del SO frente a usuarios poco confiables.
2.- Proteccion: control para que cada componente activo de un proceso solo pueda acceder a los recursos especificados, y solo en forma congruente con la politica establecida.
3.- La mejora de la protección implica también una mejora de la seguridad.
4.- Las políticas de uso se establecen:
  • Por el hardware. 
  • Por el administrador / SO. 
  • Por el usuario propietario del recurso.
5.- Principio de separación entre mecanismo y política:
  • Mecanismo → con que elementos (hardware y/o software) se realiza la protección. 
  • Política → es el conjunto de decisiones que se toman para especificar como se usan esos elementos de protección.
6.- La política puede variar
  • Dependiendo de la aplicación,
  • A lo largo del tiempo.
7.-La protección no solo es cuestión del administrador, sino también del usuario.

8.-El sistema de protección debe:

  • Distinguir entre usos autorizados y no-autorizados. 
  • Especificar el tipo de control de acceso impuesto. 
  • Proveer medios para el aseguramiento de la protección.

6.2 CLASIFICACIÓN APLICADA A LA SEGURIDAD

La seguridad interna esta relacionada a los controles incorporados al hardware y al Sistema
Operativo para asegurar los recursos del sistema.




Seguridad Externa

La seguridad externa consiste en:
  • Seguridad física. 
  • Seguridad operacional.
La seguridad física incluye:
  • Protección contra desastres(como inundaciones, incendios, etc.). 
  • Protección contra intrusos. 
En la seguridad física son importantes los mecanismos de detección , algunos ejemplos son:
  • Detectores de humo. 
  • Sensores de calor. 
  • Detectores de movimiento.
La protección contra desastres puede ser costosa y frecuentemente no se analiza en detalle; depende en gran medida de las consecuencias de la perdida.

Seguridad Operacional

Consiste en las diferentes políticas y procedimientos implementados por la administración de la instalación computacional. La autorizacion determina que acceso se permite y a quien.

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


Un modelo de protección puede ser visto abstractamente como una matriz, llamada matriz de derecho. Los renglones de la matriz representan dominios y las columnas representan objetos. Cada entrada en la matriz contiene un conjunto de derechos de acceso. Dado que los objetos son definidos explícitamente por la columna, se puede omitir el nombre del objeto en el derecho de acceso. La entrada "Matriz[i, j]" define el conjunto de operaciones que un proceso ejecutándose en el dominio "Dj" puede realizar sobre el objeto "Oj".

Matriz de Acceso

  • Es una representación abstracta del concepto de dominio de protección.
  •  Matriz con
            * Tantas columnas como objetos / recursos.
            * Tantas filas como dominios.
            * Las celdas contienen los accesos: son los derechos de acceso que tienen los procesos                que se ejecutan en ese dominio sobre el correspondiente objeto.

El mecanismo de protección es la matriz, junto con todos los elementos que se han de añadir para que se cumplan de manera efectiva todas las restricciones de acceso a los objetos.



• La política consiste en decidir cómo rellenar las distintas celdas de la matriz.

• La MA permite implementar operaciones de cambio de domino.
        
         * El objeto sobre el que trabajamos es el Dominio aparecen tantas columnas como                      dominios en el sistema.
         * La operación es la conmutación de un dominio a otro.

6.5 PROTECCIÓN BASADA EN EL LENGUAJE

La especificación de protección en un lenguaje de programación permite la descripción de alto nivel de políticas para la asignación y uso de recursos.
 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:
Una notación declarativa es natural porque los privilegios de acceso están íntimamente relacionados con el concepto lingüístico de tipo de datos.
Las necesidades de protección se declaran sencillamente y no llamando procedimientos del SO.
Las necesidades de protección pueden expresarse independientemente de los recursos que ofrece el SO.
El diseñador no debe proporcionar mecanismos para hacer cumplir la protección.

Los privilegios de acceso están íntimamente relacionados con el tipo de datos que se declara. Diferencias entre las distintas formas de protección:

Seguridad:
La obligación de cumplimiento por núcleo ofrece un grado de seguridad que el código de seguridad ofrecido por el compilador.

Flexibilidad:
La flexibilidad de la implementación por núcleo es limitada. Si un lenguaje no ofrece suficiente flexibilidad, se puede extender o sustituir, perturbando menos cambios en el sistema que si tuviera que modificarse el núcleo.

Eficiencia:
Se logra mayor eficiencia cuando el hardware apoya la protección. La especificación de protección en un lenguaje de programación permite describir en alto nivel las políticas de asignación y uso de recursos. El programador de aplicaciones necesita un mecanismo de control de acceso seguro y dinámico para distribuir capacidades a los recursos del sistema entre los procesos de usuario. Las construcciones que permiten al programador declarar las restricciones tienen tres operaciones básicas:

Distribuir capacidades de manera segura y eficiente entre procesos clientes.Especificar el tipo de operaciones que un proceso podría invocar en un recurso asignado. Especificar el orden en que un proceso dado puede invocar las operaciones de un recurso.          

6.6 VALIDACIÓN Y AMENAZAS AL SISTEMA

La validación.
  • Identificar cada usuario que esta trabajando en el sistema (usando los recursos).
  • Uso de contraseñas.
  • Vulnerabilidad de contraseñas.
           * Que sean complejas y dificiles de adivinar.
           *Cambiarlas de vez en cuando.
           * Peligro de perdida del secreto.
  • La contraseña debe guardare cifrada.
Proteccion por Contraseña
Las clases de elementos de autentificacion para establecer la identidad de una persona son:
  • Algo sobre la persona:
Ej.: huellas digitales, registro de la voz, fotografia, firma, etc.
  • Algo poseido por la persona:
Ej.: insignias especiales, tarjetas de identificacion, llaves, etc.
  • Algo conocido por la persona:
Ej.: contraseñas, combinaciones de cerraduras, etc.

El esquema mas común de autentificacion es la protección por contraseña:
El usuario elige una palabra clave , la memoriza, la teclea para ser admitido en el sistema computarizado:
  • La clave no debe desplegarse en pantalla ni aparecer impresa.
La proteccion por contraseñas tiene ciertas desventajas si no se utilizan criterios adecuados para:
  • Elegir las contrasenas.
  • Comunicarlas fehacientemente en caso de que sea necesario.
  • Destruir las contraseñas luego de que han sido comunicadas.
  • Modificarlas luego de algun tiempo.
Los usuarios tienden a elegir contraseñas faciles de recordar:
Nombre de un amigo, pariente, perro, gato, etc.
  • Numero de documento, domicilio, patente del auto, etc.
Estos datos podrían ser conocidos por quien intente una violacion a la seguridad mediante intentos repetidos, por lo tanto debe limitarse la cantidad de intentos fallidos de acierto para el ingreso de la contraseña.
La contraseña no debe ser muy corta para no facilitar la probabilidad de acierto.
Tampoco debe ser muy larga para que no se dificulte su memorizacion, ya que los usuarios la anotarian por miedo a no recordarla y ello incrementaria los riesgos de que trascienda.

Contraseñas de un solo uso
  •  Al final de cada sesion, se le pide al usuario que cambie la contraseña.
  •  Si alguien “roba una contraseña”, el verdadero usuario se dara cuenta cuando vaya a identificarse de nuevo, pues el impostor habra cambiado la contraseña, con lo que el fallo de seguridad queda detectado.
Verificación de Amenazas
Es una tecnica segun la cual los usuarios no pueden tener acceso directo a un recurso :
Solo lo tienen las rutinas del S. O. llamadas programas de vigilancia.

  • El usuario solicita el acceso al S. O.
  • El S. O. niega o permite el acceso.
  • El acceso lo hace un programa de vigilancia que luego pasa los resultados al programa del usuario.
  • Permite:
           *Detectar los intentos de penetración en el momento en que se producen.
           *Advertir en consecuencia.


Dentro de las amenazas que existen podemos mencionar las siguientes:


*Interrupción: Un elemento del sistema es destruido o se hace inservible. Es una amenaza a la disponibilidad. Ejemplos son la destrucción de algún elemento hardware y la des activación del sistema de gestión de ficheros.


*Intercepción: Una parte no autorizada obtiene acceso a un elemento relacionado con la seguridad. Es una amenaza a la privacidad. Ejemplos son la copia ilícita de programas y la visualización de ficheros que han de permanecer ocultos.


*Modificación: Una parte no autorizada no sólo obtiene acceso sino que puede modificar un elemento relacionado con la seguridad. Es una amenaza a la integridad. Ejemplos son la alteración del contenido de un fichero y modificar un programa para que funcione de forma diferente.


*Fabricación: Una parte no autorizada inserta nuevos elementos en el sistema. Es una amenaza a la integridad. Ejemplos son adición de registros a un fichero y la inclusión de mensajes espúreos en una red.

*Intrusos: dentro de ellos tenemos lo que son los piratas o hackers: que son los individuos que acceden al sistema sin autorización y hacen que los sistemas presenten agujeros que es el lugar por donde consiguen colarse.




AMENAZAS DE TIPO SOFTWARE


*Bomba Lógica: Es un código incrustado en un programa que comprueba si ciertas condiciones se cumplen, en cuyo caso ejecuta alguna acción no autorizada. Un ejemplo de uso de bomba lógica es el caso de un programador que vende un programa a una empresa. Si transcurrido un cierto tiempo la empresa no ha pagado, el programador revela la existencia de la bomba lógica con el fin de obtener su dinero.

*Puerta Falsa (Trapdoor): Es un punto de entrada secreto en un programa, de forma que alguien que conozca la existencia de dicha puerta puede obtener permisos de acceso sin tener que pasar por los mecanismos normales de autentificación.

*Caballo de Troya (Trojan Horse): Es una rutina oculta en un programa de utilidad. Cuando el programa se ejecuta, se ejecuta la rutina y ésta realiza acciones no autorizadas. Estos programas permiten realizar de forma indirecta acciones que no puede realizar de forma directa. Por ejemplo, puede ser un editor que cuando es ejecutado modifica los permisos de los ficheros que edita de forma que éstos puedan ser accedidos por cualquier usuario.

*Virus: Es código introducido en un programa que puede infectar otros programas mediante la copia de sí mismo en dichos programas.

*Bacteria: Programa que consume recursos del sistema replicándose asimismo, pero no daña explícita mente ningún fichero. Se suele reproducir exponencial mente, por lo que puede acaparar recursos como CPU, memoria y disco.

*Gusano (Worm): Es un programa que usa las redes de computadores para pasar de unos sistemas a otros. Una vez que llega a un sistema, el gusano se puede comportar como un virus o una bacteria, puede implantar programas caballo de troya, o puede realizar acciones no autorizadas.


ATAQUES GENÉRICOS A SISTEMAS OPERATIVOS

A sincronismo:
  • Se tienen procesos múltiples que progresan a sincrónicamente.
  • Un proceso podría modificar los parámetros ya validados por otro proceso pero aún no utilizados.
Rastreo:
  • Un usuario revisa el sistema intentando localizar información privilegiada.
Entre líneas:
  • Se utiliza una línea de comunicaciones mantenida por un usuario habilitado que está inactivo.
Código clandestino:
  • Se modifica el S. O. bajo una presunta depuración pero se incorpora código que permite ingresos no autorizados.
Procesos sincronizados interactivos:
  • Se utilizan las primitivas de sincronización del sistema para compartir y pasarse información entre sí.
Disfraz:
  • El intruso asume la identidad de un usuario legítimo luego de haber obtenido la identificación apropiada por medios clandestinos.
Ataque “nak”:
  • Si el S. O. permite a un usuario:
           *Interrumpir un proceso en ejecución mediante una “tecla” de“reconocimiento negativo”.
           *Realizar otra operación.
           *Reanudar el proceso interrumpido.
  • Un intruso podría “encontrar” al sistema en un estado no protegido y hacerse con el control.
Engaño al operador:
  • Con un engaño se hace realizar al operador una acción que comprometa la seguridad del sistema.
Parámetros inesperados:
  • El intruso suministra valores inesperados a una llamada al núcleo.
  • Intenta aprovechar una debilidad de los mecanismos de verificación de la legalidad del S. O.

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





Autenticación

En términos de seguridad de redes de datos, se puede considerar uno de los tres pasos fundamentales (AAA). Cada uno de ellos es, de forma ordenada:

Autenticación En la seguridad de ordenador, la autenticación es el proceso de intento de verificar la identidad digital del remitente de una comunicación como una petición para conectarse. El remitente siendo autenticado puede ser una persona que usa un ordenador, un ordenador por si mismo o un programa del ordenador. En un web de confianza, "autenticacion" es un modo de asegurar que los usuarios son quien ellos dicen que ellos son - que el usuario que intenta realizar funciones en un sistema es de hecho el usuario que tiene la autorización para hacer así.





Mecanismo general de autenticación

La mayor parte de los sistemas informáticos y redes mantienen de uno u otro modo una relación de identidades personales (usuarios) asociadas normalmente con un perfil de seguridad, roles y permisos. La autenticación de usuarios permite a estos sistemas asumir con una seguridad razonable que quien se esta conectando es quien dice ser para que luego las acciones que se ejecuten en el sistema puedan ser referidas luego a esa identidad y aplicar los mecanismos de autorización y/o auditoria oportunos.

El primer elemento necesario (y suficiente estrictamente hablando) por tanto para la autenticación es la existencia de identidades biunívocamente identificadas con un identificador único (valga la redundancia). Los identificadores de usuarios pueden tener muchas formas siendo la mas común una sucesión de caracteres conocida comúnmente como login .




El proceso general de autenticación consta de los siguientes pasos:

  • El usuario solicita acceso a un sistema. 
  • El sistema solicita al usuario que se autentique. 
  • El usuario aporta las credenciales que le identifican y permiten verificar la autenticidad de la identificación. 
  • El sistema valida según sus reglas si las credenciales aportadas son suficientes para dar acceso al usuario o no.

5.1 CONCEPTO

Un sistema de archivos es un método para el almacenamiento y organización de los archivos y datos de una computadora, para encontrarlos y accederlos mas fácilmente. 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.

Un sistema de archivos es implementado 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 pueden ser representados de forma textual (ej.: el shell de DOS) o gráficamente (ej.: Explorador de archivos en Windows) utilizando un gestor de archivos. 

El software del sistema de archivos se encarga de organizar los archivos (que suelen estar segmentados en pequeños bloques de pocos bytes) y directorios, manteniendo un registro de qué bloques pertenecen a qué archivos, qué bloques no se han utilizado y las direcciones físicas de cada bloque.

Los sistemas de archivos pueden ser clasificados en tres categorías: sistemas de archivo de disco, sistemas de archivos de red y sistemas de archivos de propósito especial. 

Ejemplos de sistemas de archivos son: 

FAT, UMSDOS, NTFS, UDF, ext2, ext3, ext4, ReiserFS, XFS, etc.

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.


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


Se le conoce como archivo virtual, aquel que contiene los datos generados por el usuario.

       



Un 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 es en bytes.



5.3. COMPONENTES DE UN SISTEMA DE ARCHIVOS

Sistema de archivos:

El “Sistema de Archivos” es un componente importante de un S. O. y suele contener:

  • “Métodos de acceso” relacionados con la manera de acceder a los datos almacenados en archivos.
  • “Administración de archivos” referida a la provisión de mecanismos para que los archivos sean almacenados, referenciados, compartidos y asegurados.
  •  “Administración del almacenamiento auxiliar” para la asignación de espacio a los archivos en los dispositivos de almacenamiento secundario.
  • “Integridad del archivo” para garantizar la integridad de la información del archivo.
El sistema de archivos está relacionado especialmente con la administración del espacio de almacenamiento secundario, fundamentalmente con el almacenamiento de disco.


Estructura de un Archivo:

Los archivos se pueden estructurar de varias maneras, las más comunes son:
  • “Secuencia de bytes”: 
  • El archivo es una serie no estructurada de bytes. 
  • Posee máxima flexibilidad. 
  • El S. O. no ayuda pero tampoco estorba. 
  • “Secuencia de registros”: 
  • El archivo es una secuencia de registros de longitud fija, cada uno con su propia estructura interna.
Operaciones con Archivos:

Las llamadas más comunes al sistema relacionadas con los archivos son:
  • Create (crear): el archivo se crea sin datos. 
  • Delete (eliminar): si el archivo ya no es necesario debe eliminarse para liberar espacio en disco. Ciertos S. O. eliminan automáticamente un archivo no utilizado durante “n” días. 
  • 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. 
  • Read (leer): los datos se leen del archivo; quien hace la llamada debe especificar la cantidad de datos necesarios y proporcionar un buffer para colocarlos. 
  • Write (escribir): los datos se escriben en el archivo, en la posición actual. El tamaño del archivo puede aumentar (agregado de registros) o no (actualización de registros). 
  • Append (añadir): es una forma restringida de “write”. Solo puede añadir datos al final del archivo.
El mapeo de archivos elimina la necesidad de programar la e / s directamente, facilitando la programación. 
  • Los principales problemas relacionados son: 
  • Imposibilidad de conocer a priori la longitud del archivo de salida, el que podría superar a la memoria. 
  • Dificultad para compartir los archivos mapeados evitando inconsistencias, ya que las modificaciones hechas en las páginas no se verán reflejadas en el disco hasta que dichas páginas sean eliminadas de la memoria.

5.4 ORGANIZACIÓN LÓGICA Y FÍSICA

La mayoría de las computadoras organizan los archivos en jerarquías llamadas carpetas, directorios o 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.


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.


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. 
  • La estructura más simple tiene como índice un archivo secuencial simple, cada registro del archivo índice tiene dos campos, un campo clave igual al del archivo principal y un puntero al archivo principal. Para encontrar un campo especifico se busca en el índice hasta encontrar el valor mayor de la clave que es iguale o precede al valor deseado de la clave, la búsqueda continua en el archivo principal a partir de la posición que indique el puntero.



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.



Archivos directos o de dispersión:
  • Explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. 
  • Se requiere un campo clave en cada registro. 
  • Los archivos directos son muy usados donde se necesita un acceso muy rápido, donde se usan registros de longitud fija y donde siempre se accede a los registros de una vez.


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. 
Además tales registros puede contener etiquetas que permitan un mayor control sobre los datos almacenados, y son las siguientes: 
  • Etiqueta de volumen.- Contiene información que permite identificar la cinta, el nombre del propietario y cualquier información general requerida. 
  • Etiqueta de archivo.- Se utilizan por pares para indicar el inicio y fin del archivo, contiene información acerca del nombre del archivo, fecha de creación.
  • Etiqueta de usuario.- Sirven para guardar información adicional de importancia para el usuario; no son procesados por el sistema operativo.


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. La organización encadenada consiste un conjunto de bloques, cada uno de los cuales tiene un campo destinado para indicar la dirección del siguiente registro, o sea, para lo que se ha llamado enlace o liga.
Si un archivo va a procesar solamente por lotes, accediendo cada vez a todos los registros, entonces el acceso rápido para la recuperación de un único registro es una preocupación mínima. Un archivo almacenado en CD-ROM nunca será actualizado, por lo que la facilidad de actualización no se considera. Para la economía de almacenamiento , debería existir una mínima redundancia de los datos, ésta redundancia es el medio fundamental para incrementar la velocidad de acceso a los datos.

5.5 MECANISMOS DE ACCESO A LOS ARCHIVOS



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.
Los Directorios son utilizados por el sistema operativo para llevar un registro de los archivos que incluye el nombre, los atributos y las direcciones en disco donde se almacenan los datos del archivo referenciado.

Método de Acceso Secuencial

El acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial. El acceso secuencial es a veces la única forma de acceder a los datos.




Método de Acceso Directo o de Dispersión (Hashed)

Los archivos directos explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección conocida. Como en los archivos secuenciales y secuenciales indexados, se requiere un campo clave en cada registro.
Método de acceso secuencial indexado
Método común de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un índice de campos claves para todos los registros en el archivo para acceso directo. El orden secuencial sería el más comúnmente usado para el procesamiento por lotes y la impresión.

Archivos secuenciales
En este tipo de archivo, un formato fijo es usado para los registros. Todos los registros tienen el mismo tamaño, constan del mismo número de campos de tamaño fijo en un orden particular. El nombre del campo y longitud de cada campo son atributos de la estructura de archivos. 


5.6 MANEJO DE ESPACIO EN MEMORIA SECUNDARIA

El sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento secundario, sobre todo el espacio en disco. El manejo del espacio libre en disco se lleva a cabo de la siguiente manera:
  • Vector de bits
  • Lista ligada (lista libre).
  • Por conteo (agrupación).
Vector de bits. 
  • El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada sector es representado por un bit y si el sector es libre el bit es cero de lo contrario está asignado.


Lista ligada (lista libre) 

Existe una cabecera en la que se tiene la dirección del primer sector vacio, ese sector a su vez, tiene un apuntador al siguiente sector, y así sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre.

Por conteo 
Aquí, por cada conjunto de sectores contiguos que estén vacios, se tiene por cada apuntador, un número de inicio y el tamaño del grupo de sectores vacios.

Métodos de asignación de espacio en disco. 

Un método de asignación de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. 
  • Contigua 
  • Ligada 
  • Indexada


Asignación contigua 
  • Este método consiste en asignar el espacio en disco de tal manera que las direcciones de todos los bloques correspondientes a un archivo definen un orden lineal. 
Asignación ligada 
  • En este método, cada archivo es una lista ligada de bloques de disco. En el directorio hay un apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista. 
Asignación indexada 
  • Cada archivo tiene su bloque índice, El cual es un arreglo de direcciones de bloques de disco. La i-ésima entrada en el bloque índice apunta al i-ésimo bloque que conforma el archivo.

5.7 MODELO JERÁRQUICO

  • El directorio contiene un conjunto de datos por cada archivo referenciado. 
  • Es un contenedor virtual en el que se almacenas una agrupación de archivos de datos y otros sus directorios, atendiendo a su contenido a su propósito o cualquier criterio que decida el usuario.
Directorios
directorio jerárquico


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.


5.8 MECANISMO DE RECUPERACIÓN EN CASO DE FALLAS



RECUPERACIÓN

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



Comprobación de coherencia: 

Parte de la información de directorios se almacena en la memoria principal (o en caché) para acelerar el acceso. La información de directorios en memoria principal está, generalmente, más actualizada que la correspondiente información en el disco.

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.