uso trabaja solucion sistema proceso procesador nada inactivo hacer esta alto process operating-system hardware cpu interrupt

process - trabaja - proceso inactivo del sistema windows 7



¿Cómo funciona una CPU inactiva(o se ejecuta por debajo del 100%)? (4)

Aprendí por primera vez sobre cómo funcionan las computadoras en términos de una máquina de programa almacenada única y primitiva.

Ahora estoy aprendiendo sobre los sistemas operativos multitarea, la programación, el cambio de contexto, etc. Creo que tengo una idea bastante buena de todo, excepto por una cosa. Siempre he pensado en una CPU como algo que simplemente se carga hacia adelante sin parar. Siempre sabe a dónde ir después (contador de programa), y va a esa instrucción, etc., ad infinitum.

Claramente, este no es el caso, ya que la CPU de mi computadora de escritorio no siempre funciona al 100%. Entonces, ¿cómo se apaga la CPU o se regula por sí misma, y ​​qué papel juega el sistema operativo en esto? Supongo que hay una entrada en la CPU en algún lugar que permite que se apague ... y el sistema operativo puede configurar esto si no tiene nada que programar, pero la siguiente pregunta lógica es ¿cómo se inicia de nuevo? Supongo que una de estas dos cosas:

  • Nunca se apaga por completo, solo funciona a una frecuencia muy baja esperando a que el programador se vuelva a ocupar de nuevo
  • Se apaga por completo pero se despierta por interrupciones

Busqué información sobre esto y vine con las manos vacías. Cualquier idea sería muy apreciada.


Algunas CPU tienen una instrucción de "espera de la interrupción" que permite que la CPU deje de ejecutar las instrucciones cuando no hay nada que hacer, y no volverá a activarse hasta que haya un evento de interrupción. Esto es particularmente útil en microcontroladores, donde pueden sentarse durante largos períodos de tiempo esperando que algo suceda.

  • Intel = HLT (alto)
  • ARM = WFI (Espere por la interrupción)

A veces también se usa una ''espera ocupada'', donde la CPU se sienta en un pequeño bucle ''inactivo'', y comprueba qué hacer. En este caso, la CPU sigue ejecutando las instrucciones, pero el sistema operativo está inactivo. No es tan eficiente como usar un HLT.

Las CPU modernas también pueden ajustar su consumo de energía y son capaces de reducir las velocidades de reloj o apagar partes de la CPU que no se están utilizando. De esta forma, el uso de energía durante un estado inactivo activo puede ser menor que durante el procesamiento activo, incluso aunque la CPU central aún se esté ejecutando y ejecutando las instrucciones.


La respuesta es que depende del hardware, el sistema operativo y la forma en que se configuró el sistema operativo.

Y podría involucrar una o ambas de las estrategias que propusiste.

Otra posibilidad para las máquinas basadas en la arquitectura x86 es que x86 tiene una instrucción HLT que hace que el núcleo se detenga hasta que recibe una interrupción externa. Entonces, la tarea "Inactivo" podría simplemente ejecutar HLT en un ciclo cerrado.


Si habla de arquitectura x86 cuando un sistema operativo no tiene nada que hacer, puede usar la instrucción HLT. La instrucción HLT detiene la CPU hasta la siguiente interrupción. Ver http://en.m.wikipedia.org/wiki/HLT para más detalles.

Otras arquitecturas tienen instrucciones similares para dar un descanso a la CPU.


Simplemente acceda al administrador de tareas, pestaña de rendimiento y observe el uso de la CPU mientras no hace absolutamente nada en su computadora. nunca deja de fluctuar. Teniendo un sistema operativo como Windows funcionando, la CPU funcionará SIEMPRE, nunca se apaga por completo.

Hacer que su monitor muestre una imagen requiere que su CPU procese una función que le permita mostrar cualquier cosa. etc.

Todo pasa por la CPU, al igual que tu cerebro, controla todo. nada funcionaría sin eso.