Kritischer Abschnitt

In der Informatik dient ein kritischer Abschnitt (engl. ‚critical section’) zur Kennzeichnung einer Ansammlung von Programmanweisungen zum Zwecke der Ablaufsteuerung. In ihm darf sich zu einer Zeit nur ein einziger Prozess/Thread aufhalten, ähnlich einem Bahnübergang, der nur vom Schienenfahrzeug oder nur von Straßenfahrzeugen befahren werden darf, aber nicht von beiden Fahrzeugarten gleichzeitig.

Kritische Abschnitte bestehen aus mehreren Einzelanweisungen, deren Zwischenergebnisse inkonsistente Zustände darstellen, auf die die anderen Threads keinen Zugriff erhalten dürfen. Das Ergebnis eines kritischen Abschnitts darf nur als eine unteilbare Einheit nach außen sichtbar werden.

Dieses Konzept wird zur Sicherstellung der Konsistenz der Zustände von Betriebsmitteln, bspw. Datenstrukturen, Verbindungen, Geräte usw., aber auch Datenbankinhalten, benötigt. Im letzteren Fall gehen die Konzepte auf in der Transaktionsverarbeitung.

Beispiele

Je zwei Threads sollen die gemeinsame Variable s inkrementieren:
Links wird ein kritischer Abschnitt (orange umrandet) unterbrochen, und das Ergebnis ist nicht korrekt.
Rechts ist das Ergebnis korrekt, da sich zu einer Zeit maximal ein Thread im kritischen Abschnitt befindet.

Im sehr einfachen Beispiel A soll in der gemeinsamen Variablen zaehler die Häufigkeit des Betretens des Programmabschnitts gezählt werden. Dabei sei angenommen, dass der Zugriff zu zaehler nur mittels einer Lese- oder einer Schreiboperation möglich ist, nicht jedoch durch eine von Haus aus unteilbare Inkrementieroperation (inkrementieren: um eins erhöhen).

Der Programmabschnitt lautet:

zaehler in lokale Variable lesen
lokale Variable um 1 erhöhen
lokale Variable in zaehler schreiben

Nun werde dieser Programmabschnitt von zwei Threads zeitlich verschränkt ausgeführt. Die zeitliche Verschränkung wird vom Betriebssystem vorgenommen. Die Threads haben standardmäßig darauf keinen Einfluss. Beide Threads greifen unabhängig voneinander auf die Variable zaehler zu, verarbeiten und verändern sie:

Thread X Thread Y

1:

zaehler lesen

2:

  zaehler lesen

3:

um 1 erhöhen

4:

  um 1 erhöhen

5:

zaehler schreiben

6:

  zaehler schreiben

Vor dem Schritt 5 wird von beiden Threads der gleiche ursprüngliche Wert der Variablen zaehler gelesen. Die Threads haben diesen Wert als private Kopie. In den Schritten 3 und 4 addieren beide Threads jeweils 1 zu ihrer privaten Kopie. In den Schritten 5 und 6 speichern die Threads dann den neuen Wert aus ihren privaten Kopien zurück in die Variable zaehler. Im geschilderten Szenario ist es Thread Y, dessen Schreibaktion als letzte ausgeführt wird. Sie erzeugt das falsche Endergebnis 1, das nicht der Aufgabenstellung entspricht.

Beispiel B: Das Beispiel A sei erweitert um einen zweiten kritischen Abschnitt, der dieselbe Variable zaehler nun dekrementiert und damit in Relation zum ersten kritischen Abschnitt steht. Aus Konsistenzgründen darf sich dann zu einer Zeit maximal ein Thread in beiden kritischen Abschnitten aufhalten.

Notation

In Programmier- und Modellierungssprachen finden sich gelegentlich die Direktiven:

  • Begin_CriticalSection
  • End_CriticalSection

oder auch

  • EnterCriticalSection()
  • LeaveCriticalSection()

Merkmal und Behandlung kritischer Abschnitte

Werden Prozesse oder Threads parallel oder zeitlich verzahnt ausgeführt und benutzen sie Daten (Speicherbereiche) oder allgemein Betriebsmittel (z. B. Verbindungen, Geräte) gemeinsam, so gibt es Betriebsmittel, die ihrer Natur nach nur exklusiv benutzt werden dürfen: während der Ausführung eines Programmabschnitts von einem Thread, in dem das Betriebsmittel verändernd verwendet wird, darf das Betriebsmittel für andere Threads nicht zugreifbar sein. Ein Programmabschnitt im Programm eines Threads, in dem auf ein gemeinsam genutztes, aber exklusiv zu nutzendes Betriebsmittel zugegriffen wird, ist ein kritischer Abschnitt.

Es gilt, eine zeitlich verschränkte Ausführung kritischer Abschnitte paralleler Threads zu verhindern, da diese zu unvorhersagbaren Ergebnissen oder inkonsistenten Zuständen der Betriebsmittel führt. Es ist aber nicht erforderlich, eine strenge Reihenfolge der Nutzung des Betriebsmittels festzulegen. Es ist ausreichend, für einen wechselseitigen Ausschluss der Zugriffe zu sorgen. Wenn sich ein Thread in einem kritischen Abschnitt bezüglich eines Betriebsmittels befindet, darf kein anderer Thread in einen kritischen Abschnitt bezüglich des gleichen Betriebsmittels gelangen. Dies wird durch eine beliebige Sequentialisierung der Ausführung kritischer Abschnitte der zugreifenden Threads erreicht. Dies ist eine schwächere Anforderung als die Anforderung nach Ununterbrechbarkeit der Ausführung eines kritischen Abschnitts, die oftmals im Zusammenhang mit kritischen Abschnitten erwähnt wird. Wird ein kritischer Abschnitt bezüglich eines Betriebsmittels ausgeführt, so darf dieser nur nicht zugunsten der Ausführung eines kritischen Abschnitts (bezüglich des gleichen, gemeinsam genutzten Betriebsmittels) eines anderen Prozesses unterbrochen werden.

An eine Lösung für das Problem des Kritischen Abschnitts werden folgende Anforderungen gestellt:[1]

  • Wechselseitiger Ausschluss: Bezüglich eines Betriebsmittels darf sich zu jedem Zeitpunkt höchstens ein Thread in einem kritischen Abschnitt befinden.
  • Fortschritt: Eine Beendigung oder ein Anhalten eines Prozesses außerhalb eines kritischen Abschnitts darf keinen Einfluss auf den Fortschritt der verbleibenden Prozesse haben.
  • Begrenzte Wartezeit: Kein Thread darf beliebig lange vom Betreten eines kritischen Abschnitts ausgeschlossen werden.
  • Die Lösung darf keine Annahme über die Ausführungsgeschwindigkeit der Threads machen.

Mit der Erfüllung dieser Anforderungen kann die Konsistenz der Betriebsmittel gewährleistet werden. Ferner kommt jeder Thread in endlicher Zeit in seinen kritischen Abschnitt und wird nicht grundsätzlich am Eintritt in seinen kritischen Abschnitt gehindert.

Siehe auch

Literatur

  • Anderson, James H. and Kim, Yong-Jik and Herman, Ted: Shared-memory mutual exclusion: major research trends since 1986. In: Distrib. Comput. Band 16, Nr. 2–3. Springer-Verlag, September 2003, ISSN 0178-2770, S. 75–110, doi:10.1007/s00446-003-0088-6.
  • Raynal, M. and Beeson, D.: Algorithms for mutual exclusion. MIT Press, Cambridge, MA, USA 1986, ISBN 0-262-18119-3.

Einzelnachweise

  1. Abraham Silberschatz, Peter B. Galvin, Greg Gagne: Operating system concepts. 7. Auflage. John Wiley & Sons, Hoboken (New Jersey) 2005, ISBN 0-471-69466-5, 6.2 The Critical-Section Problem, S. 194 (englisch).

Read other articles:

Station of the Tehran Metro Beryanak Metro Stationایستگاه مترو بریانکTehran Metro StationGeneral informationLocation Navvab Expressway, District 10, TehranTehran Province, IranCoordinates35°40′20″N 51°22′50″E / 35.6723201°N 51.3806077°E / 35.6723201; 51.3806077Operated byTehran Urban and Suburban Railways Organization (Metro)HistoryOpenedTir 1396 H-Sh (July 2017)Closed8 Aban 1396 H-Sh (30 October 2017)Rebuilt23 Tir 1397 H-Sh (14 July 2018)S...

 

  لمعانٍ أخرى، طالع محرم (توضيح). محارم الرجل في الشريعة الإسلامية هن النساء اللاتي لا يجوز للرجل من المسلمين أن يتزوج بهن، ويوجد نوعان من التحريم، تحريم مؤبد وتحريم مؤقت۔ والمحرمات من النساء حددهم القرآن الكريم بشكل مُفصل ومُحكم من الفصول إلى الفروع في الآيتين ال 22 و2...

 

العلاقات الجورجية اللاتفية جورجيا لاتفيا   جورجيا   لاتفيا تعديل مصدري - تعديل   العلاقات الجورجية اللاتفية هي العلاقات الثنائية التي تجمع بين جورجيا ولاتفيا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقارنة جور�...

Ubuntu EdgePratayang Ubuntu Touch di sebuah Ubuntu Edge (render)MerekCanonical Ltd.Harga perkenalan$780.00-$830.00TipePonsel cerdasFaktor bentukLayar sentuhDimensiPanjang 124 mm (4,9 in) Lebar 64 mm (2,5 in) Tebal 9 mm (0,35 in) DSistem OperasiUbuntu Touch dan Android (dual boot)Memori4 GBPenyimpanan128 GBBateraiLi-ion anoda-silikon isi ulangInputLayar sentuh Akselerometer Giroskop GPS Barometer Kompas digital Sensor proksimitas Mikrofon ganda untuk per...

 

Election in Connecticut Main article: 1808 United States presidential election 1808 United States presidential election in Connecticut ← 1804 November 4 - December 7, 1808 1812 →   Nominee Charles C. Pinckney Party Federalist Home state South Carolina Running mate Rufus King Electoral vote 9 Percentage 100% President before election Thomas Jefferson Democratic-Republican Elected President James Madison Democratic-Republican Elections in Connecticut Fe...

 

Questa voce sull'argomento contee dell'Illinois è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Contea di ClintonconteaLocalizzazioneStato Stati Uniti Stato federato Illinois AmministrazioneCapoluogoCarlyle Data di istituzione1824 TerritorioCoordinatedel capoluogo38°36′46″N 89°22′15″W / 38.612778°N 89.370833°W38.612778; -89.370833 (Contea di Clinton)Coordinate: 38°36′46″N 89°22′15″W / 3...

American professional wrestler (born 1987) Ezekiel (wrestler) redirects here. For the Guyanese-American wrestler, see Ezekiel Jackson. EliasElias in 2018Birth nameJeffrey Daniel Sciullo[1][2][3]Born (1987-11-22) November 22, 1987 (age 36)[4]Pittsburgh, Pennsylvania, U.S.[5]Professional wrestling careerRing name(s)Elias[6]Elias Samson[7]Elijah[8]El Vagabundo[9]Ezekiel[10]Logan Shulo[11]Billed height6&#...

 

Questa voce o sezione sugli argomenti doppiatori italiani e giornalisti italiani non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. Teo Bellia al Festival delle Radio Universitarie 2012 Teo Romano Bellia (Roma, 17 gennaio 1960[1]) è un doppiatore, direttore del doppiaggio, giornalista, dialoghista e...

 

Bridge in Welland, OntarioWelland Canal, Bridge 15Bridge 15 - The Canada Southern Railway swing bridge over the former route of the Welland CanalCoordinates42°58′37″N 79°15′21″W / 42.97694°N 79.25583°W / 42.97694; -79.25583 (Welland Canal, Bridge 15)Carriesrail trafficCrossesWelland Recreational WaterwayLocaleWelland, OntarioMaintained byCanadian Pacific RailwayCharacteristicsDesignBaltimore Truss swing bridgeHistoryOpenedc. 1910Location The W...

此条目序言章节没有充分总结全文内容要点。 (2019年3月21日)请考虑扩充序言,清晰概述条目所有重點。请在条目的讨论页讨论此问题。 哈萨克斯坦總統哈薩克總統旗現任Қасым-Жомарт Кемелұлы Тоқаев卡瑟姆若马尔特·托卡耶夫自2019年3月20日在任任期7年首任努尔苏丹·纳扎尔巴耶夫设立1990年4月24日(哈薩克蘇維埃社會主義共和國總統) 哈萨克斯坦 哈萨克斯坦政府...

 

  طاجيكستان (بالطاجيكية: Ҷумҳурии Тоҷикистон)‏  طاجيكستانعلم طاجيكستان  طاجيكستانشعار طاجيكستان    النشيد:  سورودي ميللي  الأرض والسكان إحداثيات 38°35′00″N 71°22′00″E / 38.583333°N 71.366667°E / 38.583333; 71.366667   [1] أعلى قمة قمة إسماعيل ساماني (7495 متر)  ...

 

Pierre de Marcaarcivescovo della Chiesa cattolicaRitratto di mons. de Marca ad opera di Gerard Edelinck del 1696  Incarichi ricoperti Vescovo di Couserans Arcivescovo metropolita di Tolosa Arcivescovo metropolita di Parigi Primate di Francia  Nato24 gennaio 1594 a Gan Ordinato presbiteroin data sconosciuta Nominato vescovo13 gennaio 1648 da papa Innocenzo X Consacrato vescovo25 ottobre 1648 dall'arcivescovo Claude de Rebé Elevato arcivescovo23 marzo 1654 da papa Innocenzo X Decedut...

Cet article est une ébauche concernant l’Indonésie. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Pour les articles homonymes, voir Bali (homonymie). Bali (id) Provinsi Bali Héraldique Drapeau Carte de localisation de la province. Administration Pays Indonésie Statut Province Capitale Denpasar Date(s) importante(s) 1958 : création Gouverneur I Wayan Koster Fuseau horaire UTC+8 Démographie Populati...

 

American ice hockey player (born 1982) Ice hockey player Jim Slater Slater in 2012Born (1982-12-09) December 9, 1982 (age 41)Lapeer, Michigan, U.S.[citation needed]Height 6 ft 0 in (183 cm)Weight 195 lb (88 kg; 13 st 13 lb)Position CenterShot LeftPlayed for Atlanta ThrashersWinnipeg JetsGenève-Servette HCHC Fribourg-GottéronNational team  United StatesNHL draft 30th overall, 2002Atlanta ThrashersPlaying career 2005–2019 Coaching car...

 

King of the Achaemenid Empire from 359/8 to 338 BC Artaxerxes III𐎠𐎼𐎫𐎧𐏁𐏂 King of Kings Great King King of Persia Pharaoh of Egypt King of Countries The Rock relief of Artaxerxes III in PersepolisKing of Kings of the Achaemenid EmpireReign359/8–338 BCPredecessorArtaxerxes IISuccessorArsesPharaoh of EgyptReign340/39–338 BCPredecessorNectanebo IISuccessorArsesBornOchusDiedAugust/September 338 BC[1]BurialPersepolisIssueArsesParysatis IIDynastyAchaemenidFatherArtaxerxe...

Web hosting service active from 1994 to 2009 GeoCitiesLogo under Yahoo! from 2009 to 2019Type of siteWeb hosting serviceOwnerGeoCities (1994–1999)Yahoo! (1999–2009)Created byDavid Bohnett and John ReznerCommercialYesRegistrationYesLaunchedNovember 1994; 29 years ago (1994-11)Current statusInactive since 2009(Japanese version inactive since 2019) GeoCities, later Yahoo! GeoCities, was a web hosting service that allowed users to create and publish websites f...

 

فنلندا الغربية  شعار   الإحداثيات 62°04′04″N 22°53′04″E / 62.06788°N 22.88452°E / 62.06788; 22.88452   تاريخ التأسيس 1 سبتمبر 1997  تقسيم إداري  البلد فنلندا[1]  التقسيم الأعلى فنلندا  العاصمة توركو  تاريخ الإلغاء 31 ديسمبر 2009  خصائص جغرافية  المساحة 74185 كيلو�...

 

Chinese calligrapher, politician, and writer of the early Tang dynasty Copy of a text by Ouyang Xun Ouyang Xun (Chinese: 歐陽詢; pinyin: Ōuyáng Xún; Wade–Giles: Ou-yang Hsün; 557–641), courtesy name Xinben (Chinese: 信本; pinyin: Xìn běn; Wade–Giles: Hsin-pên), was a Chinese calligrapher, politician, and writer of the early Tang dynasty. He was born in Hunan, Changsha, to a family of government officials; and died in modern Anhui province. Achievement...

2014 Uruguayan filmPortrait of Animal BehaviorTheatrical release posterDirected byFlorencia ColucciGonzalo LugoWritten byFlorencia ColucciGonzalo LugoProduced byFlorencia ColucciGonzalo LugoStarringFlorencia ColucciGonzalo LugoCinematographyFrancisco JasoMusic byAlejandro PeregoProductioncompaniesOpiti FilmsShoreline EntertainmentDistributed byBuen CineRelease dates August 20, 2014 (2014-08-20) (World Cinema Amsterdam Festival) September 17, 2015 (2015-09-17)...

 

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article adopte un point de vue régional ou culturel particulier et nécessite une internationalisation (juin 2022). Merci de l'améliorer ou d'en discuter sur sa page de discussion ! Vous pouvez préciser les sections à internationaliser en utilisant {{section à internationaliser}}. Pour un article plus général, voir Chocolat. Chocolat noir. Le chocolat noir est un chocolat qui contient entre 43...