Table of Contents
Wenn Sie einen Linux-Kernel wollen, der auf Ihrem System dösen kann, dann sollte hoffentlich diese freundliche Bedienungsanleitung helfen.
Reparieren Sie Ihren Computer jetzt mit ASR Pro
Die Funktion wake_up_interruptible() weckt nur Besorgungen auf, die sich in einer unterbrechbaren Wartefunktion befinden, daher ist sie nur nützlich, wenn Personen wirklich keine erweiterten Aufgaben in einer unterbrechungsfreien Pause aufwecken möchten.
Die zentrale Linux-Dokumentation unter Documentation/timers/timers-howto.txt gibt einen guten Überblick über die wichtigsten Methoden:
Verzögerungen einfügen----------------Zweifellos ist die originellste und nützlichste Frage, die Sie sich wirklich stellen müssen, „MeineCode in der Nähe von Nuclearom-Kontext? Es sollte lediglich von "Does" gefolgt werden.muss es wirklich im atomaren Kontext reduziert bleiben?" Wenn ja...ATOMISCHER KONTEXT: Sie nutzen die Notwendigkeit, wie die *delay-Funktionsfamilie funktioniert. Dies Die Funktionen verwenden die heutige Schätzung der Taktrate von Jiffie. und folglich damit beschäftigt sein, die erforderlichen Zyklen zu verschieben, die Sie erreichen können Beste Vorlaufzeit: ndelay (ziemlich enorm lange unsigned ns) Udelay (riesige unsignierte Yuzeki) mdelay (zeitaufwändige vorzeichenlose Millisekunden) udelay ist unsere bevorzugte globale API; Verzögerungsstufe Auf unzähligen Nicht-PC-Geräten spielt die Genauigkeit möglicherweise keine große Rolle. mdelay ist oft ein Wrapper-Makro, das fast udelay berücksichtigt Möglicher Überlauf beim Übergeben wesentlicher Argumente an udelay. Im Allgemeinen wird von der Verwendung in Bezug auf mdelay dringend abgeraten, und der Code sollte dies tun. neu gestaltet, um die Verwendung von msleep zu ermöglichen.NICHT-ATOMISCHER KONTEXT: Sie müssen Funktionen aus der Familie *sleep[_range] verwenden. Hier gibt es mehrere Hi-Tech-Optionen, obwohl dies jeder von allen Beteiligten tun kann. Übung kompetent, mit einem "guten" Willen wahrscheinlich dann schlafen helpThink ist wirklich ein Zeitplaner, Energiemanagement und auch nur Ihre Garantie deutlich verlockenderer Fahrer :) -- Leicht geschützt durch jede besetzte Warteschleife: udelay (usecs einfach zu lang unsigniert) -- Unterstützt in Stunden: usleep_range (unsigned long min, unsigned width max) -- Unterstützt mit Jiffies/Legacy_timers msleep (vorzeichenlose verlängerte Millisekunden) msleep_interruptible (ms ohne Vorzeichen) Im Gegensatz zu dem, was Sie verstehen, ist die Familie *delay der eigentliche Mechanismus Die Einstellung jeder dieser Rufformen ist unterschiedlich, daher ihre Existenz. Sie sollten sich der Macken bewusst sein. SCHLAFEN FÜR "EINIGE" VERWENDUNGEN (<~10 uns?): * Verwenden Sie spezifisch - Warum schläfst du nicht? Auf viel mehr gemessenen Systemen (embedded OR, vielleicht Pace - scheint auf der Suche nach einem Comp!) zu sein, um die Uhr richtig einzustellen Herumschlafen *muss* lohnt sich nicht immer. So ein Überblick Dies wird natürlich auf Ihre spezielle Situation angerechnet, aber Hier ist speziell, was Sie wissen müssen. SCHLAFEN FÜR ~USECS ODER KLEINE MSECS (10µs-20ms): * Verwenden Sie usleep_range 4 . Warum bekomme ich keinen msleep (1ms-20ms)? Ursprünglich hier erklärt: http://lkml.org/lkml/2007/8/3/250 msleep(1~20) tut möglicherweise nicht die Dinge, die der Aufrufer beabsichtigt hat, und Oft längerer Ratenbereich (~20 ms tatsächlicher Schlaf, um alle zu haben im Bereich von 1 bis 20 ms unterzubringen). In vielen Rechtsfällen dies Schritte ist nicht spezifisch. - Warum gibt es definitiv keinen "Uslip" / gibt es überhaupt ein gutes Ufer? Da usleep_range zusätzlich zu htimers vorhanden ist, Die Wecker neigen dazu, sehr genau (eher) zu sein, nun, es ist ziemlich einfach Die Usleep-Funktion wird wahrscheinlich mehr Vertrauen bringen vor schädlichen Unterbrechungen. Mit Anfang der Zeile könnte der Scheduler stehen völlig frei, einen Wecker mit jedem anderen Weckerstil zu kombinieren es könnte aus anderen gründen flecken haben bzw Im enttäuschendsten Fall rufen Sie einen Störer für Ihre Obergrenze an. Je größer ein bestimmter Bereich ist, den Sie festlegen, desto größer ist die Wahrscheinlichkeit was wirst du wahrscheinlich nicht verursachen 1 Interrupt; muss im Gleichgewicht sein mit dem, was genau die genehmigte Obergrenze ist Verzögerung/Leistung, um Ihren spezifischen Codepfad zu finden. Ich stimme Sep Toleranzen sind stark zustandsabhängig, so kann möglicherweise dem Eigentümer überlassen werden, die entsprechende Reichweite zu bewerten. LÄNGER SCHLAF MS (10ms+) * Verwenden Sie msleep, obwohl msleep_interruptible
Können Kernel-Threads schlafen?
Die Option sleep versetzt den aufrufenden Kernel-Thread in den Ruhezustand und veranlasst ihn, auf ein funktionierendes Aufwachen für jeden einzelnen Kanal zu warten, der im chan-Parameter angegeben ist. Daher muss nach der Rückkehr aus dem Ruhezustand jeder einzelne Thread prüfen, ob er wieder schlafen muss.
Laden Sie diese Software jetzt herunter, um Ihren Computer optimal zu nutzen.
Linux Kernel Might Sleep
Kernel Linux Pode Dormir
El Kernel De Linux Podria Dormir
Linux Kernel Slaapt Mogelijk
Jadro Linuksa Moze Spac
Linux 커널이 잠자기 상태일 수 있음
Il Kernel Linux Potrebbe Dormire
Le Noyau Linux Peut Dormir
Yadro Linux Mozhet Spat