Está en la página 1de 11

Guia teórica 3

Sistema de archivos

1.Describir las distintas operaciones que se pueden realizar sobre un archivo.


Crear un archivo: se debe encontrar un espacio dentro de sistemas de archivos
Escritura de un archivo: se realiza una llamada al sistema especificando el
nombre del archivo y la información a escribir en él, el sistema busca en el
directorio la ubicación del archivo, se debe tener un puntero de escritura dinero
del archivo que guarde el lugar de la siguiente escritura, este se actualiza cada
vez que se hace una nueva escritura.
Lectura de un archivo: se llama al SO con el nombre del archivo y dónde debe
colocarse el siguiente bloque de archivo, se explora el directorio para hallar la
entrada asociada y el sistema necesita mantener un puntero de lectura que
haga referencia a la ubicación dentro del archivo en la que tiene lugar la
siguiente lectura, una vez que se la lectura se completa se actualiza el puntero
de lectura.
Reposicionamiento dentro de un archivo: se explora el directorio para hallar la
correspondiente entrada y se posiciona el puntero de posición actual dentro de
un archivo, asignándole el nuevo valor
Borrado de un archivo: se busca en el directorio el archivo indicado y se libera
todo el espacio del archivo de modo que pueda ser reutilizado por otros
archivos y borramos también la propia entrada del directorio.
Truncado de un archivo: el usuario puede querer borrar el contenido de un
archivo, pero manteniendo sus atributos, esta función permite que los atributos
no sean modificados, mientras que el archivo se reinicializa asignándole una
longitud igual a cero y liberando el espacio que tuviera asignado.

2. Describir los diferentes métodos de acceso a los archivos, indicar si existen


ventajas o desventajas.
Acceso secuencial: la información del archivo se procesa por orden, un registro
después de otro incrementando el puntero de archivo en cada acción (lectura o
escritura).
Acceso directo: un archivo está compuesto de registros lógicos de longitud fija
que permiten a los programas leer y escribir registros rápidamente sin ningún
orden concreto, se basa en un modelo de archivos que se corresponde con los
dispositivos de disco, ya que los discos permiten acceso aleatorio a cualquier
bloque de un archivo. Para esto el archivo se conserva como una secuencia
numerada de bloques o registros.
Acceso por índice: se construye un índice para los archivos, estos contienen
punteros a los distintos bloques. Para encontrar un registro dentro del archivo,
primero exploramos el índice y luego usamos el puntero para acceder al
archivo directamente y para hallar el registro deseado.

3. Describir el método de asignación contigua. ¿Qué entiende por


compactación?
La asignación contigua requiere que cada archivo ocupe un conjunto de
bloques contiguos en el disco, entonces cuando se cargue un archivo este
estará distribuido de manera contigua bloque a bloque, esta asignación está
definida por la asignación de disco del primer bloque y por la longitud del
archivo. si el archivo tiene n bloques de longitud y comienza en la ubicación b,
entonces ocupara los bloques b,b+1,b+2+...+b+n-1. La entrada de directorio de
cada archivo indicará la dirección del bloque de inicio y la longitud del área
asignada al archivo. Entonces sabiendo de qué número de bloque arranca y la
longitud que este tiene resulta muy fácil acceder de forma directa a un bloque
de ese archivo, si este comienza en el bloque b y nos queremos mover al
bloque i podemos acceder inmediatamente al bloque b+i. Para satisfacer la
solicitud del tamaño de archivo n suelen utilizarse la estrategia de primer ajuste
y mejor ajuste, que buscarán cual es el mejor espacio para poder cargar el
archivo de manera contigua.
compactación: la asignación contigua trae consigo el problema de
fragmentación externa, esta es cuando en el disco hay espacio para satisfacer
el tamaño que ocupa el archivo pero este se encuentra de forma discontigua,
para solucionar esto existe una rutina que “compacta” el espacio distribuido,
dejando toda la información existente en un único espacio libre contiguo de
gran tamaño y compactando de forma contigua todo el espacio libre que había
en el disco, dejandolo asi utilizable para poder seguir asignando espacio.

4. Describir el método de asignación enlazada.


Cada archivo es una lista enlazada de bloques de disco, pudiendo estar dichos
bloques dispersos por todo el disco. El directorio contiene un puntero al primer
y al último bloque de cada archivo, entonces un archivo de 5 bloques puede
comenzar en el bloque 9, seguir en el 12, luego el 1, después el 10 y finalmente
en el bloque 25. Cada puntero contiene un puntero al bloque siguiente, el
usuario no tiene acceso a estos punteros. Cuando se crea un nuevo archivo,
creamos una nueva entrada en el directorio. Con el mecanismo de asignación
enlazada, cada entrada de directorio tiene un puntero al primer bloque de disco
del archivo. Este puntero se inicializa con el valor NULL para representar un
archivo vacío (el campo de tamaño también se inicializa en 0). Una escritura en
el archivo hará que el sistema busque un bloque disponible y escriba la
información ahí y será enlazada al final del archivo. Para leer el archivo,
simplemente leemos los bloques siguiendo los punteros de un bloque a otro. no
se necesita declarar el tamaño del archivo al crearlo y puede seguir creciendo
mientras haya bloques disponibles, la desventaja es que no podemos acceder
al bloque i-ésimo ya que al ser una lista con bloques en distintos lugares del
disco tendremos que si o si recorrerla desde el inicio hasta encontrar el bloque
que buscábamos; También al utilizar punteros, parte del espacio del disco
estará siendo utilizada para mantener la información de los punteros

5. Describir el método de asignación indexada.


Cada archivo tiene su propio bloque de índice, que es una matriz de
direcciones de bloques de disco. La entrada i-ésima del bloque de índice
apunta al bloque i-ésimo del archivo. El directorio contiene la dirección del
bloque de índice. Para localizar y leer el bloque i-ésimo, utilizamos el puntero
contenido en la entrada i-ésima del bloque de índice.
Cuando se crea un archivo, se asigna el valor nulo a todos los punteros del
bloque de índice. Cuando se escribe por primera vez en el bloque i-ésimo, se
solicita un bloque libre y su dirección se almacena en la entrada i-ésima del
bloque de índice, gracias a eso la asignación indexada soporta acceso directo
pero sufre problema de desprecio de espacio. El espacio adicional requerido
para almacenar los punteros del bloque de índice es, generalmente, mayor que
el que se requiere en el caso de la asignación enlazada. Ej: tenemos un archivo
de solo uno o dos bloques. Con asignación enlazada solo perdemos el espacio
de un puntero por cada bloque, mientras que con asignación indexada es
preciso asignar un bloque de índice completo, incluso si sólo uno o dos
punteros de este bloque van a tener un valor distinto a null.
Para la asignación de un bloque de índices que se ajuste a la necesidades del
archivo existen distintos mecanismos:
Esquema enlazado: cada bloque de índice ocupa un bloque de disco por lo
tanto puede leerse y escribirse directamente. Para archivos de gran tamaño
podemos enlazar varios bloques de índice.
Índice multinivel: Se utiliza un bloque de índice de primer nivel para apuntar a
un conjunto de bloques de índice de segundo nivel, que a su vez apuntan a los
bloques de archivo.
Esquema combinado: consiste en mantener, por ejemplo, los primeros 15
punteros del bloque de índice en el nodo del archivo. Los primeros 12 de estos
punteros hacen referencia a bloques directos, es decir, contienen la dirección
de una serie de bloques que almacenan los datos del archivo. Los siguientes 3
punteros hacen referencia a bloques indirectos, el primero apunta a un bloque
indirecto de un nivel, que es un bloque de índice que no contiene datos sino las
direcciones de otros bloques que almacenan los datos. El segundo puntero
hace referencia a un bloque doblemente indirecto, que contiene la dirección de
un bloque que almacena las direcciones de otras series de bloque que
contienen los punteros a los propios bloques de datos. El último puntero
contiene la dirección de un bloque triplemente indirecto.
7. ¿Qué ventajas introduce el empleo de un sistema de directorio?
Organización eficiente: Un sistema de directorio organiza los archivos y
carpetas de manera jerárquica, lo que facilita la localización y gestión de los
archivos.
Acceso rápido: Los sistemas de directorio permiten un acceso rápido a los
archivos, ya que los usuarios pueden navegar por la estructura de carpetas y
acceder directamente a los archivos que necesitan
Seguridad: Los sistemas de directorio pueden implementar políticas de
seguridad que controlan quién puede acceder y modificar archivos y carpetas.
Facilita la copia de seguridad: Al organizar los archivos de manera lógica, es
más fácil realizar copias de seguridad de datos importantes. Esto garantiza la
recuperación de datos en caso de fallos del sistema o pérdida accidental de
archivos.
Gestión de permisos: Los sistemas de directorio ofrecen la posibilidad de
asignar permisos específicos a usuarios y grupos, lo que brinda un mayor
control sobre quién puede realizar acciones sobre archivos y carpetas.
Reducción de duplicados: Un sistema de directorio bien diseñado puede
ayudar a evitar la duplicación de archivos, ya que los usuarios pueden ubicar
fácilmente versiones existentes en lugar de crear nuevas.
Escalabilidad: Los sistemas de directorio pueden crecer de manera eficiente a
medida que se añaden más archivos y usuarios, lo que los hace adecuados
para organizaciones en crecimiento.
Registro de actividad: Algunos sistemas de directorio pueden llevar un
registro de las acciones realizadas en archivos y carpetas, lo que es útil para
auditorías de seguridad y seguimiento de cambios.

8. Describa cada uno de los componentes de un sistema de archivos que se


tiene luego de formatear lógicamente un disco de almacenamiento masivo, en
UNIX.
Superbloque : estructura de datos crítica que almacena información esencial
sobre el sistema de archivos, la ubicación de los bloques de datos, el número
de inodos, tamaño de los bloques. Es uno de los primeros elementos de un
sistema de archivos y es necesario para construir el sistema de archivos
correctamente.
Tabla de Inodos (Inode Table):La tabla de inodos es una matriz que contiene
una entrada para cada archivo o directorio y almacena información sobre sus
atributos, como permisos, propietario, tamaño, ubicación de bloques de datos y
fechas de acceso y modificación.
Bloques de Datos (Data Blocks): Los bloques de datos son áreas del disco
que almacenan el contenido real de los archivos y directorios. Los bloques de
datos se organizan en grupos (generalmente llamados grupos de bloques) para
facilitar la administración y el rendimiento del sistema de archivos.
Mapa de Bits (Bitmap): El mapa de bits es una estructura que se utiliza para
realizar un seguimiento del uso de bloques en el sistema de archivos. Cada bit
en el mapa de bits corresponde a un bloque en el sistema de archivos y se
establece en 1 si el bloque está en uso (por un archivo o directorio) o en 0 si
está libre.
Bloque de Arranque (Boot Block): El bloque de arranque es un sector
especial al comienzo del sistema de archivos que contiene información de inicio
y, en algunos casos, código de arranque. Este bloque se utiliza para arrancar el
sistema desde el disco.
Tabla de Asignación de Bloques (Block Allocation Table): En algunos
sistemas de archivos, se utiliza una tabla de asignación de bloques para
realizar un seguimiento de la asignación de bloques de datos a archivos. Cada
entrada en esta tabla indica qué bloques de datos están asignados a un archivo
o directorio específico.
Directorio Raíz (Root Directory): El directorio raíz es el punto de partida del
sistema de archivos y contiene la estructura de directorios y archivos que
forman la base de todo el sistema de archivos.

9. Describa cada uno de los componentes de un sistema de archivos que se


tiene luego de formatear lógicamente un disco de almacenamiento masivo, en
DOS.
Sectores de Arranque (Boot Sector): El sector de arranque es la primera
sección del disco y contiene información esencial para que el sistema pueda
iniciar desde el disco. Incluye un programa de inicio (bootloader) que se ejecuta
cuando se enciende la computadora y carga el sistema operativo desde el
disco.
Tabla de Asignación de Archivos (File Allocation Table - FAT): La FAT es
una estructura de datos fundamental en sistemas de archivos FAT (como
FAT12, FAT16, y FAT32). Es una tabla que contiene entradas que representan
cada cluster o bloque de datos en el disco. Cada entrada de la FAT indica si un
cluster específico está ocupado o libre y, si está ocupado, a qué cluster le sigue
en un archivo.
Directorio Raíz (Root Directory): El directorio raíz es la ubicación principal
donde se almacenan las entradas de directorio en la raíz del sistema de
archivos. Estas entradas de directorio representan archivos y subdirectorios en
el nivel más alto del sistema de archivos. Cada entrada de directorio contiene
metadatos sobre un archivo, como nombre, extensión, atributos (como de solo
lectura o oculto), tamaño y fecha de creación.
Área de Datos (Data Area): El área de datos es la porción del disco que
almacena el contenido real de los archivos y directorios. Está organizada en
clusters o bloques de datos, y la información de asignación de clusters se
encuentra en la FAT.
Tabla de Asignación de Clusters (Cluster Allocation Table): En sistemas
FAT, especialmente en versiones más modernas como FAT32, se utiliza una
tabla de asignación de clusters para realizar un seguimiento más detallado de
la asignación de clusters de datos a archivos. La FAT solo almacena la
secuencia de clusters, mientras que la tabla de asignación de clusters
proporciona información adicional.
Metadatos de Archivos: Los metadatos de archivos son información asociada
a cada archivo, incluyendo su nombre, extensión, atributos (como de solo
lectura o sistema), tamaño, fecha de creación, fecha de modificación y fecha de
acceso. Estos metadatos se almacenan en las entradas de directorio y en las
estructuras de inodos en sistemas de archivos más avanzados.
Entradas de Directorio: Cada entrada de directorio contiene información
sobre un archivo o subdirectorio en el sistema. Esto incluye el nombre,
extensión, atributos y un puntero a la ubicación de los datos del archivo en el
disco.
Área de Sistema Reservada: En algunos sistemas FAT, especialmente en
FAT32, se reserva un área especial para metadatos del sistema, como el
sector de copia de seguridad del superbloque.
Sistema de Archivos de Registro (File System Log): En sistemas más
modernos, como NTFS (New Technology File System) de Microsoft, se puede
incluir un registro de sistema de archivos para mantener un seguimiento de
cambios en el sistema de archivos y facilitar la recuperación en caso de fallas.

10. ¿Qué utilidad tiene el campo de bits o free list?


Se utiliza para poder manejar de manera simple que bloque o bloques del disco
están libres para ser utilizados y poder asignarlos, un bloque que está utilizado
se representa con un 0 y un bloque libre con un 1.

11. ¿Cómo está conformado el i-nodo, describa cada parte? De qué forma se
los emplea al guardar o leer un archivo en disco.
Contiene información acerca del propietario del archivo, de su grupo, del modo
de protección aplicable al archivo, del número de enlaces al archivo, de valores
de fechas de creación y actualización, el tamaño del archivo y el tipo del
mismo. Además incluye un mapa del archivo mediante apuntadores a bloques
de dispositivo que contienen datos del archivo
Al guardar un archivo en disco:

● Cuando se crea un archivo, se asigna un inode nuevo. El sistema


operativo asigna espacio en disco para el archivo y actualiza el inode
con información inicial, como el tamaño y la fecha de creación.
● A medida que se escribe contenido en el archivo, los datos se
almacenan en bloques de datos en disco y los punteros en el inode se
actualizan para apuntar a estos bloques.
● Si se cambian los permisos, propietario o marcas de tiempo del archivo,
el inodo se actualiza con esta información.
● Cuando se elimina un archivo, se decrementa el contador de enlaces
duros en su inode. Si el contador llega a cero, el sistema operativo libera
el espacio en disco y marca el inodo como disponible.

Para leer un archivo en disco:

● El sistema operativo utiliza el número de inodo para localizar el inodo


asociado con el archivo.
● Luego, se lee la información del inodo para obtener los punteros a los
bloques de datos que contienen el contenido del archivo.
● Finalmente, se accede a estos bloques de datos para leer el contenido
del archivo y se presenta al usuario o se procesa según sea necesario.

12.¿Cómo está conformado el FAT del DOS, describa cada parte? De qué
forma se los emplea al guardar o leer un archivo en disco.

Tabla de asignación de archivos: contiene entradas que representan cada


cluster o bloque de datos en el disco. Cada entrada FAT indica el estado de un
cluster en particular, si está ocupado, libre o contiene información especial. La
FAT puede ser FAT12, FAT16, FAT32.

Cluster o bloque de datos: son las unidades de almacenamiento básicas de


un sistema de archivos FAT. Cada clúster puede contener una cantidad fija de
bytes de datos. La FAT se utiliza para asignar cluster a archivos específicos. La
cantidad de clusters disponibles y su tamaño dependerá de la versión del
sistema de archivos.
Directorio raíz: directorio principal en un sistema de archivos FAT. En él, se
almacenan las entradas de directorio que representan archivos y subdirectorios
en el nivel más alto del sistema de archivos. Cada entrada de directorio
contiene metadatos sobre un archivo, como nombre, extensión, atributos,
tamaño y cluster inicial.
Al guardar un archivo en disco:
● Cuando se crea un archivo, el sistema operativo asigna un nombre y una
extensión y establece los atributos de archivo según sea necesario.
● Se reserva espacio en disco para el archivo asignando clusters
consecutivos a medida que están disponibles. La FAT se actualiza para
reflejar la asignación de clusters al archivo. Cada entrada de FAT
contiene el número de cluster siguiente en la secuencia.
● A medida que se escribe contenido en el archivo, se almacena en los
clusters asignados y la FAT se actualiza para reflejar qué clusters están
ocupados.
● Si el archivo crece más allá de los clusters iniciales, se asignan más
clusters y se actualiza la FAT para reflejar esta asignación adicional.
● Cuando se elimina un archivo, se marca en la FAT como "libre" y se
libera el espacio en disco para su reutilización.

Para leer un archivo en disco:

● El sistema operativo consulta el directorio raíz para encontrar la entrada


de directorio correspondiente al archivo y obtener el número de cluster
inicial.
● Luego, se utiliza la FAT para seguir la cadena de clusters que componen
el archivo, comenzando desde el cluster inicial y siguiendo las
referencias en la FAT hasta el final del archivo.
● Finalmente, el contenido del archivo se lee desde los clusters
correspondientes y se presenta al usuario o se procesa según sea
necesario.

13. ¿Qué entiende por BootLoader? ¿Cuál es su contenido, bajo que tipo de
formateo lógico?

Es un programa que se encuentra en el sector de arranque de un dispositivo de


almacenamiento, su función principal es cargar el SO o programa de inicio del
dispositivo para que la computadora pueda arrancar correctamente.

CONTIENE:

Código de arranque: el núcleo del cargador de arranque es el código de


arranque. Este código es una secuencia de instrucciones de bajo nivel que se
ejecutan inmediatamente después que la bios o uefi completa su proceso de
inicialización. Es el responsable de cargar el siguiente componente del sistema
de inicio, que generalmente es el gestor de arranque o kernel de SO.

tabla de particiones: puede incluir una tabla de particiones que describe la


organización del disco y la ubicación de las particiones. Esta tabla permite al
cargador de arranque identificar las particiones que contienen sistemas
operativos válidos.

Selección de sistema operativo: algunos bootloader, especialmente aquellos


utilizados en sistemas multiboot, ofrecen una interfaz de usuario que permite a
los usuarios seleccionar qué sistema operativo específico desea iniciar.
En sistemas Linux, el cargador de arranque más común es GRUB (GRand
Unified Bootloader), que se utiliza con sistemas de archivos como ext4 y otros.
GRUB puede instalarse en el MBR o en la partición de arranque, dependiendo
de la configuración.

14. Describir las operaciones posibles a realizar sobre un directorio.

Crear directorio: crea un directorio vacío en un ubicación específica del


sistema de archivos.

eliminar un directorio: borra el directorio y su contenido, incluyendo archivos y


subdirectorios.

Listar contenido: muestra una lista de los archivos y subdirectorios que


contiene.

Abrir un directorio: Abre el archivo que contiene el directorio para leer los
datos del mismo.

cerrar un directorio: Cierra el archivo que contiene el directorio, liberando los


recursos de memoria y del sistema operativo relativos al mismo.

Leer un directorio: extrae la siguiente entrada de un directorio abierto.


Devuelve una estructura de datos como la que define la entrada de directorio.
Por tanto, es específica de cada interfaz o sistema operativo.

Mover o cambiar nombre de un directorio: permite renombrar un directorio.


Permite la reubicación de un directorio en una ubicación diferente en el sistema
de archivos.

Cambiar permisos y propietario: controla quién puede acceder y modificar


su contenido y asignar la propiedad a otro usuario.

Cambiar fecha y hora: modifica las marcas de tiempo asociadas a él.

Comprimir o descomprimir: reduce el tamaño de los archivos y carpetas


dentro del directorio para ahorrar espacio en disco, descomprimir restaura su
contenido original.

Establecer directorio de trabajo: Cambiar el directorio de trabajo actual


afecta la ubicación desde la cual se ejecutan los comandos y programas en
una sesión. Esto permite a los usuarios trabajar en diferentes partes del
sistema de archivos sin tener que especificar rutas completas.

Acceso Compartido: En sistemas operativos multiusuario, se pueden


compartir directorios para que múltiples usuarios tengan acceso a su contenido.

Crear enlaces Duros y Simbólicos: Se pueden crear enlaces duros y


simbólicos a directorios. Los enlaces duros son copias físicas de directorios
que comparten el mismo contenido, mientras que los enlaces simbólicos son
referencias a directorios que pueden apuntar a ubicaciones diferentes en el
sistema de archivos.

15. ¿Qué ventajas introduce una estructura de directorios arborescente?

Una estructura de directorios arborescente ofrece organización lógica, facilita


búsqueda y navegación, es altamente escalable, proporciona mayor control de
seguridad, es adecuada para la gestión de versiones, fomenta la colaboración,
simplifica copias de seguridad, evita duplicación de archivos y brinda claridad y
comprensión intuitiva en la organización de archivos y carpetas en un sistema
de archivos.

16. Indicar que inconvenientes se pueden llegar a tener en una estructura de


directorios con forma de grafos acíclicos.

Aunque las estructuras de directorios en forma de DAG ofrecen flexibilidad y


permiten relaciones más complejas entre archivos y directorios, también
pueden introducir desafíos adicionales en términos de complejidad,
administración, riesgo de ciclos (si no se administra bien los ciclos pueden
caudal bucles infinitos y dificultad para determinar la ubicación y las
dependencias de los archivos) , enlaces rotos, mayor potencial de
fragmentación y mayor consumo de espacio. La elección de utilizar una
estructura de DAG debe considerarse cuidadosamente en función de las
necesidades y la comprensión de los usuarios del sistema de archivos.

17. Indicar que tipos de protección se pueden incorporar a los archivos en


general, qué ventaja aporta hacerlo.

Permisos de Acceso: utilizan sistemas de permisos de acceso para controlar


quién puede acceder a los archivos y qué tipo de acciones pueden realizar. Los
permisos típicos incluyen lectura (r), escritura (w) y ejecución (x) para
propietarios, grupos y otros usuarios.

Contraseñas o Cifrado: La protección mediante contraseñas o cifrado se


utiliza para restringir el acceso a archivos mediante la autenticación del usuario.
Los archivos se cifran y solo se pueden descifrar con la contraseña adecuada o
una clave de cifrado.

ACL (Listas de Control de Acceso): Algunos sistemas operativos permiten


utilizar ACL para establecer permisos más detallados para usuarios y grupos
específicos.

Firmas Digitales: Las firmas digitales se utilizan para verificar la autenticidad e


integridad de un archivo. Un archivo firmado digitalmente tiene una firma
electrónica que puede ser verificada por los destinatarios para asegurarse de
que no ha sido alterado y que proviene de una fuente confiable.

Restricciones de Acceso en Red: En entornos de red, se pueden establecer


restricciones de acceso a archivos en función de la dirección IP o el usuario
que intenta acceder a ellos.

ventajas: Seguridad de la información, control de acceso, prevención de


pérdida de datos, auditoría y rastreo (facilita la auditoría y rastreo de acciones
realizadas en los archivos), protección contra amenazas internas y externas e
integridad de los datos.

También podría gustarte