Sistema operativo - Notas - Capítulo 2 - Programación de procesos

Tabla de contenido

2. Capítulo 2 - [Programación de procesos]

1. El concepto de programación

(1) Cinco estados y siete estados (listo pendiente, bloqueo pendiente)

(2) Programación de tres niveles (nivel avanzado, intermedio y bajo)

(3) Resumen

2. Cambio de programación

(1) Programación - temporización de conmutación

(2) Programación - método

(3) Conmutación y Programación [Diferencia]

(4) Resumen

3. Programador y proceso inactivo

4. Índice de evaluación del algoritmo de programación

utilización de la CPU

rendimiento del sistema

Tiempo de respuesta: tiempo de respuesta promedio

Tiempo de respuesta más: tiempo de respuesta ponderado

tiempo de espera

Resumir

5. Algoritmo de programación (puesta en cola, trabajo corto, alta respuesta)

(1) Primero en llegar, primero en ser atendido

(2) Se da prioridad a los trabajos cortos

(3) Prioridad de alta tasa de respuesta

(4) Resumen

6. Algoritmo de programación (rotación de intervalos de tiempo, prioridad, retroalimentación de niveles múltiples)

(1) Rotación de segmento de tiempo

(2) algoritmo de programación de prioridad

(2.1) Algoritmo de programación de prioridad: configuración de prioridad (dinámica)

(3) Resumen

(4) Algoritmo de programación de cola de retroalimentación de niveles múltiples

(5) Resumen


2. Capítulo 2 - [Programación de procesos]

1. El concepto de programación

(1) Cinco estados y siete estados (listo pendiente, bloqueo pendiente)

 

(2) Programación de tres niveles (nivel avanzado, intermedio y bajo)

trabajo - memoria - proceso

 

(3) Resumen

 

2. Cambio de programación

 

(1) Programación - temporización de conmutación

Si el proceso está accediendo a [sección crítica] y [recurso crítico], ¡no se puede programar ni interrumpir!

Después de todo, está tomando recursos. Si está programado, ¡entonces el problema será grande!

(2) Programación - método

 

(3) Conmutación y Programación [Diferencia]

 

(4) Resumen

 

3. Programador y proceso inactivo

¿Qué es un programador? Para hacer que el estado de un proceso cambie razonablemente (no saltes repetidamente ~)

Programador preventivo: tareas de programación (modo de sondeo)

Programador no preventivo (tómalo con calma)

Scheduler ( Scheduler ) es un componente importante en el sistema operativo responsable de decidir qué proceso o subproceso ejecutar en un momento específico. De acuerdo con la estrategia y el algoritmo de programación predeterminados, selecciona un proceso adecuado de los procesos en estado listo, asigna recursos de procesador al proceso y controla el cambio de estado del proceso.

El programador preventivo ( Programador preventivo ) es un método de programación que permite que el sistema operativo prive por la fuerza al proceso de los derechos de ejecución de la CPU cuando un proceso se está ejecutando y asigna recursos de la CPU a otros procesos con mayor prioridad. El programador preventivo tiene la capacidad de responder rápidamente a tareas urgentes o tareas de alta prioridad, mejorando la capacidad de respuesta del sistema.

El programador no preventivo ( Non-preemptive Scheduler ) , también conocido como programador cooperativo, es otro método de programación. En un programador no preventivo, una vez que un proceso obtiene los derechos de ejecución de la CPU , se ejecutará hasta que se dé por vencido voluntariamente o espere a que ocurra un evento, y luego el sistema operativo asignará los recursos de la CPU a otros procesos. En este modo de programación, los procesos deben liberar conscientemente los recursos de la CPU , por lo que para un programador cooperativo, la cooperación del proceso es particularmente importante.

En resumen:

  1. Scheduler ( Programador ) es el componente encargado de seleccionar los procesos o hilos a ejecutar en el sistema operativo.
  2. Programación preventiva: puede privar activamente a los recursos de la CPU del proceso de ejecución .
  3. Programación no preventiva: requiere que el proceso libere voluntariamente los recursos de la CPU .

Estos dos métodos de programación tienen diferente aplicabilidad, ventajas y desventajas en diferentes escenarios.        

Proceso de merodeo (neumático de repuesto) - ejecutar comando [dirección cero] - (comando de pierna temblorosa)

 

4. Índice de evaluación del algoritmo de programación

Contenido del libro de texto de Tsinghua:

 

utilización de la CPU

 

rendimiento del sistema

 

Tiempo de respuesta: tiempo de respuesta promedio

Tiempo de respuesta = Tiempo de ejecución real + Tiempo de espera

 

Tiempo de respuesta más: tiempo de respuesta ponderado

 

tiempo de espera

 

Resumir

 

5. Algoritmo de programación (puesta en cola, trabajo corto, alta respuesta)

(1) Primero en llegar, primero en ser atendido

El que llegue primero será servido primero (aunque es absolutamente justo y no pasará hambre , pero...)

Cola para el té con leche: cuando la persona de enfrente compra 20 tazas, pero solo compras 1 taza, tienes que esperar en la fila

 

 

(2) Se da prioridad a los trabajos cortos

No preventivo: en la cola de tareas, quien tenga un tiempo de tarea corto lo ejecutará primero (injusto)

 

Preventivo - ¡crea hambre! ! !

(3) Prioridad de alta tasa de respuesta

Este algoritmo no conducirá a la inanición (combina las ventajas del orden de llegada, trabajos cortos)

 

(4) Resumen

 

6. Algoritmo de programación (rotación de intervalos de tiempo, prioridad, retroalimentación de niveles múltiples)

(1) Rotación de segmento de tiempo

Configuraciones de intervalos de tiempo: ¡ni demasiado grandes ni demasiado pequeños! (La sobrecarga de los procesos de conmutación: la proporción no supera el 1% del proceso total)

 

No causa inanición: los procesos se ejecutarán a su vez

 

(2) algoritmo de programación de prioridad

Prioridad: similar a la prioridad de interrupción

Entonces habrá hambre~

mejorar las propuestas:

  1. ¡No haga que la prioridad sea estática! (es decir, muerto, no se modificará)
  2. Es una prioridad dinámica (analizará la situación periódicamente y asignará la prioridad correspondiente al proceso)
  3. Todavía tengo hambre~
  4. Después de todo, ha estado generando [procesos con mayor prioridad], entonces [procesos con menor prioridad] todavía tendrán hambre~

 

(2.1) Algoritmo de programación de prioridad: configuración de prioridad (dinámica)

Aplicable a - sistema operativo en tiempo real

(3) Resumen

 

(4) Algoritmo de programación de cola de retroalimentación de niveles múltiples

Configurando múltiples colas~ (clásico más una capa~)

Cada cola corresponde a diferentes solicitudes (para diferentes colas, establezca diferentes algoritmos de programación)

Entre colas, puede usar: división de intervalos de tiempo, prioridad fija...

Dentro de la cola, puede usar: Cola, Trabajo corto, Respuesta alta, Prioridad...

(5) Resumen

Adecuado para sistemas interactivos: puede proporcionar una mejor retroalimentación, imparcialidad y equilibrio.

Sistema operativo Unix - sistema interactivo

Supongo que te gusta

Origin blog.csdn.net/Pan_peter/article/details/132368433
Recomendado
Clasificación