¿Los procesos de suspensión obtienen el mismo tiempo de CPU?

11

Algunos procesos pasan la mayor parte de sus "vidas" en un sleepestado. Demonios, servidores y oyentes en general vienen a la mente. Me preguntaba si obtienen el mismo tiempo de CPU en ese estado. En algo como mi computadora portátil, ¡eso no sería muy óptimo!

Recuerdo vagamente de mi curso de sistema operativo que hay diferentes enfoques para la programación. Estoy interesado en obtener más información sobre mi cuadro Linux (Debian) actual.

¿Cómo puedo conocer mis políticas de programación actuales? ¿Puedo cambiarlos dinámicamente? ¿Con una bonita aplicación de usuario?

rahmu
fuente

Respuestas:

15

Los procesos no consumen recursos de la CPU mientras están durmiendo. Pueden agregar algo de sobrecarga ya que el Kernel tiene que hacer malabarismos con ellos, pero eso es muy insignificante.

Sin embargo, debido a la forma en que está formulada la pregunta, debo mencionar que cuando se usa el CFS (Programador completamente justo) de Linux, intenta dar a los programas un mayor tiempo de CPU en proporción al tiempo que duerme, es decir, si un proceso duerme mucho , cuando se reanuda, obtiene una mayor prioridad.

Consulte http://www.ibm.com/developerworks/linux/library/l-completely-fair-scheduler/ para obtener una descripción de CFS.

Shawn J. Goff
fuente
2
Quiero votar esta respuesta, pero su puntaje actual de representante (6.666) es demasiado bonito para cambiar. Ah, bueno, lo estoy haciendo de todos modos ...
rahmu
2
@rahmu noooo! ¡Mis hermosos seises rectos! Solo tendré que llegar a sietes ahora.
Shawn J. Goff
4

Por definición, un proceso de suspensión no se ejecuta en la CPU, por lo que, obviamente, la cantidad de tiempo de CPU que utiliza es cero.

psusi
fuente
Si eso es cierto, ¿cómo sabe la máquina cuándo se completa el tiempo de suspensión y si debe reiniciar la ejecución?
Dave Goldsmith