Site hosted by Angelfire.com: Build your free website today!

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.

 

 

 

 

 

 

 

 

 

 

 

 


Figura # 2. Organización de archivos

 

 

 

         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 trabajodirectorio 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

4.7 Planificación de disco

 

 

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.

 

 

PAGINA PRINCIPAL