Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist ein kritischer Abschnitt unter Linux?

Was ist ein kritischer Abschnitt unter Linux?

藏色散人
藏色散人Original
2023-04-18 10:27:202396Durchsuche

Der kritische Linux-Abschnitt bezieht sich auf das Programm in jedem Prozess, das auf kritische Ressourcen zugreift. Kritische Ressourcen sind gemeinsam genutzte Ressourcen, die jeweils nur von einem Prozess verwendet werden dürfen. und andere Prozesse dürfen nach dem Betreten nicht mehr eintreten.

Was ist ein kritischer Abschnitt unter Linux?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

1. Was ist der kritische Abschnitt?

Antwort: Das Programm in jedem Prozess, das auf kritische Ressourcen zugreift, wird als kritischer Abschnitt bezeichnet (kritische Ressourcen sind gemeinsam genutzte Ressourcen, die jeweils nur von einem Prozess verwendet werden dürfen). Es darf jeweils nur ein Prozess den kritischen Abschnitt betreten, und andere Prozesse dürfen den kritischen Abschnitt nach dem Betreten nicht betreten.

2. Das Planungsprinzip für Prozesse, die in den kritischen Abschnitt eintreten, lautet:

① Wenn mehrere Prozesse den Eintritt in den kritischen Ruhebereich anfordern, darf jeweils nur ein Prozess eintreten. ②Im kritischen Abschnitt darf es zu keinem Zeitpunkt mehr als einen Prozess geben. Wenn ein Prozess seinen eigenen kritischen Abschnitt betreten hat, müssen alle anderen Prozesse, die versuchen, in den kritischen Abschnitt einzutreten, warten. ③Der Prozess, der den kritischen Abschnitt betritt, muss innerhalb einer begrenzten Zeit beendet werden, damit andere Prozesse rechtzeitig in ihren kritischen Abschnitt gelangen können. ④ Wenn der Prozess seinen eigenen kritischen Abschnitt nicht betreten kann, sollte er die CPU aufgeben, um das „Busy Waiting“-Phänomen des Prozesses zu vermeiden.

Das Mutex-Objekt ist das einfachste Kernel-Objekt, mit dem auf einfache Weise ein sich gegenseitig ausschließender Zugriff auf eine bestimmte Ressource erreicht werden kann. Da es sich um ein Kernelobjekt handelt, kann es Signale erzeugen. Tatsächlich wird dies im Programm verwendet, um einen gegenseitigen Ausschluss zu erreichen.

Wenn ich mich richtig erinnere, ist der kritische Abschnitt kein Kernelobjekt, sondern eine vom System bereitgestellte Datenstruktur. Sie können eine Variable dieses Typs im Programm deklarieren und sie dann verwenden, um einen sich gegenseitig ausschließenden Zugriff auf Ressourcen zu erreichen. Wenn Sie auf eine kritische Ressource zugreifen möchten, sperren Sie zunächst den kritischen Abschnitt (wenn der kritische Abschnitt nicht inaktiv ist, warten Sie) und geben Sie den kritischen Abschnitt frei, nachdem die Ressource aufgebraucht ist.

Im Allgemeinen werden sie zur Synchronisierung zwischen Threads verwendet und können normalerweise austauschbar verwendet werden.

Wenn Sie einen komplexen gegenseitigen Ausschluss implementieren möchten, sollten Sie andere Methoden verwenden, z. B. Semaphor-Kernelobjekte usw. Kritische Abschnittsobjekte können sich nicht über Prozesse erstrecken und sind Synchronisationsobjekte für gemeinsam genutzte Datenbereiche zwischen Threads; Mutex-Objekte können als Synchronisationsobjekte für gemeinsam genutzte Datenbereiche zwischen Prozessen verwendet werden.

Empfohlenes Lernen: „Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist ein kritischer Abschnitt unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist Linux tcshNächster Artikel:Was ist Linux tcsh