Revisión final del sistema operativo (Tang Xiaodan) (1)

Tabla de contenido

Cómo entender el concepto de tarea

Cómo entender el concepto de procesamiento por lotes multicanal

Cómo entender las características básicas del sistema operativo, virtual, asíncrono, compartido, concurrente

Introducir el algoritmo de programación

 Introducir la función de gestión del procesador del sistema operativo

Introducción de variables de condición

Introducir la función de gestión de dispositivos

proceso

hilo

punto muerto

Definición de Interbloqueo Condiciones Necesarias Método de Manejo

Introducir la asignación dinámica de particiones 

Introducir el algoritmo de asignación dinámica de particiones

Introducir el método de gestión de páginas.

Introducir tablas de páginas de varios niveles

Introducir el principio básico del sistema de segmentación.


Cómo entender el concepto de tarea

Un trabajo (Job) se refiere a una tarea o unidad de programa enviada por un usuario al sistema operativo para su ejecución. En un sistema operativo, un trabajo suele ser una entidad lógica que consta de una serie de tareas, procesos o programas relacionados.

El concepto de trabajo está estrechamente relacionado con el sistema de procesamiento por lotes, representa un trabajo enviado por el usuario en el sistema informático, que puede ser un programa, un grupo de programas o una serie de tareas relacionadas. Un trabajo generalmente incluye los datos, las instrucciones y los requisitos de ejecución requeridos por el usuario, y su objetivo es completar una tarea específica en el sistema informático.

Los trabajos suelen pasar por el siguiente proceso:

  1. Enviar: un usuario envía un trabajo al sistema operativo, incluidos los programas y datos necesarios.

  2. En cola: los trabajos se colocan en una cola de trabajos y esperan ser procesados ​​por el sistema operativo. La cola se suele hacer por orden de llegada.

  3. Programación: el sistema operativo selecciona uno o más trabajos de la cola de trabajos de acuerdo con el algoritmo de programación y los programa según los recursos informáticos disponibles para su ejecución.

  4. Ejecución: el trabajo seleccionado se ejecuta en los recursos informáticos asignados, incluidos los procesadores, la memoria y otros recursos del sistema.

  5. Finalización: después de que se ejecuta el trabajo, el resultado se devuelve al usuario o se almacena en una ubicación específica.

El concepto de trabajo es particularmente importante en el sistema de procesamiento por lotes multicanal , que permite ejecutar varios trabajos en el sistema informático al mismo tiempo, lo que mejora la utilización de recursos y la eficiencia del sistema. El sistema operativo necesita administrar y programar trabajos de manera efectiva para garantizar la asignación razonable de los recursos del sistema y la ejecución normal de los trabajos.

Cómo entender el concepto de procesamiento por lotes multicanal

La programación múltiple es un modo operativo del sistema operativo que permite ejecutar varios trabajos en un sistema informático al mismo tiempo sin la intervención del usuario. En un sistema de procesamiento por lotes multicanal, se envían varios trabajos al sistema operativo para su ejecución, y el sistema operativo asignará razonablemente los recursos del sistema de acuerdo con un cierto algoritmo de programación y estrategia de gestión de recursos, de modo que se puedan ejecutar varios trabajos al mismo tiempo.

Las características del sistema de procesamiento por lotes multicanal incluyen:

  1. Ejecución simultánea: se pueden ejecutar varios trabajos en el sistema al mismo tiempo, lo que mejora la utilización y la eficiencia de los recursos del sistema. Cuando un trabajo está esperando una operación de E/S u otra operación de bloqueo, el sistema puede cambiar a otro trabajo para aprovechar al máximo el tiempo de inactividad.

  2. Programación automática: el sistema operativo seleccionará un trabajo adecuado de la cola de trabajos para su ejecución de acuerdo con un determinado algoritmo de programación. Los algoritmos de programación comúnmente utilizados incluyen First Come First Serve (FCFS), Short Job First (SJF), Time Slice Round Robin (RR), etc.

  3. Administración de recursos: el sistema operativo necesita administrar y asignar varios recursos del sistema informático, incluidos procesadores, memoria, dispositivos, etc. Debe asegurarse de que cada trabajo obtenga los recursos que necesita y evitar conflictos y desperdicios de recursos.

  4. Protección y aislamiento entre trabajos: el sistema de procesamiento por lotes multicanal debe garantizar que cada trabajo esté aislado entre sí para evitar interferencias y conflictos entre trabajos. Cada trabajo debe tener su propio espacio de direcciones y recursos independientes durante la ejecución, y no afectará la ejecución de otros trabajos.

La ventaja del sistema de procesamiento por lotes multicanal es que puede hacer un uso completo de los recursos del sistema informático y mejorar el rendimiento y la eficiencia del sistema. Es adecuado para trabajos que se pueden automatizar, como el procesamiento por lotes de grandes cantidades de datos o la ejecución de una serie de tareas similares. Sin embargo, los sistemas de procesamiento por lotes multicanal también enfrentan algunos desafíos, como la programación de trabajos y la gestión de recursos, y la interacción entre trabajos, etc., que requieren que el sistema operativo proporcione los mecanismos y estrategias correspondientes para resolverlos.

El procesamiento por lotes multicanal no se realiza a través de la tecnología de interrupción, sino a través del algoritmo de programación y la estrategia de gestión de recursos del sistema operativo para realizar la ejecución simultánea de múltiples trabajos.

El algoritmo de programación por turnos de segmentos de tiempo es un algoritmo de programación de uso común en los sistemas de procesamiento por lotes multicanal. Divide el tiempo de la CPU en varios segmentos de tiempo, y cada trabajo se ejecuta durante un período de tiempo en un segmento de tiempo, y luego cambia a el siguiente trabajo Esta forma de cambiar a su vez permite ejecutar múltiples trabajos alternativamente, logrando la concurrencia.

En cuanto a si el procesamiento por lotes multicanal se puede ejecutar en una CPU de un solo núcleo, en realidad depende de la implementación del sistema operativo y el soporte del hardware. Bajo una CPU de un solo núcleo, el sistema operativo asigna tiempo de CPU a múltiples trabajos a través de algoritmos de programación, como la rotación de intervalos de tiempo, lo que les permite ejecutarse alternativamente. Aunque solo se está ejecutando un trabajo en un momento determinado, dado que el cambio entre trabajos es tan rápido, da la impresión de que se están ejecutando al mismo tiempo.

Sin embargo, debe tenerse en cuenta que en un sistema de procesamiento por lotes multicanal ejecutado bajo una CPU de un solo núcleo, cada trabajo no se ejecuta realmente en paralelo, sino que el efecto de la ejecución concurrente se simula mediante un cambio rápido. De hecho, una CPU de un solo núcleo solo puede ejecutar una instrucción a la vez, pero da a las personas una sensación de concurrencia al cambiar de trabajo.

En un sistema de procesamiento por lotes multicanal, si se utiliza una CPU multinúcleo con varios núcleos físicos, cada núcleo puede ejecutar un trabajo al mismo tiempo, logrando así una verdadera ejecución en paralelo. Pero incluso bajo una CPU de un solo núcleo, el sistema de procesamiento por lotes multicanal aún puede implementar la ejecución simultánea de trabajos a través de algoritmos de programación apropiados y tecnologías de rotación de intervalos de tiempo, mejorando la eficiencia del sistema y la utilización de recursos.

 

Cómo entender las características básicas del sistema operativo, virtual, asíncrono, compartido, concurrente

Las características básicas de un sistema operativo incluyen virtualización, asincronía, uso compartido y concurrencia. A continuación explico cada característica:

  1. Virtualización: el sistema operativo abstrae los recursos físicos (como procesadores, memoria y almacenamiento) en múltiples recursos virtuales lógicos a través de la tecnología de virtualización, de modo que cada aplicación sienta que tiene recursos exclusivos. Por ejemplo, la memoria virtual puede hacer que cada programa parezca tener su propio espacio de memoria independiente, cuando en realidad comparten memoria física.

  2. Asincronía: Los procesos o subprocesos en un sistema operativo pueden ejecutarse de forma asíncrona, es decir, su ejecución no sigue un orden o tiempo fijo. El sistema operativo puede cambiar la ejecución entre diferentes procesos o subprocesos según sea necesario, e implementar la ejecución simultánea a través de la rotación de intervalos de tiempo u otros algoritmos de programación.

  3. Uso compartido: el sistema operativo administra y controla los recursos en el sistema informático y garantiza que varias aplicaciones puedan compartir esos recursos. Por ejemplo, varias aplicaciones pueden acceder simultáneamente a dispositivos compartidos, como impresoras y conexiones de red, y el sistema operativo es responsable de programar y coordinar su acceso.

  4. Concurrencia: el sistema operativo puede soportar la ejecución simultánea de múltiples tareas o procesos independientes para que puedan ejecutarse alternativamente dentro del mismo período de tiempo. El sistema operativo implementa la ejecución concurrente a través de mecanismos como la rotación de intervalos de tiempo y la programación de procesos, lo que mejora la eficiencia del sistema y la utilización de recursos.

Estas características básicas permiten que el sistema operativo administre de manera efectiva los recursos del sistema informático y proporcione un buen entorno de ejecución para las aplicaciones. A través de la virtualización, la asincronía, el uso compartido y la concurrencia, el sistema operativo puede lograr una utilización eficiente de los recursos, una ejecución eficiente de las tareas y una buena experiencia de usuario.

Introducir el algoritmo de programación

Un algoritmo de programación es un conjunto de reglas y políticas utilizadas en un sistema operativo para determinar el orden en que se ejecutan los procesos o subprocesos. Determina qué procesos o subprocesos del sistema deben asignarse para ejecutarse en el procesador, y cuándo y en qué orden se ejecutan en el procesador. El objetivo de los algoritmos de programación es optimizar el rendimiento del sistema, la utilización de recursos y el tiempo de respuesta.

Los siguientes son varios algoritmos de programación comunes:

  1. Primero en llegar, primero en ser atendido (FCFS, First-Come, First-Served): Programe trabajos o procesos en el orden en que llegan. Cuando un proceso comienza a ejecutarse, se ejecuta hasta que se completa o se bloquea. Este algoritmo es simple e intuitivo, pero puede generar el problema de la prioridad de los trabajos largos, es decir, los trabajos cortos deben esperar a que se completen los trabajos largos.

  2. Trabajo más corto primero (SJF, Trabajo más corto primero): seleccione el trabajo o proceso con el tiempo de ejecución más corto para ejecutarlo primero. Este algoritmo puede minimizar el tiempo de espera promedio, pero necesita saber el tiempo de ejecución del trabajo por adelantado, lo que no es adecuado para sistemas en tiempo real o trabajos dinámicos.

  3. Programación de prioridad: Asigne una prioridad a cada trabajo o proceso, y los trabajos con mayor prioridad se ejecutan primero. La prioridad puede ser estática, establecida por el usuario o el sistema, o dinámica, ajustada dinámicamente según la importancia y urgencia del trabajo.

  4. Round Robin: divide el tiempo del procesador en intervalos de tiempo de duración fija, cada trabajo o proceso se ejecuta en un intervalo de tiempo y luego cambia al siguiente trabajo. Este algoritmo asegura que cada trabajo tenga un cierto tiempo de ejecución y un tiempo de respuesta relativamente rápido.

  5. Programación de colas de comentarios de varios niveles: divida los trabajos o procesos en varias colas, cada una con una prioridad y un tamaño de intervalo de tiempo diferentes. Los procesos se mueven entre diferentes colas, ajustando dinámicamente la prioridad y el tamaño del intervalo de tiempo en función de su comportamiento y tiempo de ejecución.

Estos algoritmos de programación tienen sus propias ventajas y desventajas, y son adecuados para diferentes escenarios y requisitos. La elección de un algoritmo de programación adecuado depende de las características del sistema, la naturaleza de la aplicación y los requisitos de rendimiento y tiempo de respuesta del usuario.

 Introducir la función de gestión del procesador del sistema operativo

La función de administración del procesador del sistema operativo se refiere a la capacidad del sistema operativo para asignar, programar y administrar los procesadores (CPU) en la computadora. La administración del procesador es una de las funciones principales del sistema operativo, que garantiza que los recursos del procesador en el sistema se utilicen de manera efectiva para satisfacer las necesidades de ejecución de cada proceso o subproceso.

Los siguientes son los aspectos principales de las funciones de gestión del procesador:

  1. Programación de procesos: el sistema operativo es responsable de decidir qué proceso o subproceso debe ejecutarse en el procesador de acuerdo con el algoritmo de programación, y decide su orden de ejecución y asignación de intervalos de tiempo. La elección del algoritmo de programación afecta el rendimiento y el tiempo de respuesta del sistema.

  2. Creación y finalización de procesos: el sistema operativo es responsable de crear nuevos procesos o subprocesos y finalizarlos cuando los procesos completan sus tareas o cuando ocurre una excepción. Esto incluye la asignación de bloques de control de procesos (PCB), la asignación de recursos a los procesos, el establecimiento de mecanismos de comunicación entre procesos y más.

  3. Sincronización y comunicación de procesos: el sistema operativo proporciona varios mecanismos para lograr la sincronización y comunicación entre procesos para que puedan trabajar juntos, compartir recursos e intercambiar información. Esto incluye semáforos, mutexes, variables de condición, conductos, colas de mensajes y más.

  4. Manejo de interrupciones: cuando ocurre una interrupción o excepción de hardware, el sistema operativo es responsable de administrar la ejecución de los controladores de interrupciones para responder y manejar eventos externos. Guarda el estado del proceso actual, cambia al controlador de interrupciones y restaura el estado de ejecución original después de manejar la interrupción.

  5. Gestión multiprocesador: si el sistema tiene varios procesadores, el sistema operativo necesita gestionar y coordinar su trabajo para garantizar que las tareas se distribuyan y ejecuten en cada procesador y aprovechar el procesamiento paralelo para mejorar el rendimiento del sistema.

  6. Asignación y administración de recursos: el sistema operativo administra la asignación de recursos del procesador, incluida la asignación de intervalos de tiempo del procesador, el manejo de interrupciones y excepciones, y el manejo de diversas solicitudes. También realiza un seguimiento y supervisa la utilización del procesador y las métricas de rendimiento para optimizar el uso de los recursos.

A través de una gestión eficaz del procesador, el sistema operativo puede lograr una programación razonable de los procesos y un uso eficiente de los recursos, proporcionando un buen rendimiento del sistema, tiempo de respuesta y experiencia del usuario.

Introducción de variables de condición

La variable de condición es un mecanismo de comunicación entre procesos proporcionado por el sistema operativo para realizar la sincronización y la cooperación entre procesos. Por lo general, se usa junto con un mutex (Mutex) para resolver las condiciones de carrera y la contención de recursos entre múltiples procesos.

Una variable de condición permite que uno o más procesos (o subprocesos) esperen a que ocurra una condición específica. Una vez que se cumple la condición, el proceso bloqueado se reactivará y podrá continuar ejecutándose. Las variables de condición proporcionan una manera eficiente para que un proceso espere en una condición específica sin consumir recursos del procesador debido a la espera ocupada.

Las variables de condición a menudo se usan junto con exclusiones mutuas para garantizar que la exclusión mutua se adquiera antes de acceder a un recurso compartido y, cuando no se cumple la condición, se libera la exclusión mutua y se espera la variable de condición. Cuando otros procesos cambian la variable de condición que cumple la condición, pueden notificarles que la condición se ha cumplido despertando los procesos en espera.

En aplicaciones prácticas, las variables de condición se pueden utilizar en diversas situaciones, como problemas de productor-consumidor, problemas de lector-escritor, etc. Proporciona una forma confiable de permitir que los procesos esperen cuando se cumplan las condiciones requeridas y de recibir una notificación cuando cambien las condiciones, logrando así la coordinación y el intercambio de recursos entre procesos.

Cabe señalar que la variable de condición está asociada con un mutex específico, por lo que al usar la variable de condición, es necesario garantizar el uso y la gestión correctos del mutex para evitar problemas como las condiciones de bloqueo y carrera. Al mismo tiempo, las operaciones en variables de condición deben seguir patrones y convenciones de programación específicos para garantizar un comportamiento correcto de sincronización y comunicación.

Introducir la función de gestión de dispositivos

La gestión de dispositivos es una función importante del sistema operativo, que implica la gestión y el control de varios dispositivos externos (como discos duros, impresoras, teclados, ratones, etc.) en el sistema informático.

El objetivo principal de la administración de dispositivos es administrar y asignar eficientemente los recursos de los dispositivos en el sistema para satisfacer las necesidades de los procesos y brindar una buena experiencia de usuario. Implica solicitudes de dispositivos, asignación, liberación, programación, manejo de errores y administración de controladores de dispositivos.

Las funciones de gestión de dispositivos incluyen principalmente los siguientes aspectos:

  1. Gestión de controladores de dispositivos: los controladores de dispositivos son responsables de comunicar y controlar los dispositivos de hardware. El sistema operativo necesita administrar la carga, inicialización y descarga de controladores de dispositivos para garantizar que los controladores de dispositivos puedan funcionar correctamente e interactuar con otros componentes del sistema.

  2. Asignación y liberación de dispositivos: el sistema operativo necesita asignar y liberar recursos de dispositivos en el sistema para satisfacer las necesidades del proceso. La asignación de dispositivos generalmente se basa en políticas como la solicitud y la prioridad para garantizar que los recursos del dispositivo se asignen razonablemente a diferentes procesos. La liberación del dispositivo es para devolverlo al sistema para que lo usen otros procesos después de que el proceso haya terminado de usar el dispositivo.

  3. Programación de dispositivos: cuando varios procesos solicitan el mismo dispositivo al mismo tiempo, el sistema operativo necesita programar el dispositivo para determinar qué proceso obtiene el derecho de usar el dispositivo primero. El algoritmo de programación de equipos puede programar solicitudes de equipos de acuerdo con diferentes políticas (como orden de llegada, trabajo más corto primero, prioridad, etc.) para mejorar la utilización del equipo y el rendimiento de la respuesta del sistema.

  4. Manejo de errores del dispositivo: pueden ocurrir varios errores en el dispositivo, como fallas de hardware, errores de transmisión, etc. El sistema operativo necesita detectar y manejar estos errores y tomar las medidas adecuadas, como volver a solicitar, reiniciar el dispositivo, etc., para garantizar el funcionamiento normal del dispositivo y la estabilidad del sistema.

La administración de dispositivos involucra una amplia gama de tipos de dispositivos, incluidos dispositivos de disco, dispositivos de red, dispositivos de entrada y dispositivos de salida. Desempeña un papel importante en el sistema operativo. A través de una administración razonable de dispositivos, se puede mejorar el rendimiento, la confiabilidad y la disponibilidad del sistema, al tiempo que se garantiza que el proceso pueda interactuar y comunicarse de manera efectiva con dispositivos externos.

 

Tipos de llamadas al sistema:

 

proceso

 

 

 

hilo

Introducir subprocesos: reducir la sobrecarga de espacio-tiempo y mejorar la concurrencia

punto muerto

Definición de Interbloqueo Condiciones Necesarias Método de Manejo

 

 

 

asignación

 

 

Introducir la asignación dinámica de particiones 

La asignación dinámica de particiones es una técnica de administración de memoria del sistema operativo para asignar y administrar eficientemente el espacio de memoria para los procesos. En la asignación dinámica de particiones, el sistema operativo divide la memoria física disponible en múltiples particiones de diferentes tamaños, y las asigna y recupera dinámicamente de acuerdo con los requisitos de memoria del proceso.

Los siguientes son los principios básicos y el proceso de asignación dinámica de particiones:

  1. Particionamiento de la memoria: el sistema operativo divide la memoria física disponible en varias particiones, y cada partición se puede usar para almacenar un proceso o una parte de un proceso.

  2. El proceso solicita memoria: cuando un proceso necesita espacio de memoria, realiza una solicitud al sistema operativo. El tamaño solicitado suele estar en bytes.

  3. Asignar memoria: De acuerdo con el algoritmo de asignación de particiones, el sistema operativo encuentra una partición lo suficientemente grande para satisfacer las necesidades del proceso en el área libre de memoria disponible. La forma de asignación puede ser primer ajuste, mejor ajuste, peor ajuste, etc.

  4. Actualizar información de partición: después de asignar memoria, el sistema operativo necesita actualizar la información de estado de la partición, como la dirección de inicio, el tamaño y el estado de asignación de la partición.

  5. Uso del proceso de la memoria: un proceso al que se le ha asignado memoria puede comenzar a usar el espacio de la memoria, ejecutar código de programa y manipular datos.

  6. Recuperación de memoria: cuando un proceso ya no necesita el espacio de memoria, libera la memoria para el sistema operativo. El sistema operativo marca la partición como libre y la fusiona o la reasigna a otro proceso.

La asignación dinámica de particiones puede utilizar eficazmente los recursos de memoria disponibles, permitir que varios procesos se ejecuten simultáneamente y proporcionar flexibilidad en la gestión de la memoria. Sin embargo, la asignación dinámica de particiones también puede conducir a la fragmentación de la memoria, y se deben usar algoritmos de administración de particiones adecuados para optimizar la utilización y el rendimiento de la memoria.

Introducir el algoritmo de asignación dinámica de particiones

El algoritmo de asignación dinámica de particiones es un método para administrar la memoria, que divide la memoria física disponible en múltiples particiones de diferentes tamaños y asigna y reclama dinámicamente estas particiones de acuerdo con las necesidades del proceso.

Los siguientes son varios algoritmos comunes de asignación de particiones dinámicas:

  1. Algoritmo de primer ajuste (First Fit): este algoritmo encuentra la primera partición libre lo suficientemente grande como para satisfacer las necesidades del proceso de la lista de áreas libres de memoria. La ventaja de este algoritmo es que es simple y tiene una alta eficiencia de ejecución, pero puede generar más fragmentos.

  2. Algoritmo Best Fit (Best Fit): Este algoritmo encuentra la partición libre más pequeña lo suficientemente grande como para satisfacer las necesidades del proceso de la lista de áreas libres de memoria. La ventaja de este algoritmo es que puede minimizar la generación de fragmentos, pero la eficiencia de ejecución es baja.

  3. Algoritmo Worst Fit (Worst Fit): Este algoritmo encuentra la partición libre más grande de la lista de áreas libres de memoria para satisfacer las necesidades del proceso. La ventaja de este algoritmo es que puede hacer uso de grandes particiones libres tanto como sea posible, pero puede dar lugar a más fragmentos.

  4. Algoritmo de primer ajuste cíclico (Next Fit): este algoritmo es similar al algoritmo de primer ajuste, pero comienza a buscar desde la última posición de asignación, evitando buscar desde el principio de la lista cada vez. La ventaja de este algoritmo es que puede reducir la sobrecarga de búsqueda.

Introducir el método de gestión de páginas.

La gestión de paginación es un método de gestión de memoria en el sistema operativo, que divide el espacio de direcciones lógicas de un proceso en páginas (o bloques) de tamaño fijo y divide la memoria física en marcos de página (o bloques físicos) del mismo tamaño. A través de la gestión de paginación, el sistema operativo puede asignar las páginas del proceso a los marcos de página en la memoria física para realizar la abstracción y la gestión de la memoria virtual.

Los siguientes son los principios y procesos básicos de la gestión de paginación:

  1. Tamaño de página: primero determine el tamaño de página, el tamaño de página común es de 4 KB o 8 KB, el tamaño específico depende de las limitaciones del sistema operativo y el hardware.

  2. Mapeo de direcciones lógicas: El espacio de direcciones lógicas de un proceso se divide en páginas de tamaño fijo. Una dirección lógica consta de dos partes: el número de página y el desplazamiento dentro de la página. El número de página se utiliza para identificar el índice de la página y el desplazamiento dentro de la página indica la posición específica dentro de la página.

  3. Tabla de páginas: cada proceso tiene una tabla de páginas para almacenar la relación de mapeo entre direcciones lógicas y direcciones físicas. Cada entrada en la tabla de páginas registra la relación de mapeo entre una página lógica y la página física correspondiente.

  4. Acceso a la tabla de páginas: cuando un proceso accede a una dirección lógica, el sistema operativo busca la correspondencia entre las páginas lógicas y las páginas físicas a través de la tabla de páginas. Busque la entrada de la tabla de páginas correspondiente en la tabla de páginas según el número de página, que contiene la dirección del marco de página físico.

  5. Mantenimiento de la tabla de páginas: cuando se accede a una página de un proceso o se modifica, la tabla de páginas debe actualizarse en consecuencia. Por ejemplo, cuando la página no está en la memoria física, se debe realizar una paginación para cargarla en la memoria física; cuando se modifica la página, se debe actualizar el bit de bandera de la tabla de páginas.

  6. Paginación: cuando la página a la que accede el proceso no está en la memoria física, se requiere paginación para cargar la página correspondiente del disco a la memoria física. Un algoritmo de paginación generalmente selecciona páginas para ser reemplazadas de acuerdo con una determinada estrategia.

El método de gestión de paginación puede proporcionar un espacio de memoria virtual más grande, permitir que varios procesos se ejecuten simultáneamente y reducir el problema de la fragmentación de la memoria. Sin embargo, la administración de paginación también introduce la sobrecarga del acceso a la tabla de páginas y puede provocar que se produzcan interrupciones de fallas de paginación y paginación. Por lo tanto, se deben considerar varios factores al diseñar e implementar la administración de paginación para mejorar el rendimiento y la eficiencia.

Introducir tablas de páginas de varios niveles

La tabla de páginas de varios niveles es una tecnología de gestión de paginación que se utiliza para resolver el problema de gestión de un gran espacio de direcciones. Reduce el tamaño de la tabla de páginas y la sobrecarga de acceso al dividir las tablas de páginas en varios niveles de tablas. Los siguientes son los principios básicos y el flujo de trabajo de las tablas de páginas de varios niveles:

  1. Estructura jerárquica: la tabla de páginas de varios niveles divide todo el espacio de direcciones lógicas en varias estructuras jerárquicas, y cada nivel corresponde a una tabla de páginas . Por lo general, una dirección lógica consta de un número de página y un desplazamiento dentro de la página, y cada nivel de la tabla de páginas corresponde a una parte de la dirección.

  2. Índice jerárquico: cada nivel de la tabla de páginas contiene entradas de índice y tabla de páginas. El índice se utiliza para localizar la tabla de páginas del siguiente nivel según el número de página, y la entrada de la tabla de páginas registra la relación de correlación entre el número de página y el marco de página físico.

  3. Acceso jerárquico: Cuando un proceso accede a una dirección lógica, el sistema operativo accede secuencialmente a la tabla de páginas correspondiente según la estructura jerárquica de la dirección lógica. Comenzando desde el nivel superior, busque la tabla de páginas del siguiente nivel a través del índice, hasta que la tabla de páginas del último nivel encuentre la dirección del marco de página físico.

  4. Tamaño de entrada de la tabla de páginas: debido al uso de una estructura de varios niveles, cada tabla de páginas solo necesita almacenar la relación de asignación de parte del espacio de direcciones lógicas. Por lo tanto, el tamaño de cada tabla de páginas es relativamente pequeño, lo que puede ahorrar espacio en la memoria.

  5. Carga diferida: la tabla de páginas de varios niveles admite la carga diferida (también conocida como carga diferida), es decir, solo cuando un proceso accede a una página, la entrada de la tabla de páginas correspondiente y el marco de la página física se cargan en la memoria, lo que reduce el tiempo de inicialización. sobrecarga

  6. Acceso a la tabla de páginas: cuando un proceso accede a una dirección lógica, el sistema operativo necesita realizar múltiples accesos en la tabla de páginas de varios niveles para encontrar la dirección del marco de página físico. Esto aumentará una cierta cantidad de sobrecarga de acceso, pero a través del diseño de la estructura jerárquica y el índice jerárquico, el tamaño general de la tabla de páginas y el tiempo de acceso se pueden reducir de manera efectiva.

La ventaja de la tabla de páginas de varios niveles es que puede admitir la gestión de un gran espacio de direcciones, especialmente adecuado para la situación en la que es necesario gestionar una gran cantidad de procesos en un sistema operativo moderno y un entorno de virtualización. A través de la estructura jerárquica y la estrategia de carga diferida, las tablas de páginas de varios niveles pueden administrar y asignar direcciones lógicas a la memoria física de manera eficiente, lo que brinda un buen rendimiento de administración de la memoria.

Introducir el principio básico del sistema de segmentación.

El sistema de segmentación es una tecnología de administración de memoria que divide el espacio de direcciones lógicas de un proceso en varios segmentos, y cada segmento representa una unidad lógica (como segmento de código, segmento de datos, segmento de montón, etc.), y asigna el tamaño correspondiente del espacio de memoria

La lógica y el flujo de trabajo del sistema de segmentación es el siguiente:

  1. Espacio de direcciones lógicas: el espacio de direcciones lógicas de un proceso consta de varios segmentos, y cada segmento corresponde a una unidad lógica, como código de programa, datos, montón y pila. Cada segmento tiene su propia dirección de inicio y longitud.

  2. Tabla de segmentos: el sistema operativo mantiene una tabla de segmentos, que registra la información de cada segmento, incluida la dirección inicial del segmento, la longitud, los permisos, etc. La tabla de segmentos se almacena en la memoria y cada proceso tiene su propia tabla de segmentos.

  3. Selector de segmento: durante la ejecución del programa, la CPU utiliza un selector de segmento para especificar el segmento al que se accede actualmente. El selector de segmento contiene el índice del segmento en la tabla de segmentos y alguna información de atributos del segmento.

  4. Traducción de direcciones de segmento: cuando un proceso accede a una dirección lógica, la CPU encuentra el descriptor de segmento correspondiente a través del selector de segmento y obtiene la dirección de inicio y la longitud del segmento. Luego, la CPU agrega el desplazamiento del segmento en la dirección lógica a la dirección de inicio del segmento para obtener la dirección física.

  5. Protección de segmento: El sistema de segmentación realiza la protección de la memoria a través del atributo de permiso del segmento. Cada segmento tiene su propia configuración de permisos, incluidos los permisos de lectura, escritura, ejecución y otros. Cuando un proceso intenta acceder a la memoria protegida, la CPU realiza verificaciones de permisos y rechaza el acceso ilegal.

  6. Asignación de memoria: en un sistema segmentado, la memoria se asigna de acuerdo con las necesidades del segmento. Cuando un proceso solicita crear un nuevo segmento, el sistema operativo asignará un espacio de memoria de tamaño suficiente para el segmento y actualizará la información en la tabla de segmentos.

La ventaja del sistema de segmentación es que puede gestionar de forma flexible el espacio de direcciones lógicas del proceso, y cada segmento puede asignar y gestionar la memoria de forma independiente según los requisitos, lo que proporciona una mejor utilización de la memoria y mecanismos de protección. Sin embargo, también hay algunos desafíos en el sistema de segmentación, como problemas de fragmentación externa, sobrecarga de administración de tablas de segmentos, etc., que requieren algoritmos y estrategias razonables para resolver.

Supongo que te gusta

Origin blog.csdn.net/m0_62574889/article/details/131053973
Recomendado
Clasificación