Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de...

27
Tema 10a Manejo de archivos

Transcript of Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de...

Page 1: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Tema 10a

Manejo de archivos

Page 2: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Introducción

• Un computador puede almacenar grandes cantidades de información.

• Puede acceder a ella de manera muy rápida.• Para hacer cualquier cosa es necesario tener

MEMORIA disponible, para almacenar variables, recordar valores, etc.

• Esta memoria puede ser volátil o persistente.

Page 3: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Introducción

CPUA+B=C

Memoria secundaria(persistente)

Memoria primaria(volátil)

A BC

Datos.txt

Page 4: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Memoria RAM

• RAM: Random Access Memory.• Acceso aleatorio.• Volátil, por tanto insegura.• Capacidades de cientos de MB.• Velocidad de acceso:

– Del orden de los nanosegundos (10-9 seg.)• 133 MHz 8 ns

– Implica que puede transmitir mas de 1 GB/seg.

Page 5: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Memoria RAM

• Es necesario– Evitar la volatilidad de la memoria RAM.– Aumentar su capacidad a costos razonables.– Realizar respaldos de información.

Page 6: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

HDD

• HDD: Hard Drive Disk• Acceso aleatorio.• Persistente y confiable.• Capacidades de decenas de GB.• Velocidad de acceso

– Del orden de los milisegundos (10-3 seg)• 5 – 10 ms

– Transmiten en tasas de decenas de MB/seg.

Page 7: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Cintas magnéticas

• Acceso secuencial.• Cada cinta almacena cientos de GB.• Persistente y muy confiable.• Se crean “bibliotecas” de cintas, que alcanzan las

decenas o cientos de TB.• Velocidad de acceso

– Del orden de los milisegundos.– Transmiten en tasas de decenas de MB/seg. (menos que

un HDD y considerando acceso secuencial).

Page 8: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Otros

• Otros discos magnéticos– Discos de 3.5’’ y 5.25’’– Discos Zip– SuperDisk

• Discos ópticos– CD– DVD

• Memoria ROM

Page 9: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Archivos

• La memoria secundaria puede almacenar cantidades inmensas de información.

• Para organizar los datos en ella, se crean los conceptos de archivos.

• Además, se crea el concepto de directorio.

Page 10: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Archivos

Unidad de discoDirectorios

Archivos

Page 11: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Archivos

• Los archivos son entidades que define el sistema operativo para identificar un conjunto de datos

• Un archivo tiene un conjunto de atributos– Nombre y extensión.– Ubicación (muchas veces es solo parte del nombre).– Tamaño.– Tipo.– Permisos: Lectura , escritura y ejecución (puede estar

especificado por usuarios y grupos)– Fecha de creación y modificación.– Etc...

Page 12: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Archivos

• Debido a su facilidad de uso y compresión, muchos sistemas utilizan archivos especiales para manejar dispositivos– Teclado Entrada secuencial– Pantalla Salida secuencial– Impresora Salida secuencial– Red, Serial, paralela E/S secuencial– Etc...

• Todo se resume a saber manejar archivos• Si manejan archivos, manejarán al mundo.

Page 13: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Archivos

• Se pueden realizar un conjunto de operaciones a través del sistema operativo con los archivos:– Abrir– Cerrar– Leer– Escribir– Mover a una posición (solo acceso aleatorio)

Page 14: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Archivos

• Para abstraer la interacción entre los archivos y los programas que realicen operaciones sobre ellos, se define el concepto de flujo.

• Un flujo es como una manguera por donde fluyen datos en uno o ambos sentidos.

Page 15: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

“hola”

Flujos“hola”

“chao”

“chao”

Page 16: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Flujos“1”

Page 17: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

“hola”

FlujosVAR

Abrir

Leer

Escribir

Cerrar

Page 18: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Abrir un flujo

• Antes de poder utilizar un flujo, debemos abrirlo.• Al momento de abrirlo se especifica el “modo”

– Solo lectura (r)

– Solo escritura (w)

– Lectura/escritura (rw)

• Al abrir:– Se asigna un descriptor del archivo a nuestro programa

– Se modifica el estado del archivo

Page 19: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Abrir un flujo

• Estado de un archivo– Si esta abierto para lectura, otros programas

pueden también abrirlo para lectura, pero no para escritura.

– Si está abierto para escritura, nadie más puede abrirlo.

Page 20: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Cerrar un flujo

• Al terminar de usarlos, los flujos deben ser cerrados.

• Al cerrar los flujos, nuevamente se modifica el estado del archivo (para que otros puedan abrirlo).

• Al salir del programa de manera normal, los flujos se cierran en forma automática.

• Si el programa termina de manera anormal, los flujos pueden quedar abiertos.

Page 21: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Leer desde un flujo

• Los archivos contienen información binaria.• Esta información puede representar cualquier

cosa.• Los archivos se separan en dos grandes grupos

– Archivos de texto

– Archivos binarios

• Al momento de leer, hay que tener claro el tipo de archivo desde el cual se desea leer información.

Page 22: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Leer desde un flujo de texto

• Se pueden leer letras, palabras o frases completas.

• Por lo general se leen de manera secuencial, desde la primera letra hasta el fin de archivo.

Page 23: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Leer desde un flujo binario

• Pueden contener cualquier cosa.

• Por lo general se leen de manera aleatoria.

• Pueden contener estructuras de datos.

Page 24: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Escribir en un flujo

• También depende del tipo de archivo.• Por lo general, el escribir en un flujo no

significa que la información se guarde de manera inmediata en el archivo.

• La operación de escritura en memoria secundaria es muy costosa.

• Para mejorar el rendimiento se utiliza un buffer.

Page 25: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Escribir en un flujo2 datos

5 datos

1 datos

[Llenando buffer]

[Llenando buffer]

[buffer lleno]

[Vaciando buffer]

Page 26: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Mover a una posición

• Acción permitida solo para archivos de acceso directo.

• Al abrir un archivo, se define una posición al comienzo de este.

• Al leer o escribir de manera secuencial, esta posición se actualiza automáticamente al la posición siguiente.

• Se puede modificar de manera manual esta posición para leer o modificar un datos especifico o en un orden distinto al secuencial.

Page 27: Tema 10a Manejo de archivos. Introducción Un computador puede almacenar grandes cantidades de información. Puede acceder a ella de manera muy rápida.

Fin tema 10a

Manejo de archivos