Professional Documents
Culture Documents
FACULTAD DE INGENIERA
ESCUELA DE CIENCIAS Y SISTEMAS
MANEJO E IMPLEMENTACIN DE ARCHIVOS A
Ing. lvaro Daz Ing. Oscar Paz Campos
Aux. Flix Garca Aux. Georgina Estrada
Objetivos
Aplicar y Comprender claramente la teora de particiones (primaria, lgica y extendida).
Aprender a administrar archivos y escribir estructuras en C
Comprender el sistema de archivos
Comprender y aplicar la teora dada en clase sobre los sistemas de archivos.
Aprender la estructura y tcnicas de programacin en el lenguaje C.
Realizar diferentes implementaciones y forma de acceso a un archivo, para manejo de
informacin.
Generar reportes del estado del disco duro y la informacin que se almacena.
Aplicar el formato rpido y completo en una particin
Crear una aplicacin de comandos
Aplicar la teora de ajustes
Aplicar los Mtodos de Asignacin de espacio contina, indexada y enlazada.
Aplicar la teora de particiones
Utilizar GraphViz y archivos de texto para mostrar reportes
Descripcin
Consiste en realizar una aplicacin 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 informacin con el fin de poder simular las distintas estrategias de colocacin en un
disco duro. Esta aplicacin es totalmente en consola desarrollado en lenguaje C por lo que no tendr
interfaz grfica.
Teora de Particiones.
Estrategias de Colocacin.
Comandos
La aplicacin ser totalmente en consola, a excepcin de los reportes en Graphviz. La aplicacin
consta nicamente de una consola en la cual el usuario podr ingresar comando que le servirn
para la realizacin de las diferentes acciones posibles. Algunas normas que debe cumplir se
presentan a continuacin, no distinguir entre maysculas y minsculas. Hay parmetros
obligatorios y opcionales que se identificarn al inicio con un smbolo (& obligatorios) y
(%opcionales). Solo se puede colocar un comando por lnea. No se podr utilizar alguna
herramienta para interpretar estos comandos (flex, bison u otros). Se recomienda hacer un
autmata sencillo para interpretar los comandos.
Si se utiliza un parmetro que no est especificado en este documento, debe mostrar un mensaje
de error. Se utilizarn espacios en blanco para separar cada parmetro. Los parmetros pueden
venir en cualquier orden.
Si un comando necesita ms de una lnea se utilizar \^ al final de la lnea para indicar que
contina en la siguiente lnea. Tambin se podrn ejecutar archivos de scripts con estos
comandos. Se podr comentar cada comando Los comentarios de estos scripts empezarn con #
dichos comentarios son nicamente de lnea. Estos y otros comandos se explicarn en detalle a
continuacin.
Administracin de disco
Para la administracin del disco se contar con una serie de comandos con los cuales se podrn
modificar cualquier caracterstica lgica del sistema del disco, con estos comandos se realizar la
creacin de archivos que simularn ser un disco duro, en dicho archivo se podr dar formato con
el sistema de archivos. Estos comandos estn 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
tendrn la extensin dsk y su contenido al inicio ser \0. Deber ocupar fsicamente el tamao
indicado por los parmetros, (no importa que el sistema operativo no muestre el tamao exacto).
Recibir el name del archivo que simular el disco duro y tendr los siguientes parmetros:
Ejemplo1: /home/user/documents/
Ejemplos2: /home/user/documents/juan
gonzalez/Mis Discos/
&NAME Obligatorio Este parmetro ser el name del disco con extensin
dsk. Si no contiene la extensin dsk debe mostrar un
mensaje de error.
Ejemplos:
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 particin.
IMPORTANTE: Este primer ajuste solo es para buscar espacio para crear la particin, es diferente
del ajuste que utilizar cada particin para crear los archivos que se utilizar ms adelante en el
proyecto.
%DELETE Opcional Este parmetro indica que se eliminar una particin. Este
parmetro se utiliza junto con &name y &path. Se deber
mostrar un mensaje que permita confirmar la eliminacin
de dicha particin.
Ejemplos:
#Crea una particin primaria llamada Particion1 de 72 kb
#con el peor ajuste y con asignacin indexada en el disco Disco1.dsk
fdisk &sizE->72 &path->/home/Disco1.dsk &name->Particion1
Ejemplos:
#Monta las particiones de Disco1.dsk
mount &path->/home/Disco1.dsk &name->Part1 #id->vda1
mount &path->/home/Disco2.dsk &name->Part1 #id->vdb1
mount &path->/home/Disco3.dsk &name->Part2 #id->vdc1
mount &path->/home/Disco1.dsk &name->Part2 #id->vda2
#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 particin del sistema. Se utilizar el id que se le asign a la particin al momento
de cargarla.
Se debe poder desmontar por listado de particiones. Recibir los siguientes parmetros.
Parmetro Categora Descripcin
Este comando muestra la informacin del nombre del dispositivo, el total de bloques, el espacio
total del disco, el espacio de disco utilizado, el espacio disponible en el disco. Si alguno de los
parmetros no aparece entonces se visualizar el resultado en bytes.
Df %k
Df %i %h
Se usa para estimar el uso de espacio en disco duro de un archivo, un directorio en particular o de
archivos en un sistema de archivos.
Du &h &n->5
#215G Videos
#171G Linux
#68G Documentos
#50G Msica
#28K mageia&2013.txt
Estructuras Discos
Los discos sern archivos binarios que tendrn informacin del MBR, y espacio con particiones o
bien, espacio sin utilizar. La siguiente figura es un ejemplo de los bloques en un disco con
particiones en el que ya se ha eliminado una particin:
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 particin, 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 particin y el disco
que se utilizar para hacer el sistema de archivos.
%add Opcional Este parmetro se utilizar para aumentar o reducir el tamao del
sistema de archivos, el valor puede ser positivo o negativo.
En caso de que sea negativo se debe validar que no se elimine
informacin dentro del sistema al momento de reducir el sistema de
archivos.
En el caso de que sea positivo se debe validar que no sobrepase el
tamao de la particin.
%unit Opcional Este parmetro recibir una letra que indicar las unidades que
utilizar el parmetro +add. Podr tener los siguientes valores:
B: que indicar que se utilizarn bytes
K: que indicar que se utilizarn Kilobytes (1024 bytes)
M: en el que se utilizarn Megabytes (1024 * 1024 bytes)
Este parmetro es opcional, si no se encuentra se utilizarn
Kilobytes.
%FS Opcional Indica el sistema de archivos con el cual se dar formato a la particin.
Si el comando no se indica se tomar por defecto el formato EC que
indica estrategias de colocacin, sin embargo debe considerar que en
la siguiente fase se agregarn sistemas de archivos.
EC (Estrategias de colocacin)
Debe de realizarse una funcin matemtica que adecue el nmero de bloques que existirn en dicha
particin partiendo de la premisa del tamao de cada bloque(50 Caracteres), el tamao total de la
particin y tomando en cuenta que cada particin al inicio tendr un bitmap o mapa de bits que
indicara que bloques estn libres y cules no lo estn. Bsicamente el tamao de una particin es el
siguiente:
BLOQUE
Name Descripcin
&name Obligatorio Este parmetro ser el nombre con el cual ser identificado el archivo
a crear
Si al momento de crear un archivo, la particin donde se quiere almacenar est llena, entonces
mostrara un error que indique que esa particin est llena.
rm
Este comando permitir eliminar un archivo Tendr los siguientes parmetros:
Parmetro Categora Descripcin
&FILEID Obligatorio Este parmetro ser el nombre del archivo que se eliminar.
Si no existe el archivo, debe mostrarse un mensaje de error.
Debern poder eliminarse una lista de archivos.
IMPORTANTE: Esta parte es obligatoria para tener derecho a la calificacin 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 calificacin 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 segn
se requiera, en una carpeta existente.
Ejemplos
bm_block
REPORTES GRFICOS
Block
Para verificar si la estructura lgica del sistema es la correcta, se debe de realizar una
grfica en Graphviz mostrando todos los directorios y subdirectorios mostrando su
orden jerrquico similar a la siguiente:
Disk
Este reporte mostrar la estructura de las particiones (mostrar name de la particin, el tipo,
tamao total, Si la particin ya tiene formato, debe incluir el numero de bloques total, numero
de bloques ocupados y numero de bloques libres) y el mbr del disco.
Ejemplo:
Disco1.dsk
MBR
En este reporte se deben mostrar todos los datos que se indicaron anteriormente en el MBR y la
informacin de cada EBR si existieran particiones lgicas dentro de cada particin Extendida.
Nota:
El formato FAST, nicamente limpia con 0s los bitmap bloques. El FULL aplica un formato FAST y
adems limpia los bloques
Exec
El programa podr ejecutar scripts con el comando exec. Debe mostrar el contenido de la
lnea que est leyendo y su resultado. Tambin debe mostrar los comentarios del script.
Parmetro Categoria Descripcin
Ejemplo:
#ejecuta el script
exec /home/Desktop/calificacion.sh
ESPECIFICACIONES
El lenguaje a utilizar es C.
El sistema operativo a utilizar es cualquier distribucin de GNU/Linux (instalacin fsica,
solo se calificar la fase sobre una distribucin de GNU/Linux).
El manual tcnico deber incluir una especificacin de lo que realiza cada mtodo de la
aplicacin y debe coincidir con el cdigo del proyecto entregado (esto es solo parte del
contenido).
Manual de usuario.
El proyecto se realizar de forma individual.
Los Reportes Grficos son OBLIGATORIOS para poder tener derecho a calificacin,
ya que es el nico medio para verificar el funcionamiento del sistema.
Si no ejecuta con comando exec NO SE CALIFICAR
El archivo binario que representa a los discos una vez generado NO DEBE CRECER.
No se permite la utilizacin de estructuras en memoria (listas, arboles, etc.) para el
manejo de los archivos o carpetas
ENTREGA Y CALIFICACION
Fecha de entrega de Proyecto: viernes 24 de febrero de 2017.
Se requiere que tengan como mnimo lo siguiente para poder realizar la calificacin:
Comando EXEC
Reportes
Particiones (primarias)
Mount y Unmount