10a-intro Archivos

Anuncio
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.
Tema 10a
Manejo de archivos
Introducción
Memoria primaria
(volátil)
CPU
A+B=C
A
Memoria RAM
Memoria secundaria
(persistente)
B
C
•
•
•
•
•
Datos.txt
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.
Memoria RAM
• Es necesario
– Evitar la volatilidad de la memoria RAM.
– Aumentar su capacidad a costos razonables.
– Realizar respaldos de información.
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.
1
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).
Otros
• Otros discos magnéticos
– Discos de 3.5’’ y 5.25’’
– Discos Zip
– SuperDisk
• Discos ópticos
– CD
– DVD
• Memoria ROM
Archivos
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.
Archivos
Unidad de disco
Directorios
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...
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.
2
Archivos
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)
“ chao”
“hola”
Flujos
• 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.
“1”
“ chao”
Flujos
“hola”
Flujos
Abrir un flujo
VAR
• 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)
Abrir
Leer
• Al abrir:
– Se asigna un descriptor del archivo a nuestro programa
– Se modifica el estado del archivo
Escribir
Cerrar
“hola”
3
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.
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
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.
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.
• Al momento de leer, hay que tener claro el tipo de
archivo desde el cual se desea leer información.
Leer desde un flujo binario
• Pueden contener cualquier cosa.
• Por lo general se leen de manera aleatoria.
• Pueden contener estructuras de datos.
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.
4
Escribir en un flujo
2 datos
[Llenando buffer]
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.
5 datos
[Llenando buffer]
1 datos
[buffer lleno]
[Vaciando buffer]
Fin tema 10a
Manejo de archivos
5
Descargar