You are on page 1of 13

Modulo No.

4. Dispositivos y Organización de Archivos

 Definiciones, ventajas y desventajas

Los archivos de dispositivos o ficheros de dispositivos (en inglés device files) son archivos
especiales usados en casi todos los sistemas operativos derivados de Unix y también en otros
sistemas.

Archivos de dispositivos en Unix y GNU/Linux

En los sistemas operativos Unix y GNU/Linux un archivo de dispositivo es un archivo especial


estandarizado en Filesystem Hierarchy Standard que se establece en el directorio /dev (en el
caso de Solaris en /devices) en cuyos subdirectorios se establece un contacto con dispositivos
de la máquina, ya sean reales, como un disco duro, o virtuales, como /dev/null. Esta
flexibilidad capaz de abstraer el dispositivo y considerar solo lo fundamental, la comunicación,
le ha permitido adaptarse a la rapidez de los cambios y a la variación de dispositivos que ha
enriquecido a la computación.

El archivo de dispositivo representa al dispositivo para comunicarlo con programas que se


ejecutan en la máquina. No es un archivo propiamente dicho, sino que el usuario lo ve como
un archivo. Para ello, debe existir un driver apropiado para el dispositivo.

Por ejemplo, el programa de edición de imágenes GIMP puede acceder al escáner a través del
archivo de dispositivo /dev/scan.

Existen varios tipos de dispositivos:

c – character devices: dispositivos orientados a caracteres

b – block devices: dispositivos orientados a bloques

s – socket devices: dispositivos orientados a sockets

Los nombres de los archivos de dispositivos dependen del sistema operativo.

Dispositivos orientados a bloques

Dispositivos orientados a bloques transmiten datos en bloques (paquetes) y por esa razón son
usados a menudo para la transmisión paralela de datos. Estos dispositivos utilizan el búfer de
datos del sistema operativo.
Ejemplo de archivos de dispositivos orientados a
bloques

Nombre del
Significado
archivo

fd0 1. disquetes

IDE-disco duro o IDE-CD-ROM-


hda Lector conectado al
1. enchufe Master

hdb IDE-disco duro o IDE-CD-ROM-Lector


conectado al 1. enchufe Slave

hda1 1. primera partición de disco del


primer IDE-disco duro

hda15 15.  partición lógica del 1. disco duro


IDE

ad0 IDE-disco duro conectado al 1.


enchufe Master (FreeBSD)

ad1 IDE-disco duro conectado al 1.


enchufe Slave (FreeBSD)

ad0s1 1. Slice del primer disco duro IDE


(FreeBSD)

ad0s15 15. Slice del primer disco duro IDE


(FreeBSD)

ad0s1a 1. partición en el 1. Slice del 1. disco


duro IDE (FreeBSD)

ad0s1b 2. Partición en el 1. Slice del 1. disco


duro IDE (FreeBSD)

acd0 IDE-CD-ROM-Lector en el 1. enchufe


Master (FreeBSD)

acd1 IDE-CD-ROM-Lector en el 1. enchufe


Slave (FreeBSD)

sda SCSI-disco duro (portátil), con el


menor SCSI-ID (Linux)

sdb SCSI-disco duro (portátil) con el


siguiente SCSI-ID (Linux)

sda1 1.  Partición del primer disco duro


(portátil) SCSI

sda15 11.  partición lógica del primer disco


duro (portátil) SCSI

da0 Disco duro (portátil) SCSI, con la


menor SCSI-ID (FreeBSD)

da1s2e 5. partición en el 2. slice del 2. disco


duro (portátil) SCSI (FreeBSD)

scd0 1. lector SCSI-CD-ROM

cd0 1. lector SCSI-CD-ROM (FreeBSD)

en el C° controlador SCSI con la


cCtTdDsS SCSI-ID=T, el D° disco duro y en él
el S° Slice (Solaris)

cdrom Enlace simbólico al Lector de CD-


ROM

Dispositivos orientados a caracteres


Dispositivos orientados a caracteres transmiten solo un Bit o solo un Byte a la vez, es decir,
utilizan la transmisión serial de datos, sin usar buffer.

Ejemplos de archivos de dispositivos orientados a caracteres

Nombre del archivo Significado

ttyS0 1. Puerto serie, antiguamente el teclado del terminal

lp0 1. Puerto paralelo

lp1 2. puerto paralelo

ttyX Enlace simbólico para un Pseudoterminal

usbdev1.1 Archivo de dispositivo para aparatos con USB

mouse Enlace simbólico al ratón

La tarjeta de red, por ejemplo, Ethernet, ISDN, no es contactada a través de archivos de


dispositivo, sino a través de TCP/IP, aunque existen archivos de dispositivo para
aplicaciones especiales como Netlink Device, D-Channel, etc.

Dispositivos orientados a sockets

Un socket de Internet no es un archivo de dispositivo, sino una forma de comunicación entre


procesos.

Ejemplos de dispositivos orientados a sockets


Nombre del
Significado
archivo

/dev/log Socket de syslog

/dev/gpmdata Socket de GPM-Mouse-Multiplexor

/dev/printer Socket para el protocolo de impresión en red de Berkeley

Archivos de dispositivos virtuales

Un caso especial son los archivos virtuales con los cuales no se comunica con un dispositivo
real.

Ejemplos para archivos de dispositivos virtuales

Nombre del
Significado
archivo

/dev/null acepta entrada de datos sin producir respuesta

/dev/zero produce un flujo de ceros, cada uno de 8 bits, (en C: '\000')

produce números aleatorios o por lo menos secuencias


pseudoaleatorias criptográficamente fuertes. (en el primer caso
/dev/random puede tratarse de un dispositivo real que recoge variables externas
como temperatura, posición del ratón, código de las últimas teclas
pulsadas, etc, para generar el número.)

produce secuencias pseudoaleatorias de menor aleatoriedad que


/dev/urandom
/dev/random pero no produce bloqueos.

/dev/loopX
Dispositivos de bloques virtuales que apunta a un fichero. Permiten
(X toma
dar a un fichero la apariencia de ser un disco duro para el resto del
valores
sistema.1
0,1,2,3,...)

Organización de archivos
Se refiere a las diferentes maneras en las que puede ser organizada la información de los
archivos, así como las diferentes maneras en que ésta puede ser accedida. Dado que hay 2
niveles de visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de
organización de archivos: Organización de archivos lógicos y de archivos físicos.

El sistema de archivos está relacionado especialmente con la administración del espacio de


almacenamiento secundario, fundamentalmente con el almacenamiento de disco

Una forma de organización de un sistema de archivos puede ser la siguiente:

Se utiliza una “raíz” para indicar en qué parte del disco comienza el “directorio raíz” .

El “directorio raíz” apunta a los “directorios de usuarios”.

Los nombres de archivos solo necesitan ser únicos dentro de un directorio de usuario dado.

El nombre del sistema para un archivo dado debe ser único para el sistema de archivos.

En sistemas de archivo “jerárquicos” el nombre del sistema para un archivo suele estar
formado como el “nombre de la trayectoria” del directorio raíz al archivo.

Organización lógica

La mayoría de las computadoras organizan los archivos en jerarquías llamadas carpetas,


directorios o catálogos. (El concepto es el mismo independientemente de la terminología
usada.) Cada carpeta puede contener un número arbitrario de archivos, y también puede
contener otras carpetas. Las otras carpetas pueden contener todavía más archivos y carpetas,
y así sucesivamente, construyéndose una estructura en árbol en la que una «carpeta raíz» (el
nombre varía de una computadora a otra) puede contener cualquier número de niveles de
otras carpetas y archivos. A las carpetas se les puede dar nombre exactamente igual que a los
archivos (excepto para la carpeta raíz, que a menudo no tiene nombre). El uso de carpetas
hace más fácil organizar los archivos de una manera lógica.

La mayor parte de las estructuras de organizaciones alternativas de archivos se encuentran


dentro de estas cuatro categorías:
Pilas

Archivo de pilas: Registro de longitud variable. Conjunto variable de campos. Orden


cronológico

Es la forma más fácil de organizar un archivo. Los datos se recogen en el orden en que llegan.

Su objetivo es simplemente acumular una masa de datos y guardarla.

Los registros pueden tener campos diferentes o similares en un orden distinto. Cada campo
debe ser autodescriptivo, incluyendo tanto un campo de nombre como el valor. La longitud de
cada campo debe indicarse implícitamente con delimitadores, explícitamente incluidos como
un subcampo más.

El acceso a los registros se hace por búsquedas exhaustiva y son fáciles de actualizar. Si se
quiere encontrar un registro que contiene un campo particular y un valor determinado, es
necesario examinar cada registro de la pila hasta encontrar el registro deseado. Si se quieren
encontrar todos los registros que contienen un campo particular o que tienen un valor
determinado para ese campo, debe buscarse el archivo entero.

Se aplica cuando los datos se recogen o almacenan antes de procesarlos o cuando no son
fáciles de organizar. Esta clase de archivo aprovecha bien el espacio cuando los datos
almacenados varían en tamaño y estructura. Fuera de estos usos limitados, este tipo de
archivos no se adapta a la mayoría de las aplicaciones.

Archivos secuenciales

Es la forma más común de estructura de archivos.

Se emplea un formato fijo para los registros, son de la misma longitud y constan del mismo
número de campos de tamaño fijo con un orden determinado.

Se necesita almacenar los valores de cada campo; el nombre del campo y la longitud de cada
uno son atributos de la estructura del archivo. Cada registro tiene un campo clave que lo
identifica (generalmente es el primero de cada registro). Los registros se almacenan en
secuencia por la clave.

Se utilizan normalmente en aplicaciones de procesos por lotes, ya que es la única organización


de archivos que se puede guardar tanto en cintas como en discos.

Para las aplicaciones interactivas que incluyen peticiones o actualizaciones de registros


individuales, los archivos secuenciales no son óptimos. El acceso requiere una búsqueda
secuencial de correspondencias con la clave. Si el archivo entero o gran parte de él pueden
traerse a la memoria principal de una sola vez, se podrán aplicar técnicas de búsquedas más
eficientes. Al acceder un registro de un archivo secuencial grande, se produce un
procesamiento extra y un retardo considerable.

La organización física del archivo en una cinta o disco se corresponde exactamente con la
organización lógica del archivo, por lo tanto el procedimiento habitual es ubicar los nuevos
registros en un archivo de pila separado, es llamado archivo de registro o archivo de
transacciones .

Una alternativa es organizar físicamente el archivo secuencial como una lista enlazada, en cada
bloque físico se almacena uno o más registros y cada bloque del disco contiene un puntero al
bloque siguiente. La inserción de un nuevo registro implica la manipulación de puntero, pero
no requiere que el nuevo registro ocupe una posición particular del bloque físico.

Archivos secuenciales indexados

Los registros se organizan en una secuencia basada en un campo clave presentando dos
características, un índice del archivo para soportar los accesos aleatorios y un archivo de
desbordamiento. El índice proporciona una capacidad de búsqueda para llagar rápidamente al
registro deseado y el archivo de desbordamiento es similar al archivo de registros usado en un
archivo secuencial, pero está integrado de forma que los archivos de desbordamiento se
ubiquen siguiendo un puntero desde su registro predecesor.

La estructura más simple tiene como índice un archivo secuencial simple, cada registro del
archivo índice tiene dos campos, un campo clave igual al del archivo principal y un puntero al
archivo principal. Para encontrar un campo específico se busca en el índice hasta encontrar el
valor mayor de la clave que es iguale o precede al valor deseado de la clave, la búsqueda
continua en el archivo principal a partir de la posición que indique el puntero.

Cada registro del archivo principal tiene un campo adicional que es un puntero al archivo de
desbordamiento. Cuando se inserta un nuevo registro al archivo, también se añade al archivo
de desbordamiento. El registro del archivo principal que precede inmediatamente al nuevo
registro según la secuencia lógica se actualiza con un puntero del registro nuevo en el archivo
de desbordamiento, si el registro inmediatamente anterior está también en el archivo de
desbordamiento se actualizará el puntero en el registro.
Para procesar secuencialmente un archivo completo los registros del archivo principal se
procesarán en secuencia hasta encontrar un puntero al archivo de desbordamiento, el acceso
continuo en el archivo de desbordamiento hasta que encuentra un puntero nulo, entonces
renueva el acceso donde se abandonó en el archivo principal.

Archivos indexados

A los registros se accede solo a través de sus índices. No hay restricción en la ubicación de los
registros, al menos un índice contiene un puntero a cada registro y pueden emplearse
registros de longitud variable.

Se suelen utilizar dos tipos de índices, uno exhaustivo que contiene una entrada para cada
registro del archivo principal y se organiza como un archivo secuencial para facilitar la
búsqueda, el otro índice es parcial que contiene entrada a los registros donde esté el campo de
interés.

Con registro de longitud variable, algunos registros no contendrán todos los campos y cuando
se añade un registro al archivo principal, todos los archivos de índices deben actualizarse.

Archivos directos o de dispersión

Explotan la capacidad de los discos para acceder directamente a cualquier bloque de dirección
conocida.

Se requiere un campo clave en cada registro.

Los archivos directos son muy usados donde se necesita un acceso muy rápido, donde se usan
registros de longitud fija y donde siempre se accede a los registros de una vez.

Organización Física

En la organización física los datos son arreglados por su adyacencia física, es decir, de acuerdo
con el dispositivo de almacenamiento secundario. Los registros son de tamaño fijo o de
tamaño variable y pueden organizarse de varias formas para constituir archivos físicos.

Se utilizan:

Cinta Magnética

En este dispositivo el archivo físico está formado por un conjunto de registros físicos, y los
bloques están organizados en forma consecutiva, ya que se asigna en igual forma.

Además tales registros puede contener etiquetas que permitan un mayor control sobre los
datos almacenados, y son las siguientes:

Etiqueta de volumen: Contiene información que permite identificar la cinta, el nombre del
propietario y cualquier información general requerida.

Etiqueta de archivo: Se utilizan por pares para indicar el inicio y fin del archivo, contiene
información acerca del nombre del archivo, fecha de creación.
Etiqueta de usuario: Sirven para guardar información adicional de importancia para el usuario;
no son procesados por el sistema operativo

Discos magnéticos

El archivo físico en un disco es una colección de registros físicos de igual tamaño, los cuales
pueden estar organizados en forma consecutiva, ligada o con una tabla de mapeo.

En la organización contigua, el archivo utiliza registros físicos contiguos, siguiendo la secuencia


normal de direcciones.

La organización encadenada consiste un conjunto de bloques, cada uno de los cuales tiene un
campo destinado para indicar la dirección del siguiente registro, o sea, para lo que se ha
llamado enlace o liga.

Otra forma de organización es la tabla de mapeo que consiste en una tabla de apuntadores a
los registros físicos que forman el archivo.

La organización física de un archivo en el almacenamiento secundario depende de la estrategia


de agrupación y de la estrategia de asignación de archivos.

Para elegir una organización de archivos se deben tener en cuenta ciertos criterios:

Si un archivo va a procesar solamente por lotes, accediendo cada vez a todos los registros,
entonces el acceso rápido para la recuperación de un único registro es una preocupación
mínima. Un archivo almacenado en CD-ROM nunca será actualizado, por lo que la facilidad de
actualización no se considera. Para la economía de almacenamiento , debería existir una
mínima redundancia de los datos, ésta redundancia es el medio fundamental para incrementar
la velocidad de acceso a los datos. Este tipo de organización muestra a su vez, 2 aspectos
importantes: Métodos De Asignación De Espacio Libre y Asignación De Espacio De
Almacenamiento Del Archivo.

Métodos De Asignación De Espacio Libre

Un método de asignación de espacio libre determina la manera en que un Sistema Operativo


controla los lugares del disco que no están siendo ocupados.

Para el control del espacio libre se puede utilizar como base alguno de los métodos teóricos:
Vector de Bits, Lista Ligada, Por Agrupación y por Contador.

Vector de Bits

Se tiene un arreglo de bits, el número de bits que tiene, representa cada sector del disco, o sea
que si los sectores 10 y 11 están ocupado
Lista Ligada

Existe una cabecera en la que se tiene la dirección del primer sector vacío, ese sector a su vez,
tiene un apuntador al siguiente bloque, y así sucesivamente hasta que se encuentre una marca
indicando que ya no hay espacio libre, tal y como se muestra en la siguiente figura:

Por agrupación

Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a
varios espacios vacíos, al final de cada bloque se tiene un apuntador a otro grupo de
apuntadores, observe la figura.

Por contador

Aquí, por cada conjunto de bloques contiguos que estén vacíos, se tiene por cada apuntador,
un número de inicio y el tamaño del grupo de sectores vacíos
Métodos De Asignación De Espacio De Almacenamiento Del Archivo.

Un método de asignación de espacio en disco determina la manera en que un Sistema


Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar
básicamente la identificación del archivo, sector de inicio y sector final.

Para el control del espacio ocupado en disco se puede utilizar como base alguno de los
métodos teóricos: Asignación Contigua, Asignación Ligada, Asignación Indexada.

Asignación Contigua

Este método consiste en asignar el espacio en disco de tal manera que las direcciones de todos
los bloques correspondientes a un archivo definen un orden lineal. Por ejemplo

VENTAJAS DESVENTAJAS

La cabeza de lectura no se mueve demasiado en la Produce fragmentación


lectura de un archivo. externa.

Asignación Ligada

En este método, cada archivo es una lista ligada de bloques de disco. En el directorio hay un
apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de
los bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista.
Por ejemplo:
VENTAJAS DESVENTAJAS

 La cabeza de lectura se puede mover


demasiado en la lectura de un archivo.
 - Si una liga se pierde, se perderá el archivo
 No produce
completo.
fragmentación externa.
 Es ineficiente para la implementación de
archivos directos.
 Se necesita un campo extra para el apuntador.

Asignación Indexada

Como ya se vio, la asignación ligada resuelve problemas de fragmentación externa, sin


embargo, la asignación ligada no soporta eficientemente el acceso directo a los archivos. La
asignación indexada resuelve este problema poniendo todos los apuntadores en una sola
localidad: El bloque índice.

Cada archivo tiene su bloque índice, El cual es un arreglo de direcciones de bloques de disco.

VENTAJAS DESVENTAJAS

 No produce fragmentación
 Existe desperdicio cuando hay
externa.
archivos muy chicos.
 Eficiente para la
 Desbordamiento de bloque
implementación de archivos
índice.
directos.

You might also like