Programación multinivel de procesadores

Programación multinivel de procesadores

  • Programación avanzada (trabajo / largo alcance / programación macro)

    Se usa para decidir transferir esos trabajos en la cola de respaldo en la memoria externa a la memoria y crear procesos y asignar los recursos necesarios para ellos ; luego, inserte el proceso recién creado en la cola lista para la ejecución

  • Programación intermedia (programación intermedia)

    Para mejorar la utilización de la memoria y el rendimiento del sistema, los procesos que no pueden ejecutarse temporalmente deben dejar de ocupar los recursos de la memoria, es decir, transferir al almacenamiento externo y esperar ; cuando la memoria está ligeramente inactiva, puede transferir aquellos en el almacenamiento externo que pueden volver a ejecutarse. Los procesos listos se recuperan en la memoria, modifican su estado y se quedan en la cola de procesos listos y esperan la programación del proceso

  • Programación de bajo nivel (proceso / programación de corto alcance)

    Se usa para determinar qué proceso en la cola lista obtendrá el procesador , y luego el despachador realiza la operación específica de asignar el procesador al proceso

    • Clasificación de los métodos de programación.
      • Método no preventivo (solo aplicable a sistemas de procesamiento por lotes)
        1. El procesador se asigna al proceso hasta que se complete o bloquee
        2. Factores que causan la programación del proceso: el proceso actual se completa o bloquea debido a un evento, una solicitud de E / S o una operación primitiva
        3. Implementación simple y baja sobrecarga del sistema, pero es difícil cumplir con los requisitos de las tareas urgentes, por lo que no es adecuado para el sistema en tiempo real
      • Método de aprobación previa (hay disponibles sistemas de tiempo compartido, en tiempo real y de procesamiento por lotes)
      1. Permite pausar procesos en curso y reasignar procesadores
      2. Principio de aprobación previa (prioridad / prioridad de trabajo corto / principio de intervalo de tiempo)

Algoritmo de programación preventivo

Algoritmo de programación de prioridad de trabajo corto (SJF / SPE)

Idea básica: seleccionar varios trabajos con el menor tiempo de servicio en la memoria, y usar el algoritmo de programación de procesos apropiado para programar la ejecución

Algoritmo de programación de alta prioridad prioritaria (FPF)

La idea básica: ver el nombre

Algoritmo de programación de alta prioridad de respuesta

Idea básica: algoritmo de programación de prioridad de trabajo corto + mecanismo de prioridad dinámico

El mecanismo de prioridad dinámica es dar al proceso una prioridad inicial cuando se crea el proceso, y luego su prioridad cambia a medida que cambia la ejecución del proceso para obtener un mejor rendimiento de programación.

Prioridad (relación de respuesta): (tiempo de espera + tiempo de servicio requerido) / tiempo de servicio requerido

Por lo tanto, la prioridad del trabajo aumenta a medida que aumenta el tiempo de espera.

Ventajas :

El algoritmo se ocupa tanto de los trabajos cortos como del orden de llegada de los trabajos, por lo que los trabajos largos no se atenderán durante mucho tiempo.

desventajas :

El algoritmo calcula la relación de respuesta cada vez antes de la programación, lo que aumenta la sobrecarga del sistema.

Algoritmo de programación de rotación de segmento de tiempo

Principio básico: el sistema organiza todos los procesos listos en una cola de acuerdo con el principio de orden de llegada Haga que el proceso abandone el intervalo de tiempo y cuélguelo al final de la cola para la próxima espera.

Ventajas :

Según la rotación del segmento de tiempo, cada tarea puede tener tiempo para ejecutarse, con buena interactividad

desventajas :

La determinación de los segmentos de tiempo es más complicada. El intervalo de tiempo es demasiado corto, lo que conduce a trabajos cortos, pero las interrupciones frecuentes, el cambio de contexto del proceso, aumentan la sobrecarga del sistema; el intervalo de tiempo es demasiado largo, de modo que cada proceso puede completar la tarea en una unidad de intervalo de tiempo, el algoritmo degenera El algoritmo de primer orden de llegada (FCFS) no puede satisfacer las necesidades interactivas.

Tiempo de respuesta: el intervalo de tiempo desde el envío del trabajo hasta la finalización del trabajo

Tiempo de respuesta potenciado: refleja la diferencia entre asignaciones largas y cortas. Cuanto mayor sea el tiempo de respuesta ponderado, más corto será el trabajo (o proceso); cuanto menor sea el tiempo de respuesta ponderado, más largo será el trabajo (o proceso).

Cálculo del tiempo de respuesta autorizado: tiempo de respuesta / tiempo de servicio

Proceso de cambio de contexto:

Enlace original: https://blog.csdn.net/wb_snail/article/details/105316732

Sabemos que lo que hace la CPU es muy simple, es decir, buscar la instrucción y ejecutarla. Como sistema operativo, debe informar a la CPU dónde obtener la instrucción. Todavía necesita datos cuando se ejecuta la instrucción. Debe decirle de dónde se extraen los datos. Si se desconecta durante la ejecución, también se le deben informar algunos datos temporales generados durante el proceso de cálculo de la CPU para que pueda ejecutar las instrucciones normalmente.

¿Cómo le dices a la CPU esta información?

Simplemente asigne valores a los diversos registros de la CPU, incluida la siguiente dirección de instrucciones en el contador del programa, la dirección de inicio del segmento de datos del programa en el registro del segmento de datos, la dirección de inicio del segmento de instrucciones del programa en el registro del segmento de código, varios datos generales Datos en registros, etc.

Por lo tanto, el conmutador es el valor en los diversos registros de la CPU, de modo que la CPU sepa dónde obtener la instrucción para recuperar los datos y luego puede ejecutarse felizmente. Estos valores almacenados en el registro mientras el proceso se está ejecutando se denominan contexto del proceso

Queremos cortar el proceso que se está ejecutando actualmente, y luego cortar otro proceso, y luego recortaremos el proceso actual y luego lo ejecutaremos, por lo que en el momento anterior al corte del proceso actual, tenemos que guardar los valores en cada registro para colocar Un lugar, cuando se corta más tarde, se saca de este lugar y se asigna al registro, y la CPU puede continuar ejecutándose antes de que el proceso se cortara por última vez. ¿Dónde se guarda?

Después de crear cada proceso, el sistema operativo mantiene un bloque de control de proceso (PCB) para él , que incluye información de identificación de proceso (como PID, PID de proceso principal) e información de control de proceso (el sistema operativo necesita administrar y controlar el proceso para determinar su Estado) e información de estado del procesador, que contiene la información de contexto del proceso en ejecución

Ahora sabemos que el sistema operativo guarda los valores de los registros actuales de la CPU en la PCB del proceso, elimina los contenidos guardados en un momento determinado de la PCB de otro proceso, y los asigna a los registros, y completa el contexto del proceso. Interruptor

Además del cambio de contexto requerido por el proceso de programación normal, también hay un cambio de contexto que ocurre cuando el sistema operativo detecta una interrupción, incluida una interrupción causada por un dispositivo IO, un programa de aplicación inicia activamente una llamada al sistema (como la lectura y escritura de archivos), y se produce un error en el programa de aplicación. (Por ejemplo, dividir por operación 0), después de que el sistema operativo detecta la señal de interrupción, encontrará el programa de procesamiento correspondiente a través de la tabla de vectores de interrupción, y luego cambiará al proceso del programa de procesamiento, y luego volverá a cambiar después de que se complete el procesamiento, el proceso es más o menos similar al anterior

Algoritmo de programación de cola de retroalimentación multinivel

Principio basico:

(1) Configure múltiples colas listas y asigne diferentes prioridades a cada cola.Los procesos en cada cola se ejecutan de una manera temporal. La primera cola tiene la prioridad más alta, la segunda cola viene después, y la prioridad de las colas restantes disminuye una por una. El algoritmo asigna diferentes tamaños de segmentos de tiempo de ejecución de proceso en cada cola. Cuanto mayor sea la prioridad, menor será el segmento de tiempo de ejecución especificado para cada proceso.
(2) Cuando un proceso ingresa a la memoria, primero se coloca en la primera cola y se pone en cola para la programación de acuerdo con el principio FCFS. Cuando el proceso está programado, si puede completarse dentro del intervalo de tiempo, será evacuado del sistema. Si no se completa dentro de un intervalo de tiempo, se colocará al final de la segunda cola y luego esperará en línea de acuerdo con el principio FCFS, y luego siga el primero Ejecutado en una cola.
(3) Los procesos en la segunda cola solo se programarán cuando la primera cola esté libre, y los procesos en la i-ésima cola solo se programarán cuando las colas primera a (i-1) estén libres.

Ventajas :

Tiene un mejor rendimiento y puede satisfacer las necesidades de varios tipos de usuarios.

desventajas :

Hay muchas colas de colas que consumen recursos del sistema.

Programación en tiempo real

Hay dos tipos diferentes de tareas en los sistemas en tiempo real: tareas difíciles en tiempo real (HRT): [deben cumplir con los requisitos de la fecha límite de la tarea] y tareas suaves en tiempo real (SRT): [una fecha límite está vinculada, pero no es estricta]; ambos Hay una fecha límite; el algoritmo de programación en tiempo real debe ser capaz de cumplir con los requisitos de las tareas en tiempo real ; de lo contrario, tendrá serias consecuencias; por lo tanto, el algoritmo de programación en tiempo real tiene ciertas condiciones.

Fecha límite más temprana primero (Fecha límite más temprana primero)

En este algoritmo de programación, la prioridad de la tarea se determina de acuerdo con la fecha límite de la tarea: cuanto antes sea la fecha límite de la tarea, mayor será la prioridad ; la tarea con la fecha límite más temprana se clasifica primero en la cola;

Ejemplo:

Algoritmo de primera programación de menor laxitud

En este algoritmo de programación, la prioridad de la tarea se determina de acuerdo con la urgencia de la tarea: cuanto más urgente sea la tarea, mayor será su prioridad y cuanto más urgente signifique, menor será su holgura;

Holgura de la tarea : la fecha límite para completar la tarea, el tiempo de procesamiento requerido por la tarea, la hora actual

La programación se produce cuando una determinada tarea finaliza normalmente o la holgura mínima de una determinada tarea se convierte en 0;

Al principio (t1 = 0), A1 debe completarse a 20 ms, y necesita 10 ms para ejecutarse, y la holgura de A1 puede calcularse en 10 ms; B1 debe completarse a 50 ms, y necesita 25 ms para ejecutarse. La holgura de B1 se calcula en 25 ms, por lo que el planificador debe programar a A1 para que se ejecute primero, y así sucesivamente.

Inversión prioritaria

Inversión de prioridad: un proceso con alta prioridad se bloquea debido a un proceso con baja prioridad

Por ejemplo: la prioridad A baja primero obtiene el recurso crítico R (porque un proceso más alto de lo que aún no ha llegado), luego llega un proceso B con una prioridad más alta, A se ve privado del procesador, pero el recurso crítico no se ha liberado , Después de que llega el proceso C para la prioridad más alta, B se adelanta al procesador, pero C se bloquea debido a la falla de solicitar el recurso crítico R (ingresa a la cola de bloqueo), luego B comienza a ejecutarse, después de que el final A ejecuta el código de sección crítica, y el proceso A se libera C solo se puede ejecutar después del recurso crítico R. De esta manera, el proceso B tiene una prioridad menor que el proceso C, pero se procesa primero.

Solución:

  1. Cuando el proceso se encuentra en la sección crítica, no se permite ninguna interrupción, de modo que después de que A se complete, porque C tiene una alta prioridad y está delante de la cola lista, C puede ejecutarse antes que B, pero cuando la sección crítica de A es muy larga, entonces C Todavía tiene que esperar mucho tiempo, por lo que solo es aplicable en el caso de que la sección crítica del proceso en el sistema sea corta y no mucha
  2. Cuando el proceso con mayor prioridad va a entrar en el área crítica y usar recursos críticos, si un proceso de baja prioridad está usando el recurso, entonces el proceso de alta prioridad se bloquea y el proceso de baja prioridad heredará la prioridad del proceso de alta prioridad Nivele hasta que el proceso bajo salga de la sección crítica; esto puede evitar que el proceso bajo sea bloqueado por el proceso medio y cause el fenómeno de inversión de prioridad;

Supongo que te gusta

Origin www.cnblogs.com/Hhhighway/p/12741790.html
Recomendado
Clasificación