തത്ത്വചിന്തകരും ഊണുമേശയും (ഡൈനിംഗ് തത്ത്വചിന്തകരുടെ പ്രശ്നം)

കമ്പ്യൂട്ടർ ശാസ്ത്രത്തിൽ, സമന്വയ പ്രശ്‌നങ്ങളും അവ പരിഹരിക്കുന്നതിനുള്ള സാങ്കേതിക വിദ്യകളും ചർച്ച ചെയ്യുന്നതിന് ഉപയോഗിച്ചു വരുന്ന ഒരു ഉദാഹരണ പ്രശ്നമാണ് ഡൈനിംഗ് തത്ത്വചിന്തകരുടെ പ്രശ്നം .

ഡൈനിംഗ് തത്ത്വചിന്തകരുടെ പ്രശ്നത്തിൻറെ ചിത്രീകരണം.

ടേപ്പ് ഡ്രൈവ് പോലുള്ള റിസോഴ്സുകൾക്കായി ഒരേ സമയം മത്സരിക്കുന്ന കമ്പ്യൂട്ടറുകൾ നേരിടേണ്ടി വരുന്ന പ്രശ്നങ്ങൾ മനസ്സിലാക്കുന്നതിനു വിദ്യാർത്ഥികൾക്കുള്ള പരിശീലന പ്രശ്നം എന്ന നിലക്ക് 1965-ൽ എഡ്‌സ്‌ഗർ ഡിജ്‌ക്‌സ്‌ട്രയാണ് ഈ ആശയത്തിൻറെ ആദ്യ രൂപം സൃഷ്ടിച്ചത്. പിന്നീട് ടോണി ഹോർ അതിന് ഇന്നു നാം ഉപയോഗിക്കുന്ന രൂപം നൽകി. [1] [2]

പ്രശ്നം

തിരുത്തുക

ഒരു ഊണുമേശയ്ക്കു ചുറ്റും അഞ്ച് തത്ത്വചിന്തകർ ഭക്ഷണം കഴിക്കുന്നതിനായി ഇരിക്കുന്നു. മേശയിൽ അഞ്ച് പാത്രങ്ങളിൽ ഭക്ഷണമുണ്ട്. ഓരോ പാത്രത്തിനുമിടയിൽ ഒരെണ്ണം എന്ന കണക്കിൽ ആകെ അഞ്ച് ഫോർക്കുകളും വെച്ചിട്ടുണ്ട് (മുകളിൽ കൊടുത്തിരിക്കുന്ന ചിത്രം ശ്രദ്ധിക്കുക).

ഓരോ തത്ത്വചിന്തകനും മാറിമാറി ചിന്തിക്കാനും ഭക്ഷണം കഴിക്കാനും മാത്രമേ കഴിയൂ. ഒരാൾക്ക് രണ്ടു ഫോർക്കുകൾ കിട്ടിയാൽ മാത്രമേ തൻറെ പാത്രത്തിൽ നിന്നും ഭക്ഷണം കഴിക്കാൻ സാധിക്കൂ (നൂഡിൽസ് ആണ് വിളമ്പിയിരിക്കുന്നത് എന്ന് കരുതാം). ചുരുക്കത്തിൽ ഒരാൾക്ക് ഭക്ഷണം കഴിക്കാനുള്ള രണ്ട് ഫോർക്കുകൾ കിട്ടണമെങ്കിൽ അദ്ദേഹത്തിൻറെ ഇരുവശത്തുമുള്ള രണ്ടുപേരും ഭക്ഷണം കഴിക്കാതെ ചിന്തിച്ചുകൊണ്ട് ഇരിക്കുകയായിരിക്കണം. എല്ലാ തത്ത്വചിന്തകരും തൻറെ ഭക്ഷണശേഷം താൻ ഉപയോഗിച്ച ഫോർക്കുകൾ രണ്ടും മറ്റുള്ളവർക്ക് ഉപയോഗിക്കുന്നതിനായി മേശപ്പുറത്തു തിരികെ വെക്കും. ശേഷം തൻറെ ചിന്ത തുടരുകയും ചെയ്യും.

ഇങ്ങനെ ഇരിക്കെ എല്ലാ തത്ത്വചിന്തകർക്കും ഒരേ സമയം വിശക്കുന്നു എന്ന് കരുതുക. ഭക്ഷണം എത്രയും പെട്ടെന്നു കഴിക്കുന്നതിനായി എല്ലാവരും തങ്ങളുടെ ഇടതുവശത്തുള്ള (അല്ലെങ്കിൽ വലതു വശത്തുള്ള) ഫോർക്ക് കയ്യിൽ എടുക്കും. ഇപ്പോൾ എല്ലാവരുടെയും കയ്യിൽ ഒരു ഫോർക്ക് ഉണ്ട്. എല്ലാവരും ഒരു ഫോർക്ക് കൂടി കിട്ടുന്നതിനു കാത്തു നിൽക്കുകയാണ്. എന്നാൽ ആരെങ്കിലും ഒരാൾ താഴെ വെക്കാതെ ആർക്കും രണ്ടാമത്തെ ഫോർക്ക് കിട്ടുകയില്ല. ഭക്ഷണശേഷം മാത്രമേ എല്ലാവരും കയ്യിലുള്ള ഫോർക്ക് താഴെ വെക്കുകയുമുള്ളൂ. ഈ അവസ്ഥ കാരണം ആർക്കുമാർക്കും ഭക്ഷണം കഴിക്കാൻ സാധിക്കാതെ എല്ലാവരും അനന്തമായി പട്ടിണി കിടക്കേണ്ടി വരും. ഇതിനെയാണ് ഡൈനിംഗ് ഫിലോസഫർമാരുടെ പ്രശ്നം എന്നു പറയുന്നത് [3].

ഒരു ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റത്തിൻറെ കാര്യത്തിൽ ഇവിടെ സൂചിപ്പിച്ചിരിക്കുന്ന തത്ത്വചിന്തകർ അതിൽ പ്രവർത്തിച്ചു കൊണ്ടിരിക്കുന്ന പ്രോസസ്സുകളാണ്. ഫോർക്ക് ആ പ്രോസസ്സുകൾക്ക് ഒരു പ്രവൃത്തി ചെയ്യുന്നതിന് ആവശ്യമായ ഏതൊരു പൊതുവായ റിസോഴ്സുമാവാം (ഉദാഹരണത്തിനു ഒരു ഫയൽ, പ്രിൻറർ, മെമ്മറി).

റഫറൻസുകൾ

തിരുത്തുക
  1. J. Díaz; I. Ramos (1981). Formalization of Programming Concepts: International Colloquium, Peniscola, Spain, April 19–25, 1981. Proceedings. Birkhäuser. pp. 323 , 326. ISBN 978-3-540-10699-9.
  2. Hoare, C. A. R. (2004) [originally published in 1985 by Prentice Hall International]. "Communicating Sequential Processes" (PDF). usingcsp.com.
  3. Tanenbaum, Andrew S. (2006), Operating Systems - Design and Implementation, 3rd edition [Chapter: 2.3.1 The Dining Philosophers Problem], Pearson Education, Inc.