Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INVESTIGACIÓN UNIDAD IV
PRESENTA:
ANDRADE BÁEZ VÍCTOR EDUARDO
MATRICULA:
2153330322
PROFESOR:
BECERRA DEL ÁNGEL ARMANDO
GRUPO:
6TO H
26/04/2020
4.1 Introducción al sistema de archivos
Dado que la gestión de archivos y directorios es la principal tarea básica que se realiza
con los sistemas operativos vamos a profundizar un poco en los sistemas de archivos
Los sistemas de archivos permiten organizar los datos en los dispositivos de
almacenamiento siguiendo una serie de normas y restricciones. Un sistema de archivos
se implanta después de crear una partición en un dispositivo de almacenamiento (disco
duro, USB, CD/DVD, etc.).
Gestión de archivos
El almacenamiento de la información de lleva a cabo mediante archivos (también
llamados ficheros). Un archivo se define como un conjunto de datos almacenados en un
dispositivo de almacenamiento.
El sistema operativo gestiona los archivos mediante el sistema de archivos.
El sistema de archivos es un conjunto de normas y procedimientos para almacenar
información en los dispositivos de almacenamiento.
Tipos de archivos
En general, los sistemas operativos, distinguen entre estos tipos de archivos:
Asignación Contigua
Asignación Enlazada
Asignación Indexada
Asignación contigua
Como su nombre los indica, los bloques que pertenecen a un mismo archivo se ubican de
manera contigua. Las direcciones del disco definen una ordenación lineal del disco. Lo
que es particularmente útil en el caso de los discos mecánicos ya que no es necesario
realizar grandes movimientos en el cabezal para leer el archivo ya que con este método el
movimiento será casi nulo. Cuando hace falta un movimiento de cabezal para pasar del
ultimo sector de un cilindro al primer sector del siguiente solo necesita moverse de una
pista a la siguiente, así el número de reposicionamiento del cabezal es mínimo. Este
método también reduce las búsquedas en el disco, ya que se sabe que están en cierto
espacio contiguo y no es necesario explotar todo para llegar a la información deseada.
Cada directorio contiene, para cada archivo, la dirección del bloque en que comienza y la
longitud del área asignada a este archivo.
La asignación contigua de un archivo está definida por la asignación de disco del primer
bloque y por la longitud del archivo; la entrada de directorio de cada archivo indicara la
dirección del bloque de inicio y la longitud del área asignada al archivo, así acceder a este
archivo resulta muy sencillo.
Asignación Enlazada
Este método resuelve todos los problemas de la asignación continua, ya que cada archivo
es una lista enlazada de bloques de disco, pudiendo estar dichos bloques dispersos por
todo el disco. Cada bloque contiene un puntero al bloque siguiente y estos punteros no
están a disposición del usuario.
Para crear un nuevo archivo, simplemente se crea una nueva entrada en el directorio y
cada entrada tiene un puntero al primer bloque de disco del archivo. Una escritura en el
archivo hará que el sistema de gestión de espacio libre localice un bloque libre y la
información se almacenara en este y será enlazada al final del archivo. Para leer un
archivo, simplemente leemos los bloques siguiendo los punteros de un bloque a otro
hasta leer todos.
En la asignación enlazada no existe la fragmentación ya que siempre que existan bloques
libres se pueden usar para almacenar los archivos; tampoco es necesario declarar el
tamaño del archivo por esta misma razón. En consecuencia, nunca es necesario
compactar el espacio de disco. Sin embargo, también tiene sus desventajas ya que solo
se lo puede utilizar para los archivos de acceso secuencial.
EA DE LA
ENERGÍA LAS
INDUSTRIAS Y
LOS
RECURSOS
NATURALES NO
RENOVABLES
Asignación Indexada
En este esquema se guarda en el directorio un bloque de índices para cada archivo, con
apuntadores hacia todos sus bloques constituyentes, de manera que el acceso directo se
agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos
apuntadores. Cuando se quiere leer un archivo o cualquiera de sus partes, se hacen dos
accesos: uno al bloque de índices y otro a la dirección deseada. Este es un esquema
excelente para archivos grandes, pero no para pequeños, porque la relación entre
bloques destinados para índices respecto a los asignados para datos es incosteable.
Tiene el problema de que, si un archivo crece, será muy probable que deba
desplazarse en el disco, lo que puede afectar seriamente al rendimiento.
Dividir el archivo en cierto número de bloques (no necesariamente) adyacentes.
Generalmente, los sistemas de archivos utilizan esta estrategia con bloques de
tamaño fijo.
Dada la forma en que están organizados los bloques, el sector, la pista y el cilindro son
los candidatos obvios como unidades de asignación. Si se tiene una unidad de asignación
grande, como un cilindro, esto significa que cada archivo, inclusive uno pequeño, ocupará
todo un cilindro; con esto se desperdicia espacio de almacenamiento en disco. Si se
utiliza una unidad de asignación pequeña, como un sector, implica que cada archivo
constará de muchos bloques; con esto su lectura generará muchas operaciones de e/s
afectando la performance.
Mapa de bits:
Un disco con “n” bloques necesita un mapa de bits con “n” bits.
Los bloques libres se representan con “1” y los asignados con “0” (o viceversa).
Generalmente, este método es preferible cuando existe espacio suficiente en la
memoria principal para contener completo el mapa de bits.
Disk quotas:
Para evitar que los usuarios se apropien de un espacio excesivo en disco, los SO
multiusuario proporcionan, generalmente, un mecanismo para establecer las cuotas en el
disco.
La idea es que:
4.5 Implementación
Distribución del sistema de archivos
Los sistemas de archivos se almacenan en discos. La mayoría de los discos se pueden
dividir en una o más particiones, con sistemas de archivos independientes en cada
partición. El sector 0 del disco se conoce como el MBR (Master Boot Record; Registro
maestro de arranque) y se utiliza para arrancar la computadora. El final del MBR contiene
la tabla de particiones, la cual proporciona las direcciones de inicio y fin de cada partición.
Una de las particiones en la tabla se marca como activa. Cuando se arranca la
computadora, el BIOS lee y ejecuta el MBR. Lo primero que hace el programa MBR es
localizar la partición activa, leer su primer bloque, conocido como bloque de arranque, y
ejecutarlo. El programa en el bloque de arranque carga el sistema operativo contenido en
esa partición. Por cuestión de uniformidad, cada partición inicia con un bloque de
arranque no contenga un sistema operativo que se pueda arrancar. Además, podría
contener uno en el futuro.
Además de empezar con un bloque de arranque, la distribución de una partición de disco
varía mucho de un sistema de archivos a otro. A menudo el sistema de archivos
contendrá algunos de los elementos que se muestran en la gráfica 106. El primero es el
superbloque. Contiene todos los parámetros clave acerca del sistema de archivos y se lee
en la memoria cuando se arranca la computadora o se entra en contacto con el sistema
de archivos por primera vez. La información típica en el superbloque incluye un número
mágico para identificar el tipo del sistema de archivos, el número de bloques que contiene
el sistema de archivos y otra información administrativa clave.
Implementación de archivos
Probablemente la cuestión más importante al implementar el almacenamiento de archivos
sea mantener un registro acerca de qué bloques de disco van con cuál archivo. Se utilizan
varios métodos en distintos sistemas operativos.
Asignación contigua
El esquema de asignación más simple es almacenar cada archivo como una serie
contigua de bloques de disco. Así, en un disco con bloques de 1 KB, a un archivo de 50
KB se le asignarían 50 bloques consecutivos. Con bloques de 2 KB, se le asignarían 25
bloques consecutivos. En la siguiente gráfica (a) podemos ver un ejemplo de asignación
de almacenamiento contigua. Aquí se muestran los primeros 40 bloques de disco,
empezando con el bloque 0, a la izquierda. Al principio el disco estaba vacío, después se
escribió un archivo A de cuatro bloques de longitud al disco, empezando desde el
principio (bloque 0). Posteriormente se escribió un archivo de seis bloques llamado B,
empezando justo después del archivo A. Observe que cada archivo empieza al inicio de
un nuevo bloque, por lo que si el archivo Afuera realmente de 3 ½ bloques, se
desperdiciaría algo de espacio al final del último bloque. En la gráfica se muestra un total
de siete archivos, cada uno empezando en el bloque que va después del final del archivo
anterior. Se utiliza sombreado sólo para facilitar la distinción de cada archivo. No tiene un
significado real en términos de almacenamiento. La asignación de espacio en disco
contiguo tiene dos ventajas significativas.
Asignación de lista enlazada (ligada)
El segundo método para almacenar archivos es mantener cada uno como una lista
enlazada de bloques de disco, como se muestra en la gráfica 108. La primera palabra de
cada bloque se utiliza como apuntador al siguiente. El resto del bloque es para los datos.
A diferencia de la asignación contigua, en este método se puede utilizar cada bloque del
disco. No se pierde espacio debido a la fragmentación del disco (excepto por la
fragmentación interna en el último bloque). Además, para la entrada del directorio sólo le
basta con almacenar la dirección de disco del primer bloque. El resto se puede encontrar
a partir de ella.
Asignación de lista enlazada utilizando una tabla en memoria
Ambas desventajas de la asignación de lista enlazada se pueden eliminar si tomamos la
palabra del apuntador de cada bloque de disco y la colocamos en una tabla en memoria.
La siguiente gráfica muestra cuál es la apariencia de la tabla para el ejemplo de la figura
4-11. En ambas figuras tenemos dos archivos. El archivo A utiliza los bloques de disco 4,
7, 2, 10 y 12, en ese orden y el archivo B utiliza los bloques de disco 6, 3, 11 y 14, en ese
orden. Utilizando la tabla de la gráfica 109, podemos empezar con el bloque 4 y seguir
toda la cadena hasta el final. Lo mismo se puede hacer empezando con el bloque 6.
Ambas cadenas se terminan con un marcador especial (por ejemplo, 1) que no sea un
número de bloque válido. Dicha tabla en memoria principal se conoce como FAT (File
Allocation Table, Tabla de asignación de archivos).
Utilizando esta organización, el bloque completo está disponible para los datos. Además,
el acceso aleatorio es mucho más sencillo. Aunque aún se debe seguir la cadena para
encontrar un desplazamiento dado dentro del archivo, la cadena está completamente en
memoria y se puede seguir sin necesidad de hacer referencias al disco. Al igual que el
método anterior, la entrada de directorio necesita mantener sólo un entero (el número de
bloque inicial) y aun así puede localizar todos los bloques, sin importar qué tan grande
sea el archivo.
La principal desventaja de este método es que toda la tabla debe estar en memoria todo
el tiempo para que funcione. Con un disco de 200 GB y un tamaño de bloque de 1 KB, la
tabla necesita 200 millones de entradas, una para cada uno de los 200 millones de
bloques de disco. Cada entrada debe tener un mínimo de 3 bytes. Para que la búsqueda
sea rápida, deben tener 4 bytes. Así, la tabla ocupará 600 MB u 800 MB de memoria
principal todo el tiempo, dependiendo de si el sistema está optimizado para espacio o
tiempo. Esto no es muy práctico. Es claro que la idea de la FAT no se escala muy bien en
los discos grandes.
/dev Contienen todos los archivos de acceso a dispositivos. Linux trata cada dispositivo
(terminales, discos, impresoras, etc.) como si fuera un archivo especial.
/lib Contiene los archivos de biblioteca utilizados por las aplicaciones y utilidades del
sistema, así también como las librerías pertenecientes a diferentes lenguajes de
programación.
/mnt Es un directorio vacío que se usa normalmente para montar dispositivos como
disquetes y particiones temporales de disco.
/sbin Contienen archivos ejecutables que son comandos que se usan normalmente para
la administración del sistema.
/tmp Directorio temporal que puede usar cualquier usuario como directorio transitorio.
En Linux las medidas de protección se basan en que cada archivo tiene un propietario
(usualmente, el que creó el archivo). Además, los usuarios pertenecen a uno o mas
grupos, los cuales son asignados por el Administrador dependiendo de la tarea que
realiza cada usuario; cuando un usuario crea un archivo, el mismo le pertenece también a
alguno de los grupos del usuario que lo creó.
Así, un archivo en Linux le pertenece a un usuario y a un grupo, cada uno de los cuales
tendrá ciertos privilegios de acceso al archivo. Adicionalmente, es posible especificar que
derechos tendrán los otros usuarios, es decir, aquellos que no son el propietario del
archivo ni pertenecen al grupo dueño del archivo.
Para los directorios, el permiso R permite listar el contenido de este (es decir, “leer” el
directorio, mientras que el W permite borrar o crear nuevos archivos en su interior (es
decir, modificar o “escribir” el directorio). El permiso X da permiso de paso, es decir, la
posibilidad de transformar el directorio en cuestión en el directorio actual (ver
comando cd).
En los listados de directorio, los permisos se muestran como una cadena de 9 caracteres,
en donde los primeros tres corresponden a los permisos del usuario, los siguientes tres a
los del grupo y los últimos, a los de los demás usuarios. La presencia de una letra (r, w o
x) indica que el permiso está concedido, mientras que un guión (-) indica que ese permiso
está denegado.
Directorios y jerarquía
Hasta ahora ha aprendido a listar, copiar, renombrar y eliminar archivos. Sin embargo, se
estará preguntando acerca de aspectos más complicados, como por ejemplo ¿dónde se
encuentran dichos archivos? Esta sección explica la jerarquía del directorio. Lea con
atención el siguiente texto, y después realice los ejemplos de las secciones siguientes.
Jerarquía de directorios
Los archivos se agrupan en directorios, que a su vez se organizan en una jerarquía. En la
cima de la jerarquía está el directorio "raíz", representado por "/".
Como se muestra en el ejemplo de la Figura 3-1, cada directorio del sistema de archivos
puede incluir muchos otros directorios. La convención consiste en distinguir niveles de
directorio mediante el carácter /. Teniendo esto en cuenta, observe que el directorio/ (raíz)
contiene entre otros los subdirectorios /usr, /bin, /home y /lib. El
subdirectorio /home contiene user1, user2, y user3.
Los directorios (y los archivos que hay en su interior) se especifican incluyendo el nombre
de los directorios en los que están. A esto se le llama nombre de ruta. de acceso. Por
ejemplo, el nombre de la ruta de acceso del directorio user3 de la próxima figura
es /home/user3.
Todos los subdirectorios y nombres de archivo que incluya un directorio deben ser únicos.
Sin embargo, los nombres pertenecientes a directorios diferentes pueden ser iguales. Por
ejemplo, el directorio /usr contiene el subdirectorio /usr/lib. No hay ningún conflicto
entre /usr/lib y /lib porque los nombres de ruta de acceso son diferentes.
Los nombres de ruta de acceso de los archivos trabajan exactamente igual que los
nombres de ruta de acceso de los directorios. El nombre de ruta de acceso de un archivo
describe la posición que ocupa dentro de la jerarquía del sistema de archivos. Por
ejemplo, si el directorio /home/user2 contiene un archivo llamado report5, el nombre de
ruta de acceso será /home/user2/report5. Esto indica que el archivo report5 está dentro
del directorio user2, que a su vez está incluido en el directorio home, que se encuentra en
el directorio raíz (/).
Los directorios pueden contener sólo directorios, sólo archivos, o ambos.