Tema 4
-
Upload
david-elias -
Category
Documents
-
view
219 -
download
0
description
Transcript of Tema 4
Implantación de Sistemas Operativos
1�/17�
TEMA 5. GESTIÓN DE DISPOSITIVOS
1. GESTIÓN DE DISPOSITIVOS DE ENTRADA/SALIDA
Una de las funciones más importante y compleja que realiza el SO es la
destinada a manejar los diferentes periféricos existentes. Debe enviar comandos a los
dispositivos, detectar interrupciones y controlar errores.
Los dispositivos de entrada/salida se dividen en dos tipos:
Los dispositivos orientados a bloques trabajan con bloques de tamaño fijo,
además tienen la propiedad de que es posible escribir o leer cualquier bloque
ya que cada uno tiene una dirección concreta. Entre ellos se encuentran los
discos duros, la memoria y los discos compactos.
Los dispositivos orientados a carácter trabajan con secuencias de bytes sin
importar su longitud ni ninguna agrupación en especial. Entre ellos se
encuentran el teclado, el ratón, la pantalla y las impresoras.
El SO puede considerar a los dispositivos:
Dispositivos de uso exclusivo. No pueden ser compartidos por dos procesos
a la vez, el SO asigna el dispositivo a un proceso y cuando haya terminado
de usarlo lo libera.
Dispositivos compartidos. Pueden ser compartidos por varios procesos.
Dispositivos virtuales. Consigue que recursos exclusivos puedan ser
compartidos. A esta técnica se le llama spool.
1.1. Controladores de dispositivos
Los dispositivos de entrada/salida (E/S) pueden dividirse en una parte mecánica
y una parte electrónica. Cuando se accede a un dispositivo, siempre se hace a su parte
electrónica, denominada controlador del dispositivo. El controlador se encargará de
mostrar al SO una interfaz estándar adaptándose a las peculiaridades del hardware que
está por debajo.
1.2. Acceso directo a memoria
Muchos controladores permiten el DMA (Direct Memory Access). El objetivo
del DMA es solapar operaciones de CPU y E/S. La CPU proporciona al controlador
información sobre la dirección de memoria para acceder y el número de datos a
transferir. Una vez realizada la petición, la CPU se despreocupa momentáneamente de
la transferencia y continúa realizando otras tareas. El controlador va leyendo los datos
del disco y copiándolos en la memoria, una vez realizada la transferencia el controlador
provoca una interrupción que hace que la CPU abandone el trabajo que estaba
realizando.
Implantación de Sistemas Operativos
2�/17�
1.3. Manejadores de dispositivos
Los manejadores de dispositivos (también conocidos como drivers) se encargan
de aceptar las solicitudes abstractas que le hace el software, y ponerse en contacto con el
controlador para realizar esa petición.
Si el dispositivo se encuentra ocupado atendiendo otra petición, el manejador se
encargará de gestionar una cola de peticiones para darles paso tan pronto como sea
posible.
1.4. Buffering
Con el fin de evitar pérdidas importantes de tiempo, a veces es conveniente
llevar a cabo las transferencias de entrada antes de que se hagan las peticiones,
asegurando así que la información esté disponible cuando sea necesaria. Esta técnica se
llama BUFFERING.
La técnica consiste en que el sistema operativo realice las entradas a una zona de
memoria denominada Buffer de Entrada y que el proceso coja los datos de allí,
debiendo esperar sólo cuando este buffer este vacío. Cuando esto ocurra el sistema
operativo volverá a llenar este buffer y el proceso seguirá.
De forma similar, las transferencias de salida de un proceso se dirigirán a un
Buffer de Salida siendo el sistema operativo el encargado de vaciarlo cuando esté lleno.
El proceso sólo deberá esperar en el caso de que intente introducir un elemento antes de
que el sistema haya vaciado el buffer. Puede depurarse esta técnica mediante el uso de
dos o más buffers.
1.5. Spooling
La asignación de un periférico no compartible se hace cuando un proceso abre
una rama asociada a él. El periférico es liberado sólo cuando se cierra la rama o acaba el
proceso. Los procesos que quieran usar un periférico no compartible que ya esté
asignado deberá esperar a que sea liberado. Esto puede conducir a que en periodos de
gran demanda, algunos proceso queden bloqueados largo tiempo en espera de unos
determinados periféricos, y en otros periodos esos periféricos sean poco utilizados.
Con el fin de repartir la carga y reducir cuellos de botella se adoptan algunas
estrategias, la más importante es el Spooling.
En lugar de efectuar la transferencia directamente con el periférico, la rutina de
E/S lleva a cabo la transferencia sobre un soporte intermedio, generalmente sobre disco.
1.6. Caché de disco o Caching
El disco también tiene su caché, aunque en realidad está implementada como un
buffer en la memoria principal, y realiza la misma función que la caché del sistema,
pues guarda bloques de información.
Implantación de Sistemas Operativos
3�/17�
Cuando un proceso necesita la lectura de un sector determinado el sistema
mirará primero en la caché del disco, de forma que si lo localiza, el acceso es mucho
más rápido, si no fuera así se leería del disco.
Cuando un dato en caché va a ser extraído, el valor actual tiene que ser
almacenado en el disco antes de ser borrado ya que puede haber sido modificado.
2. GESTIÓN DE FICHEROS
2.1. La velocidad de los dispositivos
Además de la capacidad de almacenamiento de un determinado dispositivo,
interesa conocer a qué velocidad entrega los datos dicho dispositivo. Es importante
tener en cuenta que en un computador trabajan varios dispositivos relacionados entre sí
formando una cadena, cada eslabón de la cadena influye en la velocidad global del
sistema, por tanto, los dispositivos más rápidos se quedarían esperando la respuesta de
los dispositivos más lentos.
La velocidad de un dispositivo de almacenamiento no es un parámetro único,
luego la velocidad que debe interesar es la velocidad media o sostenida.
El tiempo medio de acceso indica el tiempo que, por término medio, tarda el
dispositivo en responder a una petición de información. Se mide en milisegundos (ms).
2.2. Soportes fijos
El más utilizado es el disco duro. Se suele encontrar en el interior del ordenador
(aunque también hay modelos extraíbles) y es el que almacena la mayoría de los
programas que ejecutamos, el sistema operativo y nuestros datos. Se comunica con el
procesador mediante un bus que puede ser IDE o SCSI.
Un disco puede contener una o varias superficies, cada una de éstas se dividen
en caras, pistas o cilindros, y sectores. El disco puede tener una o varias cabezas
lectoras por superficie, el primer caso lo forman los sistemas de brazo o cabeza móvil y
el segundo los de cabeza fija (estos disponen de una cabeza por pista).
Una pista es una corona circular cuyos datos pueden ser leídos por la cabeza. A
su vez, las pistas se dividen en sectores. Un sector es la unidad de información que se
transfiere en un acceso. Todas las pistas tienen el mismo número de sectores, pero estos
son de distinto tamaño, aumentando a medida que nos alejamos del eje de giro. En los
dispositivos con más de una superficie, un cilindro está constituido por las pistas que se
acceden en cada posición del brazo.
La geometría de un disco determina la capacidad que éste tendrá, y esto se
calcula mediante la siguiente operación:
Capacidad = superficies * cilindros * sectores * bytes / sector
Ejemplo: si se tiene un disco duro formado por 2434 cilindros, 255 superficies, 63
sectores por pista y sus sectores son de 512 bytes, la capacidad total del disco será:
255 * 2434 * 63 * 512 = 20020331520 B = 19.092 MB = 18 GB de capacidad
Implantación de Sistemas Operativos
4�/17�
Ejercicios:
1.- Calcular la capacidad de un disco de 200 cilindros de 5 cabezales (teniendo un
cabezal por superficie), 63 sectores por pista y con sectores de 1024 bytes.
2.- Calcular la capacidad de un disco de 127 superficies, 1428 cilindros, 68 sectores por
pista y con sectores de 512 bytes.
Debido a la inercia de giro del disco, tarda un tiempo en alcanzar de forma
estable su velocidad nominal de rotación (velocidad a la que puede leer/escribir
datos). Por ello, es normal que el disco esté siempre girando para evitar perder este
tiempo cada vez que se accede a él. Por otra parte, para evitar que la superficie del disco
se deteriore con el contacto de la cabeza lectora/escritora, se calibran estas para que
pasen a una distancia de tan solo unos 10-4
mm de la superficie del disco. Esto se
consigue gracias al aire que desplaza el disco al girar con velocidades lineales
superiores a los 100 Km/h (entre 4500 y 1200 rpm, donde rpm indica el número de
vueltas que realiza el disco por minuto, y por tanto, coincide con la velocidad de
rotación). Esta corriente de aire hace que la cabeza planee por encima de la superficie
del disco, adaptándose incluso a las irregularidades que tenga el soporte.
En los dispositivos extraíbles más económicos, la cabeza lectora/escritora se
apoya sobre la superficie del soporte. Esto hace que la durabilidad de estos discos sea
mucho menor. Para alargar la vida útil de estos dispositivos, el motor está generalmente
parado y sólo se pone en marcha cuando se solicita una operación de lectura o escritura.
Este sistema conlleva un importante aumento en el tiempo de acceso de estos
dispositivos con respecto a los discos duros.
- Tiempo de acceso = tiempo de búsqueda + latencia
El tiempo de acceso es la suma del tiempo que se tarda en posicionar la cabeza
lectora en la pista deseada (a lo que se le llama tiempo de búsqueda) más el
tiempo que tarda la información solicitada en estar justo debajo de la cabeza y
preparada para ser leída (a esto se le denomina latencia). Estos tiempos no son
siempre iguales, ya que dependen de la posición tanto de partida como de
destino. Es por esto que en las especificaciones técnicas de esos dispositivos, los
fabricantes indican los tiempos promedio.
- La velocidad de transferencia es la velocidad a la que se transfieren los bits de
un sector. Se mide en bits por segundo (bits/s) y en sus múltiplos (Kbits/s,
Mbits/s, Gbits/s, etc.), o en Bytes por segundo y sus múltiplos (KB/s, MB/s,
GB/s, etc.).
La velocidad de transferencia viene determinada por la velocidad de giro del
disco y por la densidad de los datos grabados en el soporte. A mayor velocidad
de giro, mayor velocidad o tasa de transferencia, y a mayor densidad de
grabación, mayor velocidad de transferencia.
Velocidad de transferencia = velocidad de giro * densidad de datos
La cantidad de datos almacenados por pista es igual para todas las pistas, pero no
lo es, por tanto, la densidad de grabación, pues las pistas externas son de mayor
Implantación de Sistemas Operativos
5�/17�
longitud. Luego la velocidad angular es la misma en todas las pistas, pero no así
la velocidad lineal, que es mayor en las pistas interiores.
Un factor muy importante a tener en cuenta en la velocidad de transferencia que
puede alcanzar un dispositivo, es el tipo de interfaz con el que se conecta al
procesador.
Para conseguir la mayor velocidad de transferencia posible, se ha de configurar
dicha interfaz para que utilice el modo más rápido compatible con el disco al que
esté conectada.
Ejemplo: Sea un disco con una velocidad de giro de 4500 r.p.m., con un tiempo medio
de 30 ms. para posicionar la cabeza en la pista adecuada y 4 ms. para estabilizarla.
a) Calcular su tiempo de acceso.
Tiempo de acceso = tiempo de búsqueda + latencia
Luego el tiempo de búsqueda es, 30 ms. + 4 ms. = 34 ms.
Si el disco gira 4500 veces en un minuto, el tiempo que tarda en realizar un giro
será:
60 s. / 4500 = 13,33 ms.
Por tanto, el tiempo que hay que esperar en promedio es de ½ 13,33 = 6,66 ms.
que es el tiempo de media revolución.
Luego el tiempo de acceso total es:
Tiempo de acceso = 34 ms. + 6,66 ms. = 40,66 ms.
b) Calcular la velocidad de transferencia de este disco si tiene una densidad de
grabación lineal de 20000 bits/cm y un radio de 5 cm.
El número de bits que alberga cada pista será de:
bits = 2 r d donde d = densidad de grabación
bits = 2 * 3,1416 * 5 * 20000 = 628318,53 bits
con lo que se obtiene una velocidad de transferencia de:
v = 628318,53 bits * 4500 bits/min = 47,12 Mbits/s = 5,8 Mbytes/s
Ejercicio: Calcular el tiempo de acceso de un disco con una velocidad de giro de 7200
r.p.m., con un tiempo medio de 20 ms. de posición en pista y 4 ms. de estabilización.
Calcular también la velocidad de transferencia si el radio es de 7 cm y la densidad lineal
de 15000 bits/cm.
2.2.1. La estructura del disco
El Master Boot Record (MBR) o Registro de Arranque Principal se ubica en el
primer sector del disco (sector 0). Este sector es el encargado de cargar el sistema
operativo si se trata de un disco de arranque.
Cuando se arranca el ordenador, lo primero que realiza son una serie de pruebas
para verificar su hardware y, posteriormente, mediante un programa almacenado en su
BIOS comienza una rutina de arranque muy simple. Durante ésta se lee el Master Boot
Record del disco duro. Si el disco es de arranque, el sistema operativo habrá escrito en
este registro una pequeña rutina en la que finalmente se saltará a la dirección del sector
Implantación de Sistemas Operativos
6�/17�
en el que se encuentra almacenado el cargador del sistema operativo con lo que
comenzará así su carga real.
El resto de los sectores del disco se dividen fundamentalmente en dos áreas:
- El área de datos, compuestas por los sectores en los que almacenan los datos de
usuario.
- El área de localización, donde se guarda la información necesaria que permitirá
conocer qué sectores del área de datos pertenecen a un determinado archivo o
directorio y cuál es su localización dentro del disco.
Las particiones
Las particiones son la manera en que se divide el disco físico de forma que cada
una de ellas funciona como si fueran unidades separadas.
El número de particiones que se puede crear en un disco depende del método
que se utilice para organizar las particiones del disco. Todos los equipos basados en los
procesadores x86 utilizan el estilo de partición conocido como Registro de Arranque
Principal (MBR). MBR contiene una tabla de particiones que indica el lugar del disco
donde se encuentran las particiones. En los discos con MBR se pueden crear hasta
cuatro particiones primarias por disco, o bien, hasta tres particiones primarias y una
partición extendida (dentro de la partición extendida se puede crear un número ilimitado
de unidades lógicas).
Los equipos basados en el procesador Itanium utilizan un nuevo estilo
denominado Tabla de Particiones GUID (GPT). En los discos con GPT se pueden crear
hasta 128 particiones primarias.
2.3. Organización de la información
2.3.1. Los sistemas de archivos
Para poder almacenar los datos en un disco, éstos se han de guardar respetando
una serie de normas y restricciones que vienen impuestas por el sistema de archivos
implementado. El sistema de archivos determinará la estructura, nombre, forma de
acceso, uso y protección de los archivos que se guardarán en el disco.
Cada sistema operativo dispone de su propio sistema de archivos diferente, pero
el objetivo y función de todos ellos es el mismo: permitir al usuario un manejo fácil y
lógico de sus archivos abstrayéndose de las particularidades de los dispositivos físicos
empleados.
2.3.2. El nombre de un archivo
Los archivos son un mecanismo de abstracción. Es la forma de almacenar
información en el disco y poder volverla a leer más adelante sin que el usuario tenga
que preocuparse por la forma y lugar físico de almacenamiento de la información así
como del funcionamiento real de los discos.
Implantación de Sistemas Operativos
7�/17�
Una característica muy importante en cualquier mecanismo de abstracción es la
forma de nombrar a los objetos. Las reglas para nombrar los archivos varían de un
sistema de archivos a otro. Algunos de estos sistemas de archivos diferencian entre
mayúsculas y minúsculas, mientras que para otros no existe tal diferencia. La mayoría
de los sistemas operativos utilizar nombres de archivos con dos partes, separadas por un
punto. A la parte posterior se le denomina extensión de archivo y, por lo general, indica
el tipo de archivo que es.
En el caso de MS-DOS y las primeras versiones de Windows, el nombre puede
tener hasta ocho caracteres de longitud y la extensión hasta tres, en Linux y las últimas
versiones de Windows permiten mayor longitud.
Junto con el nombre de archivo, el sistema operativo suele almacenar también
unos atributos que califican al archivo (sistema, oculto, sólo lectura, archivo, fecha,
hora, tamaño). Estos atributos varían también de un sistema operativo a otro.
Otros sistemas operativos utilizan también atributos que indican la pertenencia
del archivo a un determinado usuario o grupo, y los permisos que el propietario del
archivo tiene sobre dicho archivo (lectura, escritura, ejecución) así como el tipo de
archivo que es (archivo normal, enlace físico, enlace lógico, directorio).
2.3.3. Los directorios y archivos
En un sistema de archivos hay dos tipos fundamentales de objetos, los
directorios y los archivos.
Los archivos son los objetos encargados de contener los datos, mientras que los
directorios son objetos que puede contener archivos y, a su vez, otros directorios dentro
de él. En realidad, lo que un directorio contiene no son otros directorios ni otros
archivos tal cual, sino la posición del sector del disco en el que comienzan, que
permitirá al sistema operativo recuperar su contenido del disco.
En todo sistema de archivos hay un directorio especial llamado raíz que es el
directorio que contiene todos los demás directorios y archivos. Desde este directorio es
desde el que se parte cuando se busca un archivo mediante una ruta de acceso absoluta.
Cuando se usa una ruta de acceso relativa, el archivo se busca partiendo del directorio
en el que se esté trabajando o directorio activo.
En MS-DOS, las rutas de acceso están separadas por el carácter \, mientras que
en LINUX se utiliza el carácter /.
Muchos de los sistemas operativos que implementan un sistema jerárquico de
directorios tienen dos entradas especiales en cada uno de sus directorios “.” y “..” que
hacen referencia respectivamente al directorio activo y al directorio de nivel superior
que contiene a éste (a su padre).
Junto con el nombre del directorio, el sistema operativo almacena también unos
atributos que califican al directorio. Estos atributos también varían de un sistema
operativo a otro y, entre ellos, se pueden encontrar: oculto, sólo lectura, archivo, fecha y
hora.
Implantación de Sistemas Operativos
8�/17�
2.4. Tipos de archivos
Los archivos se pueden dividir en dos grandes grupos: los ejecutables y los no
ejecutables o archivos de datos. Los primeros están creados para funcionar por sí
mismos y los segundos almacenan información que tendrá que ser utilizada con ayuda
de algún programa.
Existen infinidad de extensiones de archivos y algunas de ellas pueden ser
utilizadas por programas totalmente diferentes. Cuando se desconoce el formato de
archivo, es mejor recurrir a buscadores de Internet o a páginas especializadas para tal
(por ejemplo, filext.com).
Entre dichas categorías se encuentran: sistema, audio, vídeo, comprimidos,
imágenes, texto, imágenes de CD/DVD, programas.
2.5. Implementación del sistema de archivos
Un bloque está compuesto por un determinado número de sectores que se
asocian a un único archivo.
Un aspecto muy importante es la elección del tamaño del bloque, ya que si el
tamaño del bloque es muy grande y el archivo es muy pequeño, se desperdiciará gran
parte de la capacidad del disco al asignarle el bloque entero.
Por otra parte, si el tamaño del bloque es demasiado pequeño para almacenar un
archivo, harán falta muchos bloques, con lo que se producirá un retraso en la lectura del
archivo al tener que localizar el disco todos los bloques que componen dicho archivo. El
tamaño medio de los archivos en LINUX y MS-DOS ronda 1 KB, así pues, son
adecuados tamaños de bloque de 512 B, 1 KB o 2 KB.
Si se elige un tamaño de bloque de 2 KB en un disco cuyo sector tiene 512 B,
cada bloque estará compuesto por cuatro sectores.
Para manejar los bloques asociados a cada archivo, se pueden utilizar varias
técnicas:
1. Asignación adyacente. Almacena los archivos mediante bloques adyacentes en
el disco. Su gran ventaja es su fácil implementación, pero tiene el gran problema
de que es necesario conocer con anterioridad el número de bloques que ocupará
el fichero y esto no es posible. Además genera una gran fragmentación del disco
que produce una pérdida de espacio.
2. Asignación en forma de lista ligada. El directorio contiene la dirección del
primer bloque y cada bloque contiene, a su vez, la dirección del siguiente bloque
o el valor null (nulo) en caso de que sea el último bloque del fichero. Con esta
Implantación de Sistemas Operativos
9�/17�
técnica se consigue aprovechar todos y cada uno de los bloques del disco y se
evita perder capacidad por la fragmentación. Inconvenientes que presentan:
- Cada bloque pierde parte de su capacidad, ya que se ha de reservar un
espacio para contener la dirección del siguiente bloque.
- El retardo que se produce en la lectura del archivo al tener que leer todos
los bloques antes de llegar a uno determinado.
3. Asignación mediante una lista ligada y un índice. Crea una tabla con un
registro por cada uno de los bloques del disco, en cada registro se indica si dicho
bloque está libre (null) o cuál es la dirección del siguiente bloque. Con esta
organización, todo el bloque estará disponible para los datos. Además, el acceso
a un determinado bloque es mucho más rápido, ya que al estar la tabla en
memoria, las consultas son mucho más rápidas y no es necesario acceder a
disco. La desventaja que presenta es que al estar toda la tabla de registros
permanentemente en memoria, se pierde dicho espacio para ser usado por otros
procesos. Esta técnica es usada por MS-DOS y por Windows, donde se
denomina FAT a la tabla de registros, y se puede encontrar en sus dos versiones:
FAT16 y FAT32, dependiendo de si los bloques se direccionan con 16 o 32 bits
respectivamente.
Para manejar los bloques asociados a cada archivo, se pueden utilizar varias
técnicas.
Ejemplo: Si se dispone de un ordenador con el sistema operativo MS-DOS y con esta
FAT:
Número de bloque
0
1 13
2 3
3 7
4 0
5
6 2
7 1
8
9
10 11
11 n-2
12
13 0
.
.
n-2 4
n-1
Implantación de Sistemas Operativos
10�/17�
Supongamos que un usuario solicita leer el fichero prueba.txt. En ese caso, el
sistema operativo leerá el directorio activo en busca de la entrada
correspondiente a dicho archivo. Si éste existe, se hallará un registro con cierta
información relativa a dicho archivo. Con dicha información busca en la FAT,
que se encuentra en la memoria principal, el registro perteneciente a ese bloque
y en él se encontrará la dirección del siguiente bloque en el que el archivo está
escrito. Repitiendo esta operación obtenemos la lista completa de bloques en los
que el archivo está almacenado.
a) Si comienza en el bloque nº 6 tenemos: 6 – 2 – 3 – 7 – 1 – 13
b) Si comienza en el bloque nº 10 tenemos: 10 – 11 – n-2 – 4
c) Los bloques libres son: 0 – 5 – 8 – 9 – 12 – n-1
Ejercicio: Si se dispone de un ordenador con el sistema operativo MS-DOS y con esta
FAT:
Número de bloque
0
1 21
2 3
3 8
4 0
5 6
6 10
7 1
8 0
9
10 0
11 12
12 19
13 7
14
15 2
16
17
18
19 16
20 13
21 0
Indicar:
- ¿Qué bloques ocupa el archivo cuyo primer bloque es el nº 20?
- ¿Y el archivo cuyo primer bloque es el nº 11?
- ¿Hay algún otro fichero en el disco?
- ¿Qué bloques están disponibles para el sistema operativo?
Los sistemas operativos UNIX y Linux utilizan un sistema de archivos basados
en i-nodos. En esta técnica se asocia a cada archivo una pequeña tabla, llamada i-nodo,
que contiene los atributos y direcciones en disco de los bloques del archivo. Las últimas
entradas del i-nodo se reservan para cuando el archivo ocupa más bloques de los que el
i-nodo es capaz de almacenar y pueden contener la dirección de otro bloque en el que se
Implantación de Sistemas Operativos
11�/17�
guardan las demás direcciones de los bloques del archivo. A este bloque se le llama
bloque indirecto. En caso de que con este bloque extra no haya suficiente espacio para
guardar todas las direcciones de los bloques del archivo, existe la posibilidad de utilizar
un bloque doblemente indirecto e, incluso, un tercer bloque triplemente indirecto.
Cuando UNIX abre un archivo, lo primero que hace es cargar en memoria su i-nodo
correspondiente para que el proceso sea lo más rápido posible.
Atributos
Dirección del bloque 1
Dirección del bloque 2
Dirección del bloque 3
.
.
Dirección del bloque n
2.6. Tipos de Sistemas de Archivos
Los sistemas de archivos más utilizados para los entornos monousuario y
multiusuario son:
- FAT16. Se puede acceder a este sistema de archivos desde MS-DOS, Windows
95, Windows 98, Windows NT, Windows 2000, Windows XP y Windows
Server 2003. Permite trabajar con particiones de hasta 2 GB, las unidades de
asignación son de 32 KB, el tamaño máximo de un archivo es de 2 GB, los
volúmenes pueden llegar hasta 2 GB, no distingue entre mayúsculas y
minúsculas en los nombres de archivos y no soporta dominios.
- FAT32. Se puede acceder a este sistema de archivos desde Windows 95 OSR2,
Windows 98, Windows 2000, Windows XP y Windows Server 2003. Permite
trabajar con particiones mayores de 2 GB, las unidades de asignación son de 4
KB, el tamaño máximo de un archivo es de 4 GB, los volúmenes pueden llegar
hasta 2 TB, no distingue entre mayúsculas y minúsculas en los nombres de
archivos y no soporta dominios.
- NTFS 4 (NT File System 4). Es el sistema desarrollado para Windows NT 4.
Permite nombres de archivo de hasta 256 caracteres, ordenación de directorios,
atributos de acceso a archivos, reparto de unidades en varios discos duros,
reflexión de discos duros y registro de actividades, distingue entre mayúsculas y
minúsculas en los nombres de archivos y soporta los dominios de Windows NT.
- NTFS 5 (NT File System 5). En Windows 2000 Server se incluyeron mejoras
que permitían utilizar el Directorio Activo, dominios de Windows 2000/2003,
cuotas en disco para cada usuario, cifrado y compresión de archivos,
almacenamiento remoto, una herramienta de defragmentación y utilización de
enlaces de archivos similares a los realizados en UNIX. Sus volúmenes pueden
llegar hasta 16 TB menos 64 KB y el tamaño máximo de un archivo sólo está
limitado por el tamaño del volumen. Distingue entre mayúsculas y minúsculas
en los nombres de archivos.
Implantación de Sistemas Operativos
12�/17�
- Sistema de Ficheros Extendido 2 (ext2fs). Es uno de los más eficientes y
flexibles. Se puede acceder desde UNIX/LINUX, permite hasta 256 caracteres
en los nombres de los ficheros, el tamaño máximo del sistema de archivos es de
4 TB y el tamaño máximo de un archivo es de 2 GB. Distingue entre mayúsculas
y minúsculas en los nombres de archivos.
- Sistema de Archivos Extendido 3 (ext3fs). Es uno de los más eficientes y
flexibles. Se puede acceder desde LINUX, permite hasta 256 caracteres en los
nombres de archivos, el tamaño máximo de un volumen es de 32 TB y el tamaño
máximo de un archivo es de 2 TB. Distingue entre mayúsculas y minúsculas en
los nombres de archivos/directorios. Dispone de un registro de diario que
permite almacenar la información necesaria para restablecer los datos afectados
por una transacción en caso de que ésta falle.
- Sistema de Archivos Extendido 4 (ext4fs). Es uno de los más eficientes y
flexibles. Se puede acceder desde LINUX, es compatible con ext3, permite hasta
256 caracteres en los nombres de archivos, el tamaño máximo de un volumen es
de 1 EB (ExaBytes) y el tamaño máximo de un archivo es de 16 TB. Distingue
entre mayúsculas y minúsculas en los nombres de archivos/directorios. Dispone
de un registro de diario que permite almacenar la información necesaria para
restablecer los datos afectados por una transacción en caso de que ésta falle.
- Sistema de almacenamiento de Novell (NSS). Es el más reciente, se ejecuta
desde NetWare 5 y NetWare 6. Permite hasta 8 billones de archivos por servidor
pudiendo haber un millón de archivos abiertos simultáneamente, el tamaño del
bloque se adapta automáticamente en función del tamaño del volumen, el
tamaño máximo de un archivo y de un volumen es de 8 TB, y puede haber hasta
255 volúmenes montados en un servidor.
- HPSF (High Perfomance File System). Se puede acceder desde OS/2 y se creó
para resolver todos los problemas del sistema de archivos FAT. Utilizan un
tamaño de sector de 512 B. Permite hasta 256 caracteres en los nombres de los
archivos, el tamaño máximo de un volumen es de 2 TB y el tamaño máximo de
un archivo es de 2 GB.
2.7. Los sistemas transaccionales
Una transacción es un conjunto de operaciones en las que se ejecutan todas ellas
o no se ejecuta ninguna. Las órdenes de ejecución se envían todas una a una, pero el
efecto se realiza al final, mediante una única instrucción: commit (realizar la
transacción) o rollback (deshacer la transacción).
En un sistema de archivos transaccional el estado del sistema de archivos
siempre es coherente en el disco.
Los sistemas de archivos tradicionales sobrescriben los datos en el momento y si
el equipo se queda sin alimentación, el sistema de archivos se quedará en un estado
incoherente. Este problema se intentaba solucionar verificando el estado del sistema de
archivos e intentando reparar cualquier incoherencia del proceso, pero era un problema
Implantación de Sistemas Operativos
13�/17�
que daba muchos quebraderos de cabeza a los administradores y nunca garantizaba la
solución a todos los problemas que pudiera haber.
Posteriormente, los sistemas de archivos incorporaron el concepto de registro de
diario. Dicho registro guarda las acciones en un diario aparte, el cual se puede volver a
reproducir con seguridad si el sistema se bloquea. Este proceso supone cargas
innecesarias al sistema, porque los datos se deben escribir dos veces y a menudo
provoca una nueva fuente de problemas.
Con un sistema de archivos transaccional, los datos se administran mediante la
semántica copia por escritura (COW). Los datos nunca se sobrescriben y ninguna
secuencia de operaciones se compromete ni se ignora por completo. Para ello, cuando
haya que modificar algún archivo, se escriben sus datos en un nuevo bloque en lugar de
sobrescribirlos y cuando todo esté correcto, se borrará el bloque antiguo con los datos
iniciales.
La técnica de copia por escritura ofrece varias ventajas:
- El estado en disco siempre es válido.
- Las copias de seguridad son coherentes y fiables.
- Se pueden deshacer las modificaciones de los datos hasta un momento
determinado.
Entre los sistemas de archivos que utilizan esta técnica se encuentran: ext3cow
para Linux, ZFS para Solaris y Btrfs para Linux.
2.8. Los sistemas de archivos distribuidos
Un sistema de archivos distribuidos (DFS) permite que los directorios
localizados en cualquier lugar de una red sean visualizados como un árbol de directorios
único sin necesidad de que los usuarios sepan en qué servidor reside cada archivo.
También se le denomina sistema de archivos de red.
Se puede utilizar el sistema de archivos distribuido:
- Si se espera agregar servidores de archivos nuevos o modificar las
ubicaciones de los archivos.
- Si los usuarios que tienen acceso a las carpetas compartidas están
distribuidos por uno o varios sitios.
- Si la mayor parte de los usuarios necesitan acceder a carpetas compartidas de
varios servidores.
- Si el equilibrio de la carga del servidor se puede mejorar distribuyendo las
carpetas compartidas.
- Si los usuarios precisan de un acceso ininterrumpido a las carpetas
compartidas.
- Si se dispone de sitios web para uso interno o externo.
- Si se utiliza el sistema de archivos NTFS, NFS, AFS, DCE DFS, …
2.9. Los sistemas de archivos cifrados
El sistema de archivos de cifrado (EFS) permite a los usuarios almacenar sus
datos en el disco de forma cifrada.
Implantación de Sistemas Operativos
14�/17�
El Cifrado es el proceso de conversión de los datos a un formato que no puede
ser leído por otro usuario. Cuando un usuario cifra un archivo, éste permanece
automáticamente cifrado mientras esté almacenado en disco.
El Descifrado es el proceso de reconversión de los datos de un formato cifrado a
su formato original. Cuando un usuario descifra un archivo, éste permanece descifrado
mientras esté almacenado en un disco.
Los agentes de recuperación designados pueden recuperar datos cifrados por
otro usuario. De esta forma, se asegura la accesibilidad a los datos si el usuario que los
cifró ya no está disponible o ha perdido su clave privada.
2.10. Los sistemas de archivos virtuales
Un sistema de archivos virtual (VFS) es una capa de abstracción encima de un
sistema de archivos concreto. El propósito de un VFS es permitir que las aplicaciones
cliente tengan acceso a distintos tipos de sistemas de archivos de una manera uniforme.
Se utiliza como un puente sobre los sistemas de archivos de Windows, de Mac OS y
Linux, de modo que las aplicaciones accedan a los archivos sin saber a qué tipo de
sistema de archivos están teniendo acceso.
A menudo se hace referencia al directorio /proc de Linux como un sistema de
archivos virtual, pues contiene una gran cantidad de información con detalles sobre el
hardware del sistema y cualquier proceso que se esté ejecutando en ese momento.
2.11. La agrupación de registros
Es posible utilizar dos tipos de ficheros (de texto o binarios), y dos tipos de
acceso a los ficheros (secuencial o aleatorio).
Los ficheros de texto están compuestos de caracteres legibles, mientras que los
ficheros binarios pueden almacenar cualquier tipo de datos.
Un acceso secuencial implica tener que acceder a un elemento antes de acceder
al siguiente, mientras que el acceso aleatorio o acceso directo permite acceder a los
datos indicando una determinada posición desde la que leer o escribir.
Dentro de los ficheros binarios, se puede definir que un registro lógico es una
colección de información relativa a una entidad particular que contiene todos aquellos
datos o campos referentes a una determinada entidad, y que puedan ser tratados
globalmente por un programa. Por ejemplo la información de un determinado alumno,
que contiene los campos DNI, nombre, apellidos, etc.
Una colección de registros relacionados entre sí con aspecto en común y
organizados para un propósito específico es un archivo o fichero.
Los datos en los archivos deben estar organizados de tal forma que puedan ser
recuperados fácilmente, actualizados o borrados, y almacenados en el archivo con todos
los cambios realizados.
Implantación de Sistemas Operativos
15�/17�
Un conjunto de archivos a los que se puede acceder con una serie de programas
y que contienen todos ellos los datos relacionados forman una base de datos.
Una clave es un campo o conjunto de campos de datos que identifican al registro
y lo diferencian del resto de registros del fichero. Por tanto, esta clave debe ser distinta
para cada registro.
Una marca de fin de fichero es una señal situada al final de cada fichero, para no
acceder más allá del último registro existente. Existe una función lógica, eof (end of
file), que toma el valor verdadero cuando se llega al final del fichero y falso en caso
contrario.
2.12. Operación con ficheros
Creación. Para poder realizar cualquier operación sobre un fichero es necesario
que haya sido creado previamente, almacenando sobre el soporte seleccionado la
información requerida para su posterior tratamiento. Con anterioridad a la
creación de un archivo se requiere diseñar la estructura del mismo mediante los
campos del registro, longitud y tipo de los mismos.
Apertura. Para poder trabajar con la información almacenada en un fichero,
éste deberá estar abierto, permitiendo así el acceso a los datos, dando la
posibilidad de realizar sobre ellos las operaciones de lectura y escritura
necesarias.
Cierre. Una vez finalizadas las operaciones efectuadas sobre el fichero, éste
deberá permanecer cerrado para limitar el acceso a los datos y evitar así un
posible deterioro o pérdida de información.
Actualización. Esta operación permite la puesta al día de los datos del fichero
mediante la escritura de nuevos registros (alta) y la eliminación (baja) o
modificación de los ya existentes. Cuando se escribe un nuevo registro en el
fichero se deberá comprobar que no existe previamente. La baja de un registro
puede ser lógica o física. Una baja lógica supone el no borrado del registro en el
archivo, pues rellena de espacios en blanco el registro específico. Una baja
física implica el borrado y desaparición del registro.
Consulta. Tiene como fin visualizar la información contenida en el fichero, bien
de modo completo, bien de modo parcial.
Borrado o destrucción. Consiste en la supresión de un fichero del soporte o
dispositivo de almacenamiento. El espacio utilizado por el archivo borrado
puede ser utilizado por otros archivos. El fichero tiene que estar cerrado.
Ordenación o clasificación. Consiste en lograr una nueva disposición sobre el
soporte de todos los registros de un archivo, con una secuencia de ubicación
determinada por el valor de uno o de varios de sus campos.
Implantación de Sistemas Operativos
16�/17�
Compactación o empaquetamiento. Esta operación permite la reorganización
de los registros de un fichero eliminando los huecos libres intermedios existentes
entre ellos normalmente ocasionados por la eliminación de registros.
2.13. Tipos de acceso
Hay dos tipos de soportes:
Soportes secuenciales. Son aquellos en los que los registros están dispuestos
físicamente uno a continuación de otro y para acceder a un determinado registro
se necesitará pasar por todos los anteriores a él.
Soportes direccionables. Permiten localizar a un registro directamente por su
información (clave) sin tener que pasar por todos los anteriores.
Según las características del soporte empleado y la organización utilizada, se
consideran dos tipos de acceso:
Acceso secuencial que implica el acceso a un archivo según el orden de
almacenamiento de sus registros, uno tras otro. Los registros contienen un
registro particular, y el último contiene una marca de fin de archivo.
Ventajas:
- Rapidez en el acceso de un bloque de registros que se encuentran
almacenados en posiciones físicamente contiguas.
- No deja espacios vacíos entre registro y registro, optimizando al máximo
la memoria ocupada.
Inconvenientes:
- El acceso a los registros individuales es muy lento.
- Se tiene que procesar todo el fichero para operaciones de inserción y
borrado de registros.
Acceso directo o aleatorio que implica el acceso a un registro determinado, sin
que ello implique la consulta de los registros precedentes. Se caracterizan
porque los registros se sitúan en el fichero y se accede a ellos a través de un
identificativo o clave, el cual indica la posición del registro dentro del fichero y
la posición de memoria donde está ubicado.
Ventajas:
- Cada posición sólo puede ser ocupada por un registro, pues no se puede
tener en el fichero más de un registro con el mismo valor de clave.
- Es muy rápido el acceso a los registros individuales.
Implantación de Sistemas Operativos
17�/17�
Inconvenientes:
- Deja gran cantidad de huecos dentro del fichero lo que provoca
desaprovechamiento del soporte de almacenamiento.
- Una consulta total del fichero puede suponer un gran inconveniente, ya
que deberá analizar todas las posiciones de memoria, aunque algunas
estén vacías.
2.14. Planificación
En los sistemas basados en multiprogramación se producen peticiones de leer o
escribir mucho más rápidas de lo que pueden atender los discos. Así, es frecuente
encontrar colas de espera en los dispositivos de disco. Cuando se completa una solicitud
debe seleccionarse otro proceso de la cola. Es decir, debe planificarse qué solicitud es la
próxima que debe servirse.
Existen muchos algoritmos de planificación de colas:
FCFS (First-Come-First-Served: la primera petición que llega es la primera
que se atiende.
SSFT (Shortest-Seek-Time-First): sirve la petición que encuentra a la distancia
más corta de la pista que acaba de servir. Suele dar mejor resultado que la FCFS, pero
tampoco es óptimo.
SCAN (o algoritmo del ascensor): selecciona la petición que encuentra más
cerca, pero en una dirección determinada. La cabeza de lectura/escritura empieza en un
extremo del disco y se mueve hacia el otro extremo sirviendo las solicitudes a medida
que llega a cada pista. Cuando llega al extremo opuesto, se invierte la dirección del
movimiento y continúa con el proceso. Es la base de la mayoría de las planificaciones
actuales.
C-SCAN: Variante del anterior. Cuando llega al final, vuelve inmediatamente al
principio para comenzar un nuevo recorrido.
LOOK y C-LOOK: son planificaciones SCAN en las que la cabeza de
lectura/escritura no llega hasta los extremos del disco sino sólo hasta que no quedan
solicitudes en la dirección actual.