Notas del sistema operativo: gestión de archivos

Escriba aquí el título del directorio

4. Gestión de archivos

4.1 Conceptos básicos del sistema de archivos

4.1.1 Conceptos básicos de archivos

Concepto de archivo

El procesamiento de datos es una de las funciones principales de las computadoras. La gestión de datos y el almacenamiento de datos relacionados con el procesamiento de datos son vínculos esenciales e incluso importantes.En las computadoras se almacenan y gestionan grandes cantidades de datos e información a través de archivos. En la entrada y salida realizadas por los usuarios, los archivos se utilizan como unidad básica. El sistema de archivos es responsable de administrar archivos y proporcionar a los usuarios métodos para acceder, compartir y proteger archivos .

Un archivo es una colección de elementos relacionados con un nombre de archivo. Es la unidad de datos más grande en el sistema de archivos. Describe un conjunto de objetos. Cada archivo tiene un nombre de archivo. Los usuarios acceden al archivo a través del nombre de archivo.

Estructura de archivos:

  • elemento de datos. Los elementos de datos son la forma más baja de organización de datos en el sistema de archivos y se pueden dividir en los dos tipos siguientes.
    • Elemento de datos básicos: un valor utilizado para describir un determinado atributo de un objeto, como nombre, fecha o número de certificado, etc. Es la unidad de datos lógica más pequeña que se puede nombrar en los datos, es decir, datos atómicos.
    • Elemento de datos combinado: compuesto por múltiples elementos de datos básicos.
  • Registro.Un registro es una colección de elementos de datos relacionados que se utilizan para describir las propiedades de un objeto en algún aspecto.Por ejemplo, un registro de registro de candidato incluye una serie de campos como el nombre del candidato, fecha de nacimiento, código escolar, número de identificación, etc.
  • documento.Un archivo se refiere a un conjunto de información relacionada definida por el creador y se puede dividir lógicamente en archivos estructurados y archivos no estructurados.
    • En un archivo estructurado, el archivo consta de un grupo de registros similares., como los registros de información de solicitudes de todos los candidatos que solicitaron ingreso a una determinada escuela, también conocidos como documentos registrados.
    • Un archivo no estructurado se trata como una secuencia de caracteres., como un archivo binario o un archivo de caracteres, también llamado archivo de transmisión.

El alcance de la representación de archivos es muy amplio: el sistema o el usuario pueden nombrar un programa o una colección de datos con ciertas funciones como un archivo . Por ejemplo, un programa fuente con nombre, un programa de destino, un lote de datos y programas del sistema pueden considerarse archivos. En algunos sistemas operativos, un dispositivo también se considera un archivo especial. De esta manera, el sistema puede implementar una gestión unificada de dispositivos y archivos, lo que no sólo simplifica el diseño del sistema, sino que también facilita a los usuarios.

Propiedades de archivo

  • nombre. El nombre del archivo es único y se guarda en un formato fácilmente legible.
  • identificador. Una etiqueta única para un archivo dentro del sistema, normalmente un número transparente para el usuario.
  • Tipo de archivo. Utilizado por sistemas de archivos que admiten diferentes tipos de archivos.
  • Ubicación del archivo. Puntero al archivo.
  • Tamaño del archivo, hora de creación, ID de usuario, etc.

Clasificación de archivos

  • Clasificados por uso

    • Archivos del sistema. Archivos compuestos de software del sistema. La mayoría de los archivos del sistema solo permiten a los usuarios llamarlos y ejecutarlos, pero no permiten leerlos ni modificarlos.
    • Archivo de biblioteca. Varios procedimientos estándar, funciones y archivos de aplicación proporcionados por el sistema a los usuarios. Este tipo de archivo permite a los usuarios llamarlo y ejecutarlo, pero tampoco pueden modificarlo.
    • Archivos de usuario. Archivos guardados por el sistema de archivos confiado del usuario, como programas de origen, programas de destino, datos originales, etc.Dichos archivos solo pueden ser utilizados por el propietario del archivo o por los usuarios autorizados por el propietario (ni siquiera se puede acceder a los archivos de los usuarios de forma arbitraria. Recuerde, solo los usuarios autorizados o los propietarios de los archivos pueden acceder)
  • Clasificación por nivel de protección

    • Archivo de solo lectura. Los archivos de solo lectura permiten que el propietario o los usuarios autorizados lean el archivo, pero no permiten la escritura (tenga en cuenta que solo los usuarios o propietarios autorizados pueden leer, no cualquier usuario, la misma situación a continuación).
    • Leer y escribir archivos. El archivo permite al propietario o a los usuarios autorizados leer y escribir en el archivo, pero prohíbe a los usuarios no autorizados leer y escribir.
    • Archivo ejecutable. Este archivo permite a los usuarios autorizados llamar y ejecutar, pero no permite leer y escribir el archivo (debe quedar claro que leer, escribir y ejecutar son operaciones diferentes, y no piense erróneamente que leer y ejecutar son lo mismo).
    • Los archivos no están protegidos. Los archivos desprotegidos se refieren a archivos sin restricciones de acceso.
  • Clasificación por dirección del flujo de información.

    • Fichero de entrada. Por ejemplo, los archivos de un lector de tarjetas o de un teclado sólo se pueden leer, por lo que dichos archivos son archivos de entrada.
    • Archivo de salida. Por ejemplo, los archivos de la impresora solo se pueden escribir, por lo que estos archivos son archivos de salida.
    • Archivos de entrada/salida. Por ejemplo, los archivos en discos y cintas se pueden leer y escribir, por lo que dichos archivos son archivos de entrada/salida.
  • Clasificar por formulario de datos

    • Archivo fuente. Un archivo compuesto de programas fuente y datos. Generalmente, los archivos formados por programas fuente y datos ingresados ​​por un terminal o dispositivo de entrada son archivos fuente. Los archivos fuente generalmente constan de códigos ASCII o caracteres chinos.
    • Archivo de destino. Un archivo formado por el código objeto después de que el archivo fuente haya sido compilado pero aún no vinculado . Los archivos objeto son archivos binarios.
    • Archivo ejecutable. El vinculador vincula el código objeto compilado para formar un archivo ejecutable .

Operaciones de archivos

  • Operaciones básicas de archivos
    • Crea un archivo. Al crear un nuevo archivo, el sistema primero debe asignarle el espacio de memoria externa necesario y crear una entrada de directorio en el directorio.
    • Borrar archivos. Al eliminar un archivo, primero debe eliminar la entrada del directorio del archivo, convertirla en una entrada vacía y luego recuperar el espacio de almacenamiento ocupado por el archivo.
    • Lea el archivo. El sistema proporciona el nombre del archivo y la dirección de destino de la memoria del archivo al programa que llama al archivo, busca el directorio al mismo tiempo, establece un puntero de lectura basado en la dirección de la memoria externa del archivo y actualiza el puntero de lectura cuando se realiza una operación de lectura. .
    • Escribir archivo. El sistema pasa el nombre del archivo y la dirección de la memoria del archivo al programa de llamada de archivos, busca el directorio al mismo tiempo, configura el puntero de escritura de acuerdo con la dirección de la memoria externa y actualiza el puntero de escritura cuando se realiza una operación de escritura .
    • Trunca el archivo. Cuando el contenido del archivo ya no es necesario o necesita actualizarse por completo, el archivo se puede eliminar y volver a crear o todos los atributos del archivo se pueden mantener sin cambios y el contenido del archivo se puede eliminar, es decir, su longitud se establece en 0 y se libera su espacio.
    • Establezca la ubicación de lectura/escritura del archivo. Al configurar la posición de lectura/escritura del archivo, cada operación en el archivo no tiene que comenzar desde el principio del archivo, pero puede comenzar desde una posición específica .
  • Operaciones de apertura y cierre de archivos.
    • abrir un archivo. El sistema copia los atributos del archivo desde el almacenamiento externo a la memoria y establece un número (o índice) para devolverlo al usuario. En el futuro, cuando el usuario quiera operar con el archivo, solo necesitará usar el número (o número de índice) para realizar una solicitud al sistema. Esto evita que el sistema vuelva a recuperar archivos, lo que no sólo ahorra gastos generales de recuperación, sino que también mejora la velocidad de las operaciones con archivos.
      • Puntero de archivo. El sistema rastrea la última posición de lectura y escritura como el puntero de ubicación del archivo actual, que es exclusivo de un proceso que abre el archivo y, por lo tanto, debe guardarse por separado de los atributos del archivo del disco.
      • Recuento de archivos abiertos. Cuando se cierra un archivo, el sistema operativo debe reutilizar las entradas en su tabla de archivos abiertos (la tabla que contiene información sobre todos los archivos abiertos); de lo contrario, no habrá suficiente espacio en la tabla. Debido a que varios procesos pueden tener el mismo archivo abierto, el sistema debe esperar a que el último proceso cierre el archivo antes de eliminar la entrada del archivo abierto. Este contador rastrea el número de aperturas y cierres. Cuando el recuento llega a 0, el sistema cierra el archivo y elimina la entrada .
      • Ubicación del disco de archivos. La mayoría de las operaciones con archivos requieren que el sistema modifique los datos del archivo. Esta información se mantiene en la memoria para evitar la lectura del disco para cada operación.
      • permiso de acceso. Cada proceso que abre un archivo necesita un modo de acceso (crear, solo lectura, lectura-escritura, agregar, etc.). Esta información se guarda en la tabla de archivos abiertos del proceso para que el sistema operativo pueda permitir o rechazar solicitudes de E/S posteriores.
    • Cerrar el archivo: el sistema elimina el número (o número de índice) del archivo abierto y destruye su bloque de control de archivos. Si se modifica el archivo, las modificaciones deben guardarse en un almacenamiento externo.

4.1.2 Estructura lógica y física de archivos

La estructura lógica del archivo se refiere aLa forma organizativa de un archivo observada desde el punto de vista del usuario son los datos y su estructura que el usuario puede procesar directamente y, por ser independiente de las características físicas del archivo, también se denomina organización de archivos.;yDesde una perspectiva informática, la forma de organización del almacenamiento de archivos en la memoria externa se denomina estructura física del archivo.

La estructura lógica de un archivo no tiene nada que ver con las características del dispositivo de almacenamiento, mientras que la estructura física tiene mucho que ver con las características del dispositivo de almacenamiento.

Desde la perspectiva de la estructura lógica, los archivos se pueden dividir en dos formas: uno es un archivo de registro estructurado y el otro es un archivo de transmisión no estructurado . yLa estructura lógica de los archivos de registro generalmente incluye secuencia, índice y secuencia de índice.

Desde el punto de vista de la estructura física, las formas de organización de archivos incluyen asignación continua, asignación de enlaces y asignación de índices .

4.1.3 Estructura lógica de archivos

Por lo general, un archivo estructurado consta de varios registros, por lo que se denomina archivo de registro. Un registro es una colección de elementos de datos relacionados y un elemento de datos es la unidad lógica más pequeña que se puede nombrar en una organización de datos. Por ejemplo, cada registro de estado de empleado consta de elementos de datos como nombre, sexo, fecha de nacimiento, salario. , etc. El registro de situación de los empleados de una unidad constituye un expediente. En resumen, los elementos de datos forman registros y los registros forman archivos.Los archivos de registro se pueden dividir en archivos de registro de igual longitud y archivos de registro de longitud variable. Todos los registros en un archivo de registros de igual longitud tienen la misma longitud y las longitudes de cada registro en un archivo de registros de longitud variable pueden ser desiguales.

Un archivo no estructurado se compone de varios caracteres y puede considerarse como una secuencia de caracteres, lo que se denomina archivo de transmisión. Los archivos en streaming pueden considerarse como un caso especial de archivos grabados. En los sistemas UNIX, todos los archivos se consideran archivos de transmisión y el sistema no los formatea.

Los dispositivos de almacenamiento de archivos suelen dividirse en bloques físicos del mismo tamaño, que son las unidades básicas para asignar y transmitir información. El tamaño del bloque físico está relacionado con el dispositivo, pero no tiene nada que ver con el tamaño del registro lógico, por lo que se pueden almacenar varios registros lógicos en un bloque físico y un registro lógico también se puede almacenar en varios bloques físicos. . Para utilizar eficazmente los dispositivos de almacenamiento externos y facilitar la administración del sistema, la información de los archivos generalmente se divide en bloques lógicos iguales al tamaño de los bloques de almacenamiento físico.

archivo de secuencia

La estructura secuencial, también conocida como estructura continua, es la estructura de archivos más simple, que almacena continuamente la información de un archivo lógico. Los archivos almacenados en una estructura secuencial se denominan archivos secuenciales o archivos continuos.

Según si el registro tiene una longitud negativa, los archivos de secuencia se dividen en archivos de secuencia de registros de longitud fija y archivos de secuencia de registros de longitud variable .

Dependiendo de si los registros del archivo están ordenados por palabras clave, los archivos secuenciales se dividen en estructuras de cadenas y estructuras secuenciales :El orden entre los registros en la estructura de cadena no tiene nada que ver con las palabras clave, mientras que todos los registros en la estructura de secuencia se ordenan según el orden de las palabras clave.

La principal ventaja de los archivos secuenciales es que el acceso secuencial es más rápido; si el archivo es un archivo de registro de longitud fija, el acceso aleatorio también se puede realizar en función de la dirección inicial del archivo y la longitud del registro. Sin embargo, debido a que el almacenamiento de archivos requiere espacio de almacenamiento continuo, se producirá fragmentación y no favorece la expansión dinámica de los archivos.

archivo de índice

La estructura de índice crea una tabla de índice para la información de un archivo lógico. Las entradas en la tabla de índice almacenan la longitud del registro del archivo y la posición inicial del archivo lógico, por lo que la información de longitud del registro ya no se almacena en el archivo lógico . La tabla de índice en sí es un archivo de longitud fija y cada bloque lógico puede tener una longitud variable. Tanto la tabla de índice como el archivo lógico constituyen el archivo de índice.

La ventaja del archivo de índice es que se puede acceder a él de forma aleatoria y es fácil agregar y eliminar archivos . Sin embargo, el uso de tablas de índice aumenta el costo del espacio de almacenamiento y la estrategia de búsqueda de tablas de índice tiene un gran impacto en la eficiencia del sistema de archivos.

Archivos en orden de índice

Los archivos secuenciales indexados son una combinación de archivos secuenciales y archivos de índice.. El archivo de secuencia de índice divide todos los registros del archivo de secuencia en varios grupos, crea una tabla de índice para el archivo de secuencia y crea una entrada de índice en la tabla de índice para el primer registro de cada grupo, que contiene la palabra clave del registro. y un puntero al registro.

La tabla de índice contiene dos elementos de datos: palabras clave y punteros. Los elementos de índice en la tabla de índice están organizados en el orden de las palabras clave.. El archivo lógico (archivo principal) de un archivo secuencial indexado es un archivo secuencial. Las palabras clave dentro de cada grupo no tienen que estar ordenadas en orden, pero las palabras clave entre grupos sí están ordenadas.

La indexación de archivos secuenciales mejora en gran medida la velocidad del acceso secuencial, pero aún requiere configurar una tabla de índice, lo que aumenta la sobrecarga de almacenamiento.

Archivos directos y archivos hash

Establezca una correspondencia entre la palabra clave y la dirección física del registro correspondiente, de modo que la dirección física del registro se pueda encontrar directamente a través del valor de la palabra clave, es decir,El valor de la palabra clave determina la dirección física del registro. Los archivos con esta estructura se denominan archivos directos.. Esta estructura de mapeo es diferente de los archivos secuenciales o archivos de índice.Funciones sin orden

Un archivo hash es un archivo directo típico. La palabra clave se convierte mediante una función hash y el resultado de la conversión determina directamente la dirección física del registro . Los archivos hash tienen una alta velocidad de acceso, pero pueden ocurrir conflictos debido a los mismos valores de función hash de diferentes palabras clave.

4.1.4 Estructura del directorio

Directorio de archivos

Hay muchos tipos y grandes cantidades de archivos en los sistemas informáticos. Para administrarlos de manera efectiva y facilitar que los usuarios encuentren los archivos que necesitan, deben estar organizados adecuadamente. La organización de archivos se puede lograr a través de directorios. Una colección de descripciones de archivos se denomina directorio de archivos.La función más básica de un directorio es acceder a archivos por nombre de archivo.

  • Implementar "acceso por nombre". Los usuarios solo necesitan proporcionar el nombre del archivo para operar el archivo. Esta no es solo la función más básica de la administración de directorios, sino también el servicio más básico que el sistema de archivos brinda a los usuarios.
  • Mejorar la velocidad de recuperación. Esto requiere un diseño razonable de la estructura de directorios al diseñar el sistema de archivos. Este es un objetivo de diseño importante para sistemas de archivos grandes.
  • Se permiten archivos con el mismo nombre. Para que a los usuarios les resulte más fácil nombrar y utilizar archivos según sus propios hábitos, el sistema de archivos debería permitir el uso del mismo nombre para diferentes archivos. En este momento, el sistema de archivos puede distinguir esto por diferentes directorios de trabajo.
  • Permitir compartir archivos. En un sistema multiusuario, se debe permitir que varios usuarios compartan un archivo, lo que puede ahorrar espacio de almacenamiento de archivos y facilitar que los usuarios compartan recursos de archivos. Por supuesto, se deben adoptar las medidas de seguridad correspondientes para garantizar que los usuarios con diferentes permisos solo puedan obtener los permisos de operación de archivos correspondientes para evitar comportamientos no autorizados.

Por lo general, un directorio de archivos también se trata como un archivo, llamado archivo de directorio. Dado que generalmente hay muchos archivos en el sistema de archivos y los directorios de archivos también son grandes, los directorios de archivos no se colocan en la memoria principal, sino en la memoria externa .

Bloques de control de archivos y nodos de índice.

  • bloque de control de archivos

    Desde la perspectiva de la gestión de archivos, un archivo consta de dos partes: Bloque de control de archivos (FCB) y cuerpo del archivo .El cuerpo del archivo es el archivo en sí y el bloque de control del archivo (también conocido como descripción del archivo) es la estructura de datos que guarda la información de los atributos del archivo., el contenido exacto que contiene variará según el sistema operativo, pero al menos debe contener la siguiente información.

    • Nombre del archivo. Esta información se utiliza para identificar el nombre simbólico de un archivo. Cada archivo debe tener un nombre único para que los usuarios puedan realizar operaciones con archivos según el nombre del archivo.
    • La estructura del archivo.Esta información se utiliza para explicar si la estructura lógica del archivo es un archivo de registro o un archivo de transmisión. Si es un archivo de registro, es necesario explicar con más detalle si el registro es largo, la longitud y el número de registros, indica si la estructura física del archivo es un archivo secuencial, un archivo secuencial de índice o un archivo de índice
    • La ubicación física del archivo. Esta información se utiliza para indicar la ubicación de almacenamiento del archivo en el almacenamiento externo , incluido el nombre del dispositivo donde se almacena el archivo, la dirección de almacenamiento del archivo en el almacenamiento externo y la longitud del archivo. La forma de la dirección física del archivo depende de la estructura física . Por ejemplo, para un archivo continuo, se debe dar la dirección física del primer bloque del archivo y el número de bloques que ocupa. Para un archivo secuencial indexado, solo el Se debe proporcionar la dirección física del primer bloque, mientras que para un archivo de índice, se debe proporcionar la dirección física del primer bloque. Proporcione la dirección de la tabla de índice.
    • Información de control de acceso. Esta información se utiliza para indicar los permisos de acceso del archivo, incluidos los permisos de almacenamiento del propietario del archivo (también llamado propietario del archivo), los permisos de los usuarios en el mismo grupo del propietario del archivo y los permisos de otros usuarios generales.
    • información de gestión. Esta información incluye la fecha y hora en que se creó el archivo, la fecha y hora en que se accedió por última vez al archivo e información sobre el estado de uso actual del archivo.
  • nodo índice

    En el proceso de recuperación de archivos de directorio, solo se utiliza el nombre del archivo y solo cuando se encuentra una entrada de directorio coincidente, es necesario leer la dirección física del archivo de la entrada del directorio. En otras palabras, al recuperar el directorio, no se utilizará otra información de descripción del archivo, por lo que no es necesario cargarlo en la memoria . Por lo tanto, algunos sistemas adoptan el método de separar el nombre del archivo y la información de descripción del archivo, y forman un nodo de índice separado para la información de descripción del archivo, denominado nodo i.Cada entrada del directorio en el directorio de archivos consta únicamente del nombre del archivo y un puntero al nodo i del archivo.

    Los nodos de índice almacenados en el disco se denominan nodos de índice de disco. Cada archivo tiene un nodo de índice de disco único , que incluye principalmente los siguientes contenidos.

    • Identificador principal del archivo. El identificador de la persona o grupo propietario del archivo.
    • Tipo de archivo. Incluyendo archivos ordinarios, archivos de directorio o archivos especiales.
    • Permisos de acceso a archivos. Los derechos de acceso de varios usuarios al archivo.
    • Dirección física del expediente. Cada nodo de índice proporciona directa o indirectamente el número del bloque de disco donde se encuentra el archivo de datos.
    • Longitud del archivo. La longitud del archivo en bytes.
    • Recuento de enlaces de archivos. Indica el número de punteros que apuntan al nombre del archivo en este sistema de archivos.
    • Tiempo de acceso al archivo. La hora a la que se accedió por última vez a este archivo, la hora a la que se modificó por última vez y la hora a la que se modificó por última vez el nodo de índice.

    Cuando se abre el archivo, el nodo de índice del disco se copia al nodo de índice de memoria para su uso. El nodo de índice almacenado en la memoria se llama nodo de índice de memoria , que agrega el siguiente contenido.

    • Número de nodo de índice. Se utiliza para identificar nodos de índice de memoria.
    • estado. Indica si el nodo i está bloqueado o modificado.
    • Recuento de visitas. El número de procesos que actualmente acceden al archivo.
    • Número de dispositivo lógico. El número de dispositivo lógico del sistema de archivos al que pertenece el archivo.
    • Puntero de enlace. Establezca punteros a la lista libre y la cola hash respectivamente.

Estructura de directorio de un solo nivel

La estructura de directorios de un solo nivel (o estructura de directorios de un solo nivel) es la estructura de directorios más simple. En todo el sistema de archivos, la estructura de directorios de un solo nivel solo establece una tabla de directorios y cada archivo ocupa una entrada en ella .

Insertar descripción de la imagen aquí

Al crear un nuevo archivo , primero determine si el nombre del archivo es único en el directorio. Si no hay conflicto con el nombre del archivo existente, busque una entrada vacía en la tabla del directorio y complete la información relevante del nuevo archivo. Al eliminar un archivo , el sistema primero encuentra la entrada del directorio del archivo en la tabla de directorios, busca la dirección física del archivo, recupera el espacio de almacenamiento ocupado por el archivo y luego borra la entrada del directorio ocupada por él. Al acceder a un archivo , el sistema primero busca en la tabla de directorio según el nombre del archivo para determinar si el archivo existe. Si el archivo existe, busca la dirección física del archivo y luego completa la operación en el archivo.

Las ventajas de una estructura de directorios de un solo nivel son que es fácil de implementar y administrar, pero tiene las siguientes desventajas .

  • No se permiten nombres de archivos duplicados (obviamente). No se permite que un archivo en un directorio de un solo nivel tenga el mismo nombre que otro archivo. Pero en el caso de los sistemas multiusuario, esto es difícil de evitar. Incluso en un entorno de un solo usuario, cuando la cantidad de archivos es grande, es difícil determinar qué archivos están allí, lo que hace que el sistema de archivos sea extremadamente difícil de administrar.

  • La búsqueda de archivos es lenta. Para un sistema de archivos un poco más grande, debido a que tiene una gran cantidad de entradas de directorio, puede llevar mucho tiempo encontrar una entrada de directorio específica.

Estructura del directorio secundario

La estructura del directorio secundario divide el directorio de archivos en un directorio de archivos principal y un directorio de archivos de usuario. El sistema crea un Directorio de archivos de usuario (UFD) separado para cada usuario, y las entradas en él registran todos los archivos creados por el usuario y su información de descripción. El Directorio maestro de archivos (MFD) registra el estado del directorio de archivos de cada usuario en el sistema. Cada usuario ocupa una entrada. La entrada incluye el nombre de usuario y la ubicación de almacenamiento del directorio de usuario correspondiente. Esto forma una estructura de directorio secundaria.

Insertar descripción de la imagen aquí

Cuando un usuario desea acceder a un archivo , el sistema primero busca el directorio de archivos del usuario en el directorio de archivos principal según el nombre de usuario, y luego encuentra la entrada del directorio correspondiente en el directorio de archivos del usuario según el nombre del archivo para obtener el archivo físico. dirección del archivo y luego complete el acceso al archivo.

Cuando un usuario desea crear un archivo , si es un usuario nuevo, es decir, no hay una entrada de registro correspondiente para este usuario en la tabla del directorio de archivos principal, el sistema le asignará una entrada en el directorio principal y le asignará almacenamiento. para el directorio de archivos del usuario espacio y asigne una entrada para el nuevo archivo en el directorio de archivos del usuario y luego complete la información relevante en la entrada.

Cuando se elimina un archivo , simplemente elimine la entrada del directorio del archivo en el directorio de archivos del usuario.Si la tabla del directorio de usuarios está vacía después de la eliminación, significa que el usuario ha abandonado el sistema., para que se pueda eliminar la entrada correspondiente del usuario en la tabla del directorio de archivos principal.

estructura de directorio de árbol

Para facilitar que el sistema y los usuarios organicen, administren y utilicen varios archivos de manera más flexible y conveniente, se promueve la relación jerárquica de los directorios secundarios, formando una estructura de directorios de múltiples niveles, también conocida como estructura de directorios de árbol.

Insertar descripción de la imagen aquí

En la estructura de directorios de árbol, el directorio de primer nivel se denomina directorio raíz (raíz del árbol), los nodos que no son hojas en el directorio son archivos de directorio (también llamados subdirectorios) y los nodos hoja son archivos . El sistema asigna a cada archivo un identificador único (identificador interno) que es transparente para el usuario.

La estructura de directorios de árbol presenta los siguientes conceptos.

  • nombre de ruta. En una estructura de directorios de árbol, los nombres de ruta se utilizan a menudo para identificar archivos de forma única. El nombre de la ruta de un archivo es una cadena, que se forma concatenando todos los nombres de directorios y nombres de archivos de datos en la ruta desde el directorio raíz hasta el archivo que se encuentra, usando el delimitador "\" .La ruta que comienza desde el directorio raíz se llama ruta absoluta y la ruta que comienza desde el directorio actual hasta el archivo es una ruta relativa.
  • Directorio actual. Cuando el directorio de árbol tiene muchos niveles, será inconveniente para los usuarios tener que usar el nombre de ruta completo cada vez para buscar archivos, y el sistema en sí también necesitará dedicar mucho tiempo a buscar en el directorio. Se deben tomar medidas efectivas para resolver este problema. Teniendo en cuenta que los archivos a los que accede un proceso dentro de un período de tiempo suelen ser locales, se puede designar un determinado directorio como el directorio actual (o directorio de trabajo) durante este período de tiempo. El acceso del proceso a cada archivo es relativo al directorio actual, en este momento la ruta utilizada por el archivo se denomina ruta relativa. El sistema permite que la ruta del archivo suba y usa "..." para proporcionar el directorio principal del directorio (archivo) .

La estructura de directorios en árbol puede clasificar archivos fácilmente, la estructura jerárquica es clara y también puede administrar y proteger archivos de manera más efectiva. Sin embargo, al buscar un archivo en un directorio de árbol, es necesario acceder a los nodos intermedios paso a paso según el nombre de la ruta, lo que aumenta el número de accesos al disco y, por tanto, afecta la velocidad de la consulta.

Estructura del directorio de gráficos

La estructura de directorios de árbol es conveniente para clasificar archivos, pero no es conveniente para compartir archivos, por lo que algunos bordes dirigidos que apuntan al mismo nodo se agregan a la estructura de directorios de árbol, haciendo que todo el directorio sea un gráfico acíclico dirigido. Esta es la estructura del directorio de gráficos. El propósito de introducir esta estructura es lograr el intercambio de archivos .

Insertar descripción de la imagen aquí

Cuando un usuario solicita eliminar un nodo compartido, el sistema no puede simplemente eliminarlo; de lo contrario, otros usuarios no podrán encontrar el nodo al acceder a él . Para esto, puedesEstablecer un contador de uso compartido para cada nodo compartido, cada vez que se agrega la cadena compartida del nodo, el contador se incrementa en 1; cada vez que un usuario propone eliminar el nodo, el contador se reduce en 1. Solo cuando el recuento de uso compartido es 0, el nodo se puede eliminar realmente; de ​​lo contrario, solo se eliminará la cadena de uso compartido del usuario que realizó la solicitud de eliminación.

4.1.5 Compartir archivos

Lograr compartir archivos es una función importante del sistema de archivos. Compartir archivos significa que diferentes usuarios pueden utilizar el mismo archivo. Compartir archivos puede ahorrar una gran cantidad de espacio en la memoria externa y en la memoria principal, reducir las operaciones de entrada/salida y proporcionar condiciones convenientes para la cooperación entre usuarios. Compartir archivos no significa que los usuarios puedan utilizarlos sin restricciones y no se puede garantizar la seguridad y confidencialidad de los archivos. Es decir,El intercambio de archivos debe ser condicional y controlado. Por lo tanto, compartir archivos necesita resolver dos problemas: primero, cómo realizar el intercambio de archivos; segundo, control de acceso para varios usuarios que necesitan compartir.

motivación compartida

  • Diferentes usuarios en un sistema operativo multiusuario necesitan compartir algunos archivos para completar tareas juntos.
  • La comunicación entre diferentes computadoras en la red requiere el soporte de la función de compartir del sistema de archivos remoto.

Método de intercambio basado en nodos de índice (enlace físico)

El intercambio de archivos de directorio de árbol tradicional se logra cuando diferentes usuarios configuran el FCB de sus respectivos archivos en la misma dirección física, es decir, diferentes entradas de directorio apuntan a los mismos bloques físicos. Cuando una de las entradas del directorio agrega un bloque físico (se agrega contenido nuevo al archivo), la otra entrada del directorio no lo agrega, por lo que las dos entradas del directorio no pueden compartir el nuevo bloque físico.

El nodo de índice separa la información de descripción del archivo en el FCB en una estructura de datos, es decir, la información del bloque físico está en el nodo de índice. En este momento, la entrada del directorio solo contiene el nombre del archivo y el puntero al nodo de índice. Dos entradas de directorio diferentes solo necesitan apuntar al mismo nodo de índice para lograr compartir , es decirUn archivo compartido tiene solo un nodo de índice. Si las entradas del directorio con diferentes nombres de archivo necesitan compartir el archivo, todos los punteros en las entradas del directorio solo deben apuntar al nodo de índice.

Insertar descripción de la imagen aquí

Agregue otro valor de recuento al nodo de índice para contar el número de entradas de directorio que apuntan al nodo de índice. De esta manera, debe determinar el valor de recuento antes de eliminar el archivo. Solo cuando el valor de recuento sea 1, elimine el nodo de índice. punto, si el valor de conteo es mayor que 1, simplemente disminuya el valor de conteo en 1.
Este método puede compartir archivos con diferentes nombres, pero cuando el archivo es compartido por varios usuarios, el propietario del archivo no puede eliminarlo .

Utilice enlaces simbólicos para lograr compartir archivos (enlaces suaves)

Insertar descripción de la imagen aquí

El método consiste en crear una nueva entrada de directorio llamada enlace . Por ejemplo,Para permitir que el usuario B comparta un archivo del usuario C, el sistema puede crear una nueva entrada de directorio que apunte al archivo del usuario B y colocarlo en el directorio del usuario B. La nueva entrada del directorio contiene el nombre de la ruta del archivo compartido. , que puede ser una ruta absoluta o una ruta relativa

Cuando es necesario acceder a un archivo, se busca en la tabla del directorio. Si la entrada del directorio está marcada como un enlace, se puede obtener el nombre del archivo (o directorio) real y luego se busca en el directorio. Los enlaces se pueden marcar utilizando el formato del proyecto (o mediante un tipo especial), que en realidad es un puntero indirecto con un nombre. Al recorrer el árbol de directorios, el sistema ignora estos enlaces para mantener la estructura libre de bucles del sistema.

Cuando se utilizan enlaces simbólicos para compartir archivos, solo el propietario del archivo tiene un puntero a su nodo de índice; otros usuarios que comparten el archivo solo tienen el nombre de la ruta del archivo y no tienen punteros a su nodo de índice. Esto evita que el propietario del archivo elimine el archivo compartido y deje un puntero colgando. Cuando el propietario del archivo elimina un archivo compartido y otros usuarios intentan acceder a un archivo compartido eliminado a través del enlace simbólico, el acceso fallará porque el sistema no puede encontrar el archivo, por lo que el enlace simbólico se elimina. No habrá ningún impacto. Una gran ventaja del método de la cadena simbólica es que se puede utilizar para vincular (a través de una red informática) archivos en computadoras en cualquier parte del mundo, en este caso solo es necesario proporcionar la dirección de red de la máquina donde se encuentra el archivo. y la ruta del archivo en la máquina. Eso es todo.

4.1.6 Protección de archivos

La protección de archivos se utiliza para proteger los archivos de daños físicos y acceso ilegal.

Tipo de acceso

La protección de archivos puede comenzar restringiendo los tipos de acceso a los archivos. Los tipos de acceso que se pueden controlar incluyen leer, escribir, ejecutar, agregar, eliminar, enumerar (enumerar nombres de archivos y atributos de archivos), etc. Además, también puedes controlar el cambio de nombre, copia, edición, etc. de archivos.

Control de acceso

El control de acceso consiste en adoptar diferentes tipos de acceso para que diferentes usuarios accedan al mismo archivo. Según los diferentes permisos de usuario, los usuarios se pueden dividir en propietarios, usuarios de grupos de trabajo, otros usuarios, etc. Luego adopte diferentes tipos de acceso para diferentes grupos de usuarios para evitar que se acceda a los archivos de forma ilegal .

Generalmente existen 4 métodos de control de acceso: matriz de control de acceso, lista de control de acceso, tabla de permisos de usuario y contraseña y contraseña.

Los tres métodos de matriz de control de acceso, lista de control de acceso y lista de permisos de usuario son relativamente similares.Se utiliza una determinada estructura de datos para registrar los permisos de operación de cada usuario o grupo de usuarios para cada archivo. Al acceder al archivo, estas estructuras de datos se verifican para ver si el usuario tiene los permisos correspondientes para proteger el archivo.. Las contraseñas y contraseñas son otro método de control de acceso.

Contraseña significa que el usuario proporciona una contraseña al crear un archivo, y el sistema adjunta la contraseña correspondiente al crear un FCB para el mismo, el usuario debe proporcionar la contraseña correspondiente al solicitar acceso. Este método tiene menos gastos generales, pero la contraseña se almacena directamente dentro del sistema, lo que no es lo suficientemente seguro.

Contraseña significa que el usuario cifra el archivo y se requiere la clave cuando se accede al archivo. Este método tiene una gran confidencialidad y ahorra espacio de almacenamiento, pero la codificación y decodificación lleva cierto tiempo.

4.2 Sistema de archivos e implementación

4.2.1 Estructura jerárquica del sistema de archivos

Insertar descripción de la imagen aquí

Un sistema de archivos se refiere a una colección de software y datos relacionados con la gestión de archivos en un sistema operativo. Desde la perspectiva del sistema, un sistema de archivos es un sistema que organiza y asigna espacio de almacenamiento para archivos, es responsable de almacenar archivos y protege y recupera archivos almacenados. En concreto, se encarga de crear, deshacer, leer, escribir, modificar y copiar archivos para los usuarios. Desde la perspectiva del usuario, el sistema de archivos implementa principalmente el acceso basado en nombres. Es decir, cuando el usuario solicita al sistema que guarde un archivo con nombre, el sistema de archivos almacena el archivo del usuario en la ubicación adecuada en el almacenamiento de archivos de acuerdo con un formato determinado; cuando el usuario solicita usar el archivo, el sistema puede almacene el archivo del usuario de acuerdo con el nombre de archivo dado por el usuario. Busque el archivo requerido en el almacenamiento de archivos.

Una estructura jerárquica razonable del sistema de archivos se puede dividir en interfaz de usuario, sistema de directorio de archivos, verificación de control de acceso, sistema de archivos lógico y búfer de información de archivos, y sistema de archivos físico .

  • Interfaz de usuario. El sistema operativo suele utilizar el escritorio gráfico como interfaz. Por supuesto, el cmd negro en Windows y las ventanas de comandos fáciles de usar en Linux y Mac son todas interfaces de usuario. Este usuario es un concepto amplio y no se refiere sólo a programadores. Por ejemplo, para ver el contenido del archivo F, puede enviar comandos al sistema operativo a través de operaciones de interfaz. Esta es la primera capa, la interfaz de usuario más abstracta y de nivel superior, que conecta el mundo real y el mundo virtual. .
  • Sistema de directorio de archivos. Lo que el sistema operativo debe hacer después de recibir el comando es buscar en el directorio y obtener la información de índice del archivo F. Esta información de índice se puede pasar a través de FCB o del nodo de índice. El puntero del nodo i se encuentra al acceder por nombre. Un archivo tiene un FCB o un nodo i (nodo índice), esto es lo que se hace en el segundo nivel: el sistema de directorio de archivos.
  • Verificación del control de acceso. Después de encontrar el FCB, no todos están calificados para ver el archivo F y es necesario verificar sus calificaciones. La FCB tiene información de permiso sobre si puede acceder a este archivo. Esta es la verificación de control de acceso.
  • Sistema de archivos lógico y búfer de información de archivos. Después de confirmar que puede ingresar, comenzaremos a ayudarlo a encontrar la dirección física específica. Deberíamos establecer tal concepto: el sistema operativo generalmente administra primero la dirección lógica y luego obtiene la dirección física de acuerdo con la política correspondiente. La función de esta parte es obtener la dirección lógica del archivo correspondiente, y la dirección física específica debe obtenerse en el sistema de archivos físico.
  • Sistema de archivos físico. Esta es la implementación subyacente, que se divide en dos partes: gestión de asignación de almacenamiento auxiliar y gestión de dispositivos. En UNIX, los dispositivos también son archivos.

4.2.2 Implementación del directorio

mesa lineal

La forma más sencilla de implementar un directorio es utilizar una tabla lineal (matriz, lista vinculada, etc.) que almacena nombres de archivos y punteros de bloques de datos.. Al crear un nuevo archivo , primero debe buscar en la tabla del directorio para asegurarse de que no exista ningún archivo con el mismo nombre y luego agregar una entrada de directorio después de la tabla del directorio. Para eliminar un archivo , se busca en la tabla del directorio según el nombre del archivo dado y se libera el espacio asignado. El uso de una estructura de lista vinculada puede reducir el tiempo de eliminación de archivos. Su ventaja es que es fácil de implementar. Sin embargo, debido a que las tablas lineales necesitan usar un método secuencial para encontrar elementos específicos, su ejecución requiere más tiempo.

tabla de picadillo

La tabla hash obtiene un valor basado en el nombre del archivo y devuelve un puntero al elemento en la lista lineal . Este método acorta en gran medida el tiempo para buscar en el directorio, y la inserción y eliminación son relativamente simples, pero se necesitan algunas medidas para evitar conflictos (los valores de la función hash de dos archivos con nombres diferentes son los mismos).Este método se caracteriza por la longitud fija de la tabla hash y la dependencia de la función hash de la longitud de la tabla.

4.2.3 Implementación de archivos

La realización de archivos se refiere principalmente a la realización de archivos en la memoria, es decir, la realización de la estructura física de los archivos, incluidos los métodos de asignación de memoria externa y la gestión del espacio de almacenamiento de archivos.

Método de asignación de memoria externa

La estructura física de un archivo se refiere a la forma de organización del almacenamiento de un archivo en la memoria externa y está relacionada con el método de asignación de memoria externa. El método de asignación de memoria externa se refiere a cómo se asignan los bloques de disco para los archivos. Los diferentes métodos de asignación formarán diferentes estructuras físicas de archivos.

En términos generales, hay dos formas de asignar memoria externa: asignación estática y asignación dinámica .La asignación estática asigna todo el espacio necesario al mismo tiempo cuando se crea el archivo; la asignación dinámica asigna en función de la longitud del archivo que crece dinámicamente e incluso puede asignar un bloque físico a la vez.. También se pueden utilizar diferentes métodos en el tamaño del área de asignación. Se puede asignar un área completa a un archivo para contener todo el archivo, lo que se denomina asignación contigua de archivos . Sin embargo, el espacio de almacenamiento de archivos generalmente se asigna en unidades de bloques o clústeres (varios bloques físicos consecutivos se denominan clústeres, generalmente de tamaño fijo).

Los métodos de asignación de memoria externa comúnmente utilizados incluyenAsignación continua, asignación vinculada y asignación de índices

  • asignación continua

    La asignación continua es la estrategia de asignación de espacio en disco más simple. Este método requiere asignar áreas de disco continuas para los archivos . En este algoritmo de asignación, el usuario debe indicar el tamaño del espacio de almacenamiento requerido para el archivo que se creará antes de la asignación, y luego el sistema busca para áreas libres Mesa de gestión para ver si existe un área libre lo suficientemente grande para su uso . Si lo hay, el archivo se asigna y no se puede crear y el proceso del usuario debe esperar. Espacio de almacenamiento requerido: de lo contrario, el archivo no se puede crear y el proceso del usuario debe esperar.

    Cuando se utiliza el método de asignación continua, los registros en el archivo lógico se pueden almacenar secuencialmente en bloques de disco físicos adyacentes. La estructura de archivos formada de esta manera se denomina estructura de archivos secuencial, y el archivo físico en este momento se denomina archivo secuencial . Este método de asignación garantiza que el orden de los registros en el archivo lógico sea coherente con el orden de los bloques de disco ocupados por los archivos en el almacenamiento.

    Las ventajas de la asignación continua son que la velocidad de búsqueda es más rápida que otros métodos (solo se requieren el número de bloque inicial y el tamaño del archivo), y la información sobre la ubicación de almacenamiento físico del archivo en el directorio también es relativamente simple. Su principal desventaja es que es propenso a la fragmentación y requiere una compactación regular del espacio de almacenamiento .

  • Asignación de enlace

    Para situaciones en las que es necesario aumentar o disminuir dinámicamente la longitud del archivo y el usuario no conoce el tamaño del archivo de antemano , a menudo se utiliza la estrategia de asignación de asignación de enlaces.Existen dos soluciones de implementación.

    • Enlace implícito. En esta implementación, los punteros utilizados para vincular bloques físicos se colocan implícitamente en cada bloque físico . La entrada del directorio tiene punteros al primer y último bloque de disco del archivo secuencial indexado. Además, en cada bloque de disco contiene un puntero al siguiente. bloque de disco. Si desea acceder a un determinado bloque de disco, debe leer los punteros de cada bloque de disco comenzando desde el primer bloque de disco , por lo que existe un problema de baja eficiencia de acceso aleatorio, porque el error de puntero de cualquiera de los bloques de disco provocar que los siguientes bloques de disco fallen. La ubicación se pierde, por lo que esta implementación es menos confiable.

      Insertar descripción de la imagen aquí

    • Enlace explícito. Esta implementación se utiliza para almacenar explícitamente punteros a bloques físicos en una tabla vinculada , con una tabla vinculada configurada para cada disco. Esta tabla también se llama tabla de asignación de archivos (FAT). Todos los sistemas operativos como MS-DOS, Windows y 0S/2 usan FAT. Dado que sigue siendo un método de enlace, cuando busca la dirección del bloque físico correspondiente de un registro en FAT, aún necesita buscar uno por uno y no puede buscar aleatoriamente. Pero en comparación con los enlaces implícitos, esta solución busca en la memoria en lugar de en el disco, por lo que puede ahorrar mucho tiempo.

      Insertar descripción de la imagen aquí

      Las ventajas de la asignación de enlaces son la simplicidad (solo se requiere la posición inicial) y la creación y el crecimiento de archivos son fáciles de implementar. La desventaja es que no se puede acceder a los bloques de disco de forma aleatoria, el puntero del enlace ocupará algo de espacio de almacenamiento y existen problemas de confiabilidad.

    • asignación de índice

      Aunque el método de asignación de enlaces resuelve los problemas existentes en el método de asignación continua, surgen nuevos problemas. En primer lugar, cuando se requiere acceder aleatoriamente a un registro en un archivo, es necesario buscarlo secuencialmente de acuerdo con el puntero del enlace, por lo que la búsqueda es muy lenta. En segundo lugar, los punteros de enlace ocupan una cierta cantidad de espacio en disco. Para resolver estos problemas, se introdujo el método de asignación de índices .En el método de asignación de índice, el sistema asigna un bloque de índice a cada archivo y la tabla de índice se almacena en el bloque de índice. Cada entrada en la tabla de índice corresponde a un bloque físico asignado al archivo.

      Insertar descripción de la imagen aquí

      El método de asignación de índice no solo admite el acceso directo, sino que tampoco genera fragmentación externa y también resuelve el problema de la longitud limitada del archivo. La desventaja es que la asignación de bloques de índice aumenta la sobrecarga del espacio de almacenamiento del sistema. Para los métodos de asignación de índices, la selección del tamaño del bloque de índice es una cuestión muy importante. Para ahorrar espacio en disco, se espera que el bloque de índice sea lo más pequeño posible, pero si el bloque de índice es demasiado pequeño, no puede admitir archivos grandes, por lo que se deben utilizar algunas tecnologías para resolver este problema. Además, acceder a archivos requiere dos accesos a la memoria externa: primero para leer el contenido del bloque de índice y luego para acceder al bloque de disco específico, reduciendo así la velocidad de acceso a los archivos .

      Para utilizar la tabla de índice de manera más efectiva y evitar acceder a la memoria externa dos veces al acceder al archivo de índice, primero puede transferir la tabla de índice a la memoria al acceder al archivo, de esta manera, el acceso al archivo solo necesita acceder al externo. memoria una vez.

      Cuando el archivo es grande, la tabla de índice del archivo será grande.Si el tamaño de la tabla de índice excede un bloque físico, la tabla de índice en sí se puede utilizar como un archivo y se puede crear una "tabla de índice" para ella. Esta "tabla de índice" sirve como índice del índice del archivo, por lo que formando un índice secundario. Las entradas en la tabla de índice de primer nivel apuntan al índice de segundo nivel y las entradas en la tabla de índice de segundo nivel apuntan al número de bloque físico donde se encuentra la información del archivo. Por analogía, el índice se puede establecer nivel por nivel para formar un índice multinivel.

      • Asignación de índices de un solo nivel.El método de asignación de índice de un solo nivel consiste en juntar los números de bloque de disco correspondientes a cada archivo, asignar un bloque de índice (tabla) a cada archivo y luego registrar todos los números de bloque de disco asignados al archivo en el bloque de índice. El bloque de índice es una matriz que contiene varios números de bloque de disco.

        Insertar descripción de la imagen aquí

      • Asignación de índices de dos niveles. Cuando el archivo es grande y un bloque de índice no cabe en la columna de bloque del archivo, el bloque de índice se puede volver a indexar para formar un índice secundario. La dirección de índice de la entrada del directorio del archivo de prueba es el número de bloque del índice primario y cada elemento en el índice primario El número de bloque es el número de bloque del índice de segundo nivel, y los números de bloque en el índice de segundo nivel constituyen la secuencia de números de bloque del archivo.

        Insertar descripción de la imagen aquí

Gestión del espacio de almacenamiento de archivos.

Para realizar la gestión del espacio de almacenamiento libre, el sistema debe registrar el estado del espacio de almacenamiento libre para implementar la asignación de espacio de almacenamiento.

A continuación se presentan varios métodos de administración de espacio de almacenamiento gratuito de uso común.

  • método de tabla de archivos libre

    Un área libre continua en un dispositivo de almacenamiento de archivos se puede considerar como un archivo libre (también llamado archivo en blanco o archivo libre). El método de la tabla de archivos libres crea un directorio separado para todos los archivos libres, y cada archivo libre ocupa una entrada en este directorio. El contenido de la entrada incluye el primer número de bloque libre, el número de bloque físico y el número de bloques libres .

    Insertar descripción de la imagen aquí

    Cuando un usuario solicita asignar espacio de almacenamiento, el sistema escanea el directorio de archivos libres en secuencia hasta encontrar un archivo libre que cumpla con los requisitos. Cuando el usuario revoca un archivo, el sistema recupera el espacio ocupado por el archivo. En este momento, también es necesario escanear secuencialmente el directorio de archivos libres para encontrar una entrada vacía y completar el primer número de bloque físico del espacio liberado y la cantidad de bloques que ocupa en esta entrada.

    Este método de directorio de archivos gratuito es similar a la gestión de particiones dinámicas de memoria.Cuando el número de bloques solicitados es exactamente igual al número de bloques libres en una entrada del directorio, todos estos bloques se asignan al archivo y la entrada se marca como vacía. Si el número de bloques en la entrada es mayor que el número de bloques solicitados, los números de bloque sobrantes se dejan en la tabla y las entradas en la entrada se modifican. De manera similar, durante el proceso de liberación, si el número de bloque físico liberado es adyacente al número de bloque físico en una entrada de directorio, los archivos libres también se fusionarán.. Este método sólo funciona bien cuando hay sólo unos pocos archivos libres en el espacio de almacenamiento de archivos. Si hay una gran cantidad de pequeños archivos libres en el espacio de almacenamiento, el directorio de archivos libres se volverá muy grande y su eficiencia se reducirá considerablemente. Este método de gestión sólo funciona para archivos contiguos .

  • método de lista enlazada de bloque libre

    El método de lista enlazada de bloques libres vincula todos los bloques libres en el dispositivo de almacenamiento de archivos para formar una cadena de bloques libres y establece un puntero principal para que apunte al primer bloque físico de la cadena de bloques libres.. Cuando el usuario crea un archivo, se toman varios bloques libres del principio de la cadena y se asignan al archivo según sea necesario. Cuando se revoca un archivo, se recupera su espacio de almacenamiento y los bloques libres recuperados se vinculan secuencialmente a la lista de bloques libres. También puede cambiar los bloques de disco libres en la lista vinculada a extensiones de disco libres (cada zona de disco libre contiene varios bloques de disco libres consecutivos). Esta cadena se denomina cadena de extensión de disco libre. Entre ellos, además del puntero utilizado para indicar la siguiente extensión libre, cada extensión también debe contener información que pueda indicar el tamaño de esta extensión. El método de asignación de extensiones es similar a la asignación de memoria de partición dinámica, generalmente utilizando el algoritmo de primer ajuste. Al reclamar extensiones, las áreas recuperadas también deben fusionarse con extensiones libres adyacentes.

  • método de mapa de bits

    El método de mapa de bits crea un mapa de bits para el almacenamiento de archivos. En el mapa de bits, cada bit binario corresponde a un bloque físico,Si un bit es 1, significa que el bloque físico correspondiente ha sido asignado; si es 0, significa que el bloque físico correspondiente está libre.

    Insertar descripción de la imagen aquí

    Cuando se realiza una solicitud para asignar espacio de almacenamiento,El sistema escanea secuencialmente el mapa de bits y encuentra un conjunto de bits binarios con un valor de 0 según sea necesario, y luego mediante una simple conversión, se puede obtener el número de bloque de disco correspondiente., luego cambie estos bits a 1. Al recuperar espacio de almacenamiento, solo necesita borrar el bit correspondiente del mapa de bits a 0.

    El tamaño del mapa de bits está determinado por el tamaño del espacio en disco (el número total de bloques físicos). Debido a que el mapa de bits usa solo un bit binario para representar un bloque físico, generalmente es pequeño y se puede guardar en la memoria principal, lo que Hace que la asignación de espacio de almacenamiento y el reciclaje sean más rápidos, sin embargo, al implementar este método, es necesario convertir entre la posición binaria en el mapa de bits y el número de bloque del disco .

  • Método de vinculación de grupos (método de gestión del espacio de almacenamiento de archivos UNIX)

    El método de vinculación de grupos es adecuado para sistemas de archivos grandes. Este método divide todos los bloques libres de un archivo en grupos de 100 bloques cada uno y registra el número de bloques de disco en cada grupo y todos los números de bloques de disco del grupo en el primer bloque de disco del grupo anterior. en el grupo y todos los números de bloque de disco en el primer grupo se registran en el superbloque . De esta manera, el primer bloque de disco de cada grupo se vincula en una lista vinculada y varios bloques de disco del grupo forman una pila. El primer bloque de cada grupo es una pila que almacena el número de bloque del siguiente grupo. La pila es un recurso crítico y solo puede acceder a él un proceso a la vez, por lo que el sistema establece un bloqueo para acceder a él mutuamente.

    Insertar descripción de la imagen aquí

    • Método para asignar bloques libres.Cuando el sistema quiere asignar bloques libres a un archivo, primero busca el número de bloques de disco en el primer grupo. Si hay más de un bloque de disco, disminuye el número de bloques de disco libres en el superbloque en 1 y Asigna el bloque de disco en la parte superior de la pila.Si solo queda un bloque en el primer grupo (el bloque donde se colocan el número de bloque de disco y el número de bloque de disco del siguiente grupo, no un bloque libre) y el número de bloque de disco en la parte superior de la pila no es el final marque 0 (significa que este grupo no es el último grupo), primero lea el contenido del bloque en el superbloque (el siguiente grupo forma el primer grupo, por lo que el número de bloques de disco y el número de bloque de disco del siguiente El grupo debe colocarse en el superbloque) y luego asignar el bloque (la información de este bloque ya no es útil y este bloque se ha convertido en un bloque libre): si el número de bloque de disco en la parte superior de la pila es el La marca final es 0, significa que el disco no tiene bloques de disco libres y la asignación no tuvo éxito .
    • Método para recuperar bloques de disco inactivos. Cuando el sistema reclama bloques libres, si el primer grupo tiene menos de 100 bloques, solo necesita colocar el número de bloque del disco libre en la parte superior de la pila del bloque de disco libre del superbloque y agregar 1 al número. de bloques de disco libres en él. Si el primer grupo ya tiene 100 bloques, primero escriba el número de bloques de disco y el número de bloque de disco en el primer grupo en el bloque de disco libre, y luego establezca el "número de bloques de disco = 1 y el número de bloque en la parte superior de la pila = el bloque de disco libre". El "número de bloque de disco" se escribe en el superbloque (el bloque de disco libre se convierte en el nuevo primer grupo y el primer grupo original se convierte en el segundo grupo) .

    El método de enlace de grupo ocupa un espacio pequeño y el superbloque no es grande y se puede colocar en la memoria, lo que permite que la mayor parte del trabajo de asignación y reciclaje de bloques de disco libres se realice en la memoria, lo que mejora la eficiencia.

4.3 Organización y gestión de discos

4.3.1 Estructura del disco

La estructura física del disco.

El disco es un dispositivo de acceso directo típico, que permite que el sistema de archivos acceda directamente a cualquier bloque físico del disco. Una unidad de disco generalmente consta de varios discos que pueden girar a alta velocidad en una dirección fija. Cada superficie del disco corresponde a una cabeza magnética y el brazo magnético puede moverse a lo largo del radio. Una serie de círculos concéntricos en el disco se llaman pistas. Las pistas se dividen en sectores de igual tamaño a lo largo de la dirección radial. Todas las pistas en el disco que están a cierta distancia del centro del disco forman un cilindro. Por lo tanto, cada pista en el disco Los bloques físicos se pueden representar mediante números de cilindro, números de cabeza y números de sector.

Insertar descripción de la imagen aquí

información en la estructura del disco

  • Bloque de control de arranque. Generalmente es el primer bloque de la partición, si la partición no tiene sistema operativo estará vacía.
  • Bloque de control de partición. Esto incluye información detallada sobre la partición, como la cantidad de bloques en la partición, el tamaño de los bloques, la cantidad de bloques y punteros libres, etc.
  • Estructura de directorios. Utilice la organización de archivos de directorio.
  • Bloque de control de archivos. Esto incluye información del archivo, como el nombre del archivo, el propietario, el tamaño del archivo y la ubicación del bloque de datos.

Tiempo de acceso al disco T a

Tiempo de acceso T a = tiempo de búsqueda + retardo de rotación + tiempo de transmisión

  • Tiempo de búsqueda T s

    Después de que el disco recibe el comando de lectura, el tiempo necesario para que el cabezal magnético se mueva desde la posición actual hasta la posición de seguimiento objetivo es el tiempo de búsqueda Ts . Este tiempo es la suma del tiempo s para poner en marcha el brazo magnético y el tiempo que tarda el cabezal magnético en mover n pistas.m es el tiempo necesario para mover cada pista.

    Ts = s +n×m

  • Retardo de rotación T r

    El tiempo necesario para girar el disco y localizar el sector donde se encuentran los datos es el retardo de rotación T r . Suponiendo que la velocidad de rotación del disco es r, entonces

    T r =(1/r)/2=1/(2r)

    El significado físico de T r es el tiempo que tarda el disco en girar media revolución.

  • Tiempo de transmisión T t

    El tiempo para leer datos del disco es el tiempo de transmisión T t . El tiempo de transferencia depende de la cantidad de bytes leídos y escritos cada vez b y de la velocidad de rotación del disco, es decir

    Tt = b/(rN)

    r es la velocidad de rotación; N es el número de bytes en una pista.

4.3.2 Algoritmo de programación

Un disco es un dispositivo que pueden compartir múltiples procesos. Cuando varios procesos solicitan acceso al disco, se debe utilizar un algoritmo de programación apropiado para minimizar el tiempo promedio de acceso ( principalmente el tiempo de búsqueda ) de cada proceso al disco.

Algoritmo por orden de llegada

El algoritmo FCFS es el algoritmo de programación de discos más simple.Este algoritmo programa los procesos en el orden en que solicitan acceso al disco.. El algoritmo se caracteriza por ser razonable y sencillo, pero no optimiza la búsqueda.

Primer algoritmo de tiempo de búsqueda más corto

El algoritmo selecciona la solicitud más cercana a la pista donde se encuentra el cabezal actual como el siguiente objeto de servicio.. El rendimiento de búsqueda de este algoritmo es mejor que el del algoritmo FCFS, pero no puede garantizar el tiempo de búsqueda promedio más corto y puede provocar que las solicitudes de algunos procesos sean reemplazadas por las solicitudes de otros procesos y no se atiendan durante mucho tiempo. (este fenómeno se llama "hambruna"). ".

Algoritmo de escaneo o algoritmo de programación de ascensores

algoritmoSeleccione la solicitud más cercana a la pista donde se encuentra el cabezal actual en la dirección de movimiento actual del cabezal magnético como el siguiente objeto de servicio.. Debido a que la ley del movimiento de la cabeza en este algoritmo es bastante similar a la operación de un ascensor, también se le llama algoritmo de programación de ascensores. El algoritmo tiene un mejor rendimiento de búsqueda y evita el fenómeno de "inanición", que es injusto para dos solicitudes (normalmente las solicitudes de ambos extremos se atienden al final).

Algoritmo de escaneo de bucle

El algoritmo es una mejora del algoritmo SCAN, que estipula que el cabezal magnético se mueve en una dirección., por ejemplo, se mueve de adentro hacia afuera, y cuando el cabezal se mueve hacia la pista más externa, regresa inmediatamente a la pista más interna y escanea en un bucle. Este algoritmo elimina la injusticia de las solicitudes de seguimiento en ambos extremos.

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

4.3.3 Gestión de discos

Formateo de disco

Un disco nuevo es simplemente un disco en blanco que contiene material de grabación magnético. Antes de que un disco pueda almacenar datos, debe dividirse en sectores para que el controlador del disco pueda leerlos y escribirlos, un proceso llamado formateo de bajo nivel . El formateo de bajo nivel utiliza una estructura de datos única para cada sector del disco. La estructura de datos de cada sector normalmente consta de un encabezado, un área de datos (generalmente 512B) y una cola. El encabezado y el final contienen información utilizada por el controlador de disco.

Para utilizar un disco para almacenar archivos, el sistema operativo también necesita grabar sus propias estructuras de datos en el disco .

  • Divida el disco en particiones que consten de uno o más cilindros (unidad C común, unidad D, etc.).
  • Para formatear lógicamente la partición física (crear un sistema de archivos), el sistema operativo almacena las estructuras de datos iniciales del sistema de archivos en el disco, que incluyen espacio libre y asignado y un directorio inicialmente vacío.

bloque de arranque

Cuando la computadora se inicia, necesita ejecutar un programa de inicialización (cargador de arranque), que inicializa la CPU, los registros, los controladores de dispositivos, la memoria, etc., y luego inicia el sistema operativo. Para hacer esto, el gestor de arranque debe encontrar el kernel del sistema operativo en el disco, cargarlo en la memoria e ir a la dirección inicial para comenzar a ejecutar el sistema operativo.

El cargador de arranque generalmente se almacena en la ROM. Para evitar el problema de cambiar el código del cargador de arranque que requiere cambiar el hardware de la ROM, solo se guarda un pequeño cargador de arranque en la ROM y el cargador de arranque completamente funcional se guarda en el bloque de arranque del disco. En el disco, el bloque de arranque está ubicado en una ubicación fija del disco. Un disco con una partición de arranque se llama disco de arranque o disco de sistema.

malos sectores

Debido a que el hardware tiene partes móviles y poca tolerancia a fallas, es fácil causar que uno o más sectores se corrompan. Hay varias formas de manejar estos bloques según el disco y el controlador utilizados.

  • Para discos simples, como unidades electrónicas integradas (IDE), los sectores defectuosos se pueden manejar manualmente. Por ejemplo, el comando Formatear de MS-DOS escaneará el disco para verificar si hay sectores defectuosos al realizar el formateo lógico. Los sectores defectuosos están marcados en la FAT y, por lo tanto, los programas no los utilizan.
  • Para discos complejos, como SCSI (Small Computer System Interface), el controlador mantiene una lista vinculada de bloques defectuosos del disco. Esta lista vinculada se inicializa durante el formateo de bajo nivel en fábrica y se actualiza continuamente durante la vida útil del disco. El formateo de bajo nivel reserva algunos bloques como repuestos, de forma transparente para el sistema operativo. El controlador puede lógicamente reemplazar bloques defectuosos con bloques de repuesto, un esquema llamado ahorro de sectores.

Supongo que te gusta

Origin blog.csdn.net/pipihan21/article/details/129809281
Recomendado
Clasificación