tema 10a manejo de archivos. introducción un computador puede almacenar grandes cantidades de...

27
Tema 10a Manejo de archivos

Upload: rebeca-roa

Post on 23-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

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