Beruflich Dokumente
Kultur Dokumente
el cual nos permite almacenar, crear y borrar archivos en diferentes formatos. Almacenamiento Fsico de Datos En un sistema de cmputo es evidente que existe la necesidad por parte de los usuarios y aplicaciones de almacenar datos en algn medio, a veces por periodos largos y a veces por instantes. Cada aplicacin y cada usuario debe tener ciertos derechos con sus datos, como son el poder crearlos y borrarlos, o cambiarlos de lugar; as como tener privacidad contra otros usuarios o aplicaciones. El subsistema de archivos del sistema operativo se debe encargar de estos detalles, adems de establecer el formato fsico en el cual almacenar los datos en discos duros, cintas o discos flexibles. Debe ser conocido por todos que tradicionalmente la informacin en los sistemas modernos se almacena en discos duros, flexibles y unidades de disco ptico, y en todos ellos se comparten algunos esquemas bsicos para darles formato fsico: las superficies de almacenamiento son divididas en crculos concntricos llamados "pistas" y cada pista se divide en "sectores". El tiempo que una cabeza se tarda en ir de una pista a otra se le llama "tiempo de bsqueda" y depender de la distancia entre la posicin actual y la distancia a la pista buscada. El impacto que tiene las lecturas y escrituras sobre el sistema est determinado por la tecnologa usada en los platos y cabezas y por la forma de resolver las peticiones de lectura y escritura, es decir, los algoritmos de planificacin.
Primero en llegar, primero en ser servido ( FIFO ). Por exploracin ( algoritmo del elevador ): el brazo se estar moviendo en todo momento desde el permetro del disco hacia su centro y viceversa, resolviendo las peticiones que existan en la direccin que tenga en turno. De este algoritmo es que el brazo se mover mucho menos que en FIFO y evita la espera indefinida; su desventaja es que no es justo, ya que no sirve las peticiones en el orden en que llegaron, adems de que las peticiones en los extremos interior y exterior tendrn un tiempo de respuesta un poco mayor.
Por exploracin circular: Es una variacin del algoritmo anterior, con la nica diferencia que al llegar a la parte central, el brazo regresa al exterior sin resolver ninguna peticin, lo cual proveer un tiempo de respuesta ms cercana al promedio para todas las peticiones, sin importar si estn cercas del centro o del exterior.
Asignacin contigua
Cada directorio contiene la los nombres de archivos y la direccin del bloque inicial de cada archivo, as como el tamao total de los mismos. Por ejemplo, si un archivo comienza en el sector 17 y mide 10 bloques, cuando el archivo sea accesado, el brazo se mover inicialmente al bloque 17 y de ah hasta el 27. Si el archivo es borrado y luego creado otro ms pequeo, quedarn huecos intiles entre archivos tiles, lo cual se llama fragmentacin externa.
Asignacin Encadenada
Con este criterio los directorios contienen los nombres de archivos y por cada uno de ellos la direccin del bloque inicial que compone al archivo. Cuando un archivo es ledo, el brazo va a esa direccin inicial y encuentra los datos iniciales junto con la direccin del siguiente bloque y as sucesivamente. Con este criterio no es necesario que los bloques estn contiguos y no existe la fragmentacin externa, pero en cada "eslabn" de la cadena se desperdicia espacio con las direcciones mismas. En otras palabras, lo que se crea en el disco es una lista ligada.
Acceso secuencial: Es el mtodo ms lento y consiste en recorrer los componentes de un archivo uno en uno hasta llegar al registro deseado. Se necesita que el orden lgico de los registros sea igual al orden fsico en el medio de almacenamiento. Este tipo de acceso se usa comnmente en cintas y cartuchos.
Acceso directo: Permite accesar cualquier sector o registro inmediatamente, por medio de llamadas al sistema como la de seek. Este tipo de acceso es rpido y se usa comnmente en discos duros y discos o archivos manejados en memoria de acceso aleatorio. _ Acceso directo indexado: Este tipo de acceso es til para grandes volmenes de informacin o datos. Consiste en que cada archivo tiene una tabla de apuntadores, donde cada apuntador va a la direccin de un bloque de ndices, lo cual permite que el archivo se expanda a travs de un espacio enorme. Consume una cantidad importante de recursos en las tablas de ndices pero es muy rpido.
Poner atributos: Permite cambiar los atributos de un archivo, por ejemplo en UNIX, donde todos los dispositivos se manejan como si fueran archivos, es posible cambiar el comportamiento de una terminal con una de estas llamadas.
Poner atributos: Permite cambiar los atributos de un archivo, por ejemplo en UNIX, donde todos los dispositivos se manejan como si fueran archivos, es posible cambiar el comportamiento de una terminal con una de estas llamadas.
Los sistemas de archivos compartidos en red ms populares son los provistos por Netware, el Remote Filke Sharing ( RFS en UNIX ), Network File System ( NFS de Sun Microsystems ) y el Andrew File System ( AFS ). En general, lo que proveen los servidores es un medio de que los clientes, localmente, realicen peticiones de operaciones sobre archivos los cuales con `atrapadas' por un `driver' o un `mdulo' en el ncleo del sistema operativo, el cual se comunica con el servidor a travs de la red y la operacin se ejecuta en el servidor. Existen servidores de tipo "stateless y no-stateless".
Un servidor "stateless" no registra el estado de las operaciones sobre los archivos, de manera que el cliente se encarga de todo ese trabajo. La ventaja de este esquema es que si el servidor falla, el cliente no perder informacin ya que sta se guarda en memoria localmente, de manera que cuando el servidor reanude su servicio el cliente proseguir como si nada hubiese sucedido. Con un servidor "no-stateless", esto no es posible.
La proteccin sobre las operaciones se lleva a cabo tanto el los clientes como en el servidor: si el usuario quiere ejecutar una operacin indebida sobre un archivo, recibir un mensaje de error y posiblemente se enve un registro al subsistema de `seguridad' para informar al administrador del sistema de dicho intento de violacin.
Esto tal vez llame la atencin. En GNU/Linux y UNIX todo es archivo. S, todo es archivo. El teclado, el monitor, el disco rgido y hasta la memoria. El SO trata a los dispositivos como archivos y de esa manera utiliza los mismos mtodos de apertura, escritura, lectura y cierre para todos ellos. La clase de archivos de los que estamos hablando se denomina archivo de dispositivo y es solo una de las clases de archivos que existen en GNU/Linux.
En DOS se acostumbraba a que solamente aquellos archivos con extensin .EXE .COM o .BAT se podan ejecutar. En GNU/Linux cualquier archivo puede llegar a ser ejecutable sin importar que extensin tenga. Los archivos ejecutables puede ser de dos clases: aquellos con formato binario ejecutable directamente por el kernel, y aquellos que tienen lo que se denomina un magic cookie, el cual determina la manera en que el sistema ejecutar dicho archivo (script). Un ejemplo de este tipo de ejecutable son los scripts de shell, que recuerdan a los archivos .bat del DOS, pero que son mucho ms poderosos.
Otro tipo de archivo es el de canalizacin. Esta clase de archivo sirve de canal donde los datos entran por un extremo y salen por el otro. Son creados por los procesos y desaparecen al morir el proceso, pero mientras tanto estn ocupando un lugar fsico en el disco. Cuando se trate el tema de pipes y canalizacin se entrar ms en detalle.
La forma en que se puede nombrar un archivo no esta limitada como en DOS a 8 letras seguido de 3 caracteres de extensin. Los nombres pueden ser de 255 caracteres de longitud y pueden tener puntos, guiones y dems smbolos como separadores. Los nicos nombres que no estn permitidos son los que contienen la / en su nombre debido a que este carcter se utiliza para indicar la ruta a directorios.
Si trabajramos en un sistema DOS solamente el primer archivo seria un archivo reconocido como texto, en cambio en GNU/Linux cualquier archivo de estos podr contener texto. Los archivos que llevan un punto inicial, .nota.textual son denominados archivos de punto y el SO los pondr de manera predeterminada como ocultos. Organizar los archivos en directorios es la forma ms til de trabajar con ellos. Aunque pareciera que los directorios contienen a los archivos, esto no es verdad. En realidad los archivos estn asociados a ese directorio, y solo son mostrados como si estuviesen dentro de l.
La forma de referenciar un archivo es ir poniendo los nombres de los subdirectorios seguido por una /, por ejemplo /home/shrek/cartas/carta_fiona. A esto se le denomina ruta del archivo y establece una ruta nica para determinado archivo ya que podra existir otro archivo con el mismo nombre pero con una ruta diferente, por ejemplo /home/fiona/carta_fiona, pero no seria el mismo, sino otro. Podra ser un enlace a la carta del directorio /home/shrek/cartas, pero eso lo veremos luego.
Uno puede moverse de arriba abajo en un rbol de directorio por medio del comando cd (cambio de directorio) que forma parte del shell. El SO llevar cuenta del directorio en que estamos parados actualmente, denominado directorio de trabajo, cuando uno cambia de directorio, el SO verifica esta parte de memoria y si es posible efecta el cambio actualizndola con el directorio de trabajo actual. No importa si nos movemos arriba o abajo del directorio de trabajo, solamente esta informacin es la que cambia para que tengamos la ilusin de que nos estamos moviendo a travs del rbol de directorios.
Ellas acceden directamente al hardware y hacen el trabajo de lectura, escritura, etc. Es un punto muy sensible del sistema en donde cuando un error surge poco puede hacerse para detener el proceso. Sobre la capa de dispositivos se encuentra la capa de administracin, esta es un conjunto de funciones a las que se hace referencia como sistema operativo tomando la decisin de que se ejecuta y cuando. Son las funciones que administran tambin los procesos, dndoles los turnos pertinentes y mandndolos a dormir cuando no es su turno.
La capa que sigue es la de los procesos mismos, por ejemplo el shell del SO. Estos procesos reciben la ordenes directamente del usuario u otros procesos y los traducen al lenguaje de maquina pasndoselos al SO para su ejecucin. A partir del shell se podrn arrancar otros procesos, como programas, que forman la capa superior de la cebolla. Estos se comunicaran con el shell para que el SO interprete sus rdenes
Construir y eliminar archivos y directorios. Ofrecer funciones para manipular archivos y directorios. Establecer la correspondencia entre archivos y unidades de almacenamiento. Realizar copias de seguridad de archivos.
Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la informacin que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT2, NTFS...
Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS , que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante informacin ya que el tamao mximo de un fichero con un Sistema de Archivos FAT32 est limitado a 4 gigabytes sin embargo en un sistema NTFS el tamao es considerablemente mayor.
Sistemas de Proteccin
Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
Distinguir entre uso autorizado y no autorizado. Especificar los controles de seguridad a realizar. Forzar el uso de estos mecanismos de proteccin.
Mtodos de Acceso: Se ocupan de la manera en que se tendr acceso a la informacin almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc. Administracin de Archivos: Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, as como para hacer referencia a ellos.
Administracin de Almacenamiento Secundario: Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario. Mecanismos de Integridad: Se ocupan de garantizar que no se corrompa la informacin de un archivo, de tal manera que solo la informacin que deba estar en el, se encuentre ah.
Mtodos de Acceso: Se ocupan de la manera en que se tendr acceso a la informacin almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc. Administracin de Archivos: Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, as como para hacer referencia a ellos.
Organizacin de archivos
Se refiere a las diferentes maneras en las que puede ser organizada la informacin de los archivos, as como las diferentes maneras en que sta puede ser accesada. Dado que hay 2 niveles de visin de los archivos (fsico y lgico), se puede hablar tambin de 2 aspectos de organizacin de archivos:
Lgicos Fsicos
Archivos Lgicos: Contempla la organizacin desde el punto de vista lgico. Por ejemplo, secuencial, directo, etc. Archivos Fsicos: Contempla la administracin de archivos desde la perspectiva fsica, particularmente la organizacin del almacenamiento en disco a nivel de pistas y sectores.
Apertura (fopen): FILE *fopen(const char*file_name, cost char type); r: abrir para leer. w: abrir para escribir. a: abrir para escribir al final de archivo o crear el archivo, sino existe, para escribir en l. r+: abrir para actualizar el archivo leer y escribir. w+: abrir el archivo para leer y escribir, pero truncando primero su tamao a 0 bytes.
Lectura de datos (fread): se utiliza para leer datos de un archivo a travs de un flujo asociado. Su declaracin es: size_t fread (char *ptr, size_t size, size_t nitems, FILE*stream); Copia en un array apuntando por ptr un total de nitems bloques de datos procedentes del archivo apuntado por stream. Cada bloque, o item, de datos ledo tiene un tamao de size byte.
Termina su lectura cuando encuentra el final del archivo, se da una condicin de error o ha ledo el total de bloques que se le pide. Si la lectura se realiza correctamente, fread devuelve el nmero de bloques ledos. Si el valor devuelto es 0, significa que encontr el final de archivo.
Escritura de datos (fwrite): permite escribir datos en un archivo a travs de su flujo asociado. Su declaracin es: size_t fwrite (char *ptr, size_t size, size_t nitems, FILE*stream); Copia en el archivo apuntado por stream el nmero de bloques indicado en nitems, cada uno de tamao size bytes. Los bloques a escribir se encuentran en la zona de memoria apuntada por ptr.
Cierre del archivo (fclose): cierra un archivo que ha sido abierto por fopen. Su declaracin es: int fclose(FILE *stream); Hace que toda la memoria intermedia de datos asociados a stream sea escrita en el disco, que el espacio de memoria reservado para las memorias intermedias sea liberado y que el flujo sea cerrado.
La operacin de cerrado se realiza en forma automtica sobre todos los archivos abiertos cuando llamamos a la funcin exit. fclose devuelve 0 si la llamada funciona correctamente y EOF en caso de que se produzca un error.
#include <stdio.h> main(int argc, char *argv[]) { FILE *forigen, *fdestino; char c;
/* Anlisis de los argumentos de la lnea de ordenes */ if(argc != 3){ fprintf(stderr, Forma de uso: %s origen destino\n, argv[0]); exit(-1); }
/* Apertura del archivo en modo slo lectura */ if((forigen = fopen(argv[1],r))==NULL) { perror(argv[1]); exit(-1); }
/* Apertura del archivo en modo slo escritura */ if((fdestino = fopen(argv[2],w))==NULL) { perror(argv[2]); exit(-1); }
/* Copiando archivo origen al destino */ while(fread(&c, sizeof c, 1, forigen)>0) fwrite(&c, sizeof c, 1, fdestino); // Cierre de los archivos fclose(forigen); fclose(fdestino); exit(0); }
No deben confundirse las "unidades o dispositivos de almacenamiento" con los "medios o soportes de almacenamiento", pues los primeros son los aparatos que leen o escriben los datos almacenados en los soportes.
La memoria secundaria es un tipo de almacenamiento masivo y permanente (no voltil), a diferencia de la memoria RAM que es voltil; pero posee mayor capacidad de memoria que la memoria principal, aunque es ms lenta que sta.
El proceso de transferencia de datos a un equipo de cmputo se le llama "procedimiento de lectura". El proceso de transferencia de datos desde la computadora hacia el almacenamiento se denomina "procedimiento de escritura".
En la actualidad para almacenar informacin se usan principalmente tres 'tecnologas': Magntica (ej. disco duro, disquete, cintas magnticas); ptica (ej. CD, DVD, etc.)
Algunos dispositivos combinan ambas tecnologas, es decir, son dispositivos de almacenamiento hbridos.
Un directorio por usuario: el sistema habilita un solo directorio por cada usuario (ver Figura 4.2).
Un rbol de directorios por usuario: el sistema permite que cada usuario tenga tantos directorios como necesite, respetando una jerarqua general (ver Figura 4.3).
Una tcnica muy usada para asegurar la disponibilidad de los datos es realizar respaldos peridicos:
Hacer con regularidad una o ms copias de los archivos y colocarlas en lugar seguro. Todas las actualizaciones realizadas luego del ltimo respaldo pueden perderse.
Otra tcnica es pasar todas las transacciones a un archivo, copindolas en otro disco:
Genera una redundancia que puede ser costosa. En caso de fallas en el disco principal, puede reconstruirse todo el trabajo perdido si el disco de reserva no se da tambin.
Se debe tener presente que es muy difcil garantizar una seguridad absoluta de los archivos.