La solución perfecta para el proceso del sistema ya no es un punto muerto

  

Si nuestra computadora tiene múltiples programas ejecutándose al mismo tiempo, habrá competencia por ciertos recursos de datos, y si los recursos no son suficientes, entrarán en el estado de espera. Si el recurso solicitado está ocupado por otros procesos de espera, entonces el proceso de espera puede estar en estado de espera para siempre y no puede cambiar el estado. Esto se denomina un interbloqueo del proceso del sistema. Entonces, ¿hay alguna manera de hacer que el proceso del sistema no se convierta en un punto muerto?

De hecho, la forma fundamental de que el sistema no salga de un punto muerto es eliminar las cuatro condiciones necesarias para el punto muerto, analicemos juntos. Cómo destruir estas condiciones.

Destrucción de las condiciones de mutex

La destrucción de una condición de mutex permite que múltiples procesos accedan a los recursos al mismo tiempo. Dado que las características inherentes del acceso exclusivo de la mayoría de los recursos no se pueden cambiar, la prevención de puntos muertos no funciona en muchas situaciones al destruir esta condición necesaria. Por ejemplo, los recursos de la impresora deben usarse indistintamente. De lo contrario, se utilizan varios procesos al mismo tiempo y cada proceso imprime una línea. Esta forma de generar información obviamente no es aceptable para el usuario.

Destrucción de las condiciones de posesión y espera

Esta condición se puede romper con el método estático de asignación de recursos, lo que significa que todos los recursos necesarios para su operación se asignan en un momento antes de que se ejecute el proceso. . Si el sistema tiene suficientes recursos para asignar a un proceso, asigna sus recursos requeridos al proceso a la vez, de modo que no se realicen solicitudes de recursos durante la ejecución del proceso, de modo que no se establezca la condición de espera. Si hay un requisito de recursos que no se puede satisfacer cuando se realiza la asignación, otros recursos requeridos por el proceso no se asignan primero al proceso, evitando así que el proceso ocupe recursos durante el período de espera y destruya la condición de ocupación, evitando así la ocurrencia de un punto muerto.

Este método es simple y fácil de implementar. Sin embargo, debido a la plena ocupación de los recursos requeridos durante la ejecución del proceso, algunos recursos con poco tiempo de uso se ocupan durante mucho tiempo, lo que afectará seriamente la utilización total de los recursos del sistema. Como resultado, se reduce la utilización de recursos, y los pares también afectan el retraso en la operación de los procesos que no tienen acceso a todos los recursos.

Condiciones de destrucción y privación

El control destructivo puede destruir esta condición al realizar un proceso que ya ha mantenido ciertos recursos, que actualmente no se cumplen debido a los nuevos requisitos de recursos. Debe liberar temporalmente todos los recursos (una privación) que mantiene, y luego esperar, y luego juntar la toalla al sistema, lo que también evitará el bloqueo. Este método es relativamente difícil de implementar. Para evitar que el proceso abandone automáticamente el sitio del recurso y luego lo recupere, cuesta un precio alto, y este método solo es aplicable al procesador ya los recursos de memoria. Para otros recursos, este método no debe utilizarse. .

Rompiendo la condición de espera del bucle

El uso del método de asignación de orden de recursos puede romper la condición. La idea básica de este método de asignación es dividir todos los recursos del sistema en múltiples niveles. Después de que un proceso obtiene un recurso de una capa determinada, solo puede _ pedir una capa más alta de recursos; cuando un proceso desea liberar una capa Cuando se utiliza un recurso, primero debe liberar los recursos de nivel superior que ocupa, cuando un proceso adquiere un recurso de una capa determinada, quiere aplicar otro recurso en la capa de nuevo y primero debe liberarlo en la capa. Posesión de recursos. En otras palabras, el orden en el que el proceso libera recursos está en el orden inverso de los recursos solicitados. Esto evita que se produzcan esperas de bucle, por lo que no se producen puntos muertos. Una preocupación particular con este enfoque es la disposición de los recursos a nivel. En circunstancias normales, los recursos más comunes que se utilizan a menudo en cada proceso se organizan en un nivel inferior, y los recursos importantes y relativamente escasos se organizan en un nivel superior para maximizar el uso de los recursos. . En comparación con el método descrito anteriormente, este método tiene mejoras significativas en la utilización de recursos y el rendimiento del sistema. Pero también hay algunas fallas.

(1) Los recursos de bajo nivel deben aplicarse por adelantado antes de que el proceso solicite la asignación de recursos en el nivel. Esto es un desperdicio de inactividad en espera de recursos de bajo nivel que no son necesarios por el momento.

(2) Una vez que se establecen los niveles de recursos de varios tipos de equipos, no se pueden cambiar a voluntad, lo que limita el aumento de nuevos tipos de equipos.

(3) El nivel de cada recurso se establece en el orden en que la mayoría de los procesos utilizan los recursos. Para el proceso de uso de recursos y flasheo en este nivel, los recursos se pueden utilizar de manera efectiva. De lo contrario, la pérdida de recursos seguirá existiendo.

Si se produce un interbloqueo, el proceso nunca puede completarse, evita el uso de los recursos del sistema y evita que otros trabajos inicien la ejecución. Por lo tanto, es tan importante que el proceso del sistema ya no tenga un punto muerto, y debe atraer nuestra atención.

Copyright © Conocimiento de Windows All Rights Reserved