Filosofenprobleem

Illustratie bij het filosofenprobleem

In de informatica is het filosofenprobleem een aansprekend voorbeeld van de problematiek van synchronisatie. Het probleem is in 1965 door Edsger Dijkstra voor het eerst gesteld als tentamenvraag; die ging over vijf computers die toegang willen hebben tot vijf tape-drives. De herformulering waarin computers en tape-drives door filosofen en vorken zijn vervangen is kort daarna bedacht door Tony Hoare.

Het probleem

Vijf filosofen zitten aan een ronde tafel en hebben ieder een bord spaghetti voor zich. Elke filosoof moet zo nu en dan spaghetti eten. Een filosoof die niet aan het eten is, denkt na.

Er liggen vijf vorken op tafel: een tussen elke twee filosofen. Om te kunnen eten moet een filosoof beide vorken aan weerszijden in handen hebben. Een filosoof kan die vorken oppakken, maar alleen een voor een en uiteraard alleen als de buurman niet op dat moment de vork in handen heeft. Een filosoof kan een opgepakte vork weer terugleggen.

Het probleem is nu om de filosofen zodanige instructies te geven, die dus alleen betrekking hebben op het oppakken en weer terugleggen van vorken aan weerszijden, dat gegarandeerd iedere filosoof te eten krijgt. Dit is een voorbeeld van een probleem in het gedistribueerd programmeren. Zulke problemen zijn in het algemeen niet zo eenvoudig op te lossen.

Stel bijvoorbeeld dat elke denker de filosofie hanteert: ik pak een vork zo gauw ik kan, als beide beschikbaar zijn eerst de linkervork; zo gauw ik beide vorken in handen heb eet ik wat; dan leg ik de vorken weer neer. Dat lijkt op het eerste gezicht een redelijk plan. Helaas kan dan de situatie ontstaan dat elke filosoof de linkervork in de linkerhand heeft, en zal dan elke filosoof eeuwig blijven wachten tot de rechtervork vrijkomt. De situatie is een voorbeeld van deadlock: er is geen voortgang in het systeem meer mogelijk. Elke filosoof zal verhongeren.

Er zijn technieken om tot een oplossing te komen die een deadlock bewijsbaar voorkomen; Dijkstra heeft het probleem verzonnen om zulke technieken te demonstreren. Bij zulke oplossingen kunnen extra observaties en/of handelingen worden ingevoerd. Omdat we met een gedistribueerd systeem te maken hebben, zijn alle observaties en handelingen communicaties tussen de deelnemende partijen.

We kunnen bijvoorbeeld de denkers nummeren en elke denker alleen een vork laten pakken als er geen hoger genummerde denker al een vork vastheeft. Nu is deadlock onmogelijk. (Maar is deze oplossing uitvoerbaar? Het probleem is nu veranderd door te eisen dat een filosoof op de een of andere manier kan weten of een hoger genummerde buur al een vork in de andere hand heeft. Die informatie moet dus op de een of andere manier doorgegeven worden. Hoe? Stel dat een filosoof de observatie kan doen of een buur een vork in de andere hand heeft. Dat is niet toereikend: als de filosoof ziet dat dat niet zo is en op basis daarvan beslist om zelf de met die buur gedeelde vork op te pakken, kan intussen die buur de andere vork opnemen.)

Deadlock is echter niet het enige soort situatie dat in het ontwerp moet worden uitgesloten. Stel bijvoorbeeld dat we een denker zelfs geen vork laten pakken als tegelijk een hoger genummerde hetzelfde probeert. Dan zal de hoogstgenummerde altijd eten, terwijl de rest verhongert. Zo'n situatie wordt starvation genoemd.

Men kan dit nog verder aanscherpen, bijvoorbeeld door te eisen dat het systeem 'eerlijk' is, in de zin dat de filosofen niet alleen allemaal altijd nog ooit de kans krijgen te eten, maar ze die kans zelfs even vaak krijgen; of door te eisen dat de totale wachttijd zo klein mogelijk is.

Relevantie

Deze situatie illustreert de problemen die zich kunnen voordoen bij het synchroniseren van toegang tot resources (de vorken), bijvoorbeeld door verschillende threads (de filosofen) in een computerprogramma. Als verschillende threads gebruikmaken van dezelfde variabelen of bestanden is het niet veilig dat ze die tegelijk proberen aan te passen; daarom kan het onvermijdelijk zijn dat threads op elkaar moeten wachten. Als deze synchronisatie niet correct wordt ontworpen kan het voorkomen dat een thread helemaal nooit meer aan de beurt komt (starvation) of dat dat zelfs voor elke thread geldt (deadlock).

Read other articles:

Questa voce o sezione sull'argomento politici è priva o carente di note e riferimenti bibliografici puntuali. Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Segui i suggerimenti del progetto di riferimento. David Ben Gurionדָּוִד בֶּן-גּו�...

 

  لمعانٍ أخرى، طالع فرناندو فرنانديز (توضيح). فرناندو فرنانديز معلومات شخصية الميلاد 8 يناير 1992 (العمر 32 سنة)كابياتا  الطول 1.80 م (5 قدم 11 بوصة) مركز اللعب مهاجم الجنسية باراغواي  معلومات النادي النادي الحالي غواراني(معارًا من تيغريس أونال) الرقم 9 مسيرة الشبا...

 

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

Korean restaurant in New York City JungsikRestaurant informationHead chefJungsik YimChefDaeik KimPastry chefEunchong KimFood typeKoreanRating (Michelin Guide)Street address2 Harrison StreetCityNew York CityStateNew YorkPostal/ZIP Code10013CountryUnited StatesCoordinates40°43′7.8″N 74°0′32.7″W / 40.718833°N 74.009083°W / 40.718833; -74.009083WebsiteOfficial website Jungsik is a restaurant in New York City.[1][2] The restaurant serves Korean c...

 

Medical conditionAllochiriaAllochiria is most frequently associated with a lesion of the right parietal lobe (in yellow, at top)Pronunciation/ˌaləˈkʌɪrɪə//ˌæləˈkaɪriə/[1] SpecialtyNeurology Allochiria is a neurological disorder in which the patient responds to stimuli presented to one side of their body as if the stimuli had been presented at the opposite side.[2] It is associated with spatial transpositions, usually symmetrical, of stimuli from one side of t...

 

1968 aviation incident Seaboard World Airlines Flight 253AThe aircraft involved in 1983, while operating with Icelandic AirlinesAirspace violation incidentDateJuly 1, 1968SummaryForced landingSiteKuril Islands, Soviet UnionAircraftAircraft typeDouglas DC-8 Super 63CFOperatorSeaboard World Airlines (chartered as a troop transport)RegistrationN8631Flight originSeattle, WashingtonDestinationYokota Air Base, JapanPassengers214Crew24Fatalities0Injuries0Survivors238 Seaboard World Airlines Fli...

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: コルク – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年4月) コルクを打ち抜いて作った瓶の栓 コルク(木栓、�...

 

Pour les articles homonymes, voir Andrew Fletcher. Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne cite pas suffisamment ses sources (novembre 2018). Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ». En pr...

 

この項目には、一部のコンピュータや閲覧ソフトで表示できない文字が含まれています(詳細)。 数字の大字(だいじ)は、漢数字の一種。通常用いる単純な字形の漢数字(小字)の代わりに同じ音の別の漢字を用いるものである。 概要 壱万円日本銀行券(「壱」が大字) 弐千円日本銀行券(「弐」が大字) 漢数字には「一」「二」「三」と続く小字と、「壱」「�...

Film award of film critics from Kerala, India Kerala Film Critics Association AwardsAwarded forBest in filmCountryIndiaPresented byKerala Film Critics AssociationFirst awarded1977Websitekeralafilmcritics.com The Kerala Film Critics Association Awards are presented annually by the Kerala Film Critics Association to honour both artistic and technical excellence of professionals in the Malayalam language film industry of India. The awards were instituted in 1977. History The Kerala Film Critics ...

 

Warta beralih ke sini. Untuk kota di Polandia bernama sama, silakan lihat Warta (kota) Sungai Warta di Poznań Warta (bahasa Latin: Varta, bahasa Jerman: Warthe) ialah sungai di tengah-barat Polandia, anak sungai Oder. Dengan panjang sekitar 808 kilometer merupakan sungai terpanjang ke-3 di Polandia. Warta memiliki luas wilayah 54.529. Terhubung ke Vistula oleh sungai Noteć dan Terusan Bydgoszcz (Kanał Bydgoski) dekat Bydgoszcz. Berasal dari Kromolow, Wyżyna Krakowsko-Częstochowska, menga...

 

ε Andromedae Location of ε Andromedae (lower left of center) Data pengamatan Epos J2000.0      Ekuinoks J2000.0 (ICRS) Rasi bintang Andromeda Asensio rekta  00j 38m 33.3458d[1] Deklinasi  +29° 18′ 42.305″[1] Magnitudo tampak (V) 4.37[1] Ciri-ciri Kelas spektrum G6IIIFe-3CH1[2] Indeks warna U−B +0.47[2] Indeks warna B−V +0.87[2] Indeks warna V−R 0.6[...

Artikel ini adalah bagian dari seriPembagian administratifIndonesia Tingkat I Provinsi Daerah istimewa Daerah khusus Tingkat II Kabupaten Kota Kabupaten administrasi Kota administrasi Tingkat III Kecamatan Distrik Kapanewon Kemantren Tingkat IV Kelurahan Desa Dusun (Bungo) Finua Gampong Kute Kalurahan Kampung Kalimantan Timur Lampung Papua Riau Lembang Nagari Nagori Negeri Maluku Maluku Tengah Negeri administratif Ohoi Pekon Tiyuh Lain-lain Antara III dan IV Mukim Di bawah IV Banjar Bori Pedu...

 

 如无特别说明,此條目中的“中國”指中华人民共和国。 第二届夏季青年奧林匹克运动会主辦城市 中华人民共和国南京口號分享青春,共筑未来(英語:Share the Games Share Our Dreams)參賽國家和地區201參賽運動員3,769比賽項目28大项222小项开幕典礼2014年8月16日闭幕典礼2014年8月28日開幕宣布者中華人民共和國主席習近平閉幕宣布者托马斯·巴赫運動員宣誓代表樊振东裁...

 

French investigative journalist Jean-Marie Pontaut Jean-Marie Pontaut (born 26 February 1947 in Neuilly-sur-Seine) is a French investigative journalist, working for the daily L'Express, after a start and a return trip to Le Point. Biography Pontaut often worked in collaboration with Jacques Derogy.[1] Pontaut is the author of several books in collaboration, including a book on the affaire des écoutes de l'Élysée [fr] (Les Oreilles du Président) and another on the affa...

Romanization scheme for Cantonese Chinese YaleTraditional Chinese耶魯Simplified Chinese耶鲁Cantonese Yaleyèh lóuh TranscriptionsYue: CantoneseYale Romanizationyèh lóuhJyutpingje4 lou5IPA[jɛː˩ lou˩˧] Romanization ofSinitic languages Mandarin Standard Mandarin Hanyu Pinyin EFEO Gwoyeu Romatzyh Spelling conventions Latinxua Sin Wenz Mandarin Phonetic Symbols II Postal romanization Tongyong Pinyin Wade–Giles Yale romanization Lessing-Othmer Legge romanization Simplif...

 

The World Set Free Edisi pertama di Amerika SerikatPengarangH. G. WellsJudul asliThe World Set Free: A Story of MankindNegaraBritania RayaBahasaInggrisDiterbitkan1914PenerbitMacmillan & Co. (Inggris)E. P. Dutton (Amerika Serikat)Jenis mediaCetak (hardback dan sampul kertas)Halaman286TeksThe World Set Free di Wikisource The World Set Free adalah novel yang ditulis pada tahun 1913 dan diterbitkan pada tahun 1914 oleh H. G. Wells.[1] Buku itu didasarkan pada prediksi adanya...

 

منتخب كمبوديا لكرة القدم (بالخميرية: ក្រុមបាល់ទាត់ជម្រើជាតិកម្ពុជា)‏  معلومات عامة بلد الرياضة  كمبوديا الفئة كرة القدم للرجال  رمز الفيفا CAM  الاتحاد اتحاد كمبوديا لكرة القدم كونفدرالية آفك (آسيا) الملعب الرئيسي الملعب الأولمبي (بنوم بنه) الموق...

Daily log of an ongoing military conflict This is a dynamic list and may never be able to satisfy particular standards for completeness. You can help by adding missing items with reliable sources. Timeline of the Russian invasion of UkrainePrelude     (up to 23 February 2022)Initial invasion     (24 February – 7 April 2022)Southeastern front     (8 April – 28 August 2022)2022 Ukrainian counteroffensives     (29 August – 11 Nove...

 

Pour l’article homonyme, voir Mur de la mort. Les spectateurs contemplent le pilote-cascadeur qui passe devant eux. Course-poursuite à quatre motos. Le mur de la mort[1] (en anglais : Wall of Death, ou « puits de la mort », Well of Death ou Maut ka Kuaa en Inde) est une attraction constituée par la démonstration de motocyclistes ou d'automobilistes conduisant à l'aide de la force centrifuge dans un silo dont les murs sont verticaux. Histoire Hazel Watkins, qui se produ...