Mit csinal a linux kernel, amikor semmi dolga?

Fórumok

Nincsenek futo processzek. Ilyenkor nop-okat hajt vegre? Hol van ez implementalva a kernel forrasban? Sajat programhoz kellene koszonom.

Hozzászólások

Semmiképpen sem NOP a nyerő, hiszen a procit az is pörgeti. Energiagazdálkodás pedig fontos.
Helyette javasolt a procit egy időre leállítani.

http://en.wikipedia.org/wiki/HLT

Eseményvezérelt IRQ ébreszti. Netán pluszban 1 ms-es timer IRQ, ha van olyan eseményed, ami nem vált ki IRQ-t és így időnként neked kell lekérdezni.
X86 esetén a BIOS ACPI hívást is érdemes megnézni.

A kernelforrásban ezeket nézd át:
drivers/acpi/processor_idle.c
kernel/cpu/idle.c
arch/x86/include/asm/irqflags.h

Ujabb CPU-kon monitor es mwait utasitast hasznal a Linux es az OSX is idle threadeknel. Regebben HLT utasitast hasznaltak erre a celra.

Koszonom, fel is hasznalom ezeket hamarost.