Tema 19 – Sistemas operativos: Gestión de archivos y dispositivos.

1. Introducción. 2

1.1. Relación con los ciclos impartidos en FP. 2

1.2. Introducción a los SSOO. 2

1.3. Introducción a la Gestión de Archivos y Dispositivos. 2

2. Estructura de un Sistema de Archivos (Implantación) 2

2.1. Introducción. 2

2.2. Gestión del espacio en disco y almacenamiento de archivos. 2

2.3. Organización de los archivos: Directorios. 3

3. Fiabilidad. 3

3.1. Introducción. 3

3.2. Recuperación de errores. 3

3.3. RAID (Redundant Array of inexpensive (or independent) disk) 4

3.4. Back-up. 4

4. Seguridad y protección. 4

4.1. Protección de acceso. 4

4.2. Mecanismos de protección. 4

5. Planificación del acceso a disco. 5

6. Implementación de Sistemas de Archivos: 5

6.1. Sistemas de archivos en MSDOS (FAT16, FAT32) 5

6.2. Sistemas de archivos en Linux (ext2, ext3) 5

6.3. Sistemas de archivos en Windows 2000 (NFTS) 6

7. Bibliografía y Personalidades Influyentes/Destacadas. 6

7.1. Bibliografía. 6

7.2. Personalidades Destacadas. 7

1. Introducción

1.1. Relación con los ciclos impartidos en FP

Este tema está directamente relacionado con los siguientes módulos y ciclos formativos de la rama de informática:

· CFGS Administración de Sistemas Informáticos: Sistemas informáticos monousuario y multiusuario (SyAI).

· CFGS Desarrollo de Aplicaciones Informáticas: Sistemas informáticos multiusuario y en red (SyAI).

· CFGM Explotación de Sistemas Informáticos: Sistemas operativos en entornos monousuario y multiusuario (SyAI).

1.2. Introducción a los SSOO

Stallings, 2001. “Un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre el usuario de un computador y el hardware del mismo”

· Están presentes en todo tipo de sistemas electrónicos que necesiten un software de control sobre el que un usuario pueda trabajar fácilmente, desde super-ordenadores con cientos de microprocesadores (Solaris, AIX, Linux), hasta en aparatos tan comunes como agendas electrónicas (Windows Mobile o Palm OS), teléfonos móviles (Windows Mobile o Simbian OS, y como no, ordenadores personales (WXP, Linux, Mac OS X, etc.)

1.3. Introducción a la Gestión de Archivos y Dispositivos

· El SO y más específicamente el sistema de archivos, es el encargado de administrar los archivos, fijando la estructura, el nombre, la forma de acceso, los posibles usos, la implantación y las técnicas de protección.

· Archivo: Un conjunto de datos con un nombre asociado para poder referenciarlo más tarde. Suelen residir de forma persistente en dispositivos de almacenamiento secundario, tales como discos duros, disquetes o memorias flash.

· Funcionalidad que aporta:

o Que los usuarios puedan gestionar y estructurar sus archivos.

o Copias de seguridad y restauración de las mismas.

o Cifrado y descifrado de la información

o Dar al usuario una visión lógica de los datos.

o Proporcionar un conjunto de llamadas al sistema (API) para manipular los archivos.

· Nos centraremos en la Gestión de archivos y la implantación de los mismos en dispositivos de almacenamiento secundario, principalmente en discos magnéticos (discos duros).

2. Estructura de un Sistema de Archivos (Implantación)

2.1. Introducción

· El controlador software del dispositivo proporciona una abstracción del dispositivo físico. Con ellos se ofrece una visión lógica que consiste en una secuencia numerada de bloques de tamaño fijo, accesibles por medio de dos primitivas, readblock y writeblock o similares.

· El problema está en cómo determinar qué bloques están asignados a cada archivo y cómo organizar los propios archivos.

2.2. Gestión del espacio en disco y almacenamiento de archivos

· Se ha de determinar el tamaño de bloque. Si el tamaño es pequeño, reducimos la fragmentación interna del último bloque de cada archivo, pero los tiempos de acceso aumentan mucho si los bloques están dispersos.

· Existen distintos esquemas, aunque lo normal es que cada archivo esté almacenado en distintos bloques de disco que no tienen por qué estar ubicados consecutivamente. De esta forma los archivos podrán aumentar de tamaño fácilmente y se evitará la fragmentación externa.

· Asignación contigua: los bloques de un archivo se ubican de forma contigua. Fragmentación externa y dificultad de los archivos para crecer.

· Asignación enlazada: Mantiene todos los bloques de un archivo organizados como una lista enlazada, de tal forma que cada bloque apunta al siguiente. El problema es que para acceder al bloque “N” de un archivo, tenemos que recorrer los “N-1” bloques precedentes. MSDOS usa este esquema, pero añade la tabla de localización de archivos (FAT) que mantiene en memoria para acelerar los accesos y las búsquedas.

· Asignación indexada: Los números de bloque o punteros a los bloques de disco se almacenan en un vector de índices. Si se necesitan más punteros, los vectores se pueden enlazar. Unix y Linux utilizan una variante de este método, el en que el vector de índices es de tamaño fijo, pero se puede hacer uso de un puntero indirecto simple, uno doble, y uno triple.

· El espacio libre se gestiona normalmente mediante mapas de bits, donde cada bit corresponde a un bloque de disco, y estará a 1 o a 0 según esté lleno o vacío.

2.3. Organización de los archivos: Directorios

· Los archivos se organizan en directorios. El sistema de archivos puede estructurarse de dos formas:

o Directorio Único: MSDOS 1.0

o Estructura jerárquica en árbol invertido: los directorios pueden contener archivos y otros directorios de forma recursiva.

· Directorios: Los directorios almacenan información relacionada con el archivo tal como: nombre, situación, tamaño, tipo, propietario, etc.

· MS-DOS: Cada entrada en el directorio (una por archivo) contiene el nombre, extensión, atributos, fecha y hora, tamaño y el primer bloque en la FAT. El nombre tendrán como máximo 8 caracteres, y la extensión 3.

· UNIX: Cada entrada en el directorio contiene el nombre del archivo y un número de nodo índice o nodo-i. El nodo-i es una estructura de datos que contiene toda la información relacionada con el archivo, incluidos los punteros a los bloques de datos del disco. En este caso, esos datos contendrán la información relativa a los archivos del directorio: nº del i-nodo, tamaño de la entrada de directorio, longitud del nombre del archivo, nombre del archivo de hasta 255 caracteres.

· Para especificar el nombre de los archivos existen dos formas:

o Ruta absoluta: el nombre del camino comienza especificando el directorio raíz (/ en Unix o C:\ en Windows).

o Ruta relativa: la cual especifica la posición del archivo de modo relativo al directorio actual.

· Por regla general, para movernos por los directorios, el “.” Indica el directorio actual, y “..” el directorio inmediatamente superior en la jerarquía (directorio padre).

3. Fiabilidad

3.1. Introducción

· En cualquier sistema existe la posibilidad de que se produzcan errores, bien en el hardware, o bien, en el software, por lo que los SO suelen aportar soluciones.

· Dichas soluciones dependerán de los objetivos del sistema, por ejemplo las necesidades de fiabilidad en un ordenador personal son menores que en servidores de comercio electrónico.

· Ante un error no catastrófico, como puede ser la detección de sectores defectuosos, la solución consiste en eliminarlos de la lista de sectores libres y marcarlos como sectores defectuosos. Ante errores catastróficos, como la destrucción de un disco, se deben usar técnicas de redundancia basadas en discos redundantes o RAID

3.2. Recuperación de errores

· Un sistema puede estar en estado corrupto si se produce un fallo de alimentación o una desconexión inadecuada del sistema (entre otros). Se puede dar la circunstancia de que las operaciones que se estuviesen realizando no hubiesen finalizado, y por tanto el sistema estuviese en un estado inconsistente.

· Los SO aportan herramientas que permiten comprobar y corregir las inconsistencias de un sistema de archivos. Por ejemplo chkdsk en MSDOS y W2K, o fsck en UNIX:

o Comprueban que no existen bloques de datos asignados a archivos, y que en los mapas de bits aparezcan como bloques libres.

o Comprueba que un mismo bloque no está asignado a dos o más archivos diferentes.

o Comprueba el estado de las estructuras de datos (nodos-i, FAT, etc.)

3.3. RAID (Redundant Array of inexpensive (or independent) disk)

· Es un esquema de organización de discos físicos cuyos objetivos son básicamente combinar distintas unidades físicas como una única unidad lógica, incrementar el rendimiento y proporcionar tolerancia a fallos. En grandes equipos se realiza por hardware (por la controladora de discos), pero también algunos sistemas operativos, como W2K, permiten realizarlo por software, en este caso mediante el “Administrador de discos”, o mediante la herramienta de W2K “Diskpart”.

· Para soportar tolerancia a fallos se almacenan datos de paridad que se obtienen a partir de una operación XOR aplicada a los datos de las diferentes unidades y se guarda en el disco de forma permanente.

· Data striping: Permite combinar varias unidades físicas en una lógica. Divide los discos en franjas, y cada franja de un disco se combina con la franja del siguiente. Permite equilibrar la carga de los discos, y se incrementa el rendimiento en las transferencias, al poder realizar entradas y salidas solapadas en diferentes discos.

· RAID 0: No aporta tolerancia a fallos, pero aumenta el rendimiento en operaciones de E/S utilizando data striping.

· RAID 1 (en espejo): Como mínimo deben existir dos discos, los cuales almacenarán la misma información, por lo que deberán tener el mismo tamaño. En cada escritura los datos se escribe por duplicado, y en lectura se pueden leer dos bloques diferentes simultáneamente. Puede realizarse en dos discos pertenecientes a ordenadores diferentes conectados por una red.

· clip_image001RAID 5: El más utilizado, se necesitan como mínimo 3 discos. Aumenta el rendimiento utilizando una organización Data striping, y además se almacenan franjas de paridad repartidas en todos los discos. Si sólo un disco falla, la información puede recuperarse a partir de las bandas de los otros discos y la información redundante en éstas.

3.4. Back-up

· W2K/WXP: ntbackup. Permite realizar copias de seguridad de documentos y del estado del sistema. Soporta copias de seguridad normal, diaria, incremental y diferencial.

· Unix/Linux: cpio, tar, etc.

4. Seguridad y protección

4.1. Protección de acceso

· Es imprescindible que los sistemas operativos garanticen la seguridad y protección de los datos confidenciales de los usuarios.

· Autenticación: Se trata de identificar al usuario cuando éste accede al sistema, normalmente mediante un nombre de usuario y una clave, mediante una tarjeta de plástico, huellas dactilares, certificado digital, etc. Y así, permitir o no, el acceso según los permisos asociados a cada usuario. Estos permisos se pueden configurar en modo local (en passwd de Unix, o Usuarios locales de W2K) o en modo global para toda una red o un dominio con NDIS o LDAP en Unix o Active Directory en W2K.

4.2. Mecanismos de protección

· Permisos sobre los archivos: El sistema de archivos debe permitir asociar a cada archivo los permisos correspondientes, según de los usuarios y grupos posibles.

o Unix/Linux: cada archivo (y por tanto cada dispositivo) tiene asociado un propietario y un grupo, así se pueden establecer permisos de lectura, escritura o ejecución al propietario, al grupo, o a todos los demás. (chmod opciones archivo).

o Windows 2000: Se basa en Directivas de seguridad y Listas de Control de Acceso (ACL) asociadas a cada uno de los archivos (en este caso tratados como objetos). En estas listas se detallan cada uno de los usuarios y grupos que tienen acceso y el tipo de acceso (ejecución, lectura, escritura, crear archivos, tomar posesión, etc.), en caso de no tener permisos asociados, heredan los del directorio inmediatamente superior. Para acceder a estas características es necesario utilizar NTFS. (cacls archivo /parámetros…).

· Cifrado de archivos: El sistema operativo controla los accesos al disco duro y otros dispositivos siempre que se accedan a estos archivos desde el propio sistema operativo, pero si se acceden desde otro sistema, por ejemplo, enchufando el disco duro en otro ordenador con otro sistema operativo, sería imposible controlar el acceso, a menos que se utilicen técnicas de cifrado. En W2K (NTFS5) por ejemplo, se permite cifrar los archivos confidenciales indicándolo en las propiedades del archivo, la carpeta, o la unidad entera. W2K genera las claves necesarias a partir de la clave del usuario y cifra (y descifra) dichos archivos con DESX o tripleDES (depende de la versión de windows) de forma transparente para el usuario. De esta forma, sólo el propietario y, según las directivas de seguridad, puede que también el administrador, podrán acceder a los archivos cifrados.

5. Planificación del acceso a disco

· En sistemas multiprogramados existirá generalmente una cola de procesos esperando a que el sistema operativo les asigne el disco. Para minimizar los tiempos medios de espera, existen distintos algoritmos de asignación de disco. Algunos de ellos son:

o FCFS (first come first served): El más sencillo, las peticiones se atienden según el orden de llegada.

o SSTF (shortest seek time first): Selecciona siempre la solicitud que tenga un tiempo de búsqueda más bajo desde la posición actual, es decir, la más cercana. Puede producir inanición.

o SCAN (algoritmo del ascensor): La cabeza empieza en un extremo del disco y se mueve hacia el otro sirviendo las solicitudes a medida que llega a cada pista, hasta que llega a la última petición más cercana al otro extremo. Entonces invierte el sentido, o vuelve inmediatamente al otro extremo (C-SCAN).

6. Implementación de Sistemas de Archivos:

6.1. Sistemas de archivos en MSDOS (FAT16, FAT32)

· Cada entrada en el directorio (una por archivo) contiene 8 bytes para el nombre, 3 para la extensión, 2 bytes para el puntero al primer bloque, 4 bytes para la fecha y hora y 4 bytes para el tamaño del archivo en bytes.

· El esquema de almacenamiento se basa en la asignación enlazada de bloques, pero guarda estas listas enlazadas en una Tabla de Localización de Archivos (FAT) que mantiene en memoria para acelerar las búsquedas,

Tamaño máx. partición

Tamaño máx. archivo

Tamaño de cada entrada de la FAT

Nº de bloques que se pueden referenciar

FAT16

4GB

2GB

16 bits

216

FAT32

2TB W2K/XP lo limita a 32GB

4GB

32 bits

232

· En FAT16, para, por ejemplo, una partición de 1GB, el tamaño de bloque quedaría en 16KB, por lo que para archivos más pequeños que dicho tamaño, se desperdicia espacio (Fragmentación interna).

· FAT12 es un formato popular para disquetes, admitido por todos los SSOO. FAT16 está, cada vez más relegado para su uso en tarjetas de memoria o pendrives.

6.2. Sistemas de archivos en Linux (ext2, ext3)

· El sistema de archivos nativo de Linux es ext2 (Extended File System). No obstante, Linux soporta gran cantidad de sistemas de archivos, tales como FAT o NTFS, a través del VFS (Virtual File System), que “adapta” dichos sistemas para que Linux pueda trabajar con ellos y los usuarios puedan montarlos y manipularlos de una forma uniforme.

· El archivo tiene un límite de tamaño de 2TB, el volumen de 16TB (o 4TB), y el tamaño máximo del nombre de archivo 255 caracteres.

· La diferencia entre ext2 y ext3 está, sobretodo, en que este último soporta registro por diario, además, es totalmente compatible con ext2.

· En Linux, y en general en el mundo Unix, la independencia de dispositivo está altamente lograda, ya que se accede de la misma forma a archivos que estén en el disco, en un cd-rom, o en cualquier dispositivo. Es más, el acceso a los dispositivos de entrada/salida se realiza del mismo modo que el acceso a archivos ordinarios. Ej.: /dev/hd0, /dev/fd0, etc.

· El sistema de archivos tiene una estructura en árbol invertido, en el cual todos los archivos y directorios dependen de un único directorio denominado raíz o root, que se representa con la barra “/”. A partir de aquí se montaran las diferentes unidades de disco (o particiones), bien en el directorio raiz, o en cualquier directorio.

· Linux, trata a todos los archivos como simples secuencias de bytes, el núcleo no impone ninguna estructura sobre los mismos. A parte de los archivos ordinarios, existen archivos especiales como son los directorios, los dispositivos de tipo bloque o de tipo carácter, las tuberías y los enlaces simbólicos.

· Minimiza la fragmentación interna de bloques, ya que trabaja con bloques lógicos, que son múltiplos de bloques físicos, y en caso de no llenarse el último bloque lógico de un archivo, se pueden asignar fragmentos de bloque lógico, más pequeños que los bloques físicos.

· El sistema de archivos se estructura en grupos, cada uno de los grupos contiene los siguientes datos:

o Información crítica del sistema de archivos, como el superbloque y los descriptores de grupo (redundante, igual en todos los grupos).

o Mapa de bits de los bloques de datos y de los nodos-i.

o Tabla de nodos-i del grupo.

o Bloques de datos del grupo.

· Superbloque: describe el estado global del sistema de archivos, su perdida supone la pérdida de todos los datos, por lo que se guarda de forma redundante. Almacena el número total de nodos-i y de bloques, el número total de nodos-i libres y bloques libres, tamaño de bloque lógico, tamaño del fragmento, número de bloques, fragmentos y nodos-i en un grupo, etc.

· Descriptor de grupo: Punteros al bloque que contiene el mapa de bits de los bloques de datos y de los nodos-i del grupo, puntero al primer bloque de la tabal de nodos-i, número de loques y nodos-i libres en el grupo, etc.

· Nodos-i: nodo índice, es la estructura de datos empleada para localizar la información relativa a cada archivo o directorio. Contiene toda la información acerca del archivo o directorio que representan (tipo de archivo, derechos de acceso, propietario, grupo, tamaño, fecha modificación, punteros a los bloques de datos, etc.). Existen 12 punteros directos, uno indirecto simple, uno indirecto doble y uno triple.

6.3. Sistemas de archivos en Windows 2000 (NFTS)

· W2K soporta FAT16 y FAT32, pero es con NTFS con el que aporta muchas más posibilidades:

· Los archivos prácticamente no tienen límite de tamaño (actualmente 16TB), los discos pueden tener un tamaño de hasta 256TB, aunque se recomiendan 2TB, los nombres son de hasta 255 caracteres, y permite establecer cuotas de disco para cada usuario.

· Mantiene un registro de transacciones (journaling) para garantizar la integridad del sistema de ficheros. Realiza las operaciones como transacciones, pudiendo recuperarse en caso de perdida de energía (chkdsk).

· Usa, lo que denomina Discos y Volúmenes Dinámicos, y permite crear volúmenes distribuidos, reflejados y en RAID 5 por software.

· Las particiones, o volúmenes se pueden montar en unidades denominadas por una letra (C:, D:, etc.) o en una carpeta vacía de una unidad que ya está montada, por ejemplo podríamos tener una partición en C:, y otra en C:\Otra Unidad\. Incluso se puede montar la misma partición en varios sitios a la vez a través del administrador de discos. (Sólo a partir de NTFS5 en W2K).

7. Bibliografía y Personalidades Influyentes/Destacadas

7.1. Bibliografía

· Tanenbaum, A. S.: “Sistemas operativos: diseño e implementación”. 2ª Ed. Prentice Hall. 1998.

· Tanenbaum, A. S.: “Sistemas operativos modernos”. 2ª Ed. Prentice Hall. 2003.

· Stallings, W.: “Sistemas operativos”. 5ª Ed. Prentice Hall.2005.

· Carretero, Jesús: ”Sistemas operativos. Una visión aplicada”. McGraw Hill. 2001.

· http://es.tldp.org Documentación libre en español de Linux/Unix

· http://msdn.microsoft.com Centro de desarrollo de Microsoft.

· http://www.tutorialparaprofesores.com Documentación de Microsoft para profesores.

· http://technet.microsoft.com Documentación tecnológica de Microsoft

7.2. Personalidades Destacadas

· Linus Torvalds: Ingeniero informático finlandés, iniciador y desarrollador del núcleo (kernel) de Linux a partir del S.O. MINIX. Adoptó la licencia GPL permitiendo así su modificación, redistribución, copia y uso ilimitado.

· Andrew S. Tanenbaum: Director del Departamento de Sistemas en una universidad de Ámsterdam, es conocido por ser el creador de los sistemas operativos MINIX 3.0, con arquitectura micronúcleo y capaz de ejecutar programas UNIX, y Amoeba, sistema operativo completamente distribuido, creados con fines académicos, así como por escribir varios libros sobre sistemas operativos y redes de computadoras, muy valorados por los académicos de medio mundo.

Publicado: marzo 17, 2019 por Laura Gonzalez

Etiquetas: tema 19 informatica