UNIDAD IV. MANEJO DE ARCHIVOS
4.1. Introducción.
Mientras
se esperan avances tecnológicos más decisivos, la mayoría de los sistemas
operativos adopta un método diferente para almacenar información. Estos
permitirán a los usuarios definir objetos a los que se puso el nombre de archivos,
los cuales pueden contener programas, datos o algún otro elemento que el
usuario desee. Estos archivos no son parte del espacio de direcciones de ningún
proceso. En cambio, el sistema operativo proporciona operaciones especiales (o
sea, llamadas al sistema) para crearlos y destruirlos, leerlos y escribirlos y
manejarlos en otras formas.
Normalmente
reside en un dispositivo de almacenamiento secundario como un disco o cinta u
otro medio de almacenamiento. Se puede manipular como una unidad mediante operaciones
como: ABRIR, CERRAR, CREAR, BORRAR, COPIAR, RENOMBRAR, LISTAR. Los elementos de
información individuales dentro del archivo se pueden manipular con operaciones
como: LEER, ESCRIBIR, MODIFICAR, INSERTAR, ELIMINAR.
4.1 Manejador
de archivos.
Los
archivos se caracterizan por su:
·
Volatilidad.
Se refiere a la frecuencia con que se añade información a un archivo y se borra
de él.
·
Actividad. Se refiere al porcentaje
de los registros de un archivo al cual se tuvo acceso durante un periodo dado.
·
Tamaño.
Se refiere a la cantidad de información almacenada en el archivo.
ARCHIVO
FISICO.
La información vista
desde la perspectiva de hardware. Por ejemplo, el archivo 1 está formado por
los sectores 3, 10 y 15 del archivo. Otro ejemplo: el archivo X es la secuencia
de bytes localizados en la RAM en el bloque 0A703h:03000h al 0A703h:04200h.
ARCHIVO
LOGICO.
Son datos cuyo
significado esta definido por el usuario. Ejemplo, el archivo Y es la
información de 1000 artículos, cada uno con su código, descripción y precio.
Generalmente, un archivo lógico se representa de manera tabular.
4.2 EL
SISTEMA DE ARCHIVOS DE UN SISTEMA OPERATIVO.
Lo conforman todas
aquellas rutinas encargadas de administrar todos los aspectos relacionados con
el manejo de Archivos.
Los módulos
del manejador de archivos son:
En general, un Sistema de
Archivos está compuesto por: Métodos De Acceso, Administración De
Archivos, Administración De Almacenamiento Secundario, Mecanismos De
Integridad.
Métodos
De Acceso. Se
ocupan de la manera en que se tendrá acceso a la información almacenada en el
archivo. Ejemplo: Secuencial, Directo, indexado, etc.
Administración
De Archivos. Se
ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos,
así como para hacer referencia a ellos.
Administración
De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en
los dispositivos de almacenamiento secundario.
Mecanismos
De Integridad.
Se ocupan de garantizar que no se corrompa la información de un archivo, de tal
manera que solo la información que deba estar en el, se encuentre ahí.
4.3 NOTACION DE ARCHIVO
VIRTUAL Y REAL
Componentes de un sistema de archivos.
![]()
Reg. lógico
![]()
Reg. físico
Figura
# 1. Componentes, niveles de un sistema
de archivos.
1.
Contiene las diferentes
rutinas y comandos atravéz de los cuales el usuario podrá estructurar sus
archivos virtuales.
2.
Convierte los
identificadores simbólicos de los archivos en identificadores internos, los
cuales apuntarán a su descriptor o a una estructura que permite encontrar el
archivo.
3.
Su objetivo es el de
activar y desactivar a través de las rutinas de abrir y cerrar archivos y
verifica el modo de acceso.
4.
Traslada las
direcciones lógicas en direcciones físicas correspondientes a las estructuras
de memoria secundaria y los buffers en memoria principal necesarios para la
transferencia de datos.
5.
Por cada petición de
acceso al archivo real, este mecanismo genera la secuencia de operaciones
elementales de entrada y salida que se necesita.
6.
En este nivel es donde
se tiene el número de peticiones pendientes así como de las que se están
realizando y lleva el control y asignación de tiempo de CPU a las diferentes
peticiones de E/S.
4.4
Organización lógica y física.
La
organización de archivos es de dos tipos lógica y física. Organización lógica,
existen tres organizaciones comunes de un archivo. La primera es una simple
secuencia de bytes. Figura # 2.

Los archivos de UNIX se
estructuran de esta manera.
La
segunda es una sucesión de registros de tamaño fijo.

Pueden leerse o
escribirse registros arbitrarios, pero no pueden insertarse o suprimirse
registros a la mitad de un archivo.
La tercera organización
es un árbol de bloques de disco, donde cada cavidad contiene n registros con
clave. Los registros pueden cerrarse por clave y pueden insertarse otros en
cualquier parte del árbol.

Si
se agrega un registro a un bloque que está repleto, éste se divide en su
secuencia alfabética correcta. Este método se aplica en muchas
macrocomputadoras, donde se llaman ISAM (método de acceso secuencia indizado).
La
organización física es llevada a cabo en un sistema por medio de Directorios.
Para
llevar el control de los archivos, el sistema de archivos proporciona
directorios, los cuales en muchos sistemas, son archivos. Un directorio suele
tener varias entradas, una por archivo. Figura
# 3.

|
Directorio |
|
Entrada |
|
Entrada |
|
Entrada |
|
Entrada |
Figura # 3.
Un
directorio puede tener varias entradas, donde cada un describe un archivo. Las
entradas pueden contener cierta información acerca del archivo o bien apuntar a
otras estructuras que la tengan.
La
manera más simple consiste en que el sistema conserve un solo directorio que
contenga todos los archivos de todos los usuarios. Si hay muchos usuarios y
éstos eligen los mismos nombres de archivos (por ejemplo, mail y games), habrá
conflictos y la confusión volverán el sistema impracticable. Este modelo
de sistema es utilizado solamente por los sistemas operativos de
microcomputadoras más primitivos.
Una
mejora a la idea de tener un solo directorio para todos los archivos consiste
en tener un directorio por usuario. Figura
# 4.

Figura # 4.
Un directorio por usuario.
Este
método elimina conflictos de nombre entre los usuarios, pero no es muy
satisfactorio para usuarios con muchos archivos.
Es
necesaria una jerarquía general (o sea, un árbol de directorios). Con este
método, cada usuario puede tener tantos directorios como se necesiten de manera
que los archivos se puedan agrupar en formas naturales.
Cuando
el sistema de archivos se organiza como un árbol de directorios, se necesita
contar con alguna manera de especificar nombres de archivos. Comúnmente se
emplean dos métodos:
·
Nombre de ruta absoluta. Que consta de la ruta que va del
directorio raíz al archivo. Ejem: La ruta /usr/ast/mailbox el directorio
raíz contiene un subdirectorio usr el cual contiene un subdirectorio ast,
que contiene el archivo mailbox. Los nombres de ruta absoluta siempre
comienzan en el directorio raíz y son únicos.
·
Nombre de ruta relativa. Se utiliza junto con el concepto directorio
de trabajo (ó directorio actual). Un usuario puede designar un
directorio como el directorio de trabajo actual. En UNIX, todos los
nombres de ruta que comienzan con una diagonal / son absolutos; todos los otros
son relativos al directorio de trabajo actual del usuario. Si el directorio de
trabajo actual es /usr/ast/mailbox puede referirse simplemente como mailbox.
4.5. Mecanismos de acceso a los archivos.
Existen
varios mecanismos para accesar los archivos:
Directorios, descriptores de archivos,
mecanismos de control de acceso y procedimientos para abrir y cerrar archivos.
Descriptores
de archivos. A cada uno de los archivos se le asigna un descriptor el cual
contendrá toda la información que necesitará el sistema de archivos para
ejecutar con él los comandos que se le soliciten. El descriptor se mantendrá en
memoria principal desde que el archivo es abierto hasta que sea cerrado, y debe
tener al menos la siguiente información, identificación del archivo, lugar de
almacenamiento, información del modo de acceso.
Identificación del archivo consiste
de dos partes que es el nombre simbólico que es el que le da el usuario y un
identificador interno que es asignado por el sistema operativo (número).
Lugar
de almacenamiento así como el tamaño del archivo.
Modo de acceso. Se debe indicar en
forma explícita quien puede accesar el archivo y conque derecho.
El sistema de archivos es un componente
importante de cualquier sistema operativo, en general contienen:
·
Métodos de acceso: Se ocupan de la forma
en que se obtiene acceso a los datos almacenados en archivos.
·
Administración de archivo.
Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar
archivos, y hacer referencia a ellos.
·
Administración de almacenamiento secundario: Se ocupa de asignar espacio a los archivos en dispositivos de
almacenamiento secundario.
·
Mecanismos de integridad de los archivos:
Se ocupan de garantizar que no se corrompa la información en un archivo. Cuando
se asegura la integridad de los archivos, cualquier información que debe estar
en un archivo estará ahí, la información que no deba estar en un archivo se
mantiene fuera de él.
4.6. Manejo del espacio de memoria secundaria.
El sistema de archivos se ocupa
primordialmente de administrar el espacio de almacenamiento secundario, sobre
todo el espacio en disco.
El manejo del espacio libre en disco se
lleva a cabo de la siguiente manera:
·
Vector de bits
·
Lista ligada (lista
libre)
·
Por conteo (agrupación)
Vector de bits. El espacio libre en disco es frecuentemente implementado como un mapa
de bits, donde cada blokc es representado por un bit y si el bloc es libre el
bit es cero de lo contrario está asignado.
11000111
Lista ligada. Una lista ligada de todos los blocks libres. Otra implantación se
consigue guardando la dirección del primer block libre y el número de los blocks
libres contiguos que le siguen. Cada entrada de la lista de espacio libre
consiste de una dirección de disco y un contador (por conteo), ver figura # 5.

|
2 |
3 |
|
|
|
|
|
|
Figura # 5. Lista
ligada.
Por agrupación. Se almacena la dirección en n blocks libres en el primer block libre
y el último contiene la dirección de otro block que contiene la dirección de
otros blocks libres, ver figura # 6.

Figura # 6. Agrupación.
Para manejar los espacios en disco existen los siguientes métodos:
·
Contiguos
·
Ligados
·
Indexados
·
Contiguos. Esta asignación requiere que cada archivo ocupe un conjunto de
direcciones contiguas en el disco, su asignación es definida por la dirección
del primer bloc y la longitud del archivo.
·
Asignación ligada. Cada archivo es una lista ligada de blocks y el directorio contiene
un apuntador al primer bloc y al último. Figura
# 7.
|
Nombre |
Inicio |
Final |
|
A |
1 |
50 |

Figura # 7. Asignación ligada.
·
Asignación Indexada. Cada archivo tiene su propio bloc de índice el cual es un arreglo de
direcciones de bloc
En un sistema de cómputo, los elementos
que se declaran para almacenamiento son los Fyle System.
Cuándo existe una solicitud de
almacenamiento o manejo de bloc libres en un file system surge una interrogante
¿cómo atenderlas? esto se lleva a cabo mediante una planificación de discos y
para esto existen las siguientes políticas de planificación.
a)
FCFS
b) SSTF
b)
SCAN
c)
SCAN de n-pasos
d)
C-SCAN
f) Esquema Eschenbach
Introducción.
En
los sistemas de multiprogramación, normalmente la ineficiencia es causada por
el uso impropio de los dispositivos de almacenamiento rotacionales, tales como
discos y tambores.
En
esta unidad, se consideran una variedad de discos y dispositivos similares,
incluyendo discos flexibles, discos duros, tambores, discos virtuales (RAM), y
discos ópticos. Se discuten las causas de la ineficiencia, se consideran varios
esquemas para mejorar la eficiencia y se comparan bajo varios criterios de
rendimiento.
Operación
de discos de almacenamiento de cabezas móviles
En
un sistema de discos de cabeza móvil los datos se graban en una serie de discos
magnéticos o platos. Se accede a los datos mediante una serie de cabezas de
lectura/escritura, una cabeza por cada superficie del disco. Una cabeza de
lectura/escritura sólo puede acceder a datos inmediatamente adyacentes a ella,
por lo que antes de que pueda acceder a los datos, la parte de la superficie
del disco de donde van a ser leídos los datos debe de rotar hasta que se encuentra
inmediatamente debajo (o arriba de la cabeza de lectura-escritura). El tiempo
que toma a los datos el rotar desde su posición actual hasta una posición
adyacente a la cabeza se denomina tiempo de latencia, ver figura #
8.

Figura # 8. Disco de cabezas móviles.
Cada
una de las diversas cabezas de lectura-escritura, mientras se encuentran fijas
en una posición, trazan una pista circular de datos sobre una superficie del
disco. Todas las cabezas están montadas sobre una sola barra o conjunto del brazo móvil. La barra puede
moverse hacia adentro o hacia afuera. Para una posición particular de la barra,
la serie de pistas trazadas por todas las cabezas forman un cilindro vertical.
Al proceso de mover la barra hacia un nuevo cilindro se le llama operación de
búsqueda.
Así
pues, para poder acceder a un registro particular de datos en un disco de
cabezas móviles, suelen necesitarse varias operaciones. Primero, la barra debe
buscar el cilindro adecuado. Después, la parte del disco en donde se encuentra
almacenado el registro de datos debe rotar hasta situarse inmediatamente debajo
(o encima) de la cabeza de lectura escritura (latencia). Entonces, el registro,
cuyo tamaño es arbitrario, debe girar por la cabeza de lectura-escritura (tiempo
de transmisión).
Debido
a que cada una de las operaciones involucra un movimiento mecánico, el tiempo
total de acceso a un registro particular es, en general una apreciable fracción
de segundo (de 0.01 a 0.1 segundos). Este tiempo es muy grande comparado con la
velocidad de procesamiento del CPU (millones a billones de instrucciones por
segundo).
Políticas
de planificación
Una
forma simple de atender a las solicitudes en el disco es la primero en
llegar-primero en ser atendido. Existen además otros criterios para evaluar
las políticas de planificación:
·
Capacidad
de ejecución
·
Media
del tiempo de respuesta
·
Varianza
de los tiempos de respuesta
Es
claro que una política de planificación debe intentar maximizar la capacidad de
ejecución, el número de peticiones servidas por unidad de tiempo. Debido a la
planificación se reduce el tiempo desperdiciado en las esperas de las
búsquedas, con lo que se puede mejorar la media de los tiempos de respuesta. Si
una política de planeación no intenta más que maximizar la capacidad de
ejecución sin minimizar al mismo tiempo la varianza, podría procesar
peticiones. (Cuanto menor es la varianza, más predecible es el sistema). En las
siguientes secciones se discuten las estrategias de optimización de
posicionamiento más populares.
Planificación FCFS (primero en llegar, primero en
ser servido)
La
planificación FCFS es justa en el sentido de que una vez que llega una
petición, se fija su lugar dentro de la cola de espera. Una petición, se fija
su lugar dentro de la cola de espera. Una petición no puede ser desplazada por
la llegada de otra con prioridad más alta.
La
FCFS es aceptable cuando la carga en un disco es ligera. Pero a medida que
crece la carga, la FCFS tiende a saturar el dispositivo y los tiempos de respuesta
se incrementan. La FCFS ofrece una varianza pequeña, pero tiene tiempos de
espera muy grandes.
Planificación SSTF (menor tiempo de búsqueda
primero)
En
esta política la petición que da por resultado la distancia de búsqueda más
corta (y, con esto, el tiempo de búsqueda más corto) es la siguiente en ser
servida, aunque esa petición no sea la primera en la cola.
Los
patrones de búsqueda SSTF tienden a estar muy relocalizados, dando como
resultado que las pistas internas y externas reciban un servicio pobre, en
comparación con las pistas del centro. La SSTF es útil en sistemas de
procesamiento por lotes, en los cuales la capacidad de ejecución es lo más
importante. Pero la alta varianza de los tiempos de respuesta (es decir, su
falta de predecibilidad) lo hace inaceptable para los sistemas interactivos.
Planificación SCAN
Esta
política, desarrollada por Denning, opera como SSTF, excepto que selecciona la
petición que da como resultado la distancia de búsqueda más corto en una
dirección seleccionada. La SCAN_no cambia de dirección hasta que ha alcanzado
el cilindro exterior o hasta que ya NO haya peticiones pendientes en la
dirección con preferencia.
La
SCAN se comporta de manera parecida al SSTF desde el punto de vista de la
mejora en la capacidad de ejecución y de la media de los tiempos de respuesta,
pero elimina mucha de la discriminación inherente a los esquemas SSTF y ofrece
una varianza menor.
Planificación SCAN de n-pasos
En
esta estrategia, el brazo del disco se mueve de un lado a otro como en SCAN,
pero sólo da servicio a aquellas peticiones que se encuentran en espera cuando
comienza un recorrido particular. Las peticiones que llegan durante un
recorrido son agrupadas y ordenadas para un servicio óptimo durante el
recorrido de regreso.
La
SCAN de n-pasos ofrece un buen rendimiento de la capacidad de ejecución y de la
media de los tiempos de respuesta. Su característica más significativa es una
menor varianza de los tiempos de respuesta que las planeaciones SSTF y SCAN
convencionales. La SCAN de n-pasos evita la posibilidad de postergación
indefinida que tiene lugar si un gran número de peticiones que llegan al
cilindro que está siendo servido y guarda estas peticiones para ser servidas
durante el recorrido de regreso.

Figura # 9.
Esquemas de planificación de disco.
Planificación C-SCAN
En
la estrategia C-SCAN, el brazo se mueve del cilindro exterior al interior,
sirviendo a las peticiones con menor tiempo de búsqueda. Cuando el brazo ha
completado su recorrido hacia adentro, salta a la petición más cercana al
cilindro exterior y a continuación reanuda su recorrido hacia adentro
procesando peticiones.
La
C-SCAN puede implementarse de forma que las peticiones que llegan durante un
recorrido sean servidos en el siguiente. De esta forma C-SCAN elimina
completamente la discriminación contra las peticiones para los cilindros
exterior e interior. Tiene una varianza de los tiempos de respuesta muy
pequeña.
Esquema Eschenbach
En
esta estrategia el movimiento del brazo del disco es circular como en C-SCAN,
pero con varias excepciones importantes. Cada cilindro es servido exactamente
por una pista completa de información, haya o no peticiones para este cilindro.
Las peticiones se redondean a ser servidas dentro de un cilindro para tomar
ventaja de la posición rotacional, pero si dos peticiones traslapan posiciones
de sectores dentro de un cilindro, solamente se sirve una en el movimiento
actual del brazo del disco.
Con
carga baja, la política SCAN es la mejor, mientras que con cargas medias y
pesadas, la C-SCAN produce los mejores resultados. La C-SCAN con optimización
rotacional maneja de manera efectiva condiciones de carga muy pesadas y ha
demostrado ser mejor que el esquema Eschenbach bajo todas las condiciones de carga.
Optimización
rotacional
En
condiciones de carga pesada, la probabilidad de que ocurran referencias al
mismo cilindro aumenta y resulta útil considerar la optimización rotacional de
la misma forma que la optimización de búsqueda.
Una
forma paralela a la estrategia de optimización de la búsqueda SSTF es la
estrategia SBIF (tiempo de latencia más corto primero) de optimización
rotacional. Una vez que el brazo del disco llega a un cilindro en particular,
pueden existir muchas peticiones pendientes en las distintas pistas de ese
cilindro. La estrategia SBIF examina todas estas peticiones y sirve primero a
aquella que tiene el retraso rotacional más corto. Esta estrategia ha
demostrado estar muy cerca del óptimo teórico y es relativamente fácil de implementar.
Consideraciones
sobre los sistemas
La
planeación del disco puede perder su importancia ante eventos totalmente ajenos
a ella. Algunos de estos eventos se describen en los siguientes párrafos.
El almacenamiento en disco como recursos
limitados
Cuidando
el almacenamiento de disco resulta ser un cuello de botella, algunos
diseñadores recomiendan añadir más discos al sistema. Esto no siempre soluciona
el problema, debido a que los cuellos de botella pueden provenir de una gran
cantidad de peticiones sobre algunos discos en particular, en estos casos se
recomienda una planeación en la asignación de los discos.
Nivel de multiprogramación
La
carga sobre los discos y la aleatoriedad de las peticiones tiende a
incrementarse con un mayor grado de multiprogramación. La planificación de
disco puede no ser útil en un sistema de procesamiento por lotes con un nivel
relativamente bajo de multiprogramación. La planeación a menudo es efectiva en
un sistema de tiempo compartido con un nivel de multiprogramación moderado. La
planificación arroja mejoras significativas en un sistema de intercambio de
mensajes que maneja miles de peticiones por minuto.
Subsistemas de discos múltiples
Por
razones de economía y modularidad, el hardware de disco suele construirse para
que varias unidades de disco sean administradas por un solo dispositivo
controlador de discos. Los controladores están conectados a los canales de
entrada/salida que transmiten la información de la unidad del disco a la
computadora central. Un canal soporta varios controladores de disco, cada uno
de los cuales, a su vez, soporta varias unidades de disco.
En
este esquema los canales de entrada/salida no están conectados directamente a
las unidades de disco que ellos atienden. Los embotellamientos pueden ser
debidos a la saturación del controlador o pueden ser causados por la congestión
del canal. Esta situación puede ser detectada realizando un monitoreo por
software y diseñando hardware para medir la actividad de los canales y los
controladores. Si un controlador se satura, el diseñador puede reacomodar la
configuración del sistema reduciendo el número de discos en dicho controlador.
Si el canal llega ser congestionado, algunos dispositivos y controladores deber
ser movidos a otro canal o se debe comprar un canal adicional. Esta
reconfiguración de hardware puede ser necesaria para eliminar ciertos
embotellamientos.
Para
ayudar a reducir la congestión del canal, se ha incorporado a muchos sistemas
de disco una técnica llamada examen de posición rotacional (RPS rotational
Position Sensing). Esta reduce el tiempo durante el cual un canal no se
encuentra ocupado en la búsqueda de un registro. Cuando se pide un registro, el
RPS permite al canal quedar libre mientras se realiza la búsqueda. El RPS
permite que varias peticiones se encuentren activas al mismo tiempo en un solo
canal, incrementando así la utilización del dispositivo.
Distribución de peticiones no uniformes
Una
causa común de las distribuciones no uniformes y muy localizada es el uso de
grandes archivos secuenciales en discos dedicados. Cuando un sistema operativo
asigna espacio para los registros adyacentes del archivo secuencial de un
usuario, suele colocar los registros adyacentes en la misma pista. Cuando una
pista se llena, los registros adicionales son colocados en pistas adyacentes
del mismo cilindro y cuando el cilindro se llena, los registros adicionales son
colocados en cilindros adyacentes. Entonces es común que las peticiones a
registros sucesivos en un archivo secuencial no necesiten una búsqueda. Cuando
se requieren las búsquedas son cortas, porque ocurren en los cilindros
adyacentes inmediatos. Como es evidente, la planificación del disco será de
poca utilidad en esta situación. Sobre todo en el caso de cualquier sobrecarga
ocurrida, que puede dar como resultado un rendimiento degradado, debido a que
la planeación no tiene utilidad aquí.
Técnicas de organización de archivos
Técnicas
sofisticadas de organización de archivos como ISAM (método de acceso secuencial
indexado), árboles-B (en general índices), pueden provocar una proliferación de
peticiones con tiempos de búsqueda largos. Los accesos pueden implicar
referencias múltiples al disco para servir las peticiones. Por ejemplo, la
recuperación de un registro ISAM puede implicar la referencia a un índice
maestro, la referencia a un índice de cilindros y la localización del registro
actual, un proceso que puede encontrarse con varios retrasos de búsqueda.
Debido a que los índices maestro y de cilindros suelen estar almacenados en
disco (pero fuera del área de datos principales), esta búsquedas pueden
resultar costosas. Las técnicas de organización de archivos son convenientes
para el diseñador de aplicaciones pero puede ser un verdadero problema desde un
punto de vista de la implementación y el rendimiento de la planificación del
disco.
Caché de
disco
Cuando
se realiza una escritura algunos sistemas graban el registro en el disco
inmediatamente, pero, esto no ocurre en los sistemas que cuentan con una caché
de disco. En este último caso las escrituras se realizan sobre un buffer en la
memoria primaria; los registros permanecen ahí hasta que el buffer se llena. Si
se necesita leer un registro que se grabó recientemente, la lectura se hace del
buffer del caché de disco (memoria primaria) de una manera mucho más rápida que
si la lectura se hiciera del disco.
Dado
que las escrituras a disco no se hacen necesariamente cuando se solicitan, el
contenido de los archivos difiere de lo que los programas piensan que
contienen. Esta situación representa un problema cuando el sistema falla: puede
existir pérdida de información. Los sistemas UNIX para minimizar esta falta de
sincronía entre el disco y los programas, periódicamente vacían el contenido de
todos los buffers al disco.
La
clave del caché de disco es mantener los registros más usados en la memoria
caché del disco. Esta técnica funciona bien sólo si se pueden identificar los
registros que se solicitan frecuentemente.
Otras
técnicas para mejorar el rendimiento de los discos
En
esta sección se presentan varias técnicas para optimizar el performance de los
dispositivos de almacenamiento rotacionales.
Las
operaciones frecuentes de adición y borrado de registros en los archivos llevan
a los discos a estar severamente fragmentados. Esto es un problema aún en
archivos de acceso secuencial, en los cuales se podría esperar un tiempo de
búsqueda mínimo. Muchos sistemas operativos proporcionan programas de
reorganización del disco, los cuales pueden usarse en forma periódica para
mantener consecutivos físicamente los registros en disco de un archivo
secuencial. Esta reorganización puede necesitar mucho tiempo en función del
grado de fragmentación del disco y no debe haber usuarios trabajando. Algunos
sistemas operativos permiten hacer particiones del disco, de tal manera que los
archivos de los usuarios se restringen a ciertas áreas. Con ello se logra que
la fragmentación se reduzca.
Los
sistemas que necesitan tener un acceso rápido a la información se pueden
beneficiar colocando varias copias de los datos en diferentes posiciones en el
disco. Esto puede reducir el tiempo de búsqueda de los datos, pero, esta
redundancia de información consume espacio en disco, genera problemas de
actualización y puede provocar problemas de inconsistencia.
En
los sistemas de múltiples discos, en los cuales sólo puede hacerse una
referencia a cada disco, se puede mejorar el rendimiento copiando los datos a
los que frecuentemente se hace referencia en discos diferentes. Esto permite
aumentar la concurrencia en el sistema.
Los usuarios que accesan discos compartidos deben
competir por el derecho de uso cada vez que se hace una referencia. En las
aplicaciones en las cuales se busca un alto performance lo más indicado es
dedicar un disco a una aplicación.
Si
se leen o escriben los datos de un archivo por bloque (no por registro) el
rendimiento del sistema puede aumentar debido a que se reducen las búsquedas en
el sistema.
Algunos
sistemas usan las técnicas de comprensión de archivos para reducir el espacio
de disco que consumen los datos. Esto puede reducir sustancialmente los tiempos
de búsquedas, la latencia y de transmisión. Pero, requieren tiempo del
procesador para comprimir y descomprimir los datos.
Discos
virtuales (RAM Disks)
Un
disco virtual (RAM Disk) es un disco simulado en la memoria RAM, este disco
elimina los retrasos sufridos por los movimientos mecánicos. El problema de los
discos (magnéticos o láser) es que su tiempo de búsqueda depende de movimientos
mecánicos; los discos RAM son mucho más rápidos que los discos convencionales
debido a que eliminan el movimiento mecánico.
Normalmente
los discos RAM están fuera de la memoria principal, por lo que no interfieren
con el espacio del S.O. y el de las aplicaciones.
Algunas
de las desventajas de los discos virtuales son: su precio; son mucho más caros
que los discos convencionales; su memoria es volátil, pierden la información
cuando la energía se interrumpe, por lo que requieren baterías de apoyo y hacer
respaldos frecuentes.
Discos
ópticos
Los
primeros discos ópticos fueron de sólo lectura (WORM write once read many), lo
que los hizo apropiados para las aplicaciones que requerían una actualización
regular. En la actualidad, han aparecido en el mercado diferentes productos con
disco ópticos que pueden ser re-escritos, con lo cual el dominio de los discos
magnéticos corre un serio problema.
Una
de las grandes ventajas de los discos ópticos en su alta capacidad de
almacenamiento, las investigaciones permiten predecir que es posible almacenar
1021 bits en un solo disco óptico.
En
el disco óptico NO existen las pistas, existe solo una espiral continua, las
búsquedas son lineales por lo que tienen un performance pobre, por lo que, se
requiere del ajuste de velocidad del disco para lograr una velocidad de acceso
lineal uniforme y, se requieren nuevos algoritmos para las búsquedas de
información óptimas.
4.8 Mecanismos de recuperación en caso de fallos.
La perdida de la información es uno de los factores que se le debe de
dar mayor importancia, por la sencilla razón de que al perder información se
puede perder lo que no nos podemos imaginar en cuanto a la misma y ocasionar
perdidas hasta hablar de una gran cantidad de dinero.
Para solucionar este o estos problemas
todo sistema operativo cuenta con al menos una herramienta de software que nos
permite recuperar información perdida hasta cierta medida, esto obedece de
acuerdo al daño causado o los daños. Si el sistema no cuenta con la herramienta
necesaria, deberá adquirirse el software apropiado de algún fabricante
especializado en el ramo, por ejemplo Norton.
4.9. Estructura del sistema operativo.
Un sistema operativo proporciona el
entorno dentro del cual se ejecutan los programas. Para construir este entorno,
dividimos lógicamente al sistema operativo en pequeños módulos y creamos una
interfaz bien definida para estos programas. Internamente los sistemas
operativos varían mucho en su estructura, organizándose de acuerdo con
diferentes esquemas, de acuerdo a los objetivos que se definen al diseñar un
sistema operativo.
El tipo de sistema que se desea es
fundamental para elegir entre los distintos algoritmos y estrategias que se
necesitarán.
No todos los sistemas operativos tienen
la misma estructura, pero muchos de los sistemas operativos modernos comparten
el objetivo de apoyar los tipos de componentes de sistemas como son los
siguientes:
·
Administración de
procesos
·
Administración de
memoria principal
·
Administración del
almacenamiento secundario
·
Administración de
archivos
·
Sistema de protección
·
Redes
·
Sistema intérprete de
mandatos
Estructura del sistema.
Un sistema operativo moderno debe
construirse con cuidado para que funcione correctamente y pueda modificarse con
facilidad. Un método común es dividir las tareas en fragmentos pequeños. Cada
uno de estos fragmentos debe ser una porción bien definida del sistema, con
entradas, salidas y funciones cuidadosamente especificadas. De manera que se
interconectan y unen para formar un núcleo.
Existen numerosos sistemas comerciales
que no tienen una estructura bien definida. En muchos casos, estos sistemas
operativos comenzaron como sistemas pequeños y limitados que crecieron más allá
de su campo de aplicación original. Un ejemplo de estos es el MS-DOS, el
sistema operativo de mayor venta para microcomputadoras.
MS-DOS fue diseñado e implantado
originalmente por unas cuantas personas que no tenían la menor idea de la
popularidad que lograría.
Se escribió para ofrecer la mayor
funcionalidad en el menor espacio, por lo que no se dividió cuidadosamente en
módulos. Figura # 10.

Figura
# 10. Estructura del MS-DOS .
Aunque MS-DOS cuenta con cierta
estructura, sus interfaces y niveles de funcionalidad no están bien separados;
por ejemplo las aplicaciones pueden tener acceso a rutinas básicas de E/S para
escribir directamente en la pantalla y en las unidades de disco. Esta libertad
lo hace vulnerable a los programas imperfectos, provocando colapsos totales del
sistema o eliminación de datos en el disco cuando fallan los programas de los
usuarios.
BIOS
(Basic Input Output System)
Sistema
Básico de Entrada y Salida
Conjunto de rutinas de software que
contienen las instrucciones detalladas para activar los periféricos conectados
al computador. En las computadoras personales IBM, el BIOS reside en el chip de
memoria de sólo lectura (ROM) y acepta requerimientos de entrada y salida desde
el sistema operativo y desde los programas de aplicación.
La rutina de "autoarranque",
del BIOS es responsable de probar la memoria en el arranque, y de la
preparación del computador para operar. Busca los componentes del BIOS alojados
en las tarjetas insertadas, e inicializa los punteros (vectores de
interrupción) en la memoria principal para acceder a ellos. El BIOS en una
máquina compatible debe inicializar el computador exactamente de la misma
manera que en una IBM PC.
KERNEL
Núcleo
La parte fundamental de un programa,
tal como un sistema operativo, que reside en memoria todo el tiempo.
PROCESADOR DE COMANDOS
Algunos sistemas operativos, en especial
los de microcomputadoras, como los sistemas MS-DOS y Apple Macintosh, incluyen
al intérprete de mandatos en su núcleo. Otros sistemas operativos, sobre todo
en las computadoras de gran tamaño, tratan al intérprete de comandos como un
programa especial que se ejecuta al iniciar un trabajo o cuando el usuario se
conecta por primera vez al sistema (en sistemas de tiempos compartidos).
SHELL
Cáscara, cápsula, caparazón, concha
Capa exterior de un programa, que
proporciona la interfaz del usuario, o medio para gobernar la computadora. Las
cápsulas son típicamente programas agregados, creados para sistemas operativos
manejados por comandos, tales como el UNIX y el DOS. La cápsula brinda al
sistema una interfaz manejada por menú o gráfica orientada a iconos, con el fin
de facilitar su uso.
ESTRUCTURA DE UNIX
Consiste en dos partes separables: el
núcleo y los programas de sistema. El núcleo se divide en una serie de
interfaces y manejadores de dispositivos que se han ido agregando y ampliando
al evolucionar UNIX, al que se ve como una serie de capas. Figura # 11.

Figura # 11. Unix.
Todo lo que se encuentra por debajo de
la interfaz de llamadas al sistema y por encima del hardware físico es el
núcleo. Este proporciona, mediante llamadas al sistema, el sistema de archivos,
la planificación del CPU, la administración de memoria y otras funciones para
organizarlas en un solo nivel. Los programas del sistema utilizan las llamadas
al sistema proporcionadas por el núcleo para ofrecer funciones útiles, como la
compilación y manipulación de archivos.
Las llamadas al sistema definen la
interfaz con el programador de UNIX; el conjunto de programas del sistema
disponibles normalmente define la interfaz con el usuario. Las interfaces con
el programador y el usuario definen el contexto que debe proporcionar el
núcleo. Se han desarrollado varias versiones de UNIX donde el núcleo se divide
aún más, haciendo divisiones funcionales. El sistema operativo AIX, la versión
IBM de UNIX, divide el núcleo en dos partes. Mach, de la Carnegie-Mellon
University, reduce el núcleo a un pequeño conjunto de funciones esenciales
transfiriendo todo lo superfluo a programas del sistema e incluso a programas
del nivel del usuario.
ESTRUCTURA DE UNIX. (AIX) DE IBM
UNIX cuenta con las siguientes partes
básicas:
KERNEL
(Núcleo del sistema operativo, está escrito aproximadamente un 90% en C).
Es la parte del sistema que controla la
ejecución de procesos, administra la memoria, supervisa todos los dispositivos,
administra los recursos del sistema de cómputo.
Una de las partes importantes es el
file system, que se encarga de organizar y administrar los datos (archivos).
Desde el punto de vista del usuario, el
sistema de archivos de UNIX son estructuras
arborecentes con solo tres tipos de componentes:
a) Archivos
normales. Arreglo unidimensional de bytes.
b) Directorios
nodos. De los cuales pueden colgar archivos y/o directorios.
c) Archivos
especiales. Manejadores de dispositivos y periféricos.
SHELL
En el lenguaje de comandos de UNIX, es
decir la interface para que el usuario se comunique con el sistema operativo,
se accesa a través de un programa que se conoce como shell.
Las
características principales del Shell son:
· Utiliza ciertos caracteres como comodines (*, ?, [...], !)
· Maneja el redireccionamiento de E/S (>, <, >>).
· Se puede redireccionar la salida estándar de un proceso hacia la
entrada estándar de otro en forma directa por medio de pipe ( | ).
· Se puede hacer un archivo de comandos (programa), el cual puede
contener además de comandos, variables de shell y estructuras de control del
tipo de los empleados en los lenguajes de programación.
Existen varios shells, los más comunes
son el bourne shell (bsh o sh), c-shell (csh) y el korn shell (ksh). El ksh
incluye a los anteriores.