Академический Документы
Профессиональный Документы
Культура Документы
FACULTAD DE INGENIERÍA
ESCUELA DE CIENCIAS Y SISTEMAS
MANEJO E IMPLEMENTACIÓN DE ARCHIVOS A
Ing. Oscar Paz Campos
Aux. Kevin Esquivel
CONTENIDO Página
1. Introducción 1
2. Objetivos 2
3. Descripción 2
4. Comandos 2
5. Administración de disco 3
6. Estructura de disco 11
7. Bloque 15
8. Administración de archivos 16
9. Reportes 17
10. Reportes gráficos 18
11. Exec 20
12. Especificaciones 21
13. Consideraciones del proyecto 21
14. Entrega y calificación 22
INTRODUCCIÓN
El curso de Manejo e Implementación de Archivos se busca que el estudiante aprenda los conceptos
sobre la administración de la información en los diferentes dispositivos, tanto en hardware como
software, sistemas de archivos, particiones, entre otros conceptos, para después introducirse en las
bases de datos. La primera fase consiste en la simulación de las distintas estrategias de colocación en un
disco duro para el almacenamiento de archivos, así como también la comprensión sobre teoría de
particiones en discos duros, utilizando conocimientos adquiridos en el curso y el laboratorio.
DESCRIPCIÓN
Consiste en realizar una aplicación la cual es capaz de simular el control y manejo de un disco duro, en la
cual podrá generar discos, particionar y administrar. Así mismo deberá poder crear y eliminar archivos
con información con el fin de poder simular las distintas estrategias de colocación en un disco duro. Esta
aplicación es totalmente en consola desarrollado en lenguaje C++ por lo que no tendrá interfaz gráfica.
COMANDOS
La aplicación será totalmente en consola, a excepción de los reportes en Graphviz. La aplicación consta
únicamente de una consola en la cual el usuario podrá ingresar comando que le servirán para la
realización de las diferentes acciones posibles. Algunas normas que debe cumplir se presentan a
continuación, no distinguirá entre mayúsculas y minúsculas. Hay parámetros obligatorios y opcionales
que se identificarán al inicio con un símbolo (& obligatorios) y (%opcionales). Solo se puede colocar un
comando por línea.
Si se utiliza un parámetro que no está especificado en este documento, debe mostrar un mensaje de
error. Se utilizarán espacios en blanco para separar cada parámetro. Los parámetros pueden venir en
cualquier orden.
ADMINISTRACIÓN DE DISCO
Para la administración del disco se contará con una serie de comandos con los cuales se podrán
modificar cualquier característica lógica del sistema del disco, con estos comandos se realizará la
creación de archivos que simularán ser un disco duro, en dicho archivo se podrá dar formato con el
sistema de archivos. Estos comandos están disponibles desde que se inicia el programa. Estos comandos
son:
• MKDISK
Este comando creará un archivo binario que simulará un disco duro, estos archivos binarios tendrán la
extensión dsk y su contenido al inicio será \0. Deberá ocupar físicamente el tamaño indicado por los
parámetros, (no importa que el sistema operativo no muestre el tamaño exacto). Recibirá el nombre del
archivo que simulará el disco duro y tendrá los siguientes parámetros:
Ejemplo1: /home/user/documents/
&NAME Obligatorio Este parámetro será el nombre del disco con extensión
dsk. Si no contiene la extensión dsk debe mostrar un
mensaje de error.
El nombre únicamente puede estar compuesto por letras,
números y el único símbolo aceptado será “_” para unir
caracteres, como por ejemplo: Disco_1.dsk
Ejemplos:
#Crea un disco de 3000 Kb en la carpeta home
Mkdisk &size->32 &path->/home/user/ \^ &name->Disco1.dsk %uniT&>k
Ejemplos:
#Elimina Disco_4.dsk
rmDisk &path&>"/home/mis discos/Disco_4.dsk"
• FDISK
Este comando administra las particiones en el archivo que representa al disco duro. Se utilizará el primer
ajuste para buscar espacio dentro del disco y crear la partición.
IMPORTANTE: Este primer ajuste solo es para buscar espacio para crear la partición, es diferente del
ajuste que utilizará cada partición para crear los archivos que se utilizará más adelante en el proyecto.
Deberá mostrar un error si no se pudo realizar la operación solicitada sobre la partición, especificando
por qué razón no pudo crearse (Por espacio, por restricciones de particiones, etc.). No se considerará el
caso de que se coloquen parámetros incompatibles, por ejemplo en un mismo comando fdisk llamar a
delete y add.
La estructura de cada disco se explicará más adelante. Tendrá los siguientes parámetros:
%DELETE Opcional Este parámetro indica que se eliminará una partición. Este
parámetro se utiliza junto con &name y &path. Se deberá
mostrar un mensaje que permita confirmar la eliminación
de dicha partición.
Ejemplos:
#Crea una partición primaria llamada Particion1 de 72 kb
#con el peor ajuste y con asignación indexada en el disco Disco1.dsk
Si únicamente viene la palabra reservada MOUNT deberá mostrar un listado de particiones montadas.
Ejemplos:
#Si se coloca el comando mount sin parametros mostrará en la consola las particiones montadas.
id->vda1 &path->"/home/Disco1.dsk" &name->"Part1"
id->vdb1 &path->"/home/Disco2.dsk" &name->"Part1"
id->vdc1 &path->"/home/Disco3.dsk" &name->"Part2"
id->vda2 &path->"/home/Disco1.dsk" &name->"Part2"
• UNMOUNT
Desmonta una partición del sistema. Se utilizará el id que se le asignó a la partición al momento de
cargarla.
Se debe poder desmontar por listado de particiones. Recibirá los siguientes parámetros.
Df %k
Df %i %h
EJEMPLO:
Du &h &n->5
#215G Videos
#171G Linux
#68G Documentos
#50G Música
#28K mageia&2013.txt
DU &H
#este mostrará el directorio o archivo que ocupe más espacio en el sistema de archivo.
#215G Videos
EBR (Extended Boot Record) en forma de lista enlazada, que será como la siguiente:
Para crear el archivo del disco se recomienda utilizar un char[1024] como buffer para crear el archivo, si
se utiliza un char[1] normalmente se tarda demasiado al momento de crear el archivo.
• MKFS
Este comando realiza un formato completo de la partición, se dará formato con EC(en la siguiente fase
se realizará con el sistema de archivos que se indique).
&id Obligatorio Indicará el id que se generó con el comando mount de la fase anterior.
Si no existe mostrará error. Se utilizará para saber la partición y el disco
que se utilizará para hacer el sistema de archivos.
%unit Opcional Este parámetro recibirá una letra que indicará las unidades que
utilizará el parámetro +add. Podrá tener los siguientes valores:
B: que indicará que se utilizarán bytes
%FS Opcional Indica el sistema de archivos con el cual se dará formato a la partición.
Si el comando no se indica se tomará por defecto el formato EC que
indica estrategias de colocación, sin embargo debe considerar que en
la siguiente fase se agregarán sistemas de archivos.
• EC (Estrategias de colocación)
Debe de realizarse una función matemática que adecue el número de bloques que existirán en dicha
partición partiendo de la premisa del tamaño de cada bloque(50 Caracteres), el tamaño total de la partición
y tomando en cuenta que cada partición al inicio tendrá un “bitmap” o mapa de bits que indicara que
bloques están libres y cuáles no lo están. Básicamente el tamaño de una partición es el siguiente:
El bitmap posee un 1 si el bloque está ocupado y un 0 si esta libre, básicamente el bitmap es un conjunto
lineal de 1’s y 0’s. En base a esos datos es que la función matemática debe de obtener una cantidad máxima
de Bloques para cada partición.
BLOQUE
Nombre Descripción
&name Obligatorio Este parámetro será el nombre con el cual será identificado el archivo
a crear
Para almacenar el archivo la aplicación deberá dividirlo en “n” caracteres el cual es el tamaño de dicho
bloque, para conocer la cantidad de bloques que se requieren para almacenarlos, luego se buscarán
bloques de datos “CONTIGUOS” libres y de acuerdo al ajuste que se esté trabajando se almacenará el
archivo en los bloques contiguos libres que se encontraron.
Si al momento de crear un archivo, la partición donde se quiere almacenar está llena, entonces mostrara
un error que indique que esa partición está llena.
• rm
Este comando permitirá eliminar un archivo Tendrá los siguientes parámetros:
Parámetro Categoría Descripción
&FILEID Obligatorio Este parámetro será el nombre del archivo que se eliminará.
Si no existe el archivo, debe mostrarse un mensaje de error.
Deberán poder eliminarse una lista de archivos.
IMPORTANTE: Esta parte es obligatoria para tener derecho a la calificación de los aspectos que muestre el
reporte. Si falta alguno de los reportes no se calificará. Por ejemplo si no hace reporte de bloques, no
tendrá derecho a la calificación de todos los aspectos relativos a los bloques, ya que no se puede
comprobar que el estudiante haya implementado dicha funcionalidad.
• rep
Recibirá el nombre del reporte que se desea y lo generará con graphviz y en archivo de texto según se
requiera, en una carpeta existente.
Ejemplos
rep &id=vda2 &Path="/home/user/reports/reporte 2.jpg" \^&name=bm_arbdir
rep &id=vda1 &Path="/home/user/reports/reporte 3.txt" \^ &name=MBR
bm_block
REPORTES GRÁFICOS
• Block
Para verificar si la estructura lógica del sistema es la correcta, se debe de realizar una gráfica en Graphviz
mostrando todos los directorios y subdirectorios mostrando su orden jerárquico similar a la siguiente:
Ejemplo:
Disco1.dsk
• MBR
En este reporte se deben mostrar todos los datos que se indicaron anteriormente en el MBR y la
información de cada EBR si existieran particiones lógicas dentro de cada partición Extendida.
Exec
El programa podrá ejecutar scripts con el comando exec. Debe mostrar el contenido de la línea que
está leyendo y su resultado. También debe mostrar los comentarios del script.
Ejemplo:
#ejecuta el script
exec “/home/Desktop/calificacion 1.sh”
Entregables:
Se deberá entregar documento comprimido que incluya:
- Documentación (Manual Técnico y Manual de Usuario)
- Código fuente de la aplicación
- El ejecutable de la aplicación
[MIA]NombredelArchivo_Carnet.extensión
(Ejemplo: [MIA]archivo_201101001.c).