SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
Sistemas Operativos I                                                            Unidad 6

                           6. SISTEMA DE ARCHIVOS
6.1 Manejo del Sistema de archivos

6.1.1 Almacenamiento en línea
     En algunas aplicaciones relacionadas con la recuperación de información (tal como en
los sistemas de gestión de información) es necesario almacenar grandes cantidades de
datos de forma que estén siempre accesibles. Incluso en los sistemas de propósito general,
donde es muy posible que no sea imprescindible una gran base de datos en la línea, es
conveniente que el usuario pueda almacenar programas o datos en el mismo computador en
lugar de tener que hacerlo en un medio externo, tal como tarjetas perforadas. En los
sistemas de acceso múltiple, en particular, es impensable creer que el usuario pueda
arreglárselas sin algún tipo de almacenamiento en línea ya que el único periférico de E/S del
que dispone es el terminal que está utilizando. Incluso en los sistemas de batch, el disponer
de un sistema de almacenamiento en línea puede mejorar el rendimiento del sistema,
reduciendo la dependencia respecto a periféricos lentos.


6.1.2 Utilización compartida de información
       En algunos sistemas es deseable que los usuarios puedan compartir información. Así,
por ejemplo, los usuarios de un sistema de propósito general pueden querer utilizar
programas o datos de otros, o, en los casos de sistemas de control de gestión, puede que
procesos independientes tengan que utilizar la misma base de datos. En la mayoría de
sistemas de propósito general es deseable disponer de un cierto conjunto de programas de
librerías, tales como editores, compiladores, o bien rutinas científicas, que pueden estar al
alcance de todos los usuarios. Si debe compartirse la información de esta forma, deberá
almacenarse en línea durante largos periodos de tiempo.
      Por razones de economía el almacenamiento a largo plazo se lleva a cabo sobre
memoria secundaria, tal como discos, tambores o bien cintas magnéticas, y es la tarea del
sistema de Archivación suministrar los medios de organización y acceder a los datos de una
forma conveniente para el usuario. La manera en que ellos se lleva a cabo depende,
naturalmente, del tipo de información así como del uso que se vaya a hacer de ella: el
sistema de Archivación de un sistema de control de gestión es de esperar que sea bastante
diferente de un sistema de control de procesos.
     El usuario de un sistema de propósito general coloca sus datos en archivos de un
tamaño arbitrario. Así pues, cada archivo es una agrupación de datos que el usuario ve como
una entidad. Puede tratarse de un programa, un conjunto de rutinas o los resultados de un
experimento. El archivo constituye la unidad fija que almacena y manipula el sistema de
archivación. El medio sobre que se almacenan los archivos se divide habitualmente en
bloques de longitud fija (típicamente de 512 a 2048 bytes), dependiendo del sistema de
archivación asignar un número adecuado de bloques a cada archivo. Para que sea útil el
sistema de archivos, debe:
     1. permitir la creación y borrado de archivos.
     2. permitir el acceso a los archivos para leer o bien para escribir.
     3. llevar a cabo de forma automática el manejo de la memoria secundaria. No debe
     importar al usuario el lugar en que están ubicados sus archivos en la memoria
     secundaria.
                                 Universidad Autónoma de Nayarit                            1
Sistemas Operativos I                                                             Unidad 6

     4. permite hacer referencia a un archivos mediante un nombre simbólico. Como el
     usuario no conoce –no quiere conocer-la ubicación física de sus archivos, deberá poder
     referirse a ellos citando sólo sus nombres.
     5. proteger los archivos frente a fallos del sistema. Los usuarios serán muy limitados a
     utilizar un determinado sistema, a menos que estén convencidos de su integridad.
     6. permitir el uso compartido de archivos entre usuarios, aunque protegiendo estos
     mismos archivos del acceso no autorizado por parte de terceros.

6.1.3 Directorios de archivos
       El problema básico para acceder a un archivo es el de asignar a un nombre simbólico
de archivos a una posición física en la memoria secundaria. Esta asignación se lleva a cabo
a través de un directorio de archivos (o carpeta) que consiste básicamente en una tabla que
contiene información acerca de la situación de los archivos. Como el directorio constituye el
mecanismo a través del cual se accede a los distintos archivos, es natural incluir en él algún
tipo de protección frente a un acceso no autorizado. Por el momento baste observar que
puede establecerse una medida inmediata de seguridad dividiendo el directorio en dos
niveles, tal como muestra la figura 6.1. En el nivel superior se encuentra un directorio
maestro (MFD, Master File Directory), que contiene por cada usuario del sistema un
apuntador a su directorio de usuario (UFD, User File Directory). En el nivel inferior cada UFD
contiene los nombres y las posiciones de los archivos de cada usuario. Como sólo puede
accederse a cada UFD a través del MFD, puede asegurarse la privacidad de los archivos de
un usuario simplemente llevando a cabo una comprobación de identidad a nivel del MFD.
Además, es posible que diferentes usuarios utilicen un mismo nombre de archivo, sin que
con ello se cree confusión alguna ya que el nombre completo de un archivo cualquiera puede
considerarse como la concatenación del nombre (o número) de usuario y el nombre
individual del archivo. Así, por ejemplo, el nombre individual del archivo de la figura 6.1 es
PROG, siendo su nombre completo FRED.PROG. en el caso de otro archivo que tuviera el
mismo nombre individual, para que perteneciese al usuario BILL, su nombre completo seria
BILL.PROG. En la práctica no es siempre necesario especificar el nombre completo de un
archivo ya que el sistema de archivación puede utilizar la identidad de la misma persona que
solicite el acceso como valor por defecto de la primera componente del mismo. Sólo cuando
un usuario quiera acceder a un archivo de otro usuario. Deberá especificar el nombre
completo.




                                 Universidad Autónoma de Nayarit                             2
Sistemas Operativos I                                                                  Unidad 6

La información que hay en cada UFD, generalmente incluye:
       1. El nombre del archivo.
       2. La situación física del archivo en la memoria secundaria. Esta información es
       función de la forma en que se almacene el archivo.
       3. El tipo de archivo (de carácter, binario, reubicable, etc.) Esta información se guarda
       principalmente en interés del usuario, así como de los programas del sistema, tal
       como cargadores o editores, que puedan utilizarse para trabajar sobre el archivo en
       cuestión. Por lo que concierne al sistema de archivación, un archivo es sólo una
       cadena de bits.
       4. Información de control referente al tipo de acceso (por ejemplo, sólo lectura)
       5. Información        de tipo administrativo (por ejemplo la fecha de la última
       actualización). Esta información se utiliza con el fin de suministrar datos suficientes al
       sistema para que pueda efectuar la tarea de guardar copias duplicadas como medida
       de seguridad frente a fallos de hardware.

Muchos sistemas adoptan la estructura de directorio de dos niveles que se ha descrito en
líneas anteriores. Otros (como MS-DOS, UNIX y VMS), amplían el concepto de una
estructura multinivel en el cual los elementos de cada directorio pueden ser apuntadores a
cualquier archivo u otros directorios (ver la figura 6.2). Una estructura de este tipo es útil en el
caso en que la información almacenada admita una clasificación en forma de árbol así como
en el caso en que los usuarios se agrupen en jerarquías del tipo <<individuos en un equipo
de un proyecto de un departamento >>. En este último caso, puede utilizarse un mecanismo
jerárquico de protección que haga comprobaciones cada vez más rigurosas a medida que se
vaya bajando por el árbol. Al igual que en el caso del sistemas de dos niveles, pueden
resolverse los conflictos entre nombres de archivos considerando los nombres completos de
los mismos como la concatenación de su nombre individual con los nombres de los
directorios que se encuentren en su ruta de acceso. En algunos sistemas, el directorio de
archivo maestro es llamado el directorio raíz.




                                   Universidad Autónoma de Nayarit                                3
Sistemas Operativos I                                                              Unidad 6

      El inconveniente de un sistema multinivel estriba en la longitud del camino que conduce
a cada archivo en particular y en el número de accesos a discos que hay que realizar para
seguir este camino a través de los diversos directorios. Ello puede solventarse en alguna
medida aprovechando la tendencia de sucesivos accesos a archivos a referirse a un mismo
directorio. Una vez que se haya establecido un camino a un directorio en particular a través
de la estructura en árbol, este directorio puede pasar a considerarse el directorio actual,
debiéndose en posteriores referencias a archivos especificar sólo el nombre del archivo
individual. Puede llevarse a cabo un cambio en el directorio actual simplemente
especificando el nombre completo. Esta técnica se usa en UNIX (Ritchie y Thompson, 1974;
Bach, 1986) y MS-DOS (Duncan, 1988), entre muchos otros.
      Otra consideración eficiente es la manera que la información es organizada dentro de
cada directorio. La forma más simple es dividir el directorio en ranuras de tamaños fijos, cada
una de las cuales contiene información acerca de un solo archivo. Siempre que un archivo es
creado la siguiente ranura vacía es usada; cuando un archivo es borrado, la ranura es
liberada. Esto resulta en un directorio el cual puede ser mucho más grande que el necesario,
si ha agarrado un gran número de entradas en algun momento en el pasado. Un problema
más es el intercambio entre la longitud máxima de nombre de archivo y el resultado del
espacio gastado en muchas entradas del directorio.
     Cuando un archivo esta siendo buscado en el directorio, un simple explorador lineal es
a menudo empleado. Naturalmente los directorios grandes no funcionan bien. Varias
soluciones han sido empleadas para reducir este problema; uno de estos es el uso de
estructuras de árbol para mantener el directorio en forma ordenada.


6.2 Seguridad del sistema de archivos


6.2.1 El uso compartido y los problemas de seguridad
     El problema de la seguridad de los archivos surge de forma directa del deseo de
compartirlos. En un entorno no compartido, puede lograrse esta seguridad llevando a cabo
una comprobación de identidad en el MFD. Cuando los archivos deben compartirse, sin
embargo, el propietario de los mismos necesita disponer de un medio de especificar que
usuarios pueden acceder a sus archivos y cuales no. Además es conveniente que este
propietario pueda especificar que tipo de acceso debe permitirse: puede querer que alguno
de sus amigos puedan actualizar sus archivos, que otros solo puedan leerlos o bien que
otros solo puedan cargarlos para su ejecución. Podemos resumir todo esto diciendo que el
propietario debe poder especificar que privilegios de acceso deben tener los otros usuarios.
     Una forma particularmente sencilla de hacerlo es asociando cada archivo un conjunto
de privilegios de acceso que puedan asociarse a su vez a varias clases de usuarios. Estos
usuarios pueden ser:
     1. El propietario (O)
     2. Sus socios o compañeros (G)
     3. Otros o el resto del mundo (W)

Siendo privilegios de acceso típicos los siguientes:
      1. Acceso prohibido (N)
      2. Sólo ejecución (E)

                                  Universidad Autónoma de Nayarit                             4
Sistemas Operativos I                                                             Unidad 6

      3. Sólo lectura (R)
      4. Sólo copia (A)
      5. Actualización (U)
      6. Cambio de protección (P)
      7. Borrado (D)

     Una clave de protección de archivo típica que asignaría el propietario al crear un
archivo sería
     O:RWED, G:RW,W: R
lo que significa que propietario podría hacer con el lo que quisiera, los socios podrían
copiarlo y el resto de gente solo podría leerlo. La clave de protección del archivo se guarda
en el UFD del propietario como parte de la información ligada a este archivo en concreto. Es
de destacar que en algunos casos puede que sea conveniente para este propietario
asignarse así mismo un privilegio de acceso bajo el fin de protegerse de las consecuencias
de sus propios errores. A pesar de ellos, el sistema de archivación debe permitir siempre al
que posee los archivos cambiar los privilegios de protección, ya que en caso contrario podría
no tener forma de alterar o bien borrar un archivo propio.
     Una implicación de este método es que debe haber división de la población del usuario
en los grupos con el propósito de determinar el acceso a los archivos. Esto se hace
frecuentemente para estructurar la identificación para que el usuario conozca al sistema
(código de identificación de usuario o UIC) para que un componente indique al grupo a cual
usuario pertenece, y el otro proporciona la identidad del usuario individual. Esta técnica es
claramente inadecuada cuando difiere para suponer una sociedad requerida para diferentes
archivos; algunos sistemas (incluyendo la versión más antigua de UNIX) atacan este
problema permitiéndole a un usuario pertenecer a más de un grupo.
     Una técnica más general que supera las limitaciones jerárquicas de grupos de usuarios,
es usar las listas de control de acceso; VMS y Windows NT son ejemplos de sistemas que
usan esta técnica.
     Una lista de control de acceso (o ACL) puede ligarse a un archivo o a un directorio, y
proporciona la información completa sobre usuarios autorizados a acceder el objeto
especificado. A veces se usa en combinación con los métodos más simples perfilados antes.
      Una ACL consiste en uno o más entradas de control acceso (o ACEs), cada uno de los
cuales especifica el tipo de acceso permitió a un usuario especificado o grupo de usuarios. El
orden de la lista es importante desde cuando el acceso es verificado la ACL se busca desde
el principio; un usuario puede aparecer implícitamente más de una vez en la misma ACL, y
generalmente es la primera entrada correspondiente al usuario la cual es usada para
determinar el acceso.
Cada entrada de control de acceso consiste en lo siguiente:
      1. Una especificación de un usuario o grupo de usuarios a la cual esta ACE aplica.
      Este podría ser un nombre de usuario, un nombre de grupo, o incluso el nombre de
      alguna ficha de acceso que es tomada por el usuario para ordenar pedir la entrada;
      normalmente semejante ficha se concedería por el administrador del sistema.
      2. Una definición de los privilegios de acceso acordados por esta ACE; éstos siguen la
      forma normal (por ejemplo, RWED).
      3. Opciones asociadas con el ACE; por ejemplo, en el caso de un ACE ligada a
      undirectorio, si la ACE debe propagarse a cualquier archivo creado en ese directorio.
                                 Universidad Autónoma de Nayarit                             5
Sistemas Operativos I                                                           Unidad 6




      Generalmente, si los usuarios intentan el acceso a un archivo que tiene un ACL ligado,
y ellos no aparecen en cualquier parte en la lista, la máscara de la protección normal es
entonces usada para tomar la último decisión sobre el tipo de acceso (si los hay) a ser
permitido. Es a menudo útil ligar correspondientemente la entrada a la cola de la ACL,
asegurando así que la máscara de la protección normal nunca sea consultada.
      El problema principal con ACLs es que ellos suben constantemente una cantidad
grande de espacio, y baja lento el accesos a los archivos; a menos que aumente la
flexibilidad es esencial que este método no deba probablemente usarse.
      Otra técnica, primero usada en MULTICS (Organick, 1972) es de un propietario que
permite a otros usuarios crear ligas en sus UFDs a entradas dentro de su propio UFD. La
figura 6.3 Muestra como el usuario FRED que tiene una liga a una entrada de archivo en el
UFD que pertenece a otro usuario JIM. La liga le permite a FRED acceder al archivo
correspondiente perteneciente a JIM. El UFD de JIM contiene una lista de todos los usuarios
a quienes el permite hacer cada liga. La gran desventaja de este método es que cuando un
archivo se anula todos las ligas también son borradas, lo cual significa que el sistema debe
tener una forma de encontrar de donde son todos las ligas.
      Un sistema similar se usa en UNIX bajo el nombre de ligadura (Hard Link); aquí la liga
esta eficazmente direccionado al archivo en lugar que a una entrada UFD y esta liga es
indispensable de la entrada original UFD. Un contador mantiene el número de ligas de un
archivo, y el archivo es borrado solo cuando el contador diminuye a cero. El acceso al
archivo es controlado por permisos ligados a cada archivo en lugar de a cada entrada UFD.
Las ligaduras son útiles, pero requiere escriba el acceso al directorio en que el archivo
aparece y ellos no pueden operar entre los directorios y archivos que residen en los discos
lógicos separados (por que una liga a un archivo puede no existir en un disco que no esta
disponible cuando el archivo es borrado).


                                 Universidad Autónoma de Nayarit                           6
Sistemas Operativos I                                                              Unidad 6

      Más tarde la versión de UNIX complementa de está manera ligaduras con ligas
simbólicas. Hay directorios especiales de entradas que simplemente contienen como un
objetivo, el nombre de archivo al cual la liga se refiere; no hay ninguna liga hacia atrás, por
que lo peor que puede pasar es que la liga pueda a puntar a un archivo que ya no existe. En
caso semejante, un mensaje de simple error es suficiente ya que no hay peligro a la
integridad de la estructura de fabricación del sistema de manejo de archivo.
      Resumiendo las técnicas anteriores representan distintas soluciones alternativas a los
problemas de la seguridad ligada al uso compartido de archivos. En general, cuanto más
flexible sea el método adoptado, mayor espacio se adoptara en los UFDs y más tiempo se
empleará para llevar acabo un acceso.
6.2.2 Organización de la memoria secundaria
     Como ya se mencionó, el espacio de almacenamiento de archivos está constituido por
bloques de tamaño fijo. Como el tamaño de los archivos es variable, habrá que disponer de
algún tipo de técnica de almacenamiento dinámico tanto como para los archivos como para
el espacio libre. Hay varias formas de organizar los bloques dentro de un archivo de las
cuales a continuación vamos a describir cuatro:
6.2.3 Archivos continuos
     Todos los bloques en el archivo son adyacentes (es decir, que tienen los números
consecutivos) (figura 6.4). La entrada de UFD para el archivo apunta al primer bloque, y
también contiene el tamaño del archivo. Hay poco sobre el almacenamiento elevado; el total
de cada bloque se usa para retener los datos del usuario.
      Este es el método más simple de organización; a veces se usa en pequeños sistemas
de usuarios únicos y computadoras personales. Es fácil de implementar pero padece la
fragmentación; como los
archivos son creados y
borrados, el espacio libre
se irrumpe a en pedazos
pequeños, ninguno de los
cuales      pueden        ser
suficientemente       grande
para retener el archivo
más       pequeño.        Es
necesario            realizar
compactación regular que
mueve       los     archivos
alrededor para unir el
espacio libre en uno o más
áreas     utilizables.     La
compactación
normalmente tiene que
tener lugar en un quieto
sistema de manejo de archivos, que previene el uso de esta técnica para todos excepto al
sistema de usuario único. Es difícil agregar o borrar bloques, en medio de un archivo, ya que
esto implica el movimiento de todos los datos siguientes. Hay también problemas unidos a la
asignación eficaz de espacio en ocasiones cuando no es conocido, en el momento que el
primer bloque es asignado, el tamaño final de un archivo debe ser asignado.

                                  Universidad Autónoma de Nayarit                             7
Sistemas Operativos I                                                            Unidad 6

      A pesar de estos problemas, los archivos continuos tienen algunas ventajas. Primero,
ellos presentan una manera sumamente elástica de organización de los datos; el daño a un
solo bloque da como resultado la pérdida de datos. Además, cualquier bloque puede
accederse al azar por el uso de aritmética simple, hacer archivos continuos es una buena
opción para aplicaciones de bases de datos dónde algún tipo de estructura adicional puede
ser necesitada. Por que de este archivo continuo son frecuentemente incluidos como un
método alternativo en otros sistemas de archivación para ser usado cuando especialmente
se requiera.


6.2.4 Encadenamiento de bloques
      Se utiliza una palabra en cada bloque del archivo como apuntador al bloque siguiente
(ver la figura 6.5). En el UFD se guarda el apuntador al primer elemento de la cadena. El
espacio empleado según este esquema es de una palabra por cada bloque de cada archivo.
      Un inconveniente de este método de encadenamiento es el gran número de accesos al
disco que son necesarios para encontrar el final del archivo. Ellos puede ser particularmente
incómodo si hay que borrar este archivo y volver el espacio que ocupa a una lista de espacio
libre ya que la modificación de apuntadores que es necesaria para ello requiere el
conocimiento de la posición final del archivo. Por esta razón es por lo cual encada posición
del UFD se acostumbra a guardar también la dirección del último bloque del archivo además
de la dirección del primero.
      El lector comprobara que el acceso al archivo deberá ser forzosamente secuencial ya
que un bloque cualquiera sólo puede
alcanzarse recorriendo toda cadena
hasta llegar a él. Este método de
encadenamiento es muy adecuado,
pues, en casos en los que los archivos
deban ser procesados de forma
secuencial. En este caso, el trabajo
que representará el acceder al archivo
se reducirá a la tarea de ir leyendo
bloques sucesivos.


6.2.5 Mapeo de Archivo
     En      este       método     de
encadenamiento de archivos se guarda
el estado del disco en un archivo de
asignación en el cual cada bloque de
este disco vendrá representado por
una palabra. El elemento del UFD
asociado a un archivo determinado
apuntará a la posición del archivo de
asignación que represente el primer
bloque del archivo. Esta posición
apuntará a su vez a la que representa
el    bloque     siguiente     y   así
sucesivamente (ver la figura 6.6).
                                 Universidad Autónoma de Nayarit                            8
Sistemas Operativos I                                                          Unidad 6

     El último bloque de un archivo viene representado por el apuntador nulo. Así pues, el
archivo que se muestra en la figura 6.5 ocupa los bloques 3, 6, 4 y 8 del disco. El espacio
que se emplea con este método es
el de una palabra por cada bloque
de disco.

     Tal como en el caso del
método de encadenamiento de
bloques, el acceso al archivo es
necesariamente secuencial. Como
ayuda de cara a ampliar o bien
borrar un determinado archivo,
puede determinarse en el UFD un
apuntador a la posición del archivo
de asignación que representa el
último bloque del archivo en
cuestión.
     Como que el archivo de
asignación     es      generalmente
demasiado grande para guardarlo en
memoria principal, debe guardarse
en disco como un archivo cualquiera
para poder leer más tarde, cuando
sea necesario, cualquier bloque del
mismo. Ello significa que para leer un archivo de N bloques puede que sean necesarios N
accesos a discos adicionales para leer componentes apropiadas del archivo de asignación.
Este trabajo adicional sólo podrá reducirse si algunas de las posiciones que representan
bloques sucesivos del archivo están en el mismo bloque del archivo de asignación. Por esta
razón, es evidentemente ventajoso mantener el espacio que ocupa cada archivo todo lo
contiguo que sea posible en lugar de permitir que este archivo se encuentre disperso por
todo el disco.

6.2.6 Bloques de índices
     Los apuntadores de encadenamiento de cada archivo se guardan en un bloque de
índice en el disco. Si el archivo es grande puede que sean necesarios varios bloques de
índice, cada uno de ellos encadenado al siguiente (ver la figura 7.6). El elemento del UFD
correspondiente al archivo apunta al primer bloque de índice de la cadena. Como el último
bloque de índice de un archivo es muy poco probable que sea utilizado en su totalidad, el
espacio que se empleará según este método es algo más de una palabra por cada bloque
del archivo. El espacio utilizado para el caso de archivos pequeños es proporcionalmente
mayor que para el caso de archivos mayores.
     La gran ventaja de los bloques de índice es que no es necesario acceder al archivo de
forma secuencial: puede accederse de forma aleatoria a cualquier bloque, simplemente
especificando el nombre del archivo y un offset en el bloque de índices. Este método de
almacenamiento de archivos conduce, así pues, a archivos dotados de una estructura interna
y en los que se puede acceder de forma independiente a los distintos elementos que los
componen.

                                Universidad Autónoma de Nayarit                           9
Sistemas Operativos I                                                              Unidad 6

     El tiempo empleado de más en el acceso al archivo es reducido: el primer acceso hace
que se deba leer el bloque de índices pero posteriores accesos no representan ninguna
pérdida adicional de tiempo a menos que sean necesarios bloques de índice distintos. Sin
embargo, el añadir o borrar bloques en medio del archivo implica una reorganización de los
apuntadores en los bloques índices. Ello puede representar una operación larga y significa
que este método de almacenamiento no es adecuado en el caso de archivos que cambien
frecuentemente.
      Vamos hacer notar de paso que en cada uno de los métodos expuestos puede
identificarse el final de cada archivo mediante una marca espacial que coloque en un lugar
adecuado del último bloque. Ello puede llevarse a cabo en cualquier archivo en el que se
pueda definir una marca única que no pueda interpretarse como un dato. Así por ejemplo, la
marca de fin de archivo para archivos de carácter podría ser una configuración de bits que no
representase carácter alguno. Sin embargo, no puede definirse ninguna marca de este tipo
para archivos binarios ya que, en este caso, todas las configuraciones de bits corresponden
a datos válidos. En este caso es necesario guardar la longitud del archivo (en palabras o
bytes) como una componente adicional del campo que tenga asignado el archivo en el UFD
(esto constituye, en cualquier caso, una buena idea ya que puede constituir una
comprobación adicional frente a errores en el archivo).
      Como observación final sobre el encadenamiento de bloques hemos de destacar que
un determinado sistema puede soportar varias formas de encadenamiento, particularmente si
algunos de los archivos deben ser accedidos de forma secuencial y otros de forma no-
secuencial. El tipo de encadenamiento necesario puede especificarlo el usuario al crear el
archivo, tomando el sistema un tipo por defecto si no se especifica lo contrario.
      Un aspecto igualmente importante de la organización de la memoria secundaria es la
gestión del espacio libre. Un posible método consiste en considerar los bloques libres como
constituyentes de un archivo especial, encadenándolos entre si mediante algunas de las
técnicas descritas anteriormente. Si se emplea la técnica de bloque de índice todas las
operaciones que involucren a una cadena libre (es decir, asignar o devolver bloques libres)
deberán tener lugar cerca de la cola, ya que el llevarlas a cabo cerca de la cabecera
involucraría la distribución de gran cantidad de apuntadores. Si se utiliza la técnica del
encadenamiento de bloques o bien la del archivo de asignación, estas operaciones podrán
tener lugar en cualquiera de los extremos de la cadena. La técnica del bloque de índice
presenta el inconveniente adicional de que cuando se asignan o devuelven N bloques hay
que borrar o bien añadir N apuntadores en el último bloque de índice. Por el contrario sólo
hay que modificar dos apuntadores si se emplea alguna de las otras dos técnicas, sin que
importe cuántos bloques se asignan o se devuelvan (así, por ejemplo, cuando hay que
incorporar bloques al final de la cadena libre, los dos apuntadores que hay que cambiar son
el del último bloque de la cadena original, que debe sustituirse por el del primer bloque
añadido, y el del directorio del sistema que deberá apuntar al final de la nueva cadena).
       Una forma distinta de memorizar el espacio libre es utilizando un mapeo de bits, no es
más que una zona de memoria en la que cada bit representa cada bloque de disco. Si uno de
estos bloques está libre, el correspondiente bit estará a cero. Si el bloque está siendo
utilizado el bit correspondiente estará a uno. Para hallar N bloques libres sólo hay que buscar
en el mapeo de bits los primeros N bits que estén a cero y llevar a cabo a continuación un
simple cálculo para obtener las correspondientes direcciones de los bloques.




                                  Universidad Autónoma de Nayarit                             10
Sistemas Operativos I                                                            Unidad 6




      En algunos casos el mapeo de bits puede ser demasiado grande para guardarlo de
forma conveniente en memoria. En estos casos puede guardarse en memoria secundaria,
dejando sólo parte del mismo en la memoria principal. Esta parte podrá utilizarse para todas
las asignaciones y cuando esté llena (o sea, cuando todos sus bits estén a uno) podrá
intercambiarse por otra que esté en la memoria secundaria. La liberación del espacio libre
supone recuperar la parte del mapeo de bits que corresponda a los bloques liberados,
poniendo los bits adecuados a cero. Ello puede representar un movimiento frecuente del
mapeo de bits, aunque este problema pueda reducirse metiendo una lista de todos los
bloques devueltos, y utilizándola para actualizar el mapeo de bits cada vez que se traiga una
nueva zona del mismo. Está técnica debe aplicarse con cuidado de forma que, en el caso de
un fallo del disco, el estado de un mapeo de bits siga siendo consistente con el espacio
asignado.
     La elección del tamaño de los bloques la lleva a cabo generalmente el diseñador del
hardware (constituyen una notable excepción las series 370 de IBM en las cuales el usuario
puede escoger un tamaño distinto para cada archivo). Esta elección se lleva a cabo de
acuerdo con los criterios siguientes:
     1. La pérdida de espacio que se produce como consecuencia de que algunos bloques
     no están llenos. Aumentará con el tamaño del bloque.
     2. La pérdida de espacio consecuencia del almacenamiento de los apuntadores de las
     cadenas. Cuantos más pequeños sean los bloques, más apuntadores serán necesarios.
     3. La unidad que emplee el periférico de almacenamiento para          transferir
     información a la memoria principal. El tamaño del bloque debería ser un múltiplo de
     esta unidad con el fin de utilizar plenamente cada transferencia de datos.

                                 Universidad Autónoma de Nayarit                            11
Sistemas Operativos I                                                              Unidad 6

     4. La cantidad de memoria necesaria para cada operación de lectura o escritura en un
     archivo. Dependiendo del método empleado en la organización del disco puede haya
     que encontrar espacio en memoria para el bloque de índice actual, o bien para el
     bloque del archivo de asignación así como para el bloque leído o escrito.

       Los tamaños típicos de bloques están comprendidos entre 512 y 2048 bytes. La
estrategia de asignación de espacio pueden variar en complejidad, desde las más sencillas
(utilizar el primer bloque de la cadena de bloques libres, o bien el primer bloque en el mapeo
de bits) a las más sofisticadas (utilizar el bloque que minimice el número de movimientos del
cabezal al leer el archivo). El tiempo de búsqueda que hay que invertir para leer un archivo
cuyos bloques se encuentren dispersos por todo el disco puede ser muy grande y puede
conducir a la saturación del canal del disco. Este tiempo puede reducirse mediante la
estrategia apuntada anteriormente o bien por el procedimiento de recorrer de forma periódica
la estructura de archivos concatenando éstos todo lo que sea.

6.3 Mecanismos de protección

6.3.1 Integridad del sistema de archivación

     Desde el momento en que el contenido de unos archivos puede representar el trabajo
de varios meses o bien puede consistir en una información de carácter irremplazable, es
esencial que un sistema de archivación disponga de mecanismos adecuados de
salvaguardia y recuperación en el caso no poco probable de un error del hardware o bien del
software. Ello significa que el sistema debe mantener copias duplicadas de todos los archivos
de forma que éstos puedan reemplazarse en el caso de producirse uno de los fallos
apuntados anteriormente.

      Hay dos formas principales de hacer copias de seguridad de archivos, la primera de las
cuales (y la más sencilla) recibe el nombre de copia de seguridad periódica (o masiva).
Intervalos fijos de tiempo el contenido de todos los archivos se guarda en algún medio –
normalmente sobre cintas magnéticas-pudiéndose reponer en caso de error todos los
archivos en el estado en el que se encontraban al llevarse a cabo la última de estas copias.
Archivos individuales que se hayan borrado por equivocación pueden recuperarse a costa de
explorar toda la cinta en la que se realizó la copia de seguridad. Los inconvenientes de este
método son:
     1. El sistema de archivación debe ponerse fuera de servicio mientras dure la operación
     de copiado. Una alternativa consiste en no copiar los archivos que estén abiertos para
     escritura.
     2. La copia emplea normalmente mucho tiempo (de 20 minutos a 2 horas, dependiendo
     del tamaño del sistema y de la velocidad de los transportes de cinta). Ellos significa que
     no puede llevarse a cabo esta operación de copia muy a menudo, lo cual implica a su
     vez que un archivo que haya sido salvaguardado de esta forma, puede muy bien estar
     obsoleto.

     La segunda técnica más sofisticada que la anterior, se denomina copia de seguridad
incremental (Fraser, 1969). Según ella se guarda sólo la información que se haya modificado
desde el último proceso de copia.


                                  Universidad Autónoma de Nayarit                             12
Sistemas Operativos I                                                              Unidad 6

     Ellos equivale a decir que en cada ocasión sólo se almacenaran los archivos que
hayan sido creados o bien modificados junto con los elementos del directorio que lleven
asociados. Ello representa un volumen bastante más reducido de información, de ahí que
este proceso de copia pueda llevarse a cabo mucho más frecuentemente que el anterior.

     Con el fin de poder determinar que archivos hay que copiar en cada ocasión se pondrá
a uno un indicador en la componente del directorio asociada a un archivo siempre que éste
sea modificado, volviéndose a poner a cero, por el contrario, al ser copiado.

       Con el fin de que el proceso de copia no tenga que examinar todos los elementos del
directorio puede utilizarse encada UFD un indicador global que señale si alguno de los bits
individuales de este UFD está a uno. Como que el proceso de copiado ignorará todos los
archivos cuyos indicadores estén a cero. – lo que incluye todos los archivos que estén siendo
utilizados – podrá utilizarse un paralelo con las tares habituales de ordenador.

      Incluso es posible, tal como ocurre en MULTICS, que el proceso de copia tenga
asignada un baja prioridad y esté activo siempre en la máquina, buscando continuamente
información que haya sido modificada.

      Los principales inconvenientes de la copia incremental son la gran cantidad de datos
que habitualmente se generan así como la complejidad de la rutina de recuperación de la
información almacenada. Después de un fallo en el sistema la información deberá
recuperarse a partir de la secuencia de sucesos grabados en la cinta de seguridad.

      Estas cintas deben leerse según un orden cronológico inverso, restaurándose el
sistema de archivación hasta llegar al momento en que se hizo la última copia de seguridad
periódica (estas copias de seguridad periódicas serán escasas, llevándose a cabo
típicamente una vez a la semana). Durante esta operación el proceso de recuperación coge
de las cintas de seguridad sólo aquellos archivos que no hayan sido ya restaurados de forma
que las versiones recientes no se vean sustituidas por las versiones más antiguas.

      Finalmente se utilizará la cinta de la última copia de seguridad realizada para completar
la operación de recuperación de los archivos. Este procedimiento es mucho mejor que el de
empezar con la cinta de la copia de seguridad periódica y seguir el orden cronológico de las
copias increméntales ya que así no se restaura información redundante. Hay que destacar
que cualquiera que sea el método de copia empleado, la recuperación del sistema de
archivación constituye una buena oportunidad para compactar estos archivos en bloques
contiguos. Ello reduce el tiempo empleado en su acceso a costa de alargar ligeramente la
rutina de recuperación.
6.3.2 Apertura y cierre de archivos
     Cuando se asocia un stream de E/S a un archivo del sistema operativo debía tomar
nota del periférico y de la posición donde estuviese almacenado este archivo. Este proceso
recibe el nombre de apertura del archivo.
       El proceso inverso, el de cierre, puede llevarse a cabo de forma explícita una vez
realizadas todas las E/S al mismo bien de forma implícita al concluir el proceso que estuviese
utilizando este archivo.

                                  Universidad Autónoma de Nayarit                             13
Sistemas Operativos I                                                               Unidad 6

      Para implementar estas operaciones necesitamos en el sistema operativo dos rutinas
de la forma:


abrir (nombre de archivo, modo) cerrar (nombre de archivo)


donde nombre de archivo corresponde al nombre del archivo a abrir o cerrar y modo
representa el tipo de acceso deseado (por ejemplo, leer, escribir o bien crear). Las
operaciones que lleva a cabo abrir son:


   •   Analizar el componente asignado al archivo en el directorio.
   •   Comprobar que la operación solicitada provenga de un usuario que tenga los
       privilegios necesarios para llevar a cabo el acceso en el modo especificado.
   •   Llevar a cabo las verificaciones necesarias para comprobar si el archivo esta abierto
       ya para lectura (posiblemente por obra de oto proceso) ya que entonces no podrá
       abrirse ahora para escritura. Si el archivo está abierto ya para escritura, no podrá
       abrirse en absoluto. Este tipo de comprobaciones van a comentarse en breve.
   •   Determinar el periférico y la posición donde está almacenado el archivo. Si el archivo
       debe ser creado, la posición vendrá determinada por la rutina de asignación de
       espacio.
   •   Crear un descriptor del archivo que contenga toda la información relevante del mismo
       por lo que respecta a las transferencias de datos que se vayan a producir. El
       descriptor del archivo, es utilizado por las rutinas de E/S como fuente de información
       para elaborar las peticiones de E/S, evitando así la necesidad de recurrir a la rutina de
       apertura para cada transferencia de datos que involucre al archivo.

   La información que debe incluir el descriptor del archivo es:
   •   el nombre del archivo,
   •   la dirección del descriptor del periférico en el cual esta almacenado el archivo,
   •   la posición del primer bloque del archivo,
   •   la posición del siguiente bloque a leer o escribir (suponiendo que el acceso sea
       secuencial),
   •   el modo de acceso.

      Las comprobaciones de lectura/escritura a las que nos referíamos en la descripción de
la rutina de apertura pueden implementarse incluyendo dos campos adicionales en el
elemento asociado a cada archivo en el directorio. El primero es un bit de escritura que se
activará siempre que el archivo para escritura. El segundo es una cuenta de usuarios que
registrará en cada momento el número de usuarios que tenga abierto el archivo para lectura.
      Un proceso podrá abrir un archivo para leer solo si el bit de escritura está a cero,
pudiéndolo abrir para escribir sólo si tanto el bit de escritura está a cero, pudiéndolo abrir
para escribir solo si tanto el bit de escritura como la cuenta de usuarios están a cero.
Lamentablemente esta técnica presenta el problema de que varios procesos intenten abrir o
cerrar el mismo archivo a la vez, efectuando cambios simultáneos en la correspondiente
componente del directorio.


                                  Universidad Autónoma de Nayarit                              14
Sistemas Operativos I                                                               Unidad 6

     Ello puede solucionarse escribiendo las rutinas abrir, y cerrar como secciones críticas
cada una de ellas delimitada por el mismo semáforo de exclusión mutua, aunque ello
presente el inconveniente grave de que si se interrumpe un proceso en el momento en que
abra o cierre un archivo estas operaciones dejarán de estar disponibles para los de más
procesos.

       Una alternativa consiste en formar una lista con los descriptores de todos los archivos
que estén abiertos en cada periférico. El descriptor del periférico en cuestión apuntará a esta
lista, lista que inspeccionará la rutina de apertura cuando haya que abrir un archivo para ver
si existe para este archivo un descriptor, y si existe, qué modo de acceso señala. La rutina
rechazará abrir el archivo a menos que las restricciones de lectura/escritura se vean
satisfechas. Puede emplearse un semáforo de exclusión mutua para proteger esta lista del
acceso simultáneo por parte del proceso que deseen abrir o cerrar el archivo al mismo
tiempo.
       El inconveniente de este procedimiento estriba en el tiempo empleado en inspeccionar
la lista, lista que en un sistema de acceso múltiple grande puede llegar a contener fácilmente
100 descriptores. Este tiempo es particularmente critico desde el momento en que esta lista
puede ser inspeccionada por un solo proceso a la vez. Si este proceso es interrumpido los
demás procesos no podrán acceder a la lista en cuestión.
      Una solución parcial a estos problemas consiste en dividir cada descriptor de archivo en
dos estructuras independientes: un descriptor central para cada archivo abierto y un
descriptor local para cada proceso que utilice un determinado archivo. Estos descriptores
locales se crean cada vez que un proceso abre un archivo, apuntando todos los descriptores
locales asociados a un determinado archivo al descriptor central del mismo. Los descriptores
centrales de archivo están asociados al descriptor del periférico correspondiente (ver la figura
6.7). un descriptor central de un archivo contiene toda la información que es comun a todos
los procesos que utilicen este archivo, a saber:
   •   el nombre del archivo,
   •   la dirección del descriptor del periférico en la cual esta almacenado el archivo,
   •   la posición del primer bloque del archivo,
   •   la cuanta de usuarios,
   •   el bit de escritura del archivo,

un descriptor local de archivo contiene la información que es particular del proceso que utiliza
el archivo en cuestión, esto es:
   •   la poción del siguiente bloque al leer o escribir,
   •   el modo de acceso,

más un apuntador al descriptor central del archivo. La utilización de los descriptores centrales
elimina el almacenamiento de información duplicada en descriptores separados y reduce la
longitud de la lista de descriptores asociada a cada periférico. Reduce también el trabajo que
deben efectuar las rutinas abrir y cerrar al buscar en la lista de descriptores. Lo que es más
importante es que permite aplicar la exclusión mutua a cada descriptor por separado en lugar
de tener que hacerlo a la lista como un todo, evitando así los peligros de cuellos de botella
que mencionábamos anteriormente. El semáforo de exclusión mutua puede guardarse en el
descriptor central de cada archivo.

                                   Universidad Autónoma de Nayarit                             15
Sistemas Operativos I                                                             Unidad 6

      Una variante de esta técnica (Courtois et alt.,1971) consiste en sustituir el bit de
escritura del descriptor central del archivo por otro semáforo w. Se escriben entonces las
rutinas abrir y cerrar de forma que incluyan los siguientes trozos de código:


 Abrir Cerrar

 si modo = lectura entonces
 inicio wait (mutex);
    cuentaus :=cuentaus + 1
    si cuentaus = 1 entonces
       wait (w);
    signal (mutex)

                                              si modo = lectura entonces
                                              inicio wait (mutex);
                                                 cuentaus :=cuentaus - 1
                                                 si cuentaus = 0 entonces
                                                    signal (w);
                                                 signal (mutex)
 final final
 de lo contrario wait (w) de lo contrario signal (w)



     De acuerdo con estas variantes aquellas peticiones de acceso que sean rechazadas se
colocarán de forma implícita en la cola del semáforo w, mientras que en la versión original el
diseñador del sistema mantenía la libertad de elegir entre colocar estas peticiones en la cola
o no, dependiendo de la aplicación.
      La operación de la rutina cerrar es relativamente sencilla. Consiste en borrar el
descriptor del archivo y decrementar la cuenta de usuarios en el descriptor central del mismo.
Si la cuanta de usuarios es cero el descriptor central también se borra y el directorio es
actualizado, en caso de que ello sea necesario (si, por ejemplo, el archivo fue creado).
      El borrado de un archivo puede considerarse como una llamada a abrir con el adecuado
parámetro de modo. Ello presenta, sin embargo, el inconveniente de que si el archivo ya está
abierto, tal como será frecuente que ocurra con archivos de librería, la petición de borrado
será rechazada. Ellos hace que sea difícil la sustitución de estos archivos. Una forma de
eludir este problema consiste en incluir en cada descriptor central de archivo un bit de
<<borrado pendiente>> que será activado siempre que se intente borrar un archivo abierto.
La rutina cerrar comprobará el valor de este bit: si está a uno y la cuenta de usuario llega a
cero, puede borrarse el archivo. La operación de borrado se verá acelerada si se hace que la
rutina abrir rechace acceder a un archivo cuyo bit de borrado pendiente esté activado.




                                 Universidad Autónoma de Nayarit                             16
Sistemas Operativos I                                     Unidad 6




                        Universidad Autónoma de Nayarit              17

Más contenido relacionado

La actualidad más candente

Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosdiegorbravi
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoriapuracastillo
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfipuracastillo
 
A D M I N I S T R A D O R D E A R C H I V O S
A D M I N I S T R A D O R  D E  A R C H I V O SA D M I N I S T R A D O R  D E  A R C H I V O S
A D M I N I S T R A D O R D E A R C H I V O Smartin
 
Introducción bases de datos
Introducción bases de datosIntroducción bases de datos
Introducción bases de datosJymmy Guevara
 
Unidad 3 el administrador de memoria
Unidad 3 el administrador de memoriaUnidad 3 el administrador de memoria
Unidad 3 el administrador de memoriacoffeejimenez
 
Quasi - Sistemas Gestores de Bases de Datos
Quasi - Sistemas Gestores de Bases de DatosQuasi - Sistemas Gestores de Bases de Datos
Quasi - Sistemas Gestores de Bases de Datosdegarden
 

La actualidad más candente (15)

Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
Base de datos guia 1
Base de datos guia 1Base de datos guia 1
Base de datos guia 1
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Gestiond memoria-pnfi
Gestiond memoria-pnfiGestiond memoria-pnfi
Gestiond memoria-pnfi
 
A D M I N I S T R A D O R D E A R C H I V O S
A D M I N I S T R A D O R  D E  A R C H I V O SA D M I N I S T R A D O R  D E  A R C H I V O S
A D M I N I S T R A D O R D E A R C H I V O S
 
Introducción bases de datos
Introducción bases de datosIntroducción bases de datos
Introducción bases de datos
 
Preguntas sistemas operativos
Preguntas sistemas operativosPreguntas sistemas operativos
Preguntas sistemas operativos
 
Arki sbd
Arki sbdArki sbd
Arki sbd
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Gestión Memoria Principal
Gestión Memoria PrincipalGestión Memoria Principal
Gestión Memoria Principal
 
Unidad 3 el administrador de memoria
Unidad 3 el administrador de memoriaUnidad 3 el administrador de memoria
Unidad 3 el administrador de memoria
 
Quasi - Sistemas Gestores de Bases de Datos
Quasi - Sistemas Gestores de Bases de DatosQuasi - Sistemas Gestores de Bases de Datos
Quasi - Sistemas Gestores de Bases de Datos
 
Archivos Distribuidos
Archivos DistribuidosArchivos Distribuidos
Archivos Distribuidos
 

Destacado

Diseño y programación de bases de datos con sql server 2008 (ejemplo)
Diseño y programación de bases de datos con sql server 2008 (ejemplo)Diseño y programación de bases de datos con sql server 2008 (ejemplo)
Diseño y programación de bases de datos con sql server 2008 (ejemplo)La Positiva Seguros
 
Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1Julián Castiblanco
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratoriofreddy Fred
 
Programacion con SQL Server 2005
Programacion con SQL Server 2005Programacion con SQL Server 2005
Programacion con SQL Server 2005brobelo
 
Ejercicios De Sql (actualizado)
Ejercicios De Sql (actualizado)Ejercicios De Sql (actualizado)
Ejercicios De Sql (actualizado)capver digital
 
Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejasalexmerono
 
Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sqlJulian Benavidez
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLEdgar Sandoval
 

Destacado (11)

Base de datos
Base de datosBase de datos
Base de datos
 
Diseño y programación de bases de datos con sql server 2008 (ejemplo)
Diseño y programación de bases de datos con sql server 2008 (ejemplo)Diseño y programación de bases de datos con sql server 2008 (ejemplo)
Diseño y programación de bases de datos con sql server 2008 (ejemplo)
 
Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1Taller Consultas Básicas SQL Server No 1
Taller Consultas Básicas SQL Server No 1
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratorio
 
Programacion con SQL Server 2005
Programacion con SQL Server 2005Programacion con SQL Server 2005
Programacion con SQL Server 2005
 
Taller Básico Sentencias SQL
Taller Básico Sentencias SQL Taller Básico Sentencias SQL
Taller Básico Sentencias SQL
 
Ejercicios De Sql (actualizado)
Ejercicios De Sql (actualizado)Ejercicios De Sql (actualizado)
Ejercicios De Sql (actualizado)
 
Sql Consultas MáS Complejas
Sql Consultas MáS ComplejasSql Consultas MáS Complejas
Sql Consultas MáS Complejas
 
Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sql
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQL
 
Manual sql server parte 1
Manual sql server parte 1Manual sql server parte 1
Manual sql server parte 1
 

Similar a Unidad6 (20)

YENIFER OLIVO.
YENIFER OLIVO.YENIFER OLIVO.
YENIFER OLIVO.
 
Interfaz del Sistema de Archivos
Interfaz del Sistema de ArchivosInterfaz del Sistema de Archivos
Interfaz del Sistema de Archivos
 
Gestion de archivos taller
Gestion de archivos tallerGestion de archivos taller
Gestion de archivos taller
 
Guia de aprendizaje sistemas de archivos
Guia de aprendizaje sistemas de archivosGuia de aprendizaje sistemas de archivos
Guia de aprendizaje sistemas de archivos
 
Cuestionario guia #1 cepeda corredor
Cuestionario guia #1   cepeda corredorCuestionario guia #1   cepeda corredor
Cuestionario guia #1 cepeda corredor
 
Sistemas de archivos .
Sistemas de archivos .Sistemas de archivos .
Sistemas de archivos .
 
Sistema de archivos
Sistema de archivos Sistema de archivos
Sistema de archivos
 
Sistemas de archivos
Sistemas de archivosSistemas de archivos
Sistemas de archivos
 
Desarrollo de la guía
Desarrollo de la guíaDesarrollo de la guía
Desarrollo de la guía
 
Ensayo (Gestion de Archivos)
Ensayo (Gestion de Archivos)Ensayo (Gestion de Archivos)
Ensayo (Gestion de Archivos)
 
Sistema de archivo. rober cardenas, fabio montejo
Sistema de archivo. rober cardenas, fabio montejoSistema de archivo. rober cardenas, fabio montejo
Sistema de archivo. rober cardenas, fabio montejo
 
Sistema de archivo
Sistema de archivoSistema de archivo
Sistema de archivo
 
ARCHIVO
ARCHIVOARCHIVO
ARCHIVO
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
Sistema de archiv1
Sistema de archiv1Sistema de archiv1
Sistema de archiv1
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 
Sistema de archivos
Sistema de archivosSistema de archivos
Sistema de archivos
 
Sistemas de archivos-Restrepo
Sistemas de archivos-Restrepo Sistemas de archivos-Restrepo
Sistemas de archivos-Restrepo
 
Sistemas de archivos
Sistemas de archivosSistemas de archivos
Sistemas de archivos
 

Más de Universidad Autónoma de Nayarit

Más de Universidad Autónoma de Nayarit (20)

Programa admo. de redes de computadoras
Programa   admo. de redes de computadorasPrograma   admo. de redes de computadoras
Programa admo. de redes de computadoras
 
Administración de Redes de Computadoras - Capitulo 8
Administración de Redes de Computadoras - Capitulo 8Administración de Redes de Computadoras - Capitulo 8
Administración de Redes de Computadoras - Capitulo 8
 
Administración de Redes de Computadoras - Capitulo 7
Administración de Redes de Computadoras - Capitulo 7Administración de Redes de Computadoras - Capitulo 7
Administración de Redes de Computadoras - Capitulo 7
 
Administración de Redes de Computadoras - Capitulo 6
Administración de Redes de Computadoras - Capitulo 6Administración de Redes de Computadoras - Capitulo 6
Administración de Redes de Computadoras - Capitulo 6
 
Administración de Redes de Computadoras - Capitulo 5
Administración de Redes de Computadoras - Capitulo 5Administración de Redes de Computadoras - Capitulo 5
Administración de Redes de Computadoras - Capitulo 5
 
Administración de Redes de Computadoras - Capitulo 4
Administración de Redes de Computadoras - Capitulo 4Administración de Redes de Computadoras - Capitulo 4
Administración de Redes de Computadoras - Capitulo 4
 
Administración de Redes de Computadoras - Capitulo 3
Administración de Redes de Computadoras - Capitulo 3Administración de Redes de Computadoras - Capitulo 3
Administración de Redes de Computadoras - Capitulo 3
 
Administración de Redes de Computadoras - Capitulo 2
Administración de Redes de Computadoras - Capitulo 2Administración de Redes de Computadoras - Capitulo 2
Administración de Redes de Computadoras - Capitulo 2
 
Administración de Redes de Computadoras - Capitulo 1
Administración de Redes de Computadoras - Capitulo 1Administración de Redes de Computadoras - Capitulo 1
Administración de Redes de Computadoras - Capitulo 1
 
Administración de Redes de Computadoras - Capitulo 9
Administración de Redes de Computadoras - Capitulo 9Administración de Redes de Computadoras - Capitulo 9
Administración de Redes de Computadoras - Capitulo 9
 
Programa fundamento de redes de datos
Programa   fundamento de redes de datosPrograma   fundamento de redes de datos
Programa fundamento de redes de datos
 
Fundamento de Redes - Capitulo 2
Fundamento de Redes - Capitulo 2 Fundamento de Redes - Capitulo 2
Fundamento de Redes - Capitulo 2
 
Fundamento de Redes - Capitulo 1
Fundamento de Redes - Capitulo 1Fundamento de Redes - Capitulo 1
Fundamento de Redes - Capitulo 1
 
Fundamento de Redes - Capitulo 9
Fundamento de Redes - Capitulo 9Fundamento de Redes - Capitulo 9
Fundamento de Redes - Capitulo 9
 
Fundamento de Redes - Capitulo 8
Fundamento de Redes - Capitulo 8Fundamento de Redes - Capitulo 8
Fundamento de Redes - Capitulo 8
 
Fundamento de Redes - Capítulo 7
Fundamento de Redes - Capítulo 7 Fundamento de Redes - Capítulo 7
Fundamento de Redes - Capítulo 7
 
Fundamento de Redes - Capitulo 6
Fundamento de Redes - Capitulo 6Fundamento de Redes - Capitulo 6
Fundamento de Redes - Capitulo 6
 
Fundamento de Redes - Capitulo 5
Fundamento de Redes - Capitulo 5 Fundamento de Redes - Capitulo 5
Fundamento de Redes - Capitulo 5
 
Fundamento de Redes - Capitulo 4
Fundamento de Redes - Capitulo 4Fundamento de Redes - Capitulo 4
Fundamento de Redes - Capitulo 4
 
Ejemplo de casos de Estudios CCNA
Ejemplo de casos de Estudios CCNAEjemplo de casos de Estudios CCNA
Ejemplo de casos de Estudios CCNA
 

Unidad6

  • 1. Sistemas Operativos I Unidad 6 6. SISTEMA DE ARCHIVOS 6.1 Manejo del Sistema de archivos 6.1.1 Almacenamiento en línea En algunas aplicaciones relacionadas con la recuperación de información (tal como en los sistemas de gestión de información) es necesario almacenar grandes cantidades de datos de forma que estén siempre accesibles. Incluso en los sistemas de propósito general, donde es muy posible que no sea imprescindible una gran base de datos en la línea, es conveniente que el usuario pueda almacenar programas o datos en el mismo computador en lugar de tener que hacerlo en un medio externo, tal como tarjetas perforadas. En los sistemas de acceso múltiple, en particular, es impensable creer que el usuario pueda arreglárselas sin algún tipo de almacenamiento en línea ya que el único periférico de E/S del que dispone es el terminal que está utilizando. Incluso en los sistemas de batch, el disponer de un sistema de almacenamiento en línea puede mejorar el rendimiento del sistema, reduciendo la dependencia respecto a periféricos lentos. 6.1.2 Utilización compartida de información En algunos sistemas es deseable que los usuarios puedan compartir información. Así, por ejemplo, los usuarios de un sistema de propósito general pueden querer utilizar programas o datos de otros, o, en los casos de sistemas de control de gestión, puede que procesos independientes tengan que utilizar la misma base de datos. En la mayoría de sistemas de propósito general es deseable disponer de un cierto conjunto de programas de librerías, tales como editores, compiladores, o bien rutinas científicas, que pueden estar al alcance de todos los usuarios. Si debe compartirse la información de esta forma, deberá almacenarse en línea durante largos periodos de tiempo. Por razones de economía el almacenamiento a largo plazo se lleva a cabo sobre memoria secundaria, tal como discos, tambores o bien cintas magnéticas, y es la tarea del sistema de Archivación suministrar los medios de organización y acceder a los datos de una forma conveniente para el usuario. La manera en que ellos se lleva a cabo depende, naturalmente, del tipo de información así como del uso que se vaya a hacer de ella: el sistema de Archivación de un sistema de control de gestión es de esperar que sea bastante diferente de un sistema de control de procesos. El usuario de un sistema de propósito general coloca sus datos en archivos de un tamaño arbitrario. Así pues, cada archivo es una agrupación de datos que el usuario ve como una entidad. Puede tratarse de un programa, un conjunto de rutinas o los resultados de un experimento. El archivo constituye la unidad fija que almacena y manipula el sistema de archivación. El medio sobre que se almacenan los archivos se divide habitualmente en bloques de longitud fija (típicamente de 512 a 2048 bytes), dependiendo del sistema de archivación asignar un número adecuado de bloques a cada archivo. Para que sea útil el sistema de archivos, debe: 1. permitir la creación y borrado de archivos. 2. permitir el acceso a los archivos para leer o bien para escribir. 3. llevar a cabo de forma automática el manejo de la memoria secundaria. No debe importar al usuario el lugar en que están ubicados sus archivos en la memoria secundaria. Universidad Autónoma de Nayarit 1
  • 2. Sistemas Operativos I Unidad 6 4. permite hacer referencia a un archivos mediante un nombre simbólico. Como el usuario no conoce –no quiere conocer-la ubicación física de sus archivos, deberá poder referirse a ellos citando sólo sus nombres. 5. proteger los archivos frente a fallos del sistema. Los usuarios serán muy limitados a utilizar un determinado sistema, a menos que estén convencidos de su integridad. 6. permitir el uso compartido de archivos entre usuarios, aunque protegiendo estos mismos archivos del acceso no autorizado por parte de terceros. 6.1.3 Directorios de archivos El problema básico para acceder a un archivo es el de asignar a un nombre simbólico de archivos a una posición física en la memoria secundaria. Esta asignación se lleva a cabo a través de un directorio de archivos (o carpeta) que consiste básicamente en una tabla que contiene información acerca de la situación de los archivos. Como el directorio constituye el mecanismo a través del cual se accede a los distintos archivos, es natural incluir en él algún tipo de protección frente a un acceso no autorizado. Por el momento baste observar que puede establecerse una medida inmediata de seguridad dividiendo el directorio en dos niveles, tal como muestra la figura 6.1. En el nivel superior se encuentra un directorio maestro (MFD, Master File Directory), que contiene por cada usuario del sistema un apuntador a su directorio de usuario (UFD, User File Directory). En el nivel inferior cada UFD contiene los nombres y las posiciones de los archivos de cada usuario. Como sólo puede accederse a cada UFD a través del MFD, puede asegurarse la privacidad de los archivos de un usuario simplemente llevando a cabo una comprobación de identidad a nivel del MFD. Además, es posible que diferentes usuarios utilicen un mismo nombre de archivo, sin que con ello se cree confusión alguna ya que el nombre completo de un archivo cualquiera puede considerarse como la concatenación del nombre (o número) de usuario y el nombre individual del archivo. Así, por ejemplo, el nombre individual del archivo de la figura 6.1 es PROG, siendo su nombre completo FRED.PROG. en el caso de otro archivo que tuviera el mismo nombre individual, para que perteneciese al usuario BILL, su nombre completo seria BILL.PROG. En la práctica no es siempre necesario especificar el nombre completo de un archivo ya que el sistema de archivación puede utilizar la identidad de la misma persona que solicite el acceso como valor por defecto de la primera componente del mismo. Sólo cuando un usuario quiera acceder a un archivo de otro usuario. Deberá especificar el nombre completo. Universidad Autónoma de Nayarit 2
  • 3. Sistemas Operativos I Unidad 6 La información que hay en cada UFD, generalmente incluye: 1. El nombre del archivo. 2. La situación física del archivo en la memoria secundaria. Esta información es función de la forma en que se almacene el archivo. 3. El tipo de archivo (de carácter, binario, reubicable, etc.) Esta información se guarda principalmente en interés del usuario, así como de los programas del sistema, tal como cargadores o editores, que puedan utilizarse para trabajar sobre el archivo en cuestión. Por lo que concierne al sistema de archivación, un archivo es sólo una cadena de bits. 4. Información de control referente al tipo de acceso (por ejemplo, sólo lectura) 5. Información de tipo administrativo (por ejemplo la fecha de la última actualización). Esta información se utiliza con el fin de suministrar datos suficientes al sistema para que pueda efectuar la tarea de guardar copias duplicadas como medida de seguridad frente a fallos de hardware. Muchos sistemas adoptan la estructura de directorio de dos niveles que se ha descrito en líneas anteriores. Otros (como MS-DOS, UNIX y VMS), amplían el concepto de una estructura multinivel en el cual los elementos de cada directorio pueden ser apuntadores a cualquier archivo u otros directorios (ver la figura 6.2). Una estructura de este tipo es útil en el caso en que la información almacenada admita una clasificación en forma de árbol así como en el caso en que los usuarios se agrupen en jerarquías del tipo <<individuos en un equipo de un proyecto de un departamento >>. En este último caso, puede utilizarse un mecanismo jerárquico de protección que haga comprobaciones cada vez más rigurosas a medida que se vaya bajando por el árbol. Al igual que en el caso del sistemas de dos niveles, pueden resolverse los conflictos entre nombres de archivos considerando los nombres completos de los mismos como la concatenación de su nombre individual con los nombres de los directorios que se encuentren en su ruta de acceso. En algunos sistemas, el directorio de archivo maestro es llamado el directorio raíz. Universidad Autónoma de Nayarit 3
  • 4. Sistemas Operativos I Unidad 6 El inconveniente de un sistema multinivel estriba en la longitud del camino que conduce a cada archivo en particular y en el número de accesos a discos que hay que realizar para seguir este camino a través de los diversos directorios. Ello puede solventarse en alguna medida aprovechando la tendencia de sucesivos accesos a archivos a referirse a un mismo directorio. Una vez que se haya establecido un camino a un directorio en particular a través de la estructura en árbol, este directorio puede pasar a considerarse el directorio actual, debiéndose en posteriores referencias a archivos especificar sólo el nombre del archivo individual. Puede llevarse a cabo un cambio en el directorio actual simplemente especificando el nombre completo. Esta técnica se usa en UNIX (Ritchie y Thompson, 1974; Bach, 1986) y MS-DOS (Duncan, 1988), entre muchos otros. Otra consideración eficiente es la manera que la información es organizada dentro de cada directorio. La forma más simple es dividir el directorio en ranuras de tamaños fijos, cada una de las cuales contiene información acerca de un solo archivo. Siempre que un archivo es creado la siguiente ranura vacía es usada; cuando un archivo es borrado, la ranura es liberada. Esto resulta en un directorio el cual puede ser mucho más grande que el necesario, si ha agarrado un gran número de entradas en algun momento en el pasado. Un problema más es el intercambio entre la longitud máxima de nombre de archivo y el resultado del espacio gastado en muchas entradas del directorio. Cuando un archivo esta siendo buscado en el directorio, un simple explorador lineal es a menudo empleado. Naturalmente los directorios grandes no funcionan bien. Varias soluciones han sido empleadas para reducir este problema; uno de estos es el uso de estructuras de árbol para mantener el directorio en forma ordenada. 6.2 Seguridad del sistema de archivos 6.2.1 El uso compartido y los problemas de seguridad El problema de la seguridad de los archivos surge de forma directa del deseo de compartirlos. En un entorno no compartido, puede lograrse esta seguridad llevando a cabo una comprobación de identidad en el MFD. Cuando los archivos deben compartirse, sin embargo, el propietario de los mismos necesita disponer de un medio de especificar que usuarios pueden acceder a sus archivos y cuales no. Además es conveniente que este propietario pueda especificar que tipo de acceso debe permitirse: puede querer que alguno de sus amigos puedan actualizar sus archivos, que otros solo puedan leerlos o bien que otros solo puedan cargarlos para su ejecución. Podemos resumir todo esto diciendo que el propietario debe poder especificar que privilegios de acceso deben tener los otros usuarios. Una forma particularmente sencilla de hacerlo es asociando cada archivo un conjunto de privilegios de acceso que puedan asociarse a su vez a varias clases de usuarios. Estos usuarios pueden ser: 1. El propietario (O) 2. Sus socios o compañeros (G) 3. Otros o el resto del mundo (W) Siendo privilegios de acceso típicos los siguientes: 1. Acceso prohibido (N) 2. Sólo ejecución (E) Universidad Autónoma de Nayarit 4
  • 5. Sistemas Operativos I Unidad 6 3. Sólo lectura (R) 4. Sólo copia (A) 5. Actualización (U) 6. Cambio de protección (P) 7. Borrado (D) Una clave de protección de archivo típica que asignaría el propietario al crear un archivo sería O:RWED, G:RW,W: R lo que significa que propietario podría hacer con el lo que quisiera, los socios podrían copiarlo y el resto de gente solo podría leerlo. La clave de protección del archivo se guarda en el UFD del propietario como parte de la información ligada a este archivo en concreto. Es de destacar que en algunos casos puede que sea conveniente para este propietario asignarse así mismo un privilegio de acceso bajo el fin de protegerse de las consecuencias de sus propios errores. A pesar de ellos, el sistema de archivación debe permitir siempre al que posee los archivos cambiar los privilegios de protección, ya que en caso contrario podría no tener forma de alterar o bien borrar un archivo propio. Una implicación de este método es que debe haber división de la población del usuario en los grupos con el propósito de determinar el acceso a los archivos. Esto se hace frecuentemente para estructurar la identificación para que el usuario conozca al sistema (código de identificación de usuario o UIC) para que un componente indique al grupo a cual usuario pertenece, y el otro proporciona la identidad del usuario individual. Esta técnica es claramente inadecuada cuando difiere para suponer una sociedad requerida para diferentes archivos; algunos sistemas (incluyendo la versión más antigua de UNIX) atacan este problema permitiéndole a un usuario pertenecer a más de un grupo. Una técnica más general que supera las limitaciones jerárquicas de grupos de usuarios, es usar las listas de control de acceso; VMS y Windows NT son ejemplos de sistemas que usan esta técnica. Una lista de control de acceso (o ACL) puede ligarse a un archivo o a un directorio, y proporciona la información completa sobre usuarios autorizados a acceder el objeto especificado. A veces se usa en combinación con los métodos más simples perfilados antes. Una ACL consiste en uno o más entradas de control acceso (o ACEs), cada uno de los cuales especifica el tipo de acceso permitió a un usuario especificado o grupo de usuarios. El orden de la lista es importante desde cuando el acceso es verificado la ACL se busca desde el principio; un usuario puede aparecer implícitamente más de una vez en la misma ACL, y generalmente es la primera entrada correspondiente al usuario la cual es usada para determinar el acceso. Cada entrada de control de acceso consiste en lo siguiente: 1. Una especificación de un usuario o grupo de usuarios a la cual esta ACE aplica. Este podría ser un nombre de usuario, un nombre de grupo, o incluso el nombre de alguna ficha de acceso que es tomada por el usuario para ordenar pedir la entrada; normalmente semejante ficha se concedería por el administrador del sistema. 2. Una definición de los privilegios de acceso acordados por esta ACE; éstos siguen la forma normal (por ejemplo, RWED). 3. Opciones asociadas con el ACE; por ejemplo, en el caso de un ACE ligada a undirectorio, si la ACE debe propagarse a cualquier archivo creado en ese directorio. Universidad Autónoma de Nayarit 5
  • 6. Sistemas Operativos I Unidad 6 Generalmente, si los usuarios intentan el acceso a un archivo que tiene un ACL ligado, y ellos no aparecen en cualquier parte en la lista, la máscara de la protección normal es entonces usada para tomar la último decisión sobre el tipo de acceso (si los hay) a ser permitido. Es a menudo útil ligar correspondientemente la entrada a la cola de la ACL, asegurando así que la máscara de la protección normal nunca sea consultada. El problema principal con ACLs es que ellos suben constantemente una cantidad grande de espacio, y baja lento el accesos a los archivos; a menos que aumente la flexibilidad es esencial que este método no deba probablemente usarse. Otra técnica, primero usada en MULTICS (Organick, 1972) es de un propietario que permite a otros usuarios crear ligas en sus UFDs a entradas dentro de su propio UFD. La figura 6.3 Muestra como el usuario FRED que tiene una liga a una entrada de archivo en el UFD que pertenece a otro usuario JIM. La liga le permite a FRED acceder al archivo correspondiente perteneciente a JIM. El UFD de JIM contiene una lista de todos los usuarios a quienes el permite hacer cada liga. La gran desventaja de este método es que cuando un archivo se anula todos las ligas también son borradas, lo cual significa que el sistema debe tener una forma de encontrar de donde son todos las ligas. Un sistema similar se usa en UNIX bajo el nombre de ligadura (Hard Link); aquí la liga esta eficazmente direccionado al archivo en lugar que a una entrada UFD y esta liga es indispensable de la entrada original UFD. Un contador mantiene el número de ligas de un archivo, y el archivo es borrado solo cuando el contador diminuye a cero. El acceso al archivo es controlado por permisos ligados a cada archivo en lugar de a cada entrada UFD. Las ligaduras son útiles, pero requiere escriba el acceso al directorio en que el archivo aparece y ellos no pueden operar entre los directorios y archivos que residen en los discos lógicos separados (por que una liga a un archivo puede no existir en un disco que no esta disponible cuando el archivo es borrado). Universidad Autónoma de Nayarit 6
  • 7. Sistemas Operativos I Unidad 6 Más tarde la versión de UNIX complementa de está manera ligaduras con ligas simbólicas. Hay directorios especiales de entradas que simplemente contienen como un objetivo, el nombre de archivo al cual la liga se refiere; no hay ninguna liga hacia atrás, por que lo peor que puede pasar es que la liga pueda a puntar a un archivo que ya no existe. En caso semejante, un mensaje de simple error es suficiente ya que no hay peligro a la integridad de la estructura de fabricación del sistema de manejo de archivo. Resumiendo las técnicas anteriores representan distintas soluciones alternativas a los problemas de la seguridad ligada al uso compartido de archivos. En general, cuanto más flexible sea el método adoptado, mayor espacio se adoptara en los UFDs y más tiempo se empleará para llevar acabo un acceso. 6.2.2 Organización de la memoria secundaria Como ya se mencionó, el espacio de almacenamiento de archivos está constituido por bloques de tamaño fijo. Como el tamaño de los archivos es variable, habrá que disponer de algún tipo de técnica de almacenamiento dinámico tanto como para los archivos como para el espacio libre. Hay varias formas de organizar los bloques dentro de un archivo de las cuales a continuación vamos a describir cuatro: 6.2.3 Archivos continuos Todos los bloques en el archivo son adyacentes (es decir, que tienen los números consecutivos) (figura 6.4). La entrada de UFD para el archivo apunta al primer bloque, y también contiene el tamaño del archivo. Hay poco sobre el almacenamiento elevado; el total de cada bloque se usa para retener los datos del usuario. Este es el método más simple de organización; a veces se usa en pequeños sistemas de usuarios únicos y computadoras personales. Es fácil de implementar pero padece la fragmentación; como los archivos son creados y borrados, el espacio libre se irrumpe a en pedazos pequeños, ninguno de los cuales pueden ser suficientemente grande para retener el archivo más pequeño. Es necesario realizar compactación regular que mueve los archivos alrededor para unir el espacio libre en uno o más áreas utilizables. La compactación normalmente tiene que tener lugar en un quieto sistema de manejo de archivos, que previene el uso de esta técnica para todos excepto al sistema de usuario único. Es difícil agregar o borrar bloques, en medio de un archivo, ya que esto implica el movimiento de todos los datos siguientes. Hay también problemas unidos a la asignación eficaz de espacio en ocasiones cuando no es conocido, en el momento que el primer bloque es asignado, el tamaño final de un archivo debe ser asignado. Universidad Autónoma de Nayarit 7
  • 8. Sistemas Operativos I Unidad 6 A pesar de estos problemas, los archivos continuos tienen algunas ventajas. Primero, ellos presentan una manera sumamente elástica de organización de los datos; el daño a un solo bloque da como resultado la pérdida de datos. Además, cualquier bloque puede accederse al azar por el uso de aritmética simple, hacer archivos continuos es una buena opción para aplicaciones de bases de datos dónde algún tipo de estructura adicional puede ser necesitada. Por que de este archivo continuo son frecuentemente incluidos como un método alternativo en otros sistemas de archivación para ser usado cuando especialmente se requiera. 6.2.4 Encadenamiento de bloques Se utiliza una palabra en cada bloque del archivo como apuntador al bloque siguiente (ver la figura 6.5). En el UFD se guarda el apuntador al primer elemento de la cadena. El espacio empleado según este esquema es de una palabra por cada bloque de cada archivo. Un inconveniente de este método de encadenamiento es el gran número de accesos al disco que son necesarios para encontrar el final del archivo. Ellos puede ser particularmente incómodo si hay que borrar este archivo y volver el espacio que ocupa a una lista de espacio libre ya que la modificación de apuntadores que es necesaria para ello requiere el conocimiento de la posición final del archivo. Por esta razón es por lo cual encada posición del UFD se acostumbra a guardar también la dirección del último bloque del archivo además de la dirección del primero. El lector comprobara que el acceso al archivo deberá ser forzosamente secuencial ya que un bloque cualquiera sólo puede alcanzarse recorriendo toda cadena hasta llegar a él. Este método de encadenamiento es muy adecuado, pues, en casos en los que los archivos deban ser procesados de forma secuencial. En este caso, el trabajo que representará el acceder al archivo se reducirá a la tarea de ir leyendo bloques sucesivos. 6.2.5 Mapeo de Archivo En este método de encadenamiento de archivos se guarda el estado del disco en un archivo de asignación en el cual cada bloque de este disco vendrá representado por una palabra. El elemento del UFD asociado a un archivo determinado apuntará a la posición del archivo de asignación que represente el primer bloque del archivo. Esta posición apuntará a su vez a la que representa el bloque siguiente y así sucesivamente (ver la figura 6.6). Universidad Autónoma de Nayarit 8
  • 9. Sistemas Operativos I Unidad 6 El último bloque de un archivo viene representado por el apuntador nulo. Así pues, el archivo que se muestra en la figura 6.5 ocupa los bloques 3, 6, 4 y 8 del disco. El espacio que se emplea con este método es el de una palabra por cada bloque de disco. Tal como en el caso del método de encadenamiento de bloques, el acceso al archivo es necesariamente secuencial. Como ayuda de cara a ampliar o bien borrar un determinado archivo, puede determinarse en el UFD un apuntador a la posición del archivo de asignación que representa el último bloque del archivo en cuestión. Como que el archivo de asignación es generalmente demasiado grande para guardarlo en memoria principal, debe guardarse en disco como un archivo cualquiera para poder leer más tarde, cuando sea necesario, cualquier bloque del mismo. Ello significa que para leer un archivo de N bloques puede que sean necesarios N accesos a discos adicionales para leer componentes apropiadas del archivo de asignación. Este trabajo adicional sólo podrá reducirse si algunas de las posiciones que representan bloques sucesivos del archivo están en el mismo bloque del archivo de asignación. Por esta razón, es evidentemente ventajoso mantener el espacio que ocupa cada archivo todo lo contiguo que sea posible en lugar de permitir que este archivo se encuentre disperso por todo el disco. 6.2.6 Bloques de índices Los apuntadores de encadenamiento de cada archivo se guardan en un bloque de índice en el disco. Si el archivo es grande puede que sean necesarios varios bloques de índice, cada uno de ellos encadenado al siguiente (ver la figura 7.6). El elemento del UFD correspondiente al archivo apunta al primer bloque de índice de la cadena. Como el último bloque de índice de un archivo es muy poco probable que sea utilizado en su totalidad, el espacio que se empleará según este método es algo más de una palabra por cada bloque del archivo. El espacio utilizado para el caso de archivos pequeños es proporcionalmente mayor que para el caso de archivos mayores. La gran ventaja de los bloques de índice es que no es necesario acceder al archivo de forma secuencial: puede accederse de forma aleatoria a cualquier bloque, simplemente especificando el nombre del archivo y un offset en el bloque de índices. Este método de almacenamiento de archivos conduce, así pues, a archivos dotados de una estructura interna y en los que se puede acceder de forma independiente a los distintos elementos que los componen. Universidad Autónoma de Nayarit 9
  • 10. Sistemas Operativos I Unidad 6 El tiempo empleado de más en el acceso al archivo es reducido: el primer acceso hace que se deba leer el bloque de índices pero posteriores accesos no representan ninguna pérdida adicional de tiempo a menos que sean necesarios bloques de índice distintos. Sin embargo, el añadir o borrar bloques en medio del archivo implica una reorganización de los apuntadores en los bloques índices. Ello puede representar una operación larga y significa que este método de almacenamiento no es adecuado en el caso de archivos que cambien frecuentemente. Vamos hacer notar de paso que en cada uno de los métodos expuestos puede identificarse el final de cada archivo mediante una marca espacial que coloque en un lugar adecuado del último bloque. Ello puede llevarse a cabo en cualquier archivo en el que se pueda definir una marca única que no pueda interpretarse como un dato. Así por ejemplo, la marca de fin de archivo para archivos de carácter podría ser una configuración de bits que no representase carácter alguno. Sin embargo, no puede definirse ninguna marca de este tipo para archivos binarios ya que, en este caso, todas las configuraciones de bits corresponden a datos válidos. En este caso es necesario guardar la longitud del archivo (en palabras o bytes) como una componente adicional del campo que tenga asignado el archivo en el UFD (esto constituye, en cualquier caso, una buena idea ya que puede constituir una comprobación adicional frente a errores en el archivo). Como observación final sobre el encadenamiento de bloques hemos de destacar que un determinado sistema puede soportar varias formas de encadenamiento, particularmente si algunos de los archivos deben ser accedidos de forma secuencial y otros de forma no- secuencial. El tipo de encadenamiento necesario puede especificarlo el usuario al crear el archivo, tomando el sistema un tipo por defecto si no se especifica lo contrario. Un aspecto igualmente importante de la organización de la memoria secundaria es la gestión del espacio libre. Un posible método consiste en considerar los bloques libres como constituyentes de un archivo especial, encadenándolos entre si mediante algunas de las técnicas descritas anteriormente. Si se emplea la técnica de bloque de índice todas las operaciones que involucren a una cadena libre (es decir, asignar o devolver bloques libres) deberán tener lugar cerca de la cola, ya que el llevarlas a cabo cerca de la cabecera involucraría la distribución de gran cantidad de apuntadores. Si se utiliza la técnica del encadenamiento de bloques o bien la del archivo de asignación, estas operaciones podrán tener lugar en cualquiera de los extremos de la cadena. La técnica del bloque de índice presenta el inconveniente adicional de que cuando se asignan o devuelven N bloques hay que borrar o bien añadir N apuntadores en el último bloque de índice. Por el contrario sólo hay que modificar dos apuntadores si se emplea alguna de las otras dos técnicas, sin que importe cuántos bloques se asignan o se devuelvan (así, por ejemplo, cuando hay que incorporar bloques al final de la cadena libre, los dos apuntadores que hay que cambiar son el del último bloque de la cadena original, que debe sustituirse por el del primer bloque añadido, y el del directorio del sistema que deberá apuntar al final de la nueva cadena). Una forma distinta de memorizar el espacio libre es utilizando un mapeo de bits, no es más que una zona de memoria en la que cada bit representa cada bloque de disco. Si uno de estos bloques está libre, el correspondiente bit estará a cero. Si el bloque está siendo utilizado el bit correspondiente estará a uno. Para hallar N bloques libres sólo hay que buscar en el mapeo de bits los primeros N bits que estén a cero y llevar a cabo a continuación un simple cálculo para obtener las correspondientes direcciones de los bloques. Universidad Autónoma de Nayarit 10
  • 11. Sistemas Operativos I Unidad 6 En algunos casos el mapeo de bits puede ser demasiado grande para guardarlo de forma conveniente en memoria. En estos casos puede guardarse en memoria secundaria, dejando sólo parte del mismo en la memoria principal. Esta parte podrá utilizarse para todas las asignaciones y cuando esté llena (o sea, cuando todos sus bits estén a uno) podrá intercambiarse por otra que esté en la memoria secundaria. La liberación del espacio libre supone recuperar la parte del mapeo de bits que corresponda a los bloques liberados, poniendo los bits adecuados a cero. Ello puede representar un movimiento frecuente del mapeo de bits, aunque este problema pueda reducirse metiendo una lista de todos los bloques devueltos, y utilizándola para actualizar el mapeo de bits cada vez que se traiga una nueva zona del mismo. Está técnica debe aplicarse con cuidado de forma que, en el caso de un fallo del disco, el estado de un mapeo de bits siga siendo consistente con el espacio asignado. La elección del tamaño de los bloques la lleva a cabo generalmente el diseñador del hardware (constituyen una notable excepción las series 370 de IBM en las cuales el usuario puede escoger un tamaño distinto para cada archivo). Esta elección se lleva a cabo de acuerdo con los criterios siguientes: 1. La pérdida de espacio que se produce como consecuencia de que algunos bloques no están llenos. Aumentará con el tamaño del bloque. 2. La pérdida de espacio consecuencia del almacenamiento de los apuntadores de las cadenas. Cuantos más pequeños sean los bloques, más apuntadores serán necesarios. 3. La unidad que emplee el periférico de almacenamiento para transferir información a la memoria principal. El tamaño del bloque debería ser un múltiplo de esta unidad con el fin de utilizar plenamente cada transferencia de datos. Universidad Autónoma de Nayarit 11
  • 12. Sistemas Operativos I Unidad 6 4. La cantidad de memoria necesaria para cada operación de lectura o escritura en un archivo. Dependiendo del método empleado en la organización del disco puede haya que encontrar espacio en memoria para el bloque de índice actual, o bien para el bloque del archivo de asignación así como para el bloque leído o escrito. Los tamaños típicos de bloques están comprendidos entre 512 y 2048 bytes. La estrategia de asignación de espacio pueden variar en complejidad, desde las más sencillas (utilizar el primer bloque de la cadena de bloques libres, o bien el primer bloque en el mapeo de bits) a las más sofisticadas (utilizar el bloque que minimice el número de movimientos del cabezal al leer el archivo). El tiempo de búsqueda que hay que invertir para leer un archivo cuyos bloques se encuentren dispersos por todo el disco puede ser muy grande y puede conducir a la saturación del canal del disco. Este tiempo puede reducirse mediante la estrategia apuntada anteriormente o bien por el procedimiento de recorrer de forma periódica la estructura de archivos concatenando éstos todo lo que sea. 6.3 Mecanismos de protección 6.3.1 Integridad del sistema de archivación Desde el momento en que el contenido de unos archivos puede representar el trabajo de varios meses o bien puede consistir en una información de carácter irremplazable, es esencial que un sistema de archivación disponga de mecanismos adecuados de salvaguardia y recuperación en el caso no poco probable de un error del hardware o bien del software. Ello significa que el sistema debe mantener copias duplicadas de todos los archivos de forma que éstos puedan reemplazarse en el caso de producirse uno de los fallos apuntados anteriormente. Hay dos formas principales de hacer copias de seguridad de archivos, la primera de las cuales (y la más sencilla) recibe el nombre de copia de seguridad periódica (o masiva). Intervalos fijos de tiempo el contenido de todos los archivos se guarda en algún medio – normalmente sobre cintas magnéticas-pudiéndose reponer en caso de error todos los archivos en el estado en el que se encontraban al llevarse a cabo la última de estas copias. Archivos individuales que se hayan borrado por equivocación pueden recuperarse a costa de explorar toda la cinta en la que se realizó la copia de seguridad. Los inconvenientes de este método son: 1. El sistema de archivación debe ponerse fuera de servicio mientras dure la operación de copiado. Una alternativa consiste en no copiar los archivos que estén abiertos para escritura. 2. La copia emplea normalmente mucho tiempo (de 20 minutos a 2 horas, dependiendo del tamaño del sistema y de la velocidad de los transportes de cinta). Ellos significa que no puede llevarse a cabo esta operación de copia muy a menudo, lo cual implica a su vez que un archivo que haya sido salvaguardado de esta forma, puede muy bien estar obsoleto. La segunda técnica más sofisticada que la anterior, se denomina copia de seguridad incremental (Fraser, 1969). Según ella se guarda sólo la información que se haya modificado desde el último proceso de copia. Universidad Autónoma de Nayarit 12
  • 13. Sistemas Operativos I Unidad 6 Ellos equivale a decir que en cada ocasión sólo se almacenaran los archivos que hayan sido creados o bien modificados junto con los elementos del directorio que lleven asociados. Ello representa un volumen bastante más reducido de información, de ahí que este proceso de copia pueda llevarse a cabo mucho más frecuentemente que el anterior. Con el fin de poder determinar que archivos hay que copiar en cada ocasión se pondrá a uno un indicador en la componente del directorio asociada a un archivo siempre que éste sea modificado, volviéndose a poner a cero, por el contrario, al ser copiado. Con el fin de que el proceso de copia no tenga que examinar todos los elementos del directorio puede utilizarse encada UFD un indicador global que señale si alguno de los bits individuales de este UFD está a uno. Como que el proceso de copiado ignorará todos los archivos cuyos indicadores estén a cero. – lo que incluye todos los archivos que estén siendo utilizados – podrá utilizarse un paralelo con las tares habituales de ordenador. Incluso es posible, tal como ocurre en MULTICS, que el proceso de copia tenga asignada un baja prioridad y esté activo siempre en la máquina, buscando continuamente información que haya sido modificada. Los principales inconvenientes de la copia incremental son la gran cantidad de datos que habitualmente se generan así como la complejidad de la rutina de recuperación de la información almacenada. Después de un fallo en el sistema la información deberá recuperarse a partir de la secuencia de sucesos grabados en la cinta de seguridad. Estas cintas deben leerse según un orden cronológico inverso, restaurándose el sistema de archivación hasta llegar al momento en que se hizo la última copia de seguridad periódica (estas copias de seguridad periódicas serán escasas, llevándose a cabo típicamente una vez a la semana). Durante esta operación el proceso de recuperación coge de las cintas de seguridad sólo aquellos archivos que no hayan sido ya restaurados de forma que las versiones recientes no se vean sustituidas por las versiones más antiguas. Finalmente se utilizará la cinta de la última copia de seguridad realizada para completar la operación de recuperación de los archivos. Este procedimiento es mucho mejor que el de empezar con la cinta de la copia de seguridad periódica y seguir el orden cronológico de las copias increméntales ya que así no se restaura información redundante. Hay que destacar que cualquiera que sea el método de copia empleado, la recuperación del sistema de archivación constituye una buena oportunidad para compactar estos archivos en bloques contiguos. Ello reduce el tiempo empleado en su acceso a costa de alargar ligeramente la rutina de recuperación. 6.3.2 Apertura y cierre de archivos Cuando se asocia un stream de E/S a un archivo del sistema operativo debía tomar nota del periférico y de la posición donde estuviese almacenado este archivo. Este proceso recibe el nombre de apertura del archivo. El proceso inverso, el de cierre, puede llevarse a cabo de forma explícita una vez realizadas todas las E/S al mismo bien de forma implícita al concluir el proceso que estuviese utilizando este archivo. Universidad Autónoma de Nayarit 13
  • 14. Sistemas Operativos I Unidad 6 Para implementar estas operaciones necesitamos en el sistema operativo dos rutinas de la forma: abrir (nombre de archivo, modo) cerrar (nombre de archivo) donde nombre de archivo corresponde al nombre del archivo a abrir o cerrar y modo representa el tipo de acceso deseado (por ejemplo, leer, escribir o bien crear). Las operaciones que lleva a cabo abrir son: • Analizar el componente asignado al archivo en el directorio. • Comprobar que la operación solicitada provenga de un usuario que tenga los privilegios necesarios para llevar a cabo el acceso en el modo especificado. • Llevar a cabo las verificaciones necesarias para comprobar si el archivo esta abierto ya para lectura (posiblemente por obra de oto proceso) ya que entonces no podrá abrirse ahora para escritura. Si el archivo está abierto ya para escritura, no podrá abrirse en absoluto. Este tipo de comprobaciones van a comentarse en breve. • Determinar el periférico y la posición donde está almacenado el archivo. Si el archivo debe ser creado, la posición vendrá determinada por la rutina de asignación de espacio. • Crear un descriptor del archivo que contenga toda la información relevante del mismo por lo que respecta a las transferencias de datos que se vayan a producir. El descriptor del archivo, es utilizado por las rutinas de E/S como fuente de información para elaborar las peticiones de E/S, evitando así la necesidad de recurrir a la rutina de apertura para cada transferencia de datos que involucre al archivo. La información que debe incluir el descriptor del archivo es: • el nombre del archivo, • la dirección del descriptor del periférico en el cual esta almacenado el archivo, • la posición del primer bloque del archivo, • la posición del siguiente bloque a leer o escribir (suponiendo que el acceso sea secuencial), • el modo de acceso. Las comprobaciones de lectura/escritura a las que nos referíamos en la descripción de la rutina de apertura pueden implementarse incluyendo dos campos adicionales en el elemento asociado a cada archivo en el directorio. El primero es un bit de escritura que se activará siempre que el archivo para escritura. El segundo es una cuenta de usuarios que registrará en cada momento el número de usuarios que tenga abierto el archivo para lectura. Un proceso podrá abrir un archivo para leer solo si el bit de escritura está a cero, pudiéndolo abrir para escribir sólo si tanto el bit de escritura está a cero, pudiéndolo abrir para escribir solo si tanto el bit de escritura como la cuenta de usuarios están a cero. Lamentablemente esta técnica presenta el problema de que varios procesos intenten abrir o cerrar el mismo archivo a la vez, efectuando cambios simultáneos en la correspondiente componente del directorio. Universidad Autónoma de Nayarit 14
  • 15. Sistemas Operativos I Unidad 6 Ello puede solucionarse escribiendo las rutinas abrir, y cerrar como secciones críticas cada una de ellas delimitada por el mismo semáforo de exclusión mutua, aunque ello presente el inconveniente grave de que si se interrumpe un proceso en el momento en que abra o cierre un archivo estas operaciones dejarán de estar disponibles para los de más procesos. Una alternativa consiste en formar una lista con los descriptores de todos los archivos que estén abiertos en cada periférico. El descriptor del periférico en cuestión apuntará a esta lista, lista que inspeccionará la rutina de apertura cuando haya que abrir un archivo para ver si existe para este archivo un descriptor, y si existe, qué modo de acceso señala. La rutina rechazará abrir el archivo a menos que las restricciones de lectura/escritura se vean satisfechas. Puede emplearse un semáforo de exclusión mutua para proteger esta lista del acceso simultáneo por parte del proceso que deseen abrir o cerrar el archivo al mismo tiempo. El inconveniente de este procedimiento estriba en el tiempo empleado en inspeccionar la lista, lista que en un sistema de acceso múltiple grande puede llegar a contener fácilmente 100 descriptores. Este tiempo es particularmente critico desde el momento en que esta lista puede ser inspeccionada por un solo proceso a la vez. Si este proceso es interrumpido los demás procesos no podrán acceder a la lista en cuestión. Una solución parcial a estos problemas consiste en dividir cada descriptor de archivo en dos estructuras independientes: un descriptor central para cada archivo abierto y un descriptor local para cada proceso que utilice un determinado archivo. Estos descriptores locales se crean cada vez que un proceso abre un archivo, apuntando todos los descriptores locales asociados a un determinado archivo al descriptor central del mismo. Los descriptores centrales de archivo están asociados al descriptor del periférico correspondiente (ver la figura 6.7). un descriptor central de un archivo contiene toda la información que es comun a todos los procesos que utilicen este archivo, a saber: • el nombre del archivo, • la dirección del descriptor del periférico en la cual esta almacenado el archivo, • la posición del primer bloque del archivo, • la cuanta de usuarios, • el bit de escritura del archivo, un descriptor local de archivo contiene la información que es particular del proceso que utiliza el archivo en cuestión, esto es: • la poción del siguiente bloque al leer o escribir, • el modo de acceso, más un apuntador al descriptor central del archivo. La utilización de los descriptores centrales elimina el almacenamiento de información duplicada en descriptores separados y reduce la longitud de la lista de descriptores asociada a cada periférico. Reduce también el trabajo que deben efectuar las rutinas abrir y cerrar al buscar en la lista de descriptores. Lo que es más importante es que permite aplicar la exclusión mutua a cada descriptor por separado en lugar de tener que hacerlo a la lista como un todo, evitando así los peligros de cuellos de botella que mencionábamos anteriormente. El semáforo de exclusión mutua puede guardarse en el descriptor central de cada archivo. Universidad Autónoma de Nayarit 15
  • 16. Sistemas Operativos I Unidad 6 Una variante de esta técnica (Courtois et alt.,1971) consiste en sustituir el bit de escritura del descriptor central del archivo por otro semáforo w. Se escriben entonces las rutinas abrir y cerrar de forma que incluyan los siguientes trozos de código: Abrir Cerrar si modo = lectura entonces inicio wait (mutex); cuentaus :=cuentaus + 1 si cuentaus = 1 entonces wait (w); signal (mutex) si modo = lectura entonces inicio wait (mutex); cuentaus :=cuentaus - 1 si cuentaus = 0 entonces signal (w); signal (mutex) final final de lo contrario wait (w) de lo contrario signal (w) De acuerdo con estas variantes aquellas peticiones de acceso que sean rechazadas se colocarán de forma implícita en la cola del semáforo w, mientras que en la versión original el diseñador del sistema mantenía la libertad de elegir entre colocar estas peticiones en la cola o no, dependiendo de la aplicación. La operación de la rutina cerrar es relativamente sencilla. Consiste en borrar el descriptor del archivo y decrementar la cuenta de usuarios en el descriptor central del mismo. Si la cuanta de usuarios es cero el descriptor central también se borra y el directorio es actualizado, en caso de que ello sea necesario (si, por ejemplo, el archivo fue creado). El borrado de un archivo puede considerarse como una llamada a abrir con el adecuado parámetro de modo. Ello presenta, sin embargo, el inconveniente de que si el archivo ya está abierto, tal como será frecuente que ocurra con archivos de librería, la petición de borrado será rechazada. Ellos hace que sea difícil la sustitución de estos archivos. Una forma de eludir este problema consiste en incluir en cada descriptor central de archivo un bit de <<borrado pendiente>> que será activado siempre que se intente borrar un archivo abierto. La rutina cerrar comprobará el valor de este bit: si está a uno y la cuenta de usuario llega a cero, puede borrarse el archivo. La operación de borrado se verá acelerada si se hace que la rutina abrir rechace acceder a un archivo cuyo bit de borrado pendiente esté activado. Universidad Autónoma de Nayarit 16
  • 17. Sistemas Operativos I Unidad 6 Universidad Autónoma de Nayarit 17