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)
(1) Programación - temporización de conmutación
(3) Conmutación y Programación [Diferencia]
3. Programador y proceso inactivo
4. Índice de evaluación del algoritmo de programación
Tiempo de respuesta: tiempo de respuesta promedio
Tiempo de respuesta más: tiempo de respuesta ponderado
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
(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)
(4) Algoritmo de programación de cola de retroalimentación de niveles múltiples
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:
- Scheduler ( Programador ) es el componente encargado de seleccionar los procesos o hilos a ejecutar en el sistema operativo.
- Programación preventiva: puede privar activamente a los recursos de la CPU del proceso de ejecución .
- 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:
- ¡No haga que la prioridad sea estática! (es decir, muerto, no se modificará)
- Es una prioridad dinámica (analizará la situación periódicamente y asignará la prioridad correspondiente al proceso)
- Todavía tengo hambre~
- 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