estructura logica de un disco duro y manejo de archivos

16
Estructura mane Jo Universidad Católica Facultad de ciencias Escuela de ingenierí Organización y Man Profesor Rodrigo Co 0 a de un disco du ejo de archivos onathan Nicolás Sepúlveda castillo 18.655.231-8 27 de Septiembre de 2013 a Del Maule s de la ingeniería ía civil informática nejo de Archivos ofré uro y

Upload: jonathan-nicolas-sepulveda-castillo

Post on 18-Jan-2016

78 views

Category:

Documents


0 download

DESCRIPTION

Además de la estructura física de un disco duro podemos encontrar una estructura abstracta o “lógica”, en esta podemos principales partes: el MBR (Master Boot record) o sector de arranque, donde se almacena la tabla de particiones entre otros. El otro son las particiones que son los sectores donde se puede ingresar a los datos accesibles, estas particiones tienen distintos formatos o mejor llamados sistemas de archivos, los cuales pueden variar para los diferentes sistemas operativo.El manejo de archivos en los diferentes lenguajes de programación es muy común y utilizado para almacenar datos a largo plazo. Lenguajes como C, pascal o java hacen uso de herramientas propias de de cada uno llamadas “funciones” para manipular el contenido ya sea para abrir, escribir, leer, cerrar, borrar archivos, etc.

TRANSCRIPT

Page 1: Estructura logica de un disco duro y manejo de archivos

Estructura de un disco duro y

manejo de archivos

Jonathan

Universidad Católica Del Maule

Facultad de ciencias de la ingeniería

Escuela de ingeniería civil informática

Organización y Manejo de Archivos

Profesor Rodrigo Cofré

0

Estructura de un disco duro y

manejo de archivos

Jonathan Nicolás Sepúlveda castillo

18.655.231-8

27 de Septiembre de 2013

Universidad Católica Del Maule

Facultad de ciencias de la ingeniería

Escuela de ingeniería civil informática

Organización y Manejo de Archivos

Profesor Rodrigo Cofré

Estructura de un disco duro y

Page 2: Estructura logica de un disco duro y manejo de archivos

1

Índice

0. Resumen---------------------------------------------------------------------------------------pág. 2

1. Estructura lógica de un disco duro--------------------------------------------------------- pág. 3

1.1. Master Boot Record--------------------------------------------------------------- pág. 3

1.2. Particiones-------------------------------------------------------------------------- pág. 3

1.3. Tipos de particiones--------------------------------------------------------------- pág. 4

o 1.3.1 Partición Primaria------------------------------------------------------- pág. 4

o 1.3.2 Partición Extendida---------------------------------------------------- pág. 4

o 1.3.3 Partición Lógica--------------------------------------------------------- pág. 4

1.4. Sistemas de Archivos------------------------------------------------------------- pág. 5

o 1.4.1 Windows----------------------------------------------------------------- pág. 5

o 1.4.2 Linux--------------------------------------------------------------------- pág. 5

o 1.4.3 Mac OS X--------------------------------------------------------------- pág. 6

o 1.4.4 Unix---------------------------------------------------------------------- pág. 6

2. Manejo de archivos en diferentes lenguajes de programación---------------------------pág.7

2.1 Lenguaje C-------------------------------------------------------------------------- pág.7

2.2 Lenguaje Java----------------------------------------------------------------------- pág.8

2.3 Lenguaje Pascal-------------------------------------------------------------------- pág.12

3. Conclusiones---------------------------------------------------------------------------------- pág.15

4. Recursos Digitales---------------------------------------------------------------------------- pág.16

Page 3: Estructura logica de un disco duro y manejo de archivos

2

Resumen

Además de la estructura física de un disco duro podemos encontrar una estructura abstracta

o “lógica”, en esta podemos principales partes: el MBR (Master Boot record) o sector de

arranque, donde se almacena la tabla de particiones entre otros. El otro son las particiones

que son los sectores donde se puede ingresar a los datos accesibles, estas particiones tienen

distintos formatos o mejor llamados sistemas de archivos, los cuales pueden variar para los

diferentes sistemas operativo.

El manejo de archivos en los diferentes lenguajes de programación es muy común y

utilizado para almacenar datos a largo plazo. Lenguajes como C, pascal o java hacen uso de

herramientas propias de de cada uno llamadas “funciones” para manipular el contenido ya

sea para abrir, escribir, leer, cerrar, borrar archivos, etc.

Page 4: Estructura logica de un disco duro y manejo de archivos

3

1. Estructura lógica de un disco duro

En general un disco duro en su estructura lógica está dividido en dos parte: el sector de

arranque donde encontramos el MBR (Master Boot record) y los espacios particionados/no

particionado.

1.1. Master Boot Record.

Es el primer sector (“Sector cero”), de un dispositivo de almacenamiento, como el disco

duro. Entre sus diferentes uso tenemos a veces que se emplea para el arranque del sistema

operativo con Bootstrap (“”), otro uso es para almacenar una tabla de particiones y, en

ocasiones, se usa solo para identificar un dispositivo de disco individual, aunque en algunas

máquinas esto último no se usa y es ignorado. Pero en forma general el MBR se refiere al

sector de arranque de 512 bytes.

1.2. Particiones.

Una partición de disco es el nombre que se le otorga a cualquier división (lógica) de un

disco. Los espacios particionados son las porciones accesibles del disco y, de forma

contraria, los espacios sin particionar son inaccesibles ya que aun no tienen definida una

partición. En estas particiones donde podemos almacenar datos, tener uno o más sistemas

operativos si es que tenemos distintas particiones en el disco. A cada partición del disco le

podemos dar un formato con algún sistema de archivos (NTFS, ext4, fat32, etc.). Diferente

al formato, pero muchas veces confundido, tenemos a los tipos de particiones: primarias,

extendidas y lógicas.

Page 5: Estructura logica de un disco duro y manejo de archivos

4

1.3. Tipos de particiones

Podemos encontrar 3 diferente tipos de particiones:

1.3.1 Partición primaria: particiones crudas o primarias del disco duro, se puede

tener un máximo de 4 de estas. Esta depende de una tabla de particiones. Un disco

físico completamente formateado, consiste en realidad de una partición primaria que

ocupa todo el espacio del disco, y posee un sistema de archivos. A este tipo de

particiones, prácticamente cualquier sistema operativo puede detectarlas y

asignarles una unidad, siempre y cuando el sistema operativo reconozca su formato

(sistema de archivos).

1.3.2 Partición extendida: partición que actúa como una partición primaria, en ella

pueden haber infinidad de unidades lógicas en su interior. Con este tipo de partición

se rompe la barrera de solo tener solo 4 particiones primarias ya que esta actúa

como una más. Solo puede existir una partición de este tipo por disco, solo sirve

para contener particiones lógicas. Es el único tipo de partición que no soporta un

formato o sistema de archivos directamente.

1.3.3 Partición lógica: ocupa un trozo o la totalidad de una partición extendida, la

cual se ha formateado con un especifico sistema de archivo (NTFS, FAT32, etc.) y

se le asignado una unidad, si el sistema operativo reconoce las particiones lógicas o

su sistema de archivos.

Page 6: Estructura logica de un disco duro y manejo de archivos

5

1.4 Sistemas de Archivos

Una de las grandes diferencias entre los diferentes Sistemas operativos, en lo que es la

estructura del disco duro, es los formatos o sistemas de archivos que soporta cada uno.

Podemos ver distintos S.O como:

1.4.1. Windows: este S.O tiene como principal sistema de archivos actualmente el

NTFS, este fue creado con la aparición de Windows NT, está basado en el sistema

de archivos HPFS de OS/2 de IBM. NTFS permite definir clústers (agrupación de

bloques de datos, clases, etc.) de 512 bytes, que es lo mínimo en que se puede

dividir un disco duro. Anteriormente encontramos a FAT y FAT32 que a diferencia

de NTFS tienen clúster mas grandes lo que desperdicia muchos recursos, debemos

tener en cuenta que la unidad básica de almacenamiento es el clúster, y que en

FAT32 el clúster es de 4 Kb, por lo que un archivo de 1 Kb ocupará un

clúster, del que se estarán desperdiciando 3 Kb.; Además estos 2 últimos tienen una

menos capacidad ( 32gb para FAT32 y 4gb para FAT) y estos producen una gran

fragmentación del disco duro.

1.4.2. Linux: los formatos nativos de este OS son ext2, ext3, ext4, este último

actualmente es el más usado en los S.O basados en Linux. Las principales

características de ext4 son su aumento del tamaño de ficheros a 1 Exabay = 220

Terabytes y del tamaño máximo por archivo (16 Tb), numero ilimitados de

directorios frente a los 32000 de ext3, mayor velocidad en la creación y borrado de

ficheros con respecto a sus antecesores (ext2, ext3). Además de de los formatos

nativos, Linux tiene la capacidad de reconocer otros formatos como FAT/FAT32,

NTFS, XFS, ReiserFS. Finalmente en Linux podemos ver un sistema de archivos

especial llamado SWAP, o intercambio de memoria, que tiene como objetivo

funcionar como un respaldo a la memoria RAM en momentos que esta rebalsa su

límite, trabaja como una memoria RAM adicional.

Page 7: Estructura logica de un disco duro y manejo de archivos

6

1.4.3. Mac OS X: actualmente capaz de arrancar y usar como partición primaria un

volumen formateado según diferentes sistemas de archivo, como HFS+, UFS, ISO,

NFS o UDF. Además se proporciona un sistema llamado VFS (Virtual File

System), que permite crear extensiones del kernel para soportar nuevos sistemas de

ficheros, por lo que en realidad cualquier sistema de archivo puede ser manejado

con el kernel de Mac OS X. Centrándonos más en el sistema de archivos nativo de

Mac OS X (HFS+) podemos encontrar las siguientes características: tiene un uso

eficiente del disco, utiliza nombres internacionales (utilizando el juego de caracteres

Unicode), posibilidad de nombre largos, de hasta 255 caracteres UTF-16,

posibilidad de almacenar datos extra junto con cada fichero (metadato) de una

forma flexible y estándar(pudiendo direccionar 232 bloques en cada volumen) y la

posibilidad de arranque en sistemas no basados en Mac OS.

1.4.4. Unix: como sistema de archivos nativo este O.S tiene a UFS. De este formato

se derivan los sistemas de archivos de MAC OS y Linux (ext4, HFS). Otro formato

es el XFS que fue creado para ser usado con grandes cantidades de datos a gran

velocidad, pero se comporta lento con ficheros pequeños, es normalmente usado en

grandes servidores y donde se maneja mucha información.

Page 8: Estructura logica de un disco duro y manejo de archivos

7

2. Manejo de archivos en distintos lenguajes de programación

El uso de archivos es algo muy común en informática. Pero, ¿Qué importancia tiene el

manejo de archivos?, la respuesta es la siguiente: Muchas veces en programación se ocupa

como memoria principal para almacenar datos la RAM (usando variables, arreglos,

estructuras de datos, etc.), esta tienes la limitación de que es de uso temporal, es decir,

cuando se cierra el programa y se apaga la computadora se pierden todos los datos. Muchos

programas exigen trasportar datos de un computador a otro o exigen el uso de información

obtenida en otra instancia de uso de tal programa u otro; para resolver este problema se

llega al uso de archivos, de tal forma de que se pueda almacenar información por largo

tiempo sin necesidad de mantener encendido la computadora.

En los diferentes lenguajes de programación podemos manipular archivos con diferentes

“funciones”. Podemos leer, crear, escribir, modificar un archivo. A continuación se

exponen las instrucciones para manipular archivos en los lenguajes C, Java y Pascal:

2.1 Lenguaje C

Para manejar archivos en C primero es necesario crear un puntero de tipo FILE, este

apuntara al archivo. Después es necesario abrir el archivo con la función “fopen ()”, tendrá

como argumento el nombre o dirección del archivo y el modo en que se abrirá (“r”: modo

lectura, “w”: modo escritura). Para comprobar si el archivo esta vacio o no existe basta con

usar con una condición “if”, ver si el puntero tipo FILE, creado anteriormente, es igual a

vacio (NULL) o no. Como las funciones de entrada y salida estándar de C (printf, scanf)

anteponiendo una “f” a cada función (fprintf, fscanf), se puede escribir o leer desde el

archivo colocando como primer argumento el puntero tipo FILE del archivo. Además de los

funciones anteriores tenemos a fgets () q sirve para leer cadenas de determinado largo desde

el archivo y fputs() que sirve para escribir cadenas en el archivo . Al terminar de usar el

archivo se debe cerrar con la función “fclose ()”.

Modos de apertura de un archivo con “fopen ()”:

Page 9: Estructura logica de un disco duro y manejo de archivos

8

Código donde se resume el manejo básico de archivos en el lenguaje C, con las funciones:

2.2 Lenguaje Java

En java al igual que C es necesario hacer un puntero de tipo “file” para señalar la ubicación

o nombre del archivo. Antes de manipular el archivo también necesitamos usar la clase

FileReader que tiene los métodos (las llamadas funciones en otros lenguajes) para poder

leer caracteres, debemos crear una instancia de esta enviándole como parámetro al puntero

tipo file. Otra clase que tenemos que usar es BufferedReader el cual contiene metodos para

leer líneas completas, la cual debe recibir como parámetro la instancia del “FileReader”.

La apertura del fichero y su posterior lectura pueden lanzar excepciones que debemos

capturar. Por ello, la apertura del fichero y la lectura debe meterse en un bloque try-catch,

este debe ser seguido de un bloque finally, el cual tendrá dentro de el la función close() para

cerrar el archivo al terminar de ocuparlo. Para poder escribir en el archivo necesitamos

crear una instancia de la clase FileWhiter que contiene métodos para tal acción. Para poder

manejar archivos binarios binarios tenemos las clases ImputStream y OutpuStream.

Además de las clases básicas en el manejo de archivos mencionados anteriormente tenemos

otros como DataImputString que se comporta igual que los FileImputStream,

RandonAccessFile para crear archivos de acceso aleatorio, entre otros.

Page 10: Estructura logica de un disco duro y manejo de archivos

9

// Creando instancias de las clases principales

//lectura de archivos en java

Page 11: Estructura logica de un disco duro y manejo de archivos

10

//Escritura en un archivo

Page 12: Estructura logica de un disco duro y manejo de archivos

11

// Manejo de un Archivo binario

Códigos anteriores extraídos de la página web:

http://chuwiki.chuidiang.org/index.php?title=Lectura_y_Escritura_de_Ficheros_en_Java

Page 13: Estructura logica de un disco duro y manejo de archivos

12

2.3 Lenguaje Pascal

En Pascal podemos almacenar registros en archivos. En primer lugar debemos crear una

variable de tipo FILE que sirve para apuntar a la estructura del archivo (alias), aquí se

indica el tipo de contenido del archivo. Después se debe asignar el alias a un archivo con la

función Assign, es decir se estable una relación entre el nombre y la ubicación física con un

nombre corto (alias). Una vez establecida la relación hay que abrir el archivo en modo

lectura/escritura con la función Reset o crear el archivo usando la función Rewrite. con Se

debe validad la apertura del archivo, para esto se utiliza la variable IoResult , este

almacena un numero diferente a “0” retornado por la función Reset si el archivo no se

puede abrir, basta con utilizar este valor en una condición “if”. Se puede almacenar todos

los campos de un registro en el archivo con la función White, al utilizarla se almacena una

variable del tipo “Record” que representa un bloque de datos o campos, esta función tiene 2

argumentos: el alias del archivo donde se desea almacena y la variable que se desea grabar.

También tenemos la función Read que nos permite cargar los campos de un registro de un

archivo y copiarlo a la memoria RAM, esta función tiene 2 argumentos al igual que White.

Para cerrar el archivo se ocupa la función Close donde se le indica el alias del archivo.

Además de la funciones anteriores, que son la básicas, tenemos otras como seek para re

posicionar el apuntador, FilePos para conocer la posición del apuntador, Eof para detectar

el final del archivo, Rename para cambiar el nombre del archivo, Erase para borrar

archivos, entre otros.

Códigos mostrando algunas operaciones básicas del manejo de archivo en Pascal:

//creación de alias

//función Assign y

Reset

Page 14: Estructura logica de un disco duro y manejo de archivos

13

// Validar apertura de archivo

//Función White

//Cerrando un archivo Close (alias);

Page 15: Estructura logica de un disco duro y manejo de archivos

14

3. Conclusiones

En el disco duro, en su estructura lógica, los sistemas de archivos tiene la misión de

administrar la forma de almacenar la información. Cada sistema de archivos tiene una

capacidad máxima, forma de administrar los bloques del disco duro, eficacia con diferentes

cantidades de información, entre otros.

Mediante las funciones podemos manipular archivos en distintos lenguajes, mediante esto

podemos almacenar información a largo plazo a diferencia de almacenar datos en variables

que desaparecen al terminar la ejecución.

Page 16: Estructura logica de un disco duro y manejo de archivos

15

4. Recursos Digitales

Lectura y escritura de ficheros en java,

http://chuwiki.chuidiang.org/index.php?title=Lectura_y_Escritura_de_Ficheros_en_Java

[visitado el 25 -09 – 2013].

Manejo de Archivos en JAVA,

http://geovinmorales.siems.com.gt/umg/cursos/progra_avanzada/archivos.html

[visitado el 22 – 09 -2013].

Particiones y sistema de archivos en Linux,

http://www.aquihayapuntes.com/particiones-y-sistemas-de-archivos-en-linux.html

[visitado el 14 – 09 - 2013].

Estructura lógica del disco duro,

http://www.wikiteka.com/apuntes/estructura-logica-del-disco-duro/

[visitado el 15 – 09 -2013].

Unix File System,

http://es.wikipedia.org/wiki/Unix_File_System

[visitado el 14 - 09 - 2013]

Manejo de archivos en Pascal [PDF], autor Ing. Bruno López Tekeyas ,

https://www.google.cl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDAQFjAA&

url=http%3A%2F%2Fwww.itnuevolaredo.edu.mx%2Ftakeyas%2FApuntes%2FAdministraci

on_Archivos%2FApuntes%2FManejo%2520de%2520Archivos%2520en%2520Pascal%2FM

anejo%2520de%2520Archivos%2520en%2520Pascal.pdf&ei=WJxDUpmRIo6O9AStroHoBw

&usg=AFQjCNFeHZ4c2VVjIn5RMizfrQ_s6DNr4g&sig2=1YgP0Y8bOLzeoH-

QngvWyg&bvm=bv.53217764,d.eWU

[visitado el 14 – 09 -2013].

Programación en C- Manejo de archivos,

http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos

[visitado 22 – 09 -2013].

Hierarchical File System, http://es.wikipedia.org/wiki/Hierarchical_File_System

[visitado el 15- 09 2013]