Ich bin nur daran interessiert, wie sleep(time in ms)
in einer C-Bibliothek implementiert ist oder grundsätzlich auf OS-Ebene ...Wie wird Sleep auf Betriebssystemebene implementiert?
Ich vermute, ...
- die auf der Basis der Prozessorgeschwindigkeit Sie tun sein kann While-Schleife von nop's (Ich bin mir nicht sicher, ob die Ruhezeit genau sein wird) ...
- Jedes spezielle Register im Prozessor, wo Sie einen Wert schreiben und der Prozessor einfach für bestimmte Zeit anhält (dies wäre sehr ineffizient als die Prozessor kann nicht einmal andere Programme ausführen).
Irgendwelche Hinweise? Wahrscheinlich kann C-Bibliothek Quellcode erklären? Ich bin nicht sonderlich darüber, wie "C" es implementiert ... Ich frage mich im Allgemeinen, wie die "sleep()" - Funktion implementiert wird.
ahhh .. so dass ihr nicht nach der Zeit, um aufzuwachen garantiert .. Die an den Scheduler oder grundsätzlich andere Aufgaben im System ... ?? – FatDaemon
Wie schnell nach Ablauf des Zeitlimits die Task erneut ausgeführt wird, hängt vom Scheduler ab. Das System kann garantieren, dass es ausgeführt wird, sobald das Zeitlimit abgelaufen ist, aber ich denke, die meisten werden es einfach an der entsprechenden Stelle in der Ready-to-Run-Warteschlange platzieren (die vorne liegt, wenn die Thread-Priorität größer ist als jede andere), und es wird ausgeführt, wenn es als nächstes geplant ist. –
Viele Embedded-Prozessoren haben einen eigenen Schlaf Anweisung – mocj