TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos PDF
Document Details
Uploaded by StrongerStrontium9701
IES Medina Azahara
Tags
Summary
This document appears to be part of a university-level course lecture notes or study guide, covering topics in computer operating systems. The document encompasses concepts associated with memory management, input/output (I/O) management, and file system management. The text provides various details and explanations related to different aspects of operating systems.
Full Transcript
TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Índice de contenido Gestión de memoria principal..........................................................................................................1 Gestión de memoria para un solo proceso....................................
TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Índice de contenido Gestión de memoria principal..........................................................................................................1 Gestión de memoria para un solo proceso..................................................................................2 Gestión de memoria con particiones fijas...................................................................................3 Gestión de memoria con particiones variables............................................................................6 Paginación...................................................................................................................................8 Segmentación..............................................................................................................................9 Paginación y segmentación combinadas...................................................................................11 Memoria virtual.........................................................................................................................14 Administración de la memoria..................................................................................................16 Gestión de Entrada/Salida..............................................................................................................18 Técnicas para llevar a cabo las operaciones de entrada/salida..................................................19 Concepto de almacenamiento intermedio.................................................................................22 Gestión de archivos........................................................................................................................24 Atributos y permisos.................................................................................................................26 Organización del sistema de archivos: Nombres y rutas..........................................................27 Caracteres comodín (Wildcard)............................................................................................30 Otros sistemas de archivos........................................................................................................30 Tipo de sistemas de archivos y sus características....................................................................31 Sistemas de archivos de la familia Microsoft.......................................................................31 Sistemas de archivos de la familia Apple.............................................................................33 Sistemas de archivos de la familia GNU/Linux...................................................................34 Transacciones. Sistemas transaccionales..................................................................................35 Administración de los sistemas de archivos..............................................................................36 SISTEMAS OPERATIVOS MONOPUESTO Página 1 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Gestión de memoria principal Podemos entender la memoria principal como un inmenso casillero, donde cada casilla está numerada (con una dirección) y puede alma- cenar una palabra. Como dijimos al hablar de procesos, para que un programa pueda ejecutarse, sus instruccio- nes y sus datos tendrán que estar presentes en la memoria principal del sistema, lo que conocemos como memoria RAM. Como hemos visto más arriba, planificando el uso del procesador, mejoraremos el rendimiento general del sistema, pero esto implicará la necesidad de compartir la memoria principal entre va- rios procesos de forma simultánea. Por lo tanto, una buena administración de la me- moria, repercutirá de forma inmediata en el comportamiento de todo el sistema infor- mático. El gestor de memoria deberá asignar la porción necesaria de memoria principal a cada proceso que lo necesite. Como ya dijimos, para ejecutar una instrucción, habría que leerla desde la me- moria a un registro del procesador y decodificarla (averiguar qué significa). A conti- nuación, es posible que el sistema deba volver a la memoria para obtener los datos implicados en la operación. Finalmente, es común que los resultados obtenidos tam- bién haya que guardarlos en la memoria. Por todo ello, si la gestión de la memoria no es adecuada, el rendimiento general del sistema se verá inmediatamente disminuido. Para tratar de comprender la complejidad de la gestión de memoria, estudiare- mos distintos mecanismos, de más sencillo a más complejo, pudiendo entender la ex- plicación como una evolución. SISTEMAS OPERATIVOS MONOPUESTO Página 2 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Gestión de memoria para un solo proceso En los primeros ordenadores, la memoria principal se dividía en dos partes: una para la parte del sistema operati- vo que debía estar siem- pre en memoria (que re- cibía el nombre de moni- tor) y otra para un único proceso de usuario. Un ejemplo de este esquema lo representan las prime- ras versiones del sistema operativo MS-DOS, aun- que, en su caso, la parte superior del espacio de direcciones lo ocupaba el software de la BIOS. Lógicamente, sólo podía ejecutarse un proceso cada vez y, cuando éste termi- naba, el control volvía al sistema operativo. Gestión de memoria con particiones fijas El administrador (o incluso un operador) divide la memoria en fragmentos an- tes del inicio de la ejecución de los programas. Cuando llega un nuevo proceso, el planificador lo ubica en la partición con el tamaño más adecuado y, cuando un proce- so acaba, su partición queda libre para un nuevo uso. Este método recibe también el nombre de Multiprogramación con un número fijo de tareas, o MFT (del inglés, Multitasking with a Fixed number of Tasks). Era frecuente organizar la carga de trabajo según las particiones de memoria, creando una lista para cada una de ellas en función de su tamaño. SISTEMAS OPERATIVOS MONOPUESTO Página 3 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Otra opción es disponer de una cola única y elegir las tareas que se adapten a las particiones que quedan libres, aunque esto discrimina a las tareas con menos re- quisitos, porque tienden a desperdiciar espacio. En este tipo de esquema surge el concepto de intercambio (en inglés, swa- pping), que consiste, básicamente en mover a memoria secundaria (normalmente dis- co), los procesos que se encuentran bloqueados en espera de un suceso. De esta for- ma, se puede dar cabida a nuevos procesos. El módulo del sistema operativo que se encarga del intercambio se llama, pre- cisamente, intercambiador y se encarga de elegir los procesos que deben moverse de memoria principal a secundaria y a la inversa. También administra el espacio reser- vado en la memoria secundaria para estos fines. Relacionado con el concepto de intercambio se encuentra el concepto de reubi- cación que consiste, básicamente, en que un determinado proceso puede ejecutarse en diferentes particiones de memoria, no sólo en sucesivas ejecuciones, sino incluso du- rante la misma ejecución. De esta forma, cuando un programa haga referencia a una posición de memoria x, en realidad estará refiriéndose a una posición relativa al co- SISTEMAS OPERATIVOS MONOPUESTO Página 4 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos mienzo de la partición. Es decir, si la partición comienza en la dirección y, la posición exacta a la que hace referencia el programa sería la y + x. Por consiguiente, podremos hablar de dos tipos de direcciones de memoria: La dirección lógica o virtual, que es la dirección a la que hace referencia el programa (en la explicación anterior, la dirección x) La dirección física, que es la dirección real a la que se accede (en la ex- plicación anterior, la dirección y + x). Para realizar estos cálculos a gran velocidad, el procesador dispondrá de un re- gistro base que contiene la dirección de inicio de la partición que ocupa el proceso. Además, es necesario establecer un mecanismo de protección para evitar que un proceso, por error o de forma intencionada, pueda acceder a posiciones de memo- ria que se encuentren más allá del espacio que tenga asignado. Para lograrlo, se im- plementa un registro límite que contiene la longitud de la partición que se está utili- zando. De esta forma, las referencias de cada proceso se calculan añadiendo al regis- tro base la dirección lógica y comprobando que no se excede el registro límite. SISTEMAS OPERATIVOS MONOPUESTO Página 5 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos La dificultad en este esquema de memoria es obtener el equilibrio entre el ta- maño de las particiones y el de los procesos que deben ubicarse en ellas. En este sen- tido, podemos encontrarnos con dos formas diferentes de desaprovechamiento: Fragmentación interna: Ocurre cuando existen particiones grandes y la mayoría de los procesos no las ocuparán enteras. Es decir, el derroche de me- moria se produce dentro de la asignación al proceso. Fragmentación externa: Ocurre cuando hay particiones excesivamente pequeñas y es difícil encontrar procesos que quepan dentro. Es decir, el derro- che se produce entre la memoria que no está asignada a ningún proceso. Un ejemplo de este esquema lo representan los grandes ordenadores de IBM que incorporaban el sistema operativo OS/360. Gestión de memoria con particiones variables Se basa en la idea de que las particiones de memoria vayan cambiando de ta- maño a lo largo del tiempo. El sistema dispondrá de una tabla donde se representen las zonas de memoria que se encuentran ocupadas. Cuando llega un proceso, se busca un bloque de memoria suficientemente grande para contenerlo y se le asigna sólo la porción necesaria. El resto del bloque queda libre para otra asignación. Cuando un proceso termina, la memoria que ocupa- ba queda disponible y, si se encuentra junto a otro bloque libre, se une a él. SISTEMAS OPERATIVOS MONOPUESTO Página 6 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos En cuanto a la asignación, existen diferentes opciones a la hora de elegir el bloque más adecuado para un proceso: El primer ajuste: Se asigna el proceso al primer bloque libre en el que quepa. Con el tiempo, los espacios disponibles del principio de la memoria ten- derán a ser pequeños y difíciles de utilizar. El mejor ajuste: Se asigna el bloque más pequeño cuya capacidad sea suficiente para contener al proceso. El resultado es peor que el anterior, porque los fragmentos resultantes son más pequeños y, por lo tanto, difíciles de utili- zar. El peor ajuste: Se asignan primero los fragmentos de memoria más grandes, esperando que los restos obtenidos puedan ser más sencillos de utili- zar. En cualquier caso, el problema de esta idea es que, si hay múltiples asignacio- nes y liberaciones de memoria, ésta tenderá a tener una gran fragmentación externa. Sin embargo, el problema se resuelve aplicando, cuando sea necesario, un procedi- miento de compactación de memoria, que consiste en desplazar los bloques asigna- dos hacia un extremo y uniendo a su vez todos los bloques libres en uno más grande. Lógicamente, el inconveniente de esta idea es el tiempo que debe emplearse para rea- SISTEMAS OPERATIVOS MONOPUESTO Página 7 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos lizar esta tarea. Usando la particiones variables, se pueden seguir aplicando técnicas de inter- cambio, para mover a memoria secundaria, los procesos que se encuentran bloquea- dos en espera de un suceso. Paginación En la Gestión de memoria con particiones variables, hemos visto que la me- moria disponible tiende a no estar en posiciones contiguas, por lo que se produce una considerable fragmentación externa (la memoria disponible se dispersa a lo largo del espacio de direcciones. Para resolver esta circunstancia, se planteó la posibilidad de que el espacio de memoria que usa un determinado proceso no tuviese que estar en posiciones conti- guas. Así, en un esquema de paginación, la memoria se divide en trozos del mismo tamaño que reciben el nombre de marcos de página. Del mismo modo, los procesos se dividen en fragmentos del mismo tamaño denominados páginas. De este modo, cuando llegue un nuevo proceso, el único problema será encontrar la cantidad sufi- ciente de marcos de página disponibles en la memoria principal. Gracias a este planteamiento, se acaba con la fragmentación externa, y la frag- mentación interna quedará reducida al último marco de pagina asignado a cada pro- ceso. Cabe esperar que, por término medio, la mitad del último marco de página que- de desocupado. Como podrás suponer, este esquema necesita un método que traduzca las di- recciones virtuales a direcciones físicas, teniendo en cuenta la ubicación real de cada marco de página. Este método se basa en la creación de una tabla de páginas, en el momento de cargar el proceso, donde se establezca el paralelismo entre cada página y su marco de página correspondiente. Las direcciones virtuales constarán de un número de página y un desplaza- miento dentro de ella. El número de página actuará como índice en la tabla de pági- nas. SISTEMAS OPERATIVOS MONOPUESTO Página 8 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Dado que este método implica constantes traducciones de direcciones virtuales a direcciones físicas, para evitar que el sistema sufra una importante penalización de rendimiento, habrá que recurrir a un hardware específico para la traducción. Por otra parte, el sistema operativo dispondrá de un mapa de la memoria, con una entrada por cada marco de página, donde se indique cuáles están libres y cuáles ocupados. Otro aspecto a tener en cuenta será el tamaño de los marcos de página: Con marcos de página pequeños, tendremos poca fragmentación inter- na y tablas de páginas grandes. Con marcos de página grandes, tendremos más fragmentación interna y tablas de páginas pequeñas. Usando la paginación, se pueden seguir aplicando técnicas de intercambio, para mover a memoria secundaria, los procesos que se encuentran bloqueados en es- pera de un suceso. SISTEMAS OPERATIVOS MONOPUESTO Página 9 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Segmentación Hasta ahora, hemos visto el problema de la gestión de memoria desde el punto de vista del sistema operativo, donde la asignación de memoria se realiza en función del tamaño total de un proceso o dividiendo éste en porciones de la misma longitud. Sin embargo, los programadores y los usuarios necesitan manejar sus datos de un modo más flexible: Tanto las funciones y procedimientos en las que se dividen los programas, como las estructuras en las que se organizan los datos (como tablas o pi- las), tienen tamaños diversos. Por lo tanto, podemos decir que un programa es un conjunto de elementos lógi- cos de tamaños variables. Para dar cobertura a este planteamiento, la segmentación plantea que en el mo- mento de compilar un programa, éste se convierta en un conjunto de segmentos a los que se asignará un identificador, un punto de inicio y un tamaño. Las direcciones se expresarán mediante un número de segmento y un desplazamiento dentro de él, y el tamaño asegura que no se realizan referencias a direcciones ilegales dentro del seg- mento. Además, como cada componente lógico del proceso se encuentra en un seg- mento diferente, podemos mejorar la protección haciendo que los segmentos que con- tienen código sean de solo lectura. También podemos asegurar que un fragmento de código no acceda al código de un fragmento diferente. Por otra parte, al encontrarse cada bloque lógico del programa en un segmento distinto, podría compartirse código entre diferentes programas de un modo sencillo. De forma parecida a como ocurría en la paginación, la conversión de una di- rección virtual a su correspondiente dirección física se realiza utilizando una tabla de segmentos. SISTEMAS OPERATIVOS MONOPUESTO Página 10 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Como en el caso de la paginación, la segmentación puede extender el espacio físico de almacenamiento utilizando técnicas de intercambio. Paginación y segmentación combinadas Dado que la segmentación ofrece ventajas desde el punto de vista del usuario, pero la paginación simplifica la perspectiva del sistema operativo, cuando el tamaño de los segmentos es grande, es frecuente que se utilice una combinación de ambas. La idea es dividir cada segmento en páginas de longitud fija para su ubicación en memo- ria. Como en la segmentación pura, las direcciones se expresarán mediante un nú- mero de segmento y un desplazamiento dentro de él. Sin embargo, ahora en la entrada de la tabla de segmentos la dirección base hace referencia al inicio de la tabla de pá- ginas asociada al segmento. El desplazamiento dentro del segmento se divide por el tamaño de página para encontrar el marco de página adecuado. El resto de la división anterior representará la dirección que estamos buscando. SISTEMAS OPERATIVOS MONOPUESTO Página 11 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos SISTEMAS OPERATIVOS MONOPUESTO Página 12 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Este método ofrece una gran flexibilidad, pero tiene tres inconvenientes: El proceso de traducción es más complejo, por lo que consumirá más re- cursos. Dado que cada segmento tiene su propia tabla de páginas, el espacio destinado al almacenamiento de tablas de páginas será mucho mayor. Como cada segmento tiene su propia tabla de páginas, tendremos un marco de páginas incompleto al final de cada segmento, lo que implica una ma- yor fragmentación interna. SISTEMAS OPERATIVOS MONOPUESTO Página 13 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Memoria virtual. Todos los métodos estudiados hasta el momento suponen que un proceso debe estar completamente cargado en memoria para poder ejecutarse. Sin embargo, el mo- delo de Memoria virtual aplica los mecanismos de intercambio que ya hemos men- cionado para que las partes de un proceso que no estén siendo utilizadas en un mo- mento concreto, puedan residir en memoria secundaria. De esta forma, se libera una mayor cantidad de memoria principal para albergar un número de procesos superior. Además, este planteamiento nos permitiría ejecutar procesos que fuesen más grandes que la memoria física. Normalmente se implementa a partir de los conceptos de paginación y/o seg- mentación que hemos estudiado antes. Cuando el proceso hace referencia a una dirección de memoria que no reside en memoria principal, se produce un fallo de página. En ese momento, el sistema lo- caliza un marco de pagina libre y carga en él la página necesaria. Si no hubiese mar- cos libres, habría que aplicar un algoritmo de sustitución para elegir la página de este u otro proceso que debe abandonar la memoria principal para dejar espacio a la que debe cargarse. Mientras dura toda esta operación, el proceso que originó el fallo de página permanece en estado Bloqueado. Para saber qué páginas se encuentran en memoria principal y cuáles están en el disco, la tabla de páginas puede incluir un bit de presencia. SISTEMAS OPERATIVOS MONOPUESTO Página 14 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos SISTEMAS OPERATIVOS MONOPUESTO Página 15 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Este tipo de esquemas consiguen que la memoria se aproveche mucho mejor. Además, al poder cargar más procesos en la misma cantidad de memoria, el procesa- dor estará mejor aprovechado. Sin embargo, si se produce una situación que provoque una cantidad elevada de fallos de página, los accesos a disco se multiplicarán y el rendimiento puede caer de forma considerable. Administración de la memoria Los sistemas operativos modernos sue- len realizar la mayor parte de la administra- ción de memoria de forma automática y trans- parente. En cualquier caso, aún tenemos algu- nas cosas que podemos hacer para mejorar el rendimiento de este sistema. Evidentemente, lo primero será saber si tenemos la suficiente cantidad de memoria instalada. En este sentido, debemos tener en cuenta que el mínimo recomendado por los fa- bricantes es eso, un mínimo. En realidad, para un uso cotidiano del sistema, siempre se reco- mienda, como mínimo, duplicar esa cantidad. Otra precaución lógica será no ejecutar más programas de los necesarios en un determinado instante. Un ejemplo habitual: Estás trabajando con el procesador de textos y necesitas hacer una consulta en Inter- net. Abres el navegador, realizas la consulta y vuelves al procesador de textos… Pero dejas abierto el navegador. Si lo cierras, liberas la memoria que está ocupando para que puedan usarla otros programas y el procesador, que no tendrá que dedicarle tiempo de proceso. Siempre podrás volver a abrirlo más tarde. Relacionado con lo anterior, conviene mencionar todos esos complementos que embellecen el sistema, como las animaciones para abrir o cerrar ventanas, los relojes en el escritorio o los complementos de la barra de tareas que nos indican la predicción del tiempo. Todos ellos se están ejecutando en segundo plano y están consumiendo SISTEMAS OPERATIVOS MONOPUESTO Página 16 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos tiempo de procesador y capacidad de memoria, lo que significa que, si tu ordenador no ofrece el rendimiento que esperas, estos deben ser los primeros candidatos de los que prescindir. SISTEMAS OPERATIVOS MONOPUESTO Página 17 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Gestión de Entrada/Salida En un sistema informático moderno podemos encontrar muchos dispositivos de entrada/salida diferentes. Sin embargo, uno de los objetivos del diseño de un sis- tema operativo es que el usuario, o el programador, los perciban de una forma pareci- da, sin importar los detalles técnicos que los diferencian ni la diferencia en cuanto a la complejidad del dispositivo. En el capítulo anterior establecíamos una primera clasificación de los dispositi- vos en función de si eran de entrada, de salida o de entrada/salida. Sin embargo, también podríamos clasificarlos según la parte del sistema informático con la que se comunican: Dispositivos legibles por los usuarios (como teclados, monitores, impre- soras, ratones, etc). Dispositivos legibles por el ordenador (como discos, dispositivos USB, unidades ópticas, sensores, etc). Dispositivos de comunicaciones (como modems, routers, adaptadores 3G/4G, etc.) Otra forma de clasificarlos estaría en función de la velocidad a la que transmi- ten sus datos, ya que hay mucha diferencia, por ejemplo, entre dispositivos como un teclado, un disco óptico, un disco duro o un monitor. En cualquier caso, todos los dis- positivos de entrada/salida son mucho más lentos que la memoria principal. Incluso podríamos centrarnos en el modo de transferencia, ya que algunos dis- positivos reciben los datos por bloques (como el disco duro) y otros byte a byte (como los dispositivos USB). Por último, algunos dispositivos pueden utilizarse para diferentes fines (un dis- co duro puede almacenar datos, una imagen, una copia de seguridad, páginas de me- moria principal, etc). Todo ello, nos ofrece una idea de lo complejo que es el trabajo de la entrada/salida en un sistema operativo actual. SISTEMAS OPERATIVOS MONOPUESTO Página 18 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Técnicas para llevar a cabo las operaciones de entrada/salida Un ordenador puede utilizar diferentes técnicas para interactuar con los controladores de entrada/salida. Como ya hicimos en el apartado anterior, vamos a nombrar las más representativas de menor a mayor sofisticación: Entrada/salida programada: El procesador ejecuta una instrucción de un proceso que solicita una operación de en- trada/salida. Se realiza el requerimiento al módulo de entrada/salida correspondiente, y queda en espera de recibir la res- puesta. Entrada/salida controlada por interrupciones: El procesador ejecuta una instrucción de un proceso que solicita una operación de entrada/salida. Entonces, el proceso espera en estado Bloqueado y el procesador continúa con la ejecución de otras instrucciones. Cuando se completa la operación, el módulo de entrada/salida genera una interrupción para el procesa- dor y éste ejecuta el módulo del sistema operativo que pone al proceso en estado Listo. SISTEMAS OPERATIVOS MONOPUESTO Página 19 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Acceso directo a memoria (o DMA, del inglés Direct Memory Access): El equipo dispone de un módulo DMA autorizado para acceder directamente a la memoria RAM. De esta forma, en lugar de encargarse el proce- sador de controlar cada operación individual de entrada o salida, se confía en el módulo DMA para que ejecute varias operaciones consecutivas poniendo (u obteniendo) la in- formación directamente en la memoria RAM. El módulo DMA interrumpe al procesador sólo cuando han acabado todas las operaciones que tenía encargadas. SISTEMAS OPERATIVOS MONOPUESTO Página 20 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Procesadores de entrada/salida (o IOP, del inglés Input/Output Proces- sor): El equipo dispone de un procesador complementario con la capacidad de ejecutar las operaciones de entrada/salida, obteniéndolas directamente de la memoria principal. También puede utilizar técnicas de DMA para leer o escribir los datos en la memoria. De esta forma, el procesador principal queda liberado de este tipo de operaciones. SISTEMAS OPERATIVOS MONOPUESTO Página 21 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Concepto de almacenamiento intermedio Ya comentamos en el primer capítulo que los dispositivos de almacenamiento secundario son mucho más lentos que la memoria principal. En aquél momento ha- blábamos de que la memoria caché puede aprovechar el principio de cercanía de refe- rencias para agilizar el acceso a datos entre el procesador y la memoria principal, y entre ésta y el almacenamiento secundario. Sin embargo, cuando es necesario leer un gran volumen de datos del almacena- miento secundario, el proceso irá emitiendo solicitudes de bloques de manera conse- cutiva, que irá procesando de uno en uno. Como el almacenamiento secundario es mucho más lento, entre una lectura y otra el proceso, probablemente, permanecerá en estado Bloqueado. Una vez completada la lectura, tendrá que esperar en la cola de procesos en estado Listo hasta que el Planificador lo elija para su ejecución. Para evitar esta situación, se utiliza una técnica denominada buffering, que consiste en que el sistema operativo realice las lecturas antes de que se produzca la solicitud, almacenándolas en un área de la memoria principal que recibe el nombre de Buffer. En este caso, se trataría de un buffer de entrada, porque hemos puesto como ejemplo un proceso en el que se leen datos, pero se pueden aplicar las mismas consi- deraciones para procesos que escriban datos. En estos casos, las escrituras se realiza- rán un tiempo después de que se haya producido la sulicitud, y se utiliza un buffer de salida. SISTEMAS OPERATIVOS MONOPUESTO Página 22 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Algo parecido puede hacerse cuando disponemos de dispositivos muy lentos que, sin embargo, pueden recibir grandes volúmenes de datos. En estos casos, puede utilizarse una memoria intermedia situada en un almacenamiento externo (típicamen- te, un disco) e ir enviando los datos poco a poco al dispositivo externo. Esta técnica, aunque es parecida al buffering, recibe el nombre de spooling (del inglés, Simulta- neous Peripheral Operations On-Line) y la memoria intermedia recibe el nombre de spool. Es una técnica que se utiliza habitualmente con las impresoras. SISTEMAS OPERATIVOS MONOPUESTO Página 23 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Gestión de archivos En un sistema informático, aunque la memoria principal es indispensable para ejecutar procesos, no es un medio válido para el almacenamiento de los programas y los datos a largo plazo por dos motivos fundamentales: Es volátil. Es decir, la memoria principal pierde todo su contenido cuando de- jamos de administrar corriente eléctrica. No es suficientemente grande. Recordemos que el precio de la memoria prin- cipal es muy superior al de la memoria secundaria (por unidad de almacena- miento). Esto hace inviable la creación de ordenadores que permitan guardar en memoria principal todos los archivos que ahora guardamos en memoria se- cundaria (textos, vídeos, sonido, imagen, bases de datos, etc.) Para solventar estas carencias, se utilizan los dispositivos de memoria secun- daria, como Discos duros, Unidades SSD, unidades USB, discos ópticos, etc. El Sistema de archivos (en inglés, filesystem) es el componente del sistema operativo que se encarga de organizar el modo en el que se guardan los datos dentro de los dispositivos de almacenamiento secundario. Para llevar a cabo su tarea, desde un punto de vista lógico utiliza dos conceptos diferentes: Archivo (o fichero): es una serie de bytes almacenados en un dispositivo de al- macenamiento externo que, en conjunto, forman una unidad lógica. Cada ar- chivo suele estar identificado en el sistema mediante un nombre y una exten- sión. Normalmente, el nombre sirve para identificar el contenido del archivo y la ex- tensión para identificar el tipo al que pertenece (si es un documento, una ima- gen, etc.). Para evitar ambigüedades, no pueden existir dos archivos que tengan el mismo nombre y extensión dentro de la misma ubicación. Carpeta (o directorio): es un modo de agrupar archivos, según el criterio del usuario, para facilitar su organización. Igual que los archivos, las carpetas tie- nen un nombre que las identifica. Para un sistema de archivos, una carpeta no es más que un archivo que contie- SISTEMAS OPERATIVOS MONOPUESTO Página 24 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos ne información sobre el modo en el que se organizan los datos. Como en el caso de los archivos, para evitar ambigüedades, no puede haber dos carpetas con el mismo nombre en la misma ubicación. Como podemos suponer, la unidad de información con la que trabaja un siste- ma de archivos es, precisamente, el archivo. Es frecuente que cada familia de sistemas operativos tenga sus propios siste- mas de archivos. Por ejemplo, a continuación relacionamos los más conocidos: SISTEMAS OPERATIVOS MONOPUESTO Página 25 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos A pesar de todo, como podemos ver en la tabla anterior, existe cierto nivel de compatibilidad entre los diferentes sistemas operativos en cuanto a los sistemas de ar- chivos, bien directamente (los incluidos en la tabla), bien a través de herramientas complementarias Es muy frecuente que los datos se almacenen en un dispositivo de bloque. En esos casos, un archivo no será más que un conjunto de sectores de disco. Estos secto- res no se leerán o escribirán de forma individual, sino que lo harán en grupos llama- dos clústers. Por lo tanto, un sistema de archivos se encargará de aspectos como … Organizar de forma lógica los sectores del dispositivo para constituir archivos y directorios Asignar espacio de almacenamiento a los archivos y mantener el control sobre los sectores que pertenecen a cada archivo. Ofrecer los mecanismos que permitan crear nuevos archivos, cambiarles el nombre y/o la ubicación, modificar su contenido o eliminarlos. Mantener la estructura jerárquica del sistema de directorios. Controlar el acceso seguro a los archivos. Es decir, que sólo puedan acceder a los datos los usuarios autorizados Controlar qué sectores permanecen disponibles para ser ocupados en cualquier momento. El sistema de archivos también suele tratar como archivos los datos que se ge- neran de forma dinámica, como los que proceden de una línea de comunicación. Atributos y permisos El sistema operativo debe tener la capacidad de controlar qué usuario puede acceder a cada uno de sus recursos (directorios, impresoras, conexiones de red, etc.). Para lograrlo, cada uno de estos recursos suele tener asociada una Lista de Control de Acceso o ACL (del inglés, Access Control List), en la que se relacionan los diferentes usuarios que pueden acceder y bajo qué condiciones (lectura, escritura, ejecución, …) Por otro lado, un determinado archivo puede tener asociados diferentes atribu- SISTEMAS OPERATIVOS MONOPUESTO Página 26 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos tos, que informan sobre ciertas características del archivo o del modo en el que el sis- tema operativo debe tratarlo. Así, un archivo puede tener atributos como: directorio, oculto, de sistema, cifrado, etc. Organización del sistema de archivos: Nombres y rutas A día de hoy, prácticamente todos los sistemas de archivos que podemos en- contrar organizan los archivos de forma jerárquica, permitiendo la creación de un ár- bol de directorios que facilitan la organización y clasificación de su contenido. Además, para evitar ambigüedades, los sistemas operativos no permiten que, dentro del mismo directorio, existan dos archivos con el mismo nombre. Es frecuente que la parte final del nombre termine en un punto, seguido de tres o cuatro caracte- res que indican el tipo de conte- nido del archivo. De esta forma, el usuario sabe la clase de infor- mación que puede encontrar en su interior. Este grupo de carac- teres recibe el nombre de exten- sión. SISTEMAS OPERATIVOS MONOPUESTO Página 27 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos En la siguiente tabla incluimos algunos ejemplos: Algunos sistemas de archivos, como las diferentes versiones de FAT o incluso NTFS, utilizan las extensiones de los archivos para establecer el tipo de programa que puede interpretar la información que contienen. En otros, como GNU/Linux, se utilizan los metadatos de los archivos para identificar el tipo de información que al- macenan. Por otro lado, para expresar la ubicación exacta de un archivo o un directorio se utiliza su ruta (en inglés, path). Aunque la forma de expresar una ruta puede cam- biar según el sistema operativo que estemos usando. En general se forman indicando la lista jerárquica de directorios que representa el camino que debemos recorrer para llegar hasta un archivo o directorio. En esa relación, el último elemento será el propio archivo o directorio referenciado. Al escribir una ruta, deberemos utilizar un carácter que separe cada elemento del siguiente. Este carácter separador suele ser una barra invertida (\) en los sistemas Microsoft y una barra inclinada (/) en la familia de siste- mas Unix, como es el caso de GNU/Linux. Otros caracteres especiales que podemos utilizar en una ruta son los siguientes: SISTEMAS OPERATIVOS MONOPUESTO Página 28 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos. (un punto): Hace referencia al directorio en el que nos encontramos (también llamado directorio actual).. (dos puntos): Hace referencia al directorio que se encuentra, jerárquicamen- te, justo encima del directorio en el que nos encontramos (también llamado di- rectorio padre) ~ (una virgulilla): En sistemas de la familia Unix, como GNU/Linux, hace re- ferencia al directorio personal del usuario que escribe la ruta. Además de todo lo dicho hasta ahora, también existen dos modos diferentes de escribir rutas: De forma absoluta: Una ruta de este tipo hará referencia a un archivo o direc- torio a partir del directorio raíz. ◦ En los sistemas de la familia Unix, una ruta absoluta comienza por una ba- rra inclinada. Por ejemplo, /home/Alicia/Documentos/informe.odt ◦ En los sistemas Microsoft, es necesario comenzar la ruta absoluta con la letra de unidad a la que hace referencia, seguida de dos puntos y una barra invertida. Por ejemplo, c:\Usuarios\Alicia\Documentos\informe.odt De forma relativa: Una ruta de este tipo hará referencia a un archivo o directo- rio tomando como punto de partida el directorio en el que nos encontramos. Por ejemplo:../../Jacinto/Documentos/memoria.odt (como puede apreciarse, el ejemplo es válido en sistemas de la familia Unix, pero bastaría con cambiar el sentido de las barras para que fuese válido en sistemas Microsoft). SISTEMAS OPERATIVOS MONOPUESTO Página 29 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Caracteres comodín (Wildcard) Un carácter comodín es aquél que tiene la capa- cidad de representar a cualquier otro carácter o conjunto de caracteres. En el sistema operativo suelen utilizarse para sustituir parte del nombre de un archivo o de al- guno de los directorios que forman su ruta. Esto nos permite hacer referencia a un archivo del que no recordamos su nombre completo o bien a un grupo de archivos que tengan en común una parte de su nombre. Los dos caracteres comodín mas utilizados son: El asterisco (*): Representa a cualquier combinación de caracteres. In- cluso cubre la posibilidad de que no haya ningún carácter. Para entenderlo, supongamos que en un directorio tengo los siguientes archi- vos: Mi_imagen.png, imagen.png, imagen1.png, imagen21.png Podría hacer referencia a todos ellos escribiendo lo siguiente: *imagen*.png El signo de interrogación (?): Representa a un único carácter. Así, en el ejemplo anterior, podríamos hacer referencia sólo al último archivo escribiendo lo siguiente: imagen??.png Otros sistemas de archivos Existen algunos sistemas de archivos que tienen un propósito específico, y que no pueden ser catalogados ni como sistemas de archivos de disco, ni como sistemas de archivos de red. Entre ellos, podemos destacar los siguientes: swap: Contiene un espacio de almacenamiento en disco destinado a apoyar el funcionamiento de la memoria virtual. archfs: Se trata de un sistema de archivos, creado en el espacio del usuario (FUSE, del inglés, Filesystem in Userspace), que permite navegar por los repo- sitorios rdiff-backup. cdfs: un sistema de archivos virtual de GNU/Linux que permite acceder de for- SISTEMAS OPERATIVOS MONOPUESTO Página 30 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos ma individual a los datos o a las pistas de audio en un disco compacto. udev y devfs: Son sistemas de archivos virtuales que utiliza GNU/Linux para manejar los archivos almacenados en dispositivos vinculados al directorio /dev. ftpfs: Es el sistema de archivos que ofrece acceso a datos a través de ftp (File Transfer Protocol). nntpfs: Es un sistema de archivos, creado en el espacio del usuario (FUSE) que permite acceder a noticias en Internet usando el protocolo NNTP (Network News Transfer Protocol). Tipo de sistemas de archivos y sus características En la actualidad, los diferentes sistemas de archivos que podemos encontrar están íntimamente ligados a la familia de sistemas operativos en la que se han desa- rrollado. En esta afirmación, debemos considerar algunas excepciones, como el siste- ma de archivos FAT que, a pesar de haber nacido vinculado a la familia de sistemas Microsoft, en la actualidad es prácticamente un estándar para el intercambio de datos entre plataformas, o los sistemas de archivos para almacenamiento óptico (UDF o CDFS), que están diseñados con el mismo fin. Por lo tanto, para estudiar los sistemas de archivos más comunes, los clasifica- remos en función de la familia de sistemas operativos a la que pertenecen: Sistemas de archivos de la familia Microsoft A grandes rasgos, en los sistemas operativos Microsoft podemos encontrar dos tipos de sistemas de ar- chivos totalmente diferentes: FAT (del inglés, File Allocation Table): Se trata de un sistema de archivos muy simple que acompañaba a los primeros sistemas operativos del fabricante y no tiene ninguna característica de seguridad, salvo la básica que aportan los atributos de los archivos (sólo lectura, ocultos y de sistema) y sus archivos se fragmentan con relativa facilidad. SISTEMAS OPERATIVOS MONOPUESTO Página 31 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Sus diferentes versiones acompañaron a las versiones de escritorio de los sistemas operativos Microsoft hasta Windows Me. Sus diferentes variantes, en orden cronológico son: ◦ FAT12: Se implementó por primera vez en QDOS en 1980. Era capaz de direccionar un máximo de 32 MB y usaba nombres de archivo con un máxi- mo de 8 caracteres y 3 de extensión. ◦ FAT16: Se implementó sobre MS-DOS en 1980. Direccionaba hasta 90 GB usando clusters de 32 KB. ◦ VFAT: Se implementó sobre Windows 3.11, que usaba el modo protegido de 32 bits de los procesadores de la época y accedía directamente al har- dware y a la memoria caché, lo que aceleraba su funcionamiento. En Win- dows 95 se añadió una mejora que permitía el uso de nombres largos (hasta 255 caracteres) ◦ FAT32: Apareció con Windows 95 ORS2. Por diseño podría direccionar casi 8 TB, pero Microsoft lo limitó primero a 128 GB y, más adelante, con Windows XP a 32 GB. El tamaño máximo de archivo es de 4 GB. ◦ ExFat: Se presentó con presentado con Windows Embedded CE 6.0. Se tra- ta de una mejora, adaptada a memorias USB NTFS (del inglés, New Technology File System): Comparado con FAT, ofre- ce un mayor rendimiento, seguridad y fiabilidad (incluso puede recuperarse de algunos errores de disco de forma automática). Además, aplica técnicas de journaling. El único inconveniente es que sus estructuras de datos son demasia- do grandes en dispositivos de almacenamiento pequeños. Apareció con las versiones profesionales de los sistemas Microsoft (Windows NT), aunque se incorporó a las versiones de escritorio a partir de Windows XP. Está basado en HPFS, el sistema de archivos desarrollado entre IBM y Microsoft para el sistema operativo OS/2 y permite direccionar volúmenes de hasta 16 TB (aunque puede llegar hasta los 16 EB (1024 x 1024 TB). Existen 5 versiones: ◦ v1.0: Publicada con Windows NT 3.1 en 1993 SISTEMAS OPERATIVOS MONOPUESTO Página 32 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos ◦ v1.1: Publicada con Windows NT 3.5 en 1994 ◦ v1.2: Publicada con Windows NT 3.51 en 1995 ◦ v3.0: Publicada con Windows 2000 en 2000 ◦ v3.1: Publicada con Windows XP en 2001 Sistemas de archivos de la familia Apple A lo largo del tiempo, la familia de ordenadores del fabricante Apple han incorporado dos sistemas de archivos diferentes: MFS (Macintosh File System): Era el sistema in- cluido en el Macintosh 128K (enero de 1984). So- portaba nombres de archivo con 255 caracteres (aun- que sólo se podían localizar por los primeros 63). El tamaño máximo de volumen era de 256 MB, pu- diendo tener archivos del mismo tamaño HFS (Hierarchical File System), también llamado Mac OS estándar: Se desa- rrolló para el sistema operativo Mac OS y podía usarse en discos duros, disque- tes y CD-ROMs. Su principal objetivo era aumentar el rendimiento en dispositivos de almacena- miento de mayor capacidad (hasta 2TB, con archivos de 2GB como máximo). Aunque mantiene la restricción de localizar archivos sólo por los primeros 63 Reemplazó a MFS en septiembre de1985. HFS+ o HFS Plus, también llamado Mac OS extendido: Se introdujo en enero de 1998. Utiliza técnicas de journaling, emplea Unicode para los nom- bres de archivo y directorio, y es capaz de direccionar 8 EB (y admite archivos del mismo tamaño). SISTEMAS OPERATIVOS MONOPUESTO Página 33 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Sistemas de archivos de la familia GNU/Linux Por su parte, la familia de sistemas GNU/Linux soporta una granvariedad de sistemas de archivos, aunque los más co- munes son los siguientes: ext2 (second extended filesystem): Se introdujo en enero de 1993 como una evolución de un sistema de archivos anterior, llamado ext). Admitía dispositi- vos de hasta 16 TB, con archivos de hasta 2 TB y nombres de 256 caracteres. ext3 (third extended filesystem): Apareció en noviembre de 2001 con la ver- sión 2.4.15 del núcleo de GNU/Linux. Mantenía su compatibilidad con ext2, pero añadía soporte para un registro por diario (journaling) y se apoyaba en un árbol binario balanceado que le otorgaba un mayor rendimiento. Admitía dis- positivos con un máximo de 32 TB, con archivos que podían llegar a los 2 TB ext4 (fourth extended filesystem) se publicó en octubre de 2006 con la ver- sión 2.6.19 del núcleo de GNU/Linux y añade mejoras de velocidad y de uso de la CPU. Además, admite dispositivos de hasta 1 EB, con archivos que pue- den llegar a 16 TB. ReiserFS: Apareció a principios de 2001 con la versión 2.4.1 del núcleo de GNU/Linux. Fue el primer sistema de archivos soportado por el núcleo de GNU/Linux que soportaba journaling. Admitía dispositivos de hasta 16 TB, con archivos de hasta 8 TB y nombres de 256 caracteres. XFS: Apareció en 1994 sobre IRIX, el Unix de la empresa Silicon Graphics Inc (actualmente SGI), pero su código fuente se liberó en mayo de 2000. Se añadió al núcleo de GNU/Linux en la versión 2.4.25, en el año 2004. Fue el primer sistema de archivos que ofreció journaling. Admite dispositivos de has- ta 16 EB, con archivos que pueden llegar a 8 EB. SISTEMAS OPERATIVOS MONOPUESTO Página 34 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Transacciones. Sistemas transaccionales. En general, cuando hablamos de transacción, nos referimos a un acuerdo entre dos partes en la que se produce un intercambio. Normalmente, una transacción estará formada por varias acciones individuales, que será necesario completar en su conjunto para que el conjunto de la transacción pueda darse por terminada. Por ejemplo, si queremos comprar pan, debere- mos realizar las siguientes acciones individuales: 1. Consultar el precio 2. Comprobar si llevamos dinero suficientemente 3. Pedir la pieza de pan al vendedor 4. Recibir la pieza de pan 5. Entregar el dinero correspondiente Como es lógico, si la transacción se interrumpe antes de completarse satisfac- toriamente, debe anularse en su totalidad. El journaling, o registro diario, es el modo de implementar transacciones en un sistema de archivos. Se basa en crear un registro de diario (en inglés, journal) donde se anotan los datos necesarios para deshacer las modificaciones que se hayan hecho durante la transacción por si ésta fallase. Aplicando journaling, se evita la corrupción del sistema de archivos ante cortes en la alimentación eléctrica o cualquier otro fallo inesperado. Cuando el sistema arranque después de una de estas situaciones, sólo tendrá que deshacer las transaccio- nes inacabadas para volver a disponer de un sistema de archivos íntegro. SISTEMAS OPERATIVOS MONOPUESTO Página 35 TEMA 3. Gestión de memoria, gestión de E/S y gestión de archivos Administración de los sistemas de archivos Los sistemas operativos modernos suelen realizar la mayor parte de la gestión del sistema de archivos de forma automática y transparente, tanto al usuario como al administrador. Sin embargo, existen diferentes tareas de configuración de los disposi- tivos de almacenamiento que estaremos obligados a realizar, tanto si hacemos funcio- nes de usuario como si somos los administradores. Información obtenida de http://somebooks.es/?p=6644 Licencia Creative Commons: http://creativecommons.org/licenses/by-nc-nd/3.0/deed.es SISTEMAS OPERATIVOS MONOPUESTO Página 36