270 likes | 405 Views
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. Para hacer cualquier cosa es necesario tener MEMORIA disponible, para almacenar variables, recordar valores, etc.
E N D
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. • Para hacer cualquier cosa es necesario tener MEMORIA disponible, para almacenar variables, recordar valores, etc. • Esta memoria puede ser volátil o persistente.
Introducción Memoria primaria (volátil) Memoria secundaria (persistente) CPU A+B=C B A C Datos.txt
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.
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.
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 • 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 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.
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)
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.
Flujos “hola” “chao” “hola” “chao”
Flujos “1”
Flujos VAR Abrir Leer Escribir Cerrar “hola”
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
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.
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 • 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.
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.
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.
Escribir en un flujo 2 datos [Llenando buffer] 5 datos [Llenando buffer] 1 datos [buffer lleno] [Vaciando 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.
Fin tema 10a Manejo de archivos