Sei sulla pagina 1di 11

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA

FACULTAD DE INGENIERIA
ESCUELA DE CIENCIAS Y SISTEMAS
MANEJO E IMPLEMENTACION DE ARCHIVOS
Ing. Alvaro Daz A.
Ing. Oscar Paz Campos
Aux. Victor Corado
Aux. Rigoberto Macario

Primera Practica
Introduccin
La prctica consiste en la simulacin de los principales mtodos de asignacin de espacio para
archivos, los cuales son la asignacin contigua, asignacin enlazada y asignacin indexada. As
tambin en la parte de asignacin contigua se tocar el tema de las principales estrategias de
colocacin las cuales son primer ajuste, peor ajuste y mejor ajuste.

Objetivos

Aplicar la teora dada en clase y laboratorio sobre los sistemas de archivos.


Implementar las estructuras o registros y tcnicas de programacin en el lenguaje C.
Diferenciar e identificar los tres mtodos de asignacin de espacio principales.
Generar reportes sobre el estado de discos y ficheros.
Implementar las diferentes operaciones sobre archivos en un disco.

Descripcin
La prctica consiste en realizar una aplicacin la cual es capaz de simular el funcionamiento
de los distintos mtodos de asignacin de espacio incluyendo adems las estrategias de colocacin
en la parte de asignacin contigua. Esta aplicacin es totalmente en consola desarrollado en
lenguaje C por lo que no tendr interfaz grfica y las libreras utilizadas sern obligatoriamente del
lenguaje C nativo.
La aplicacin tiene como funcionamiento 3 teoras principales:

Mtodos de asignacin de espacio.


Estrategias de Colocacin.
Operaciones sobre archivos.

ADMINISTRACIN DE DISCO
Estructura general.
El disco se simular con la ayuda de un fichero binario el cual ser administrado exclusivamente a
travs de estructuras en C. Con motivos prcticos se tendr un solo disco con 3 particiones fijas y
creadas al momento de creacin del disco.
El disco debe pesar exactamente 10 MB.
La arquitectura del disco es de la siguiente forma:

MBR

Particion1:

Particion2:

Particion3:

Asignacin
Contigua

Asignacin
Enlazada

Asignacin
Indexada

OPERACIONES SOBRE DISCO


Las operaciones sobre el disco son:

Montar el disco: Se monta el disco leyendo el MBR para conocer su estructura.


Seleccionar particin: Se selecciona una particin en el que se realizarn las operaciones
sobre archivos.
Asignacin de ajuste: En el caso de la particin 1 se elegir en cualquier momento la
estrategia de colocacin a trabajar. Se debe poder alternar diferentes estrategias en
caliente.
Reiniciar disco: Se reinicia el disco en el estado inicial
Formatear particin: Se reinicia la particin seleccionada en su formato inicial y sin
archivos.

EL MBR
El Master Boot Record es una parte inicial del disco el cual contiene la informacin de las
particiones en el mismo y su estructura en general, con el fin de administrar este disco para este
caso tendr:

La posicin de la particin 1.
La posicin de la particin 2.
La posicin de la particin 3.
El espacio utilizado y libre de la particion1.
El espacio utilizado y libre de la particion2.
El espacio utilizado y libre de la particion3.

Nmero mgico (el carnet del estudiante).


Ultima fecha de montaje.

PARTICION 1: Asignacin contigua


La teora de asignacin contigua es que el archivo quede en bloques contiguos y para lo cual se
necesitar una estrategia de colocacin.
Las operaciones de archivos sobre dicha particin son:

Manejo de Bloques
La particin est compuesta por bloques, cada bloque contendr:

ID: Representa el nmero de bloque de la particin.


Archivo: Representa el nombre del archivo que se est almacenando, es dato numrico.
Data: Almacena la informacin del archivo, debe poder contener exactamente 5 caracteres
(5 bytes)
Estado: Indica si el bloque se encuentra OCUPADO/LIBRE. 0 para libre y 1 para ocupado.

Crear Archivo
Esta opcin permite crear archivos en las particiones seleccionadas; La aplicacin debe de proveer
una interfaz para ingresar el nombre del archivo, y la informacin de dicho archivo. El nombre
ser un ID numrico. Para almacenar el archivo la aplicacin deber dividirlo en n caracteres el
cual es el tamao de dicho bloque, para conocer la cantidad de bloques que se requieren para
almacenarlos, luego se buscarn 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 particin donde se quiere almacenar est llena,
entonces mostrara un error que indique que esa particin est llena.
Los tipos de ajustes a trabajar son:

Primer ajuste.
Mejor ajuste.
Peor ajuste.

Eliminar Archivo
Se podr indicar el ID del archivo que se desea eliminar, con este se buscaran todos los bloques
que tengan almacenado el archivo con ese id y se eliminarn los datos que se encuentren en
esos bloques y se cambiar el Estado de los mismos a Libre.

Modificar Archivo
El usuario tiene posibilidad de ver en consola o interfaz el archivo que desee, y modificarlo.
(Elimina y Crea).

Consultar Archivo
Se deber poder consultar cualquier archivo conociendo su ID. Se consulta su texto.

PARTICION 2: Asignacin Enlazada


Las operaciones de archivos sobre dicha particin son:

El directorio de archivos
Para este tipo de asignacin es necesario utilizar un directorio el cual es como una tabla al inicio de
la particin y se compone de la siguiente forma:
Archivo
Bloque Inicial
1
7
4
2

Nota: para este caso se reservar un directorio para exactamente 500 archivos.

Manejo de Bloques
La particin est compuesta por bloques, cada bloque contendr:

ID: Representa el nmero de bloque relativo a la particin.


Data: Almacena la informacin del archivo, debe poder almacenar 5 caracteres exactos (5
bytes)
Puntero: Indica el ID del siguiente bloque utilizado por el mismo archivo, 0 si no est
utilizado, -1 si es el ltimo bloque utilizado por un archivo.

Estructura enlazada:

Crear Archivo
Esta opcin permite crear un archivo preguntando su ID el cual deber ser un nmero entero, luego
su contenido que es texto. La manera de almacenar dado este tipo de asignacin de espacio es
buscar desde el inicio del disco un bloque libre, al encontrar el primer bloque libre se empieza a
almacenar el archivo desde esa posicin y buscado el siguiente bloque libre, enlazando al mismo
tiempo todos los bloques que el archivo ocup, colocando un valor -1 para el ltimo bloque
utilizado para diferenciar el fin del archivo.
Al final se debe registrar el archivo en el directorio.

Eliminar Archivo
Se podr indicar el ID del archivo que se desea eliminar para luego buscar la posicin en el
directorio, eliminarlo de dicho directorio y liberar cada bloque poniendo en el campo puntero un
valor de 0 el cual indicar que dicho bloque no est utilizado. No es necesario eliminar la data.

Modificar Archivo
El usuario tiene posibilidad de ver en consola el archivo que desee, y modificarlo. (Elimina y
Crea es la mejor manera).

Consultar Archivo
Se deber poder consultar cualquier archivo conociendo su ID. Se consulta su texto.

PARTICION 3: Asignacin Indexada


Las operaciones de archivos sobre dicha particin son:

El directorio de archivos
Para este tipo de asignacin es necesario utilizar un directorio el cual es como una tabla al inicio de
la particin y se compone de la siguiente forma:
Archivo
Bloque ndice
1
7
4
2

Nota: para este caso se reservar un directorio para exactamente 500 entradas.

Manejo de Bloques
La particin est compuesta por bloques, cada bloque contendr:

ID: Representa el nmero de bloque relativo a la particin.


Data: Almacena la informacin del archivo, debe poder almacenar 12 caracteres exactos (12
bytes)
o Este espacio de DATA debe poder cumplir con dos funciones, ser un bloque ndice o
un bloque de datos.

o Cuando es un bloque de datos debe tener el espacio de 12 bytes para almacenar


texto, y cuando sea un bloque ndice debe utilizarse este espacio para almacenar
tres apuntadores enteros.
o Se manejar solo bloques ndices de primer nivel.
o En caso que un archivo ocupe ms de tres bloques se realizar una nueva entrada en
el directorio duplicando el ID del archivo y asignando el siguiente bloque ndice a
utilizar, as sucesivamente.
ESTADO: un entero que indica si el bloque est libre u ocupado, 0 para libre, 1 para
ocupado. Este campo se puede utilizar para identificar si el bloque es un ndice o de datos.

Estructura indexada:

Crear Archivo
Esta opcin permite crear un archivo preguntando su ID el cual deber ser un nmero entero, luego
su contenido que es texto. La manera de almacenar dado este tipo de asignacin de espacio es
buscar desde el inicio del disco un bloque libre, al encontrar el primer bloque libre se inserta una
entrada en el directorio indicando el ID del archivo y el apuntador al bloque ndice, este bloque
ndice almacena punteros hacia bloques que almacenarn el archivo.

Eliminar Archivo
Se podr indicar el ID del archivo que se desea eliminar para luego buscar la posicin en el
directorio, eliminarlo de dicho directorio y liberar cada bloque poniendo en el campo ESTADO un
valor de 0 el cual indicar que dicho bloque no est utilizado. No es necesario eliminar la data.

Modificar Archivo
El usuario tiene posibilidad de ver en consola el archivo que desee, y modificarlo. (Elimina y
Crea es la mejor manera).

Consultar Archivo
Se deber poder consultar cualquier archivo conociendo su ID. Se consulta su texto.

REPORTES
PARTICION 1
Reporte de estados de bloques
En cualquier momento, se debe permitir al usuario que seleccione la particin y proveerle un
reporte de estados de los bloques, se solicitara la ruta de almacenamiento del reporte y dicho
reporte es un archivo de texto con extensin .ids.
La estructura del reporte idDisco.ids debe de ser la siguiente:

Fecha del Reporte(dd/mm/yyyy - hh:mm:ss)


--------------------------------------------------------------|id|id|_|id|id|_|_|_

Esto en donde dice ID tiene el id del archivo que ocupa esos bloques y en _ los que estn libres
NOTA: Para este reporte, cada lnea posee nicamente informacin de 50 Bloques.

Reporte de contenido de bloques


En cualquier momento, se debe permitir al usuario que seleccione la particin y proveerle un
reporte de estados de los bloques y la informacin que estos posean. El reporte es un archivo de
texto con extensin .blqs .

El reporte particion1.blqs tiene la siguiente estructura.

Fecha del Reporte: dd/mm/yyyy - hh:mm:ss


-----------------------------------------------------------------|contenido|

|contenido|contenido|

|contenido|contenido|
|contenido|

|contenido|

|contenido|contenido|

NOTA: Para este reporte, cada lnea posee nicamente informacin de 50 Bloques.

PARTICION 2
Reporte de directorio
Se debe generar un archivo de texto con la estructura del directorio de archivos.

REPORTE DE DIRECTORIO ASIGNACION ENLAZADA


Fecha del Reporte: dd/mm/yyyy - hh:mm:ss
-----------------------------------------------------------------ARCHIVO
BLOQUE INICIAL
1
1
2
3
3

Reporte de bloques
Ester reporte muestra el estado de los campos de los bloques actualmente. El usuario podr
ingresar cuantos bloques quiere reportar, por ejemplo al ingresar un valor 300 se reportaran los
primeros 300 bloques.

REPORTE DE BLOQUES ASIGNACION ENLAZADA


Fecha del Reporte: dd/mm/yyyy - hh:mm:ss
-----------------------------------------------------------------|1_hola!_3|2_---------_0|3_mundo_22|4_conten_5|
|5_hola!_-1|6_---------_0|7_mundo_0|8_conten_0|

|22_;)!!!_-1|23_---------_0|24_mundo_0|25_conten_0|

NOTA: Para este reporte, cada lnea posee nicamente informacin de 30 Bloques.
El formato a reportar un bloque es:
|IDBloque_CONTENIDO_PUNTERO|
Para representar espacios en blanco se utilizar el smbolo guion: -.

PARTICION 3
Reporte de directorio
Se debe generar un archivo de texto con la estructura del directorio de archivos.

REPORTE DE DIRECTORIO ASIGNACION INDEXADA


Fecha del Reporte: dd/mm/yyyy - hh:mm:ss
-----------------------------------------------------------------ARCHIVO
BLOQUE INDICE
4
24
5
100
6

Reporte de bloques
Ester reporte muestra el estado de los campos de los bloques actualmente. El usuario podr
ingresar cuantos bloques quiere reportar, por ejemplo al ingresar un valor 300 se reportaran los
primeros 300 bloques.

REPORTE DE BLOQUES
Fecha del Reporte: dd/mm/yyyy - hh:mm:ss
-----------------------------------------------------------------|1_hola!_1|2_---------_0|3_mundo_1|4_conten_1|
|5_hola!_-1|6_---------_0|7_mundo_0|8_conten_0|

|22_;)!!!_1|23_---------_0|{24_1,3,22_2}|25_conten_0|

NOTA: Para este reporte, cada lnea posee nicamente informacin de 30 Bloques.

El formato a reportar un bloque es:


|IDBloque_CONTENIDO_ESTADO|
O en caso que sea un bloque ndice:
|{ID_puntero1,puntero2,puntero3_ESTADO}|
Para representar espacios en blanco se utilizar el smbolo guion: -.

EL DISCO
Reporte del MBR
Se reportarn en consola todos los campos del MBR y sus valores.

ESPECIFICACIONES:

El lenguaje a utilizar es C.
La interfaz es en consola.
Cada bloque es una estructura de C almacenada en el archivo Binario.
El sistema operativo a utilizar es cualquier distribucin de GNU/Linux (instalacin fsica no
virtual, solo se calificar la prctica sobre una distribucin GNU/Linux).
Se puede utilizar cualquier IDE que se desee, pero no se permiten clases especiales que
estos puedan proporcionar, solamente el lenguaje C como tal.
El manual tcnico deber especificar de lo que realiza cada mtodo de la aplicacin y debe
coincidir con el cdigo de la prctica entregada.
Todo es acceso a disco en tiempo real no se debe implementar memoria para levantar todo
el disco o algo parecido, si se trabaja todo con memoria tendrn una nota de 0.

CONSIDERACIONES
La prctica se entrega en la fecha indicada, se tomar en cuenta que la impuntualidad de la
entrega afectar la nota, as como tambin queda a discrecin del auxiliar recibir algo fuera
del tiempo estipulado. Se verificaran copias de cdigo, cualquier copia de la prctica ser
sancionada con la prdida automtica del Laboratorio y la sancin correspondiente por parte de la
Escuela de Sistemas.
Si alguna persona no puede llegar a la calificacin de la prctica (excepto a las personas que
ya han definido con los auxiliares que trabajan), debe informar con anticipacin tanto al
Auxiliar como al Ingeniero indicando el motivo de su falta. Se determinara si puede o no
realizarse la calificacin de la prctica y bajo qu trminos.

ENTREGA Y CALIFICACIN

Fecha de entrega de la Prctica: viernes 20 de febrero de 2015.


Hora de Entrega: 9:00 AM.
Lugar, Da y Hora de Calificacin: Se enviar un calendario.
Forma de Calificacin: Presencial y conforme entregaron el proyecto, si el estudiante no se
encuentra cuando se le llame pasar de ltimo, y si por alguna razn se le vuelve a llamar
por segunda ocasin y no se encuentra, ya no se le calificar.
Entregables: Se deber entregar un CD tanto la Documentacin (Manual Tcnico y Manual
de Usuario) como el cdigo fuente de la aplicacin y el ejecutable. Los nombres de los
archivos de cdigo fuente debern llevar el siguiente formato:
NombreArchivo_Carnet.extensin (miarchivo_201200001.c)

Potrebbero piacerti anche