Tema 4

17
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.

description

Tema 4 de ISO

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.