Unidad6

301 visualizaciones

Publicado el

Unidad VI. de la materia S.O

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
301
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
15
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Unidad6

  1. 1. Sistemas Operativos I Unidad 6 6. SISTEMA DE ARCHIVOS6.1 Manejo del Sistema de archivos6.1.1 Almacenamiento en línea En algunas aplicaciones relacionadas con la recuperación de información (tal como enlos sistemas de gestión de información) es necesario almacenar grandes cantidades dedatos 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, esconveniente que el usuario pueda almacenar programas o datos en el mismo computador enlugar de tener que hacerlo en un medio externo, tal como tarjetas perforadas. En lossistemas de acceso múltiple, en particular, es impensable creer que el usuario puedaarreglárselas sin algún tipo de almacenamiento en línea ya que el único periférico de E/S delque dispone es el terminal que está utilizando. Incluso en los sistemas de batch, el disponerde 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 utilizarprogramas o datos de otros, o, en los casos de sistemas de control de gestión, puede queprocesos independientes tengan que utilizar la misma base de datos. En la mayoría desistemas de propósito general es deseable disponer de un cierto conjunto de programas delibrerías, tales como editores, compiladores, o bien rutinas científicas, que pueden estar alalcance 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 sobrememoria secundaria, tal como discos, tambores o bien cintas magnéticas, y es la tarea delsistema de Archivación suministrar los medios de organización y acceder a los datos de unaforma 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: elsistema de Archivación de un sistema de control de gestión es de esperar que sea bastantediferente de un sistema de control de procesos. El usuario de un sistema de propósito general coloca sus datos en archivos de untamaño arbitrario. Así pues, cada archivo es una agrupación de datos que el usuario ve comouna entidad. Puede tratarse de un programa, un conjunto de rutinas o los resultados de unexperimento. El archivo constituye la unidad fija que almacena y manipula el sistema dearchivación. El medio sobre que se almacenan los archivos se divide habitualmente enbloques de longitud fija (típicamente de 512 a 2048 bytes), dependiendo del sistema dearchivación asignar un número adecuado de bloques a cada archivo. Para que sea útil elsistema 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. 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ólicode archivos a una posición física en la memoria secundaria. Esta asignación se lleva a caboa través de un directorio de archivos (o carpeta) que consiste básicamente en una tabla quecontiene información acerca de la situación de los archivos. Como el directorio constituye elmecanismo a través del cual se accede a los distintos archivos, es natural incluir en él algúntipo de protección frente a un acceso no autorizado. Por el momento baste observar quepuede establecerse una medida inmediata de seguridad dividiendo el directorio en dosniveles, tal como muestra la figura 6.1. En el nivel superior se encuentra un directoriomaestro (MFD, Master File Directory), que contiene por cada usuario del sistema unapuntador a su directorio de usuario (UFD, User File Directory). En el nivel inferior cada UFDcontiene los nombres y las posiciones de los archivos de cada usuario. Como sólo puedeaccederse a cada UFD a través del MFD, puede asegurarse la privacidad de los archivos deun 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 quecon ello se cree confusión alguna ya que el nombre completo de un archivo cualquiera puedeconsiderarse como la concatenación del nombre (o número) de usuario y el nombreindividual del archivo. Así, por ejemplo, el nombre individual del archivo de la figura 6.1 esPROG, siendo su nombre completo FRED.PROG. en el caso de otro archivo que tuviera elmismo nombre individual, para que perteneciese al usuario BILL, su nombre completo seriaBILL.PROG. En la práctica no es siempre necesario especificar el nombre completo de unarchivo ya que el sistema de archivación puede utilizar la identidad de la misma persona quesolicite el acceso como valor por defecto de la primera componente del mismo. Sólo cuandoun usuario quiera acceder a un archivo de otro usuario. Deberá especificar el nombrecompleto. Universidad Autónoma de Nayarit 2
  3. 3. Sistemas Operativos I Unidad 6La 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 enlíneas anteriores. Otros (como MS-DOS, UNIX y VMS), amplían el concepto de unaestructura multinivel en el cual los elementos de cada directorio pueden ser apuntadores acualquier archivo u otros directorios (ver la figura 6.2). Una estructura de este tipo es útil en elcaso en que la información almacenada admita una clasificación en forma de árbol así comoen el caso en que los usuarios se agrupen en jerarquías del tipo <<individuos en un equipode un proyecto de un departamento >>. En este último caso, puede utilizarse un mecanismojerárquico de protección que haga comprobaciones cada vez más rigurosas a medida que sevaya bajando por el árbol. Al igual que en el caso del sistemas de dos niveles, puedenresolverse los conflictos entre nombres de archivos considerando los nombres completos delos mismos como la concatenación de su nombre individual con los nombres de losdirectorios que se encuentren en su ruta de acceso. En algunos sistemas, el directorio dearchivo maestro es llamado el directorio raíz. Universidad Autónoma de Nayarit 3
  4. 4. Sistemas Operativos I Unidad 6 El inconveniente de un sistema multinivel estriba en la longitud del camino que conducea cada archivo en particular y en el número de accesos a discos que hay que realizar paraseguir este camino a través de los diversos directorios. Ello puede solventarse en algunamedida aprovechando la tendencia de sucesivos accesos a archivos a referirse a un mismodirectorio. Una vez que se haya establecido un camino a un directorio en particular a travésde 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 archivoindividual. Puede llevarse a cabo un cambio en el directorio actual simplementeespecificando 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 decada directorio. La forma más simple es dividir el directorio en ranuras de tamaños fijos, cadauna de las cuales contiene información acerca de un solo archivo. Siempre que un archivo escreado la siguiente ranura vacía es usada; cuando un archivo es borrado, la ranura esliberada. 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 problemamás es el intercambio entre la longitud máxima de nombre de archivo y el resultado delespacio gastado en muchas entradas del directorio. Cuando un archivo esta siendo buscado en el directorio, un simple explorador lineal esa menudo empleado. Naturalmente los directorios grandes no funcionan bien. Variassoluciones han sido empleadas para reducir este problema; uno de estos es el uso deestructuras de árbol para mantener el directorio en forma ordenada.6.2 Seguridad del sistema de archivos6.2.1 El uso compartido y los problemas de seguridad El problema de la seguridad de los archivos surge de forma directa del deseo decompartirlos. En un entorno no compartido, puede lograrse esta seguridad llevando a cabouna comprobación de identidad en el MFD. Cuando los archivos deben compartirse, sinembargo, el propietario de los mismos necesita disponer de un medio de especificar queusuarios pueden acceder a sus archivos y cuales no. Además es conveniente que estepropietario pueda especificar que tipo de acceso debe permitirse: puede querer que algunode sus amigos puedan actualizar sus archivos, que otros solo puedan leerlos o bien queotros solo puedan cargarlos para su ejecución. Podemos resumir todo esto diciendo que elpropietario debe poder especificar que privilegios de acceso deben tener los otros usuarios. Una forma particularmente sencilla de hacerlo es asociando cada archivo un conjuntode privilegios de acceso que puedan asociarse a su vez a varias clases de usuarios. Estosusuarios 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. 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 unarchivo sería O:RWED, G:RW,W: Rlo que significa que propietario podría hacer con el lo que quisiera, los socios podríancopiarlo y el resto de gente solo podría leerlo. La clave de protección del archivo se guardaen el UFD del propietario como parte de la información ligada a este archivo en concreto. Esde destacar que en algunos casos puede que sea conveniente para este propietarioasignarse así mismo un privilegio de acceso bajo el fin de protegerse de las consecuenciasde sus propios errores. A pesar de ellos, el sistema de archivación debe permitir siempre alque posee los archivos cambiar los privilegios de protección, ya que en caso contrario podríano 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 usuarioen los grupos con el propósito de determinar el acceso a los archivos. Esto se hacefrecuentemente 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 cualusuario pertenece, y el otro proporciona la identidad del usuario individual. Esta técnica esclaramente inadecuada cuando difiere para suponer una sociedad requerida para diferentesarchivos; algunos sistemas (incluyendo la versión más antigua de UNIX) atacan esteproblema 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 queusan esta técnica. Una lista de control de acceso (o ACL) puede ligarse a un archivo o a un directorio, yproporciona la información completa sobre usuarios autorizados a acceder el objetoespecificado. 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 loscuales especifica el tipo de acceso permitió a un usuario especificado o grupo de usuarios. Elorden de la lista es importante desde cuando el acceso es verificado la ACL se busca desdeel principio; un usuario puede aparecer implícitamente más de una vez en la misma ACL, ygeneralmente es la primera entrada correspondiente al usuario la cual es usada paradeterminar 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. 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 esentonces usada para tomar la último decisión sobre el tipo de acceso (si los hay) a serpermitido. 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 cantidadgrande de espacio, y baja lento el accesos a los archivos; a menos que aumente laflexibilidad es esencial que este método no deba probablemente usarse. Otra técnica, primero usada en MULTICS (Organick, 1972) es de un propietario quepermite a otros usuarios crear ligas en sus UFDs a entradas dentro de su propio UFD. Lafigura 6.3 Muestra como el usuario FRED que tiene una liga a una entrada de archivo en elUFD que pertenece a otro usuario JIM. La liga le permite a FRED acceder al archivocorrespondiente perteneciente a JIM. El UFD de JIM contiene una lista de todos los usuariosa quienes el permite hacer cada liga. La gran desventaja de este método es que cuando unarchivo se anula todos las ligas también son borradas, lo cual significa que el sistema debetener 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 ligaesta eficazmente direccionado al archivo en lugar que a una entrada UFD y esta liga esindispensable de la entrada original UFD. Un contador mantiene el número de ligas de unarchivo, y el archivo es borrado solo cuando el contador diminuye a cero. El acceso alarchivo 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 archivoaparece y ellos no pueden operar entre los directorios y archivos que residen en los discoslógicos separados (por que una liga a un archivo puede no existir en un disco que no estadisponible cuando el archivo es borrado). Universidad Autónoma de Nayarit 6
  7. 7. Sistemas Operativos I Unidad 6 Más tarde la versión de UNIX complementa de está manera ligaduras con ligassimbólicas. Hay directorios especiales de entradas que simplemente contienen como unobjetivo, el nombre de archivo al cual la liga se refiere; no hay ninguna liga hacia atrás, porque lo peor que puede pasar es que la liga pueda a puntar a un archivo que ya no existe. Encaso semejante, un mensaje de simple error es suficiente ya que no hay peligro a laintegridad de la estructura de fabricación del sistema de manejo de archivo. Resumiendo las técnicas anteriores representan distintas soluciones alternativas a losproblemas de la seguridad ligada al uso compartido de archivos. En general, cuanto másflexible sea el método adoptado, mayor espacio se adoptara en los UFDs y más tiempo seempleará 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 porbloques de tamaño fijo. Como el tamaño de los archivos es variable, habrá que disponer dealgún tipo de técnica de almacenamiento dinámico tanto como para los archivos como parael espacio libre. Hay varias formas de organizar los bloques dentro de un archivo de lascuales 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úmerosconsecutivos) (figura 6.4). La entrada de UFD para el archivo apunta al primer bloque, ytambién contiene el tamaño del archivo. Hay poco sobre el almacenamiento elevado; el totalde 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 sistemasde usuarios únicos y computadoras personales. Es fácil de implementar pero padece lafragmentación; como losarchivos son creados yborrados, el espacio librese irrumpe a en pedazospequeños, ninguno de loscuales pueden sersuficientemente grandepara retener el archivomás pequeño. Esnecesario realizarcompactación regular quemueve los archivosalrededor para unir elespacio libre en uno o másáreas utilizables. Lacompactaciónnormalmente tiene quetener lugar en un quietosistema de manejo de archivos, que previene el uso de esta técnica para todos excepto alsistema de usuario único. Es difícil agregar o borrar bloques, en medio de un archivo, ya queesto implica el movimiento de todos los datos siguientes. Hay también problemas unidos a laasignación eficaz de espacio en ocasiones cuando no es conocido, en el momento que elprimer bloque es asignado, el tamaño final de un archivo debe ser asignado. Universidad Autónoma de Nayarit 7
  8. 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 unsolo bloque da como resultado la pérdida de datos. Además, cualquier bloque puedeaccederse al azar por el uso de aritmética simple, hacer archivos continuos es una buenaopción para aplicaciones de bases de datos dónde algún tipo de estructura adicional puedeser necesitada. Por que de este archivo continuo son frecuentemente incluidos como unmétodo alternativo en otros sistemas de archivación para ser usado cuando especialmentese 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. Elespacio 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 aldisco que son necesarios para encontrar el final del archivo. Ellos puede ser particularmenteincómodo si hay que borrar este archivo y volver el espacio que ocupa a una lista de espaciolibre ya que la modificación de apuntadores que es necesaria para ello requiere elconocimiento de la posición final del archivo. Por esta razón es por lo cual encada posicióndel UFD se acostumbra a guardar también la dirección del último bloque del archivo ademásde la dirección del primero. El lector comprobara que el acceso al archivo deberá ser forzosamente secuencial yaque un bloque cualquiera sólo puedealcanzarse recorriendo toda cadenahasta llegar a él. Este método deencadenamiento es muy adecuado,pues, en casos en los que los archivosdeban ser procesados de formasecuencial. En este caso, el trabajoque representará el acceder al archivose reducirá a la tarea de ir leyendobloques sucesivos.6.2.5 Mapeo de Archivo En este método deencadenamiento de archivos se guardael estado del disco en un archivo deasignación en el cual cada bloque deeste disco vendrá representado poruna palabra. El elemento del UFDasociado a un archivo determinadoapuntará a la posición del archivo deasignación que represente el primerbloque del archivo. Esta posiciónapuntará a su vez a la que representael bloque siguiente y asísucesivamente (ver la figura 6.6). Universidad Autónoma de Nayarit 8
  9. 9. Sistemas Operativos I Unidad 6 El último bloque de un archivo viene representado por el apuntador nulo. Así pues, elarchivo que se muestra en la figura 6.5 ocupa los bloques 3, 6, 4 y 8 del disco. El espacioque se emplea con este método esel de una palabra por cada bloquede disco. Tal como en el caso delmétodo de encadenamiento debloques, el acceso al archivo esnecesariamente secuencial. Comoayuda de cara a ampliar o bienborrar un determinado archivo,puede determinarse en el UFD unapuntador a la posición del archivode asignación que representa elúltimo bloque del archivo encuestión. Como que el archivo deasignación es generalmentedemasiado grande para guardarlo enmemoria principal, debe guardarseen disco como un archivo cualquierapara poder leer más tarde, cuandosea necesario, cualquier bloque delmismo. Ello significa que para leer un archivo de N bloques puede que sean necesarios Naccesos 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 representanbloques sucesivos del archivo están en el mismo bloque del archivo de asignación. Por estarazón, es evidentemente ventajoso mantener el espacio que ocupa cada archivo todo locontiguo que sea posible en lugar de permitir que este archivo se encuentre disperso portodo 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 UFDcorrespondiente al archivo apunta al primer bloque de índice de la cadena. Como el últimobloque de índice de un archivo es muy poco probable que sea utilizado en su totalidad, elespacio que se empleará según este método es algo más de una palabra por cada bloquedel archivo. El espacio utilizado para el caso de archivos pequeños es proporcionalmentemayor que para el caso de archivos mayores. La gran ventaja de los bloques de índice es que no es necesario acceder al archivo deforma secuencial: puede accederse de forma aleatoria a cualquier bloque, simplementeespecificando el nombre del archivo y un offset en el bloque de índices. Este método dealmacenamiento de archivos conduce, así pues, a archivos dotados de una estructura internay en los que se puede acceder de forma independiente a los distintos elementos que loscomponen. Universidad Autónoma de Nayarit 9
  10. 10. Sistemas Operativos I Unidad 6 El tiempo empleado de más en el acceso al archivo es reducido: el primer acceso haceque se deba leer el bloque de índices pero posteriores accesos no representan ningunapérdida adicional de tiempo a menos que sean necesarios bloques de índice distintos. Sinembargo, el añadir o borrar bloques en medio del archivo implica una reorganización de losapuntadores en los bloques índices. Ello puede representar una operación larga y significaque este método de almacenamiento no es adecuado en el caso de archivos que cambienfrecuentemente. Vamos hacer notar de paso que en cada uno de los métodos expuestos puedeidentificarse el final de cada archivo mediante una marca espacial que coloque en un lugaradecuado del último bloque. Ello puede llevarse a cabo en cualquier archivo en el que sepueda definir una marca única que no pueda interpretarse como un dato. Así por ejemplo, lamarca de fin de archivo para archivos de carácter podría ser una configuración de bits que norepresentase carácter alguno. Sin embargo, no puede definirse ninguna marca de este tipopara archivos binarios ya que, en este caso, todas las configuraciones de bits correspondena datos válidos. En este caso es necesario guardar la longitud del archivo (en palabras obytes) 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 unacomprobación adicional frente a errores en el archivo). Como observación final sobre el encadenamiento de bloques hemos de destacar queun determinado sistema puede soportar varias formas de encadenamiento, particularmente sialgunos 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 elarchivo, 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 lagestión del espacio libre. Un posible método consiste en considerar los bloques libres comoconstituyentes de un archivo especial, encadenándolos entre si mediante algunas de lastécnicas descritas anteriormente. Si se emplea la técnica de bloque de índice todas lasoperaciones 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 cabecerainvolucraría la distribución de gran cantidad de apuntadores. Si se utiliza la técnica delencadenamiento de bloques o bien la del archivo de asignación, estas operaciones podrántener lugar en cualquiera de los extremos de la cadena. La técnica del bloque de índicepresenta el inconveniente adicional de que cuando se asignan o devuelven N bloques hayque borrar o bien añadir N apuntadores en el último bloque de índice. Por el contrario sólohay que modificar dos apuntadores si se emplea alguna de las otras dos técnicas, sin queimporte cuántos bloques se asignan o se devuelvan (así, por ejemplo, cuando hay queincorporar bloques al final de la cadena libre, los dos apuntadores que hay que cambiar sonel del último bloque de la cadena original, que debe sustituirse por el del primer bloqueañ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 esmás que una zona de memoria en la que cada bit representa cada bloque de disco. Si uno deestos bloques está libre, el correspondiente bit estará a cero. Si el bloque está siendoutilizado el bit correspondiente estará a uno. Para hallar N bloques libres sólo hay que buscaren el mapeo de bits los primeros N bits que estén a cero y llevar a cabo a continuación unsimple cálculo para obtener las correspondientes direcciones de los bloques. Universidad Autónoma de Nayarit 10
  11. 11. Sistemas Operativos I Unidad 6 En algunos casos el mapeo de bits puede ser demasiado grande para guardarlo deforma 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 todaslas 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 libresupone 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 delmapeo de bits, aunque este problema pueda reducirse metiendo una lista de todos losbloques devueltos, y utilizándola para actualizar el mapeo de bits cada vez que se traiga unanueva zona del mismo. Está técnica debe aplicarse con cuidado de forma que, en el caso deun fallo del disco, el estado de un mapeo de bits siga siendo consistente con el espacioasignado. La elección del tamaño de los bloques la lleva a cabo generalmente el diseñador delhardware (constituyen una notable excepción las series 370 de IBM en las cuales el usuariopuede escoger un tamaño distinto para cada archivo). Esta elección se lleva a cabo deacuerdo 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. 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. Laestrategia 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 mapeode bits) a las más sofisticadas (utilizar el bloque que minimice el número de movimientos delcabezal al leer el archivo). El tiempo de búsqueda que hay que invertir para leer un archivocuyos bloques se encuentren dispersos por todo el disco puede ser muy grande y puedeconducir a la saturación del canal del disco. Este tiempo puede reducirse mediante laestrategia apuntada anteriormente o bien por el procedimiento de recorrer de forma periódicala estructura de archivos concatenando éstos todo lo que sea.6.3 Mecanismos de protección6.3.1 Integridad del sistema de archivación Desde el momento en que el contenido de unos archivos puede representar el trabajode varios meses o bien puede consistir en una información de carácter irremplazable, esesencial que un sistema de archivación disponga de mecanismos adecuados desalvaguardia y recuperación en el caso no poco probable de un error del hardware o bien delsoftware. Ello significa que el sistema debe mantener copias duplicadas de todos los archivosde forma que éstos puedan reemplazarse en el caso de producirse uno de los fallosapuntados anteriormente. Hay dos formas principales de hacer copias de seguridad de archivos, la primera de lascuales (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 losarchivos 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 deexplorar toda la cinta en la que se realizó la copia de seguridad. Los inconvenientes de estemé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 seguridadincremental (Fraser, 1969). Según ella se guarda sólo la información que se haya modificadodesde el último proceso de copia. Universidad Autónoma de Nayarit 12
  13. 13. Sistemas Operativos I Unidad 6 Ellos equivale a decir que en cada ocasión sólo se almacenaran los archivos quehayan sido creados o bien modificados junto con los elementos del directorio que llevenasociados. Ello representa un volumen bastante más reducido de información, de ahí queeste 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 éstesea 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 deldirectorio puede utilizarse encada UFD un indicador global que señale si alguno de los bitsindividuales de este UFD está a uno. Como que el proceso de copiado ignorará todos losarchivos cuyos indicadores estén a cero. – lo que incluye todos los archivos que estén siendoutilizados – podrá utilizarse un paralelo con las tares habituales de ordenador. Incluso es posible, tal como ocurre en MULTICS, que el proceso de copia tengaasignada un baja prioridad y esté activo siempre en la máquina, buscando continuamenteinformación que haya sido modificada. Los principales inconvenientes de la copia incremental son la gran cantidad de datosque habitualmente se generan así como la complejidad de la rutina de recuperación de lainformació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 elsistema de archivación hasta llegar al momento en que se hizo la última copia de seguridadperiódica (estas copias de seguridad periódicas serán escasas, llevándose a cabotípicamente una vez a la semana). Durante esta operación el proceso de recuperación cogede las cintas de seguridad sólo aquellos archivos que no hayan sido ya restaurados de formaque 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 completarla operación de recuperación de los archivos. Este procedimiento es mucho mejor que el deempezar con la cinta de la copia de seguridad periódica y seguir el orden cronológico de lascopias increméntales ya que así no se restaura información redundante. Hay que destacarque cualquiera que sea el método de copia empleado, la recuperación del sistema dearchivación constituye una buena oportunidad para compactar estos archivos en bloquescontiguos. Ello reduce el tiempo empleado en su acceso a costa de alargar ligeramente larutina 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 tomarnota del periférico y de la posición donde estuviese almacenado este archivo. Este procesorecibe el nombre de apertura del archivo. El proceso inverso, el de cierre, puede llevarse a cabo de forma explícita una vezrealizadas todas las E/S al mismo bien de forma implícita al concluir el proceso que estuvieseutilizando este archivo. Universidad Autónoma de Nayarit 13
  14. 14. Sistemas Operativos I Unidad 6 Para implementar estas operaciones necesitamos en el sistema operativo dos rutinasde 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 modorepresenta el tipo de acceso deseado (por ejemplo, leer, escribir o bien crear). Lasoperaciones 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 dela rutina de apertura pueden implementarse incluyendo dos campos adicionales en elelemento asociado a cada archivo en el directorio. El primero es un bit de escritura que seactivará siempre que el archivo para escritura. El segundo es una cuenta de usuarios queregistrará 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 abrirpara 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 ocerrar el mismo archivo a la vez, efectuando cambios simultáneos en la correspondientecomponente del directorio. Universidad Autónoma de Nayarit 14
  15. 15. Sistemas Operativos I Unidad 6 Ello puede solucionarse escribiendo las rutinas abrir, y cerrar como secciones críticascada una de ellas delimitada por el mismo semáforo de exclusión mutua, aunque ellopresente el inconveniente grave de que si se interrumpe un proceso en el momento en queabra o cierre un archivo estas operaciones dejarán de estar disponibles para los de másprocesos. Una alternativa consiste en formar una lista con los descriptores de todos los archivosque estén abiertos en cada periférico. El descriptor del periférico en cuestión apuntará a estalista, lista que inspeccionará la rutina de apertura cuando haya que abrir un archivo para versi existe para este archivo un descriptor, y si existe, qué modo de acceso señala. La rutinarechazará abrir el archivo a menos que las restricciones de lectura/escritura se veansatisfechas. Puede emplearse un semáforo de exclusión mutua para proteger esta lista delacceso simultáneo por parte del proceso que deseen abrir o cerrar el archivo al mismotiempo. El inconveniente de este procedimiento estriba en el tiempo empleado en inspeccionarla lista, lista que en un sistema de acceso múltiple grande puede llegar a contener fácilmente100 descriptores. Este tiempo es particularmente critico desde el momento en que esta listapuede ser inspeccionada por un solo proceso a la vez. Si este proceso es interrumpido losdemá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 endos estructuras independientes: un descriptor central para cada archivo abierto y undescriptor local para cada proceso que utilice un determinado archivo. Estos descriptoreslocales se crean cada vez que un proceso abre un archivo, apuntando todos los descriptoreslocales asociados a un determinado archivo al descriptor central del mismo. Los descriptorescentrales de archivo están asociados al descriptor del periférico correspondiente (ver la figura6.7). un descriptor central de un archivo contiene toda la información que es comun a todoslos 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 utilizael 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 centraleselimina el almacenamiento de información duplicada en descriptores separados y reduce lalongitud de la lista de descriptores asociada a cada periférico. Reduce también el trabajo quedeben efectuar las rutinas abrir y cerrar al buscar en la lista de descriptores. Lo que es másimportante es que permite aplicar la exclusión mutua a cada descriptor por separado en lugarde tener que hacerlo a la lista como un todo, evitando así los peligros de cuellos de botellaque mencionábamos anteriormente. El semáforo de exclusión mutua puede guardarse en eldescriptor central de cada archivo. Universidad Autónoma de Nayarit 15
  16. 16. Sistemas Operativos I Unidad 6 Una variante de esta técnica (Courtois et alt.,1971) consiste en sustituir el bit deescritura del descriptor central del archivo por otro semáforo w. Se escriben entonces lasrutinas 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 secolocarán de forma implícita en la cola del semáforo w, mientras que en la versión original eldiseñador del sistema mantenía la libertad de elegir entre colocar estas peticiones en la colao no, dependiendo de la aplicación. La operación de la rutina cerrar es relativamente sencilla. Consiste en borrar eldescriptor 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 esactualizado, 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 adecuadopará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 borradoserá rechazada. Ellos hace que sea difícil la sustitución de estos archivos. Una forma deeludir 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 acero, puede borrarse el archivo. La operación de borrado se verá acelerada si se hace que larutina abrir rechace acceder a un archivo cuyo bit de borrado pendiente esté activado. Universidad Autónoma de Nayarit 16
  17. 17. Sistemas Operativos I Unidad 6 Universidad Autónoma de Nayarit 17

×