Revisión del sistema operativo Capítulo 6: Programación de la CPU

Capítulo 6: Programación de CPU

Conceptos básicos: utilización máxima de la CPU obtenida con multiprogramación

Encuadernado con CPU y con E / S

Un proceso vinculado a la CPU puede tener algunas ráfagas de CPU muy largas.

Un proceso vinculado a E / S generalmente tiene muchas ráfagas cortas de CPU

Programador de CPU

El programador de la CPU selecciona un proceso de la cola lista y le asigna la CPU.

Circunstancias que pueden tener lugar la programación

  1. Un proceso cambia del estado de ejecución al estado de espera (por ejemplo, haciendo para E / S)
  2. el proceso cambia del estado de ejecución al estado listo (p. ej., se produce una interrupción)
  3. Un proceso cambia del estado de espera al estado listo (p. Ej., Finalización de E / S)
  4. Un proceso termina

Inserte la descripción de la imagen aquí

Preventivo versus no preventivo

Programación no preventiva: la programación ocurre cuando un proceso ingresa voluntariamente al estado de espera (caso 1) o finaliza (caso 4). Simple, pero muy ineficiente.

Programación preventiva: la programación ocurre en todos los casos posibles. La exclusión mutua puede ser violada. La exclusión mutua puede ser violada.

El sistema operativo en tiempo real debe implementar una programación preferente

Despachador

El módulo Dispatcher le da el control de la CPU al proceso seleccionado por el planificador a corto plazo; esto involucra:

◆ cambio de contexto

◆ cambiar al modo de usuario

◆ saltar a la ubicación adecuada en el programa de usuario para reiniciar ese programa

Latencia de envío: tiempo que tarda el despachador en detener un proceso y comenzar a ejecutar otro. El tiempo de cambio de contexto depende del hardware

Criterios de programación

◆ Utilización de la CPU: normalmente el 40% está ligeramente cargado y el 90% o más está muy cargado

Rendimiento: la cantidad de procesos completados por unidad de tiempo, un rendimiento más alto significa que se realizan más trabajos. Es más objetivo para el mismo conjunto de procesos

◆ Tiempo de respuesta: el período de tiempo entre el envío del trabajo hasta su finalización. Desde el punto de vista del usuario, el tiempo de respuesta es más importante que la utilización y el rendimiento de la CPU.

◆ Tiempo de espera: la suma de los períodos que un proceso pasa esperando en la cola lista

◆ Tiempo de respuesta: el tiempo desde la presentación de una solicitud (en un sistema interactivo) hasta la primera respuesta se denomina tiempo de respuesta

Prueba

Inserte la descripción de la imagen aquí
Respuesta: ABDE

Juzgar el tipo de proceso es observar la duración de la ráfaga de CPU. La ráfaga de CPU larga tiene un tiempo de CPU largo. Hay muchas ráfagas de CPU cortas para E / S frecuentes. La duración de la ráfaga de E / S depende del dispositivo, no porque sea una ráfaga ligada a E / S. Muy largo

Jitter Jitter, cuanto más pequeño es el Jitter, más predecible.

Algoritmos de programación

◆ Primero llegado, primero servido (FCFS)

◆ El trabajo más corto primero (SJF)

◆ Prioridad

◆ Round-Robin

◆ Cola multinivel

◆ Cola de comentarios multinivel

FCFS

Al proceso que solicita la CPU primero se le asigna primero la CPU.

Usando una cola.

FCFS no es preventivo

Efecto convoy : proceso corto detrás de un proceso largo, la utilización de la CPU puede ser baja.护航效应

SJF

Cuando se debe seleccionar un proceso de la cola lista, se selecciona el proceso con la siguiente ráfaga de CPU más pequeña. Por lo tanto, los procesos en la cola preparada se ordenan en longitud de ráfaga de CPU.

¡SJF puede ser no preventivo o preventivo !

◆ no preventivo

◆ preventivo: si llega un nuevo proceso con una longitud de ráfaga de la CPU menor que el tiempo restante del proceso de ejecución actual, se adelanta. Este esquema se conoce como el tiempo más corto restante (SRTF).

SJF es demostrablemente óptimo (最优 的): proporciona un tiempo de espera promedio mínimo para un conjunto dado de procesos

¿Cómo sabemos la próxima explosión de CPU?

Sin una buena respuesta a esta pregunta, SJF no se puede utilizar para la programación de la CPU.

Intentamos predecir la próxima ráfaga de CPU utilizando la longitud de las ráfagas de CPU anteriores, utilizando un promedio exponencial.

cómo hacer:

Inserte la descripción de la imagen aquí

Problemas de SJF

algunos trabajos largos pueden no tener la oportunidad de ejecutarse en absoluto. Esto es inanición.

Programación prioritaria

La prioridad puede determinarse interna o externamente:

internal priority:determinado por límites de tiempo, requisitos de memoria, número de archivos, etc. (Determinado por naturaleza interna)

external priority:no controlado por el sistema operativo (p. Ej., Importancia del proceso) (establecido artificialmente)

El planificador siempre elige el proceso (en la cola preparada) con la máxima prioridad para ejecutar

  • La programación de prioridad puede ser no preventiva o preventiva. Si el proceso recién llegado tiene una prioridad más alta que el proceso en ejecución, este último se adelanta

Puede ocurrir un bloqueo indefinido (o inanición): un proceso de baja prioridad puede nunca tener la oportunidad de ejecutarse–> solución: Envejecimiento

Envejecimiento

Envejecimiento: aumenta gradualmente la prioridad de los procesos que esperan en el sistema durante mucho tiempo.

Round Robin (RR)

Todos los procesos en la cola lista son una lista FIFO. Cuando la CPU está libre, el programador elige el primero y lo deja correr por un tiempo cuántico.

Inserte la descripción de la imagen aquí

  • Si el tiempo cuántico es demasiado grande, RR se reduce a FCFS
  • Si el tiempo cuántico es demasiado pequeño, RR se convierte en procesador compartido
  • El cambio de contexto puede afectar el rendimiento de RR. Un tiempo cuántico más corto significa más cambios de contexto
  • El tiempo de respuesta también depende del tamaño del tiempo cuántico. En general, el 80% de las ráfagas de CPU deben ser más cortas que el tiempo cuántico
  • Por lo general, mayor tiempo de respuesta promedio que SJF, pero mejor respuesta.

Cola multinivel

Cada proceso se asigna permanentemente a una cola en función de algunas propiedades del proceso.

Cada cola tiene su propio algoritmo de programación,

  • primer plano - RR
  • fondo - FCFS

Inserte la descripción de la imagen aquí
Programación de prioridad fija: posibilidad de inanición.

Intervalo de tiempo: cada cola obtiene una cierta cantidad de tiempo de CPU que puede programar entre sus procesos (es decir, 80% en primer plano en RR, 20% en segundo plano en FCFS)

Cola de retroalimentación multinivel

La cola multinivel con programación de retroalimentación es similar a la cola multinivel; sin embargo, permite que los procesos se muevan entre colas, el envejecimiento se puede implementar de esta manera

Si un proceso usa más (resp., Menos) tiempo de CPU, se mueve a una cola de menor prioridad (resp., Mayor).

Es decir: los procesos vinculados a E / S (resp., Vinculados a la CPU) estarán en colas de prioridad más alta (resp., Más baja).

Inserte la descripción de la imagen aquí

Más precisamente, se puede decir que la Cola de comentarios multinivel es un marco de programación

Programación de múltiples procesadores

La programación de la CPU es más compleja cuando hay varias CPU disponibles.

  • Procesadores homogéneos
  • Compartiendo carga
  • Multiprocesamiento asimétrico

Programación de hilos

  • Programación local: la biblioteca de subprocesos decide qué subproceso colocar en un LWP disponible
  • Programación global: el núcleo decide qué subproceso del núcleo se ejecutará a continuación

Prueba clásica:

** Considere una cola de retroalimentación de varios niveles en un sistema de CPU única. El primer nivel (cola 0) recibe un cuanto de 8 ms, el segundo un cuanto de 16 ms, el tercero es FCFS programado. Supongamos que los trabajos llegan todos a tiempo cero con los siguientes tiempos de trabajo (en ms): 4, 7, 12, 20, 25 y 30, respectivamente. Suponga que la sobrecarga del cambio de contexto es cero a menos que se indique lo contrario. ** **

Show the Gantt chart for this system.

Compute the average waiting and turnaround time.

Suppose the context switch overhead is 1 ms. Compute the average turnaround time

No rocíes personajes feos, jaja
Inserte la descripción de la imagen aquí

Revisión del sistema
operativo Capítulo 1 : Introducción Revisión del sistema operativo Capítulo 2: Estructuras del sistema informático
Revisión del sistema operativo Capítulo 3: Estructuras del sistema
operativo Revisión del sistema operativo Capítulo 4:
Revisión del sistema operativo Capítulo 5: Hilo

Publicado 38 artículos originales · ganó 11 · vistas 3825

Supongo que te gusta

Origin blog.csdn.net/qq_43721475/article/details/105591228
Recomendado
Clasificación