[mia]practica1 semestre 1 2015

11
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS MANEJO E IMPLEMENTACION DE ARCHIVOS Ing. Alvaro Díaz A. Ing. Oscar Paz Campos Aux. Victor Corado Aux. Rigoberto Macario Primera Practica Introducción La práctica consiste en la simulación de los principales métodos de asignación de espacio para archivos, los cuales son la asignación contigua, asignación enlazada y asignación indexada. Así también en la parte de asignación contigua se tocará el tema de las principales estrategias de colocación las cuales son primer ajuste, peor ajuste y mejor ajuste. Objetivos Aplicar la teoría dada en clase y laboratorio sobre los sistemas de archivos. Implementar las estructuras o registros y técnicas de programación en el lenguaje C. Diferenciar e identificar los tres métodos de asignación de espacio principales. Generar reportes sobre el estado de discos y ficheros. Implementar las diferentes operaciones sobre archivos en un disco. Descripción La práctica consiste en realizar una aplicación la cual es capaz de simular el funcionamiento de los distintos métodos de asignación de espacio incluyendo además las estrategias de colocación en la parte de asignación contigua. Esta aplicación es totalmente en consola desarrollado en lenguaje C por lo que no tendrá interfaz gráfica y las librerías utilizadas serán obligatoriamente del lenguaje C nativo. La aplicación tiene como funcionamiento 3 teorías principales: Métodos de asignación de espacio. Estrategias de Colocación. Operaciones sobre archivos.

Upload: edward-gomez

Post on 25-Dec-2015

5 views

Category:

Documents


0 download

DESCRIPTION

....

TRANSCRIPT

Page 1: [MIA]Practica1 Semestre 1 2015

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS MANEJO E IMPLEMENTACION DE ARCHIVOS Ing. Alvaro Díaz A. Ing. Oscar Paz Campos Aux. Victor Corado Aux. Rigoberto Macario

Primera Pra ctica

Introducción La práctica consiste en la simulación de los principales métodos de asignación de espacio para

archivos, los cuales son la asignación contigua, asignación enlazada y asignación indexada. Así

también en la parte de asignación contigua se tocará el tema de las principales estrategias de

colocación las cuales son primer ajuste, peor ajuste y mejor ajuste.

Objetivos Aplicar la teoría dada en clase y laboratorio sobre los sistemas de archivos.

Implementar las estructuras o registros y técnicas de programación en el lenguaje C.

Diferenciar e identificar los tres métodos de asignación de espacio principales.

Generar reportes sobre el estado de discos y ficheros.

Implementar las diferentes operaciones sobre archivos en un disco.

Descripción La práctica consiste en realizar una aplicación la cual es capaz de simular el funcionamiento

de los distintos métodos de asignación de espacio incluyendo además las estrategias de colocación

en la parte de asignación contigua. Esta aplicación es totalmente en consola desarrollado en

lenguaje C por lo que no tendrá interfaz gráfica y las librerías utilizadas serán obligatoriamente del

lenguaje C nativo.

La aplicación tiene como funcionamiento 3 teorías principales:

Métodos de asignación de espacio.

Estrategias de Colocación.

Operaciones sobre archivos.

Page 2: [MIA]Practica1 Semestre 1 2015

ADMINISTRACIÓN DE DISCO

Estructura general.

El disco se simulará con la ayuda de un fichero binario el cual será administrado exclusivamente a

través de estructuras en C. Con motivos prácticos se tendrá un solo disco con 3 particiones fijas y

creadas al momento de creación del disco.

El disco debe pesar exactamente 10 MB.

La arquitectura del disco es de la siguiente forma:

OPERACIONES SOBRE DISCO Las operaciones sobre el disco son:

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

Seleccionar partición: Se selecciona una partición en el que se realizarán las operaciones

sobre archivos.

Asignación de ajuste: En el caso de la partición 1 se elegirá en cualquier momento la

estrategia de colocación a trabajar. Se debe poder alternar diferentes estrategias en

caliente.

Reiniciar disco: Se reinicia el disco en el estado inicial

Formatear partición: Se reinicia la partición seleccionada en su formato inicial y sin

archivos.

EL MBR El Master Boot Record es una parte inicial del disco el cual contiene la información de las

particiones en el mismo y su estructura en general, con el fin de administrar este disco para este

caso tendrá:

La posición de la partición 1.

La posición de la partición 2.

La posición de la partición 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.

Particion3:

Asignación

Indexada

Particion2:

Asignación

Enlazada

MBR

Particion1:

Asignación

Contigua

Page 3: [MIA]Practica1 Semestre 1 2015

Número mágico (el carnet del estudiante).

Ultima fecha de montaje.

PARTICION 1: Asignación contigua La teoría de asignación contigua es que el archivo quede en bloques contiguos y para lo cual se

necesitará una estrategia de colocación.

Las operaciones de archivos sobre dicha partición son:

Manejo de Bloques La partición está compuesta por bloques, cada bloque contendrá:

ID: Representa el número de bloque de la partición.

Archivo: Representa el nombre del archivo que se está almacenando, es dato numérico.

Data: Almacena la información 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 opción permite crear archivos en las particiones seleccionadas; La aplicación debe de proveer

una interfaz para ingresar el nombre del archivo, y la información de dicho archivo. El nombre

será un ID numérico. 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.

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 eliminarán los datos que se encuentren en

esos bloques y se cambiará el Estado de los mismos a Libre.

Page 4: [MIA]Practica1 Semestre 1 2015

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: Asignación Enlazada Las operaciones de archivos sobre dicha partición son:

El directorio de archivos Para este tipo de asignación es necesario utilizar un directorio el cual es como una tabla al inicio de

la partición 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 partición está compuesta por bloques, cada bloque contendrá:

ID: Representa el número de bloque relativo a la partición.

Data: Almacena la información 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:

Page 5: [MIA]Practica1 Semestre 1 2015

Crear Archivo Esta opción permite crear un archivo preguntando su ID el cual deberá ser un número entero, luego

su contenido que es texto. La manera de almacenar dado este tipo de asignación 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 posición 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 posición 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: Asignación Indexada Las operaciones de archivos sobre dicha partición son:

El directorio de archivos Para este tipo de asignación es necesario utilizar un directorio el cual es como una tabla al inicio de

la partición 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 partición está compuesta por bloques, cada bloque contendrá:

ID: Representa el número de bloque relativo a la partición.

Data: Almacena la información 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.

Page 6: [MIA]Practica1 Semestre 1 2015

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 más 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 opción permite crear un archivo preguntando su ID el cual deberá ser un número entero, luego

su contenido que es texto. La manera de almacenar dado este tipo de asignación 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 almacenarán el archivo.

Eliminar Archivo Se podrá indicar el ID del archivo que se desea eliminar para luego buscar la posición 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.

Page 7: [MIA]Practica1 Semestre 1 2015

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 partición 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 extensión .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 están libres

NOTA: Para este reporte, cada línea posee únicamente información de 50 Bloques.

Reporte de contenido de bloques En cualquier momento, se debe permitir al usuario que seleccione la partición y proveerle un

reporte de estados de los bloques y la información que estos posean. El reporte es un archivo de

texto con extensión .blqs .

Page 8: [MIA]Practica1 Semestre 1 2015

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 línea posee únicamente información 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.

Page 9: [MIA]Practica1 Semestre 1 2015

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 línea posee únicamente información de 30 Bloques.

El formato a reportar un bloque es:

|IDBloque_CONTENIDO_PUNTERO|

Para representar espacios en blanco se utilizará el símbolo 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 …

… …

Page 10: [MIA]Practica1 Semestre 1 2015

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 línea posee únicamente información 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 símbolo guion: “-”.

EL DISCO

Reporte del MBR Se reportarán en consola todos los campos del MBR y sus valores.

Page 11: [MIA]Practica1 Semestre 1 2015

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 distribución de GNU/Linux (instalación física no

virtual, solo se calificará la práctica sobre una distribución 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 técnico deberá especificar de lo que realiza cada método de la aplicación y debe

coincidir con el código de la práctica 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 tendrán una nota de 0.

CONSIDERACIONES La práctica se entrega en la fecha indicada, se tomará en cuenta que la impuntualidad de la

entrega afectará la nota, así como también queda a discreción del auxiliar recibir algo fuera

del tiempo estipulado. Se verificaran copias de código, cualquier copia de la práctica será

sancionada con la pérdida automática del Laboratorio y la sanción correspondiente por parte de la

Escuela de Sistemas.

Si alguna persona no puede llegar a la calificación de la práctica (excepto a las personas que

ya han definido con los auxiliares que trabajan), debe informar con anticipación tanto al

Auxiliar como al Ingeniero indicando el motivo de su falta. Se determinara si puede o no

realizarse la calificación de la práctica y bajo qué términos.

ENTREGA Y CALIFICACIÓN Fecha de entrega de la Práctica: viernes 20 de febrero de 2015.

Hora de Entrega: 9:00 AM.

Lugar, Día y Hora de Calificación: Se enviará un calendario.

Forma de Calificación: Presencial y conforme entregaron el proyecto, si el estudiante no se

encuentra cuando se le llame pasará de último, y si por alguna razón se le vuelve a llamar

por segunda ocasión y no se encuentra, ya no se le calificará.

Entregables: Se deberá entregar un CD tanto la Documentación (Manual Técnico y Manual

de Usuario) como el código fuente de la aplicación y el ejecutable. Los nombres de los

archivos de código fuente deberán llevar el siguiente formato:

NombreArchivo_Carnet.extensión (miarchivo_201200001.c)