डेडलॉक: Difference between revisions
From Vigyanwiki
No edit summary |
(TEXT) |
||
| Line 5: | Line 5: | ||
[[File:Process deadlock.svg|thumb|right|निष्पादन जारी रखने के लिए दोनों प्रक्रियाओं को संसाधनों की आवश्यकता होती है। P1 को अतिरिक्त संसाधन R1 की आवश्यकता है और संसाधन R2 के कब्जे में है, P2 को अतिरिक्त संसाधन R2 की आवश्यकता है और R1 के अधिकार में है; कोई भी प्रक्रिया जारी नहीं रह सकती।]] | [[File:Process deadlock.svg|thumb|right|निष्पादन जारी रखने के लिए दोनों प्रक्रियाओं को संसाधनों की आवश्यकता होती है। P1 को अतिरिक्त संसाधन R1 की आवश्यकता है और संसाधन R2 के कब्जे में है, P2 को अतिरिक्त संसाधन R2 की आवश्यकता है और R1 के अधिकार में है; कोई भी प्रक्रिया जारी नहीं रह सकती।]] | ||
[[File:Deadlock at a four-way-stop.gif|thumbnail|right|दाएँ-पहले-बाएँ नीति का पालन करते हुए चार प्रक्रियाएँ (नीली रेखाएँ) एक संसाधन (ग्रे | [[File:Deadlock at a four-way-stop.gif|thumbnail|right|दाएँ-पहले-बाएँ नीति का पालन करते हुए चार प्रक्रियाएँ (नीली रेखाएँ) एक संसाधन (ग्रे वृत्त) के लिए प्रतिस्पर्धा करती हैं। एक गतिरोध तब होता है जब सभी प्रक्रियाएँ संसाधन को एक साथ (काली रेखाएँ) बंद कर देती हैं। गतिरोध को समरूपता को तोड़कर हल किया जा सकता है।]][[समवर्ती कंप्यूटिंग]] में, गतिरोध ऐसी कोई भी स्थिति है जिसमें संस्थाओं के कुछ समूह का कोई भी सदस्य आगे नहीं बढ़ सकता है क्योंकि प्रत्येक अन्य सदस्य के लिए प्रतीक्षा करता है, जिसमें स्वयं भी सम्मिलित है, जैसे कि संदेश भेजना या अधिक सामान्य रूप से लॉक (कंप्यूटर विज्ञान) जारी करना। <ref name=coulouris>{{cite book|last=Coulouris|first=George|publisher=Pearson|year=2012|title=वितरित सिस्टम अवधारणा और डिजाइन|page=716|isbn=978-0-273-76059-7}}</ref> [[ बहु |बहु संसाधन]] प्रणाली, [[समानांतर कंप्यूटिंग]] और [[वितरित अभिकलन]] में गतिरोध एक सामान्य समस्या है, क्योंकि इन संदर्भों में प्रणाली प्रायः साझा संसाधनों की मध्यस्थता और समकालन (कंप्यूटर विज्ञान) को लागू करने के लिए सॉफ़्टवेयर या हार्डवेयर लॉक का उपयोग करते हैं। <ref name=para_enclo>{{cite book |last=Padua |first=David |url=https://books.google.com/books?id=Hm6LaufVKFEC&q=deadlock&pg=PA524 |publisher=Springer |year=2011 |title=समानांतर कंप्यूटिंग का विश्वकोश|page=524 |isbn=9780387097657 |access-date=16 October 2020 |archive-date=18 April 2021 |archive-url=https://web.archive.org/web/20210418033928/https://books.google.com/books?id=Hm6LaufVKFEC&q=deadlock&pg=PA524 |url-status=live }}</ref> | ||
[[ऑपरेटिंग सिस्टम]] में, गतिरोध तब होता है जब [[प्रक्रिया (कंप्यूटिंग)]] या [[थ्रेड (कंप्यूटिंग)]] एक प्रतीक्षा प्रक्रिया स्थिति में प्रवेश करती है क्योंकि एक अनुरोधित [[सिस्टम संसाधन]] दूसरी प्रतीक्षा प्रक्रिया द्वारा आयोजित किया जाता है, जो बदले में किसी अन्य प्रतीक्षा प्रक्रिया द्वारा रखे गए किसी अन्य संसाधन की प्रतीक्षा कर रहा है। गतिरोध एक ऐसी स्थिति है जो कई प्रक्रियाओं से बनी प्रणाली में हो सकती है जो साझा संसाधनों तक पहुंच सकती है। एक गतिरोध तब होता है जब दो या दो से अधिक प्रक्रियाएँ एक संसाधन जारी करने के लिए एक दूसरे की प्रतीक्षा कर रही होती हैं। कोई भी प्रक्रिया कोई प्रगति नहीं कर सकती है। यदि कोई प्रक्रिया अनिश्चित काल तक अपनी स्थिति को बदलने में असमर्थ रहती है क्योंकि उसके द्वारा अनुरोधित संसाधनों का उपयोग किसी अन्य प्रक्रिया द्वारा किया जा रहा है जो स्वयं प्रतीक्षा कर रही है, तो | [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] में, गतिरोध तब होता है जब [[प्रक्रिया (कंप्यूटिंग)]] या [[थ्रेड (कंप्यूटिंग)]] एक प्रतीक्षा प्रक्रिया स्थिति में प्रवेश करती है क्योंकि एक अनुरोधित [[सिस्टम संसाधन|प्रणाली संसाधन]] दूसरी प्रतीक्षा प्रक्रिया द्वारा आयोजित किया जाता है, जो बदले में किसी अन्य प्रतीक्षा प्रक्रिया द्वारा रखे गए किसी अन्य संसाधन की प्रतीक्षा कर रहा है। गतिरोध एक ऐसी स्थिति है जो कई प्रक्रियाओं से बनी प्रणाली में हो सकती है जो साझा संसाधनों तक पहुंच सकती है। एक गतिरोध तब होता है जब दो या दो से अधिक प्रक्रियाएँ एक संसाधन जारी करने के लिए एक दूसरे की प्रतीक्षा कर रही होती हैं। कोई भी प्रक्रिया कोई प्रगति नहीं कर सकती है। यदि कोई प्रक्रिया अनिश्चित काल तक अपनी स्थिति को बदलने में असमर्थ रहती है क्योंकि उसके द्वारा अनुरोधित संसाधनों का उपयोग किसी अन्य प्रक्रिया द्वारा किया जा रहा है जो स्वयं प्रतीक्षा कर रही है, तो प्रणाली गतिरोध में कहा जाता है।<ref name="os_galvin">{{cite book|last=Silberschatz|first=Abraham|url=https://books.google.com/books?id=WjvX0HmVTlMC&q=deadlock+operating+systems|publisher=Wiley-India|year=2006|title=ऑपरेटिंग सिस्टम सिद्धांत|edition=7th|page=237|isbn=9788126509621|access-date=16 October 2020|archive-date=25 January 2022|archive-url=https://web.archive.org/web/20220125085137/https://books.google.com/books?id=WjvX0HmVTlMC&q=deadlock+operating+systems|url-status=live}}</ref> | ||
एक [[संचार प्रणाली]] में, संसाधनों के लिए विवाद के स्थान पर मुख्य रूप से संकेतों के नुकसान या भ्रष्टाचार के कारण गतिरोध उत्पन्न होता है।<ref name=invi_comp>{{cite book |last=Schneider |first=G. Michael |url=https://books.google.com/books?id=gQK0pJONyhgC&q=deadlock+signal+lost&pg=PA271 |publisher=Cengage Learning |year=2009 |title=कंप्यूटर विज्ञान के लिए निमंत्रण|page=271 |isbn=978-0324788594 |access-date=16 October 2020 |archive-date=18 April 2021 |archive-url=https://web.archive.org/web/20210418025125/https://books.google.com/books?id=gQK0pJONyhgC&q=deadlock+signal+lost&pg=PA271 |url-status=live }}</ref> | एक [[संचार प्रणाली]] में, संसाधनों के लिए विवाद के स्थान पर मुख्य रूप से संकेतों के नुकसान या भ्रष्टाचार के कारण गतिरोध उत्पन्न होता है।<ref name=invi_comp>{{cite book |last=Schneider |first=G. Michael |url=https://books.google.com/books?id=gQK0pJONyhgC&q=deadlock+signal+lost&pg=PA271 |publisher=Cengage Learning |year=2009 |title=कंप्यूटर विज्ञान के लिए निमंत्रण|page=271 |isbn=978-0324788594 |access-date=16 October 2020 |archive-date=18 April 2021 |archive-url=https://web.archive.org/web/20210418025125/https://books.google.com/books?id=gQK0pJONyhgC&q=deadlock+signal+lost&pg=PA271 |url-status=live }}</ref> | ||
[[File:Two processes, two resources.gif|thumbnail|विपरीत क्रम में दो संसाधनों के लिए प्रतिस्पर्धा करने वाली दो प्रक्रियाएँ।{{ordered list|style=margin-top:0.5em|list_style_type=upper-alpha | [[File:Two processes, two resources.gif|thumbnail|विपरीत क्रम में दो संसाधनों के लिए प्रतिस्पर्धा करने वाली दो प्रक्रियाएँ।{{ordered list|style=margin-top:0.5em|list_style_type=upper-alpha | ||
| | |एक ही प्रक्रिया से पारित होती है। | ||
| | |बाद की प्रक्रिया के लिए इंतजार करना पड़ता है। | ||
| | |डेडलॉक तब होता है जब पहली प्रक्रिया पहले संसाधन को उसी समय बंद कर देती है जब दूसरी प्रक्रिया दूसरे संसाधन को बंद कर देती है।|पहली प्रक्रिया को रद्द करके और पुनः आरंभ करके गतिरोध को हल किया जा सकता है।}}]] | ||
| | |||
== गतिरोध के लिए व्यक्तिगत रूप से आवश्यक और संयुक्त रूप से पर्याप्त | == गतिरोध के लिए व्यक्तिगत रूप से आवश्यक और संयुक्त रूप से पर्याप्त स्थिति == | ||
किसी संसाधन पर गतिरोध की स्थिति केवल तभी उत्पन्न हो सकती है जब निम्नलिखित सभी स्थितियाँ एक साथ एक | किसी संसाधन पर गतिरोध की स्थिति केवल तभी उत्पन्न हो सकती है जब निम्नलिखित सभी स्थितियाँ एक साथ एक प्रणाली में उत्पन्न होती हैं:<ref>{{cite book|last=Silberschatz|first=Abraham|url=https://books.google.com/books?id=WjvX0HmVTlMC&q=deadlock+operating+systems|publisher=Wiley-India|year=2006|title=ऑपरेटिंग सिस्टम सिद्धांत|edition=7|page=239|isbn=9788126509621|access-date=16 October 2020|archive-date=18 April 2021|archive-url=https://web.archive.org/web/20210418013932/https://books.google.com/books?id=WjvX0HmVTlMC&q=deadlock+operating+systems|url-status=live}}</ref> | ||
# पारस्परिक बहिष्करण: गैर-साझा करने योग्य | # पारस्परिक बहिष्करण: गैर-साझा करने योग्य प्रणाली में कम से कम एक संसाधन होना चाहिए; अर्थात्, एक समय में केवल एक ही प्रक्रिया संसाधन का उपयोग कर सकती है।<ref>{{Cite book|title=ऑपरेटिंग सिस्टम अवधारणाओं|publisher=Wiley|year=2012|isbn=978-1-118-06333-0|pages=319}}</ref> अन्यथा, आवश्यक होने पर प्रक्रियाओं को संसाधन का उपयोग करने से नहीं रोका जाएगा। किसी भी समय केवल एक प्रक्रिया संसाधन का उपयोग कर सकती है।<ref>{{cite web|url=http://nob.cs.ucdavis.edu/classes/ecs150-1999-02/dl-cond.html|title=ECS 150 Spring 1999: Four Necessary and Sufficient Conditions for Deadlock|website=nob.cs.ucdavis.edu|access-date=29 April 2018|url-status=live|archive-url=https://web.archive.org/web/20180429180831/http://nob.cs.ucdavis.edu/classes/ecs150-1999-02/dl-cond.html|archive-date=29 April 2018}}</ref> | ||
# | # कोई पूर्वक्रय (कम्प्यूटिंग) नहीं: किसी संसाधन को केवल धारण करने वाली प्रक्रिया द्वारा स्वेच्छा से जारी किया जा सकता है। | ||
# वृत्ताकार प्रतीक्षा: प्रत्येक प्रक्रिया को एक संसाधन के लिए प्रतीक्षा करनी चाहिए जो किसी अन्य प्रक्रिया द्वारा आयोजित की जा रही है, जो बदले में संसाधन जारी करने के लिए पहली प्रक्रिया की प्रतीक्षा कर रही है। सामान्य तौर पर, प्रतीक्षा प्रक्रियाओं का एक [[सेट (गणित)|सम्मुच्चय (गणित)]] ''P'' = {''P''<sub>1</sub>, ''P''<sub>2</sub>, …, ''P<sub>N</sub>''} होता है, यह इस प्रकार है कि P<sub>1</sub> P<sub>2</sub> के पास उपस्थित संसाधन की प्रतीक्षा कर रहा है, P<sub>2</sub> P<sub>3</sub> के पास उपस्थित संसाधन की प्रतीक्षा कर रहा है और इतने पर जब तक P<sub>''N''</sub> P<sub>1</sub> के पास उपस्थित संसाधन की प्रतीक्षा कर रहा है। <ref name="os_galvin" /><ref name="embb">{{cite book |last=Shibu |first=K. |url=https://books.google.com/books?id=8hfn4gwR90MC&q=%22waiting+for+a+resource%22&pg=PA446 |publisher=Tata McGraw-Hill Education |year=2009 |title=एंबेडेड सिस्टम का परिचय|edition=1st |page=446 |isbn=9780070145894 |access-date=16 October 2020 |archive-date=18 April 2021 |archive-url=https://web.archive.org/web/20210418013931/https://books.google.com/books?id=8hfn4gwR90MC&q=%22waiting+for+a+resource%22&pg=PA446 |url-status=live }}</ref> | |||
# | एडवर्ड जी कॉफ़मैन, जूनियर द्वारा 1971 के एक लेख में इन चार स्थितियों को उनके पहले विवरण से कॉफ़मैन परिस्थिति के रूप में जाना जाता है।<ref name="embb"/> | ||
एडवर्ड जी कॉफ़मैन, जूनियर द्वारा 1971 के एक लेख में इन चार स्थितियों को उनके पहले विवरण से कॉफ़मैन | |||
जबकि ये स्थितियाँ एकल-आवृत्ति संसाधन प्रणालियों पर गतिरोध उत्पन्न करने के लिए पर्याप्त हैं, वे केवल संसाधनों के कई उदाहरणों वाले | जबकि ये स्थितियाँ एकल-आवृत्ति संसाधन प्रणालियों पर गतिरोध उत्पन्न करने के लिए पर्याप्त हैं, वे केवल संसाधनों के कई उदाहरणों वाले प्रणाली पर गतिरोध की संभावना का संकेत देती हैं।<ref>{{Cite web|url=https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/7_Deadlocks.html|title=Operating Systems: Deadlocks|website=www.cs.uic.edu|access-date=2020-04-25|quote=If a resource category contains more than one instance then the presence of a cycle in the resource-allocation graph indicates the possibility of a deadlock, but does not guarantee one. Consider, for example, Figures 7.3 and 7.4 below:|archive-date=28 May 2020|archive-url=https://web.archive.org/web/20200528052638/https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/7_Deadlocks.html|url-status=live}}</ref> | ||
== डेडलॉक | == डेडलॉक प्रबंधन == | ||
अधिकांश | अधिकांश वर्तमान ऑपरेटिंग प्रणाली गतिरोध को नहीं रोक सकते। <ref>{{cite book|last=Silberschatz|first=Abraham|url=https://books.google.com/books?id=WjvX0HmVTlMC&q=deadlock+operating+systems|publisher=Wiley-India|year=2006|title=ऑपरेटिंग सिस्टम सिद्धांत|edition=7|page=237|isbn=9788126509621|access-date=16 October 2020|archive-date=18 April 2021|archive-url=https://web.archive.org/web/20210418013932/https://books.google.com/books?id=WjvX0HmVTlMC&q=deadlock+operating+systems|url-status=live}}</ref> जब एक गतिरोध होता है, तो विभिन्न ऑपरेटिंग प्रणाली अलग-अलग गैर-मानक तरीके से उनका जवाब देते हैं। अधिकांश दृष्टिकोण चार सामान्य स्थितियों में से एक को (विशेष रूप से चौथे को) होने से रोककर काम करते हैं। <ref name=pric_os>{{cite book |last=Stuart |first=Brian L. |url=https://books.google.com/books?id=B5NC5-UfMMwC&q=coffman+conditions&pg=PA112 |publisher=Cengage Learning |year=2008 |title=ऑपरेटिंग सिस्टम के सिद्धांत|edition=1st |page=446 |isbn=9781418837693 |access-date=16 October 2020 |archive-date=18 April 2021 |archive-url=https://web.archive.org/web/20210418033945/https://books.google.com/books?id=B5NC5-UfMMwC&q=coffman+conditions&pg=PA112 |url-status=live }}</ref> प्रमुख दृष्टिकोण इस प्रकार हैं। | ||
=== गतिरोध की उपेक्षा === | === गतिरोध की उपेक्षा === | ||
इस दृष्टिकोण में, यह माना जाता है कि गतिरोध कभी नहीं होगा। यह | इस दृष्टिकोण में, यह माना जाता है कि गतिरोध कभी नहीं होगा। यह ऑस्ट्रिच कलन विधि का एक अनुप्रयोग भी है। <ref name="pric_os" /><ref name="distri_tanen">{{cite book |last=Tanenbaum |first=Andrew S. |url=https://books.google.com/books?id=l6sDRvKvCQ0C&q=Tanenbaum+ostrich&pg=PA177 |publisher=Pearson Education |year=1995 |title=वितरित ऑपरेटिंग सिस्टम|edition=1st |page=117 |isbn=9788177581799 |access-date=16 October 2020 |archive-date=18 April 2021 |archive-url=https://web.archive.org/web/20210418011235/https://books.google.com/books?id=l6sDRvKvCQ0C&q=Tanenbaum+ostrich&pg=PA177 |url-status=live }</ref> यह दृष्टिकोण प्रारम्भ में [[MINIX|मिनिक्स]] और [[UNIX|यूनिक्स]] द्वारा उपयोग किया गया था। <ref name="embb"/> इसका उपयोग तब किया जाता है जब गतिरोध की घटनाओं के बीच का समय अंतराल बड़ा होता है और हर बार होने वाली डेटा हानि सहनीय होती है। | ||
गतिरोधों को अनदेखा करना सुरक्षित रूप से किया जा सकता है यदि गतिरोधों का [[औपचारिक सत्यापन]] कभी नहीं होता है। एक उदाहरण आरटीआईसी ढांचा है।<ref>{{Cite web|url=https://rtic.rs/0.5/book/en/|title=प्रस्तावना - रीयल-टाइम इंटरप्ट-संचालित संगामिति|access-date=1 October 2020|archive-date=18 September 2020|archive-url=https://web.archive.org/web/20200918143731/https://rtic.rs/0.5/book/en/|url-status=live}}</ref> | गतिरोधों को अनदेखा करना सुरक्षित रूप से किया जा सकता है यदि गतिरोधों का [[औपचारिक सत्यापन]] कभी नहीं होता है। एक उदाहरण आरटीआईसी ढांचा है।<ref>{{Cite web|url=https://rtic.rs/0.5/book/en/|title=प्रस्तावना - रीयल-टाइम इंटरप्ट-संचालित संगामिति|access-date=1 October 2020|archive-date=18 September 2020|archive-url=https://web.archive.org/web/20200918143731/https://rtic.rs/0.5/book/en/|url-status=live}}</ref> | ||
| Line 38: | Line 36: | ||
=== जांच === | === जांच === | ||
गतिरोध का पता लगाने के | गतिरोध का पता लगाने के अंतर्गत, गतिरोध होने की अनुमति है। फिर प्रणाली की स्थिति की जांच की जाती है ताकि यह पता लगाया जा सके कि गतिरोध हुआ है और बाद में इसे ठीक किया गया है। एक कलन विधि कार्यरत है जो संसाधन आवंटन और प्रक्रिया की स्थिति को पथानुसरण करता है, यह पता लगाए गए गतिरोध को दूर करने के लिए वापस रोल करता है और एक या अधिक प्रक्रियाओं को पुनरारंभ करता है। एक गतिरोध का पता लगाना जो पहले से ही हो चुका है, आसानी से संभव है क्योंकि प्रत्येक प्रक्रिया ने जिन संसाधनों को बंद किया है और/या वर्तमान में अनुरोध किया है, वे ऑपरेटिंग सिस्टम के संसाधन अनुसूचक के लिए जाने जाते हैं।<ref name=distri_tanen /> | ||
गतिरोध का पता चलने के बाद, इसे निम्न विधियों में से किसी एक का उपयोग करके ठीक किया जा सकता है:{{Citation needed|date=May 2016}} | गतिरोध का पता चलने के बाद, इसे निम्न विधियों में से किसी एक का उपयोग करके ठीक किया जा सकता है:{{Citation needed|date=May 2016}} | ||
# प्रक्रिया समाप्ति: गतिरोध में सम्मिलित एक या अधिक प्रक्रियाओं को निरस्त किया जा सकता है। गतिरोध में सम्मिलित सभी प्रतिस्पर्धी प्रक्रियाओं (कंप्यूटिंग) को निरस्त करने का विकल्प चुन सकते हैं। यह सुनिश्चित करता है कि गतिरोध का समाधान निश्चितता और गति के साथ | # प्रक्रिया समाप्ति: गतिरोध में सम्मिलित एक या अधिक प्रक्रियाओं को निरस्त किया जा सकता है। गतिरोध में सम्मिलित सभी प्रतिस्पर्धी प्रक्रियाओं (कंप्यूटिंग) को निरस्त करने का विकल्प चुन सकते हैं। यह सुनिश्चित करता है कि गतिरोध का समाधान निश्चितता और गति के साथ है।{{Citation needed|date=May 2016}} लेकिन व्यय अधिक है क्योंकि आंशिक संगणना खो जाएगी। या, जब तक गतिरोध का समाधान नहीं हो जाता, तब तक एक समय में एक प्रक्रिया को निरस्त करना चुन सकते हैं। इस दृष्टिकोण में एक उच्च शिरोपरि है क्योंकि प्रत्येक अवर्द्धित के बाद एक कलन विधि को यह निर्धारित करना चाहिए कि प्रणाली अभी भी गतिरोध में है या नहीं।{{Citation needed|date=May 2016}} समाप्ति के लिए एक उम्मीदवार का चयन करते समय कई कारकों पर विचार किया जाना चाहिए, जैसे कि प्राथमिकता और प्रक्रिया की उम्र।{{Citation needed|date=May 2016}} | ||
# | # स्रोत अग्रक्रय: विभिन्न प्रक्रियाओं के लिए आवंटित संसाधनों को क्रमिक रूप से रोका जा सकता है और गतिरोध के टूटने तक अन्य प्रक्रियाओं को आवंटित किया जा सकता है।<ref>{{cite web|url=https://www.ibm.com/support/knowledgecenter/SSETD4_9.1.2/lsf_admin/resource_preemption_about.html|title=आईबीएम ज्ञान केंद्र|website=www.ibm.com|access-date=29 April 2018|url-status=live|archive-url=https://web.archive.org/web/20170319112925/https://www.ibm.com/support/knowledgecenter/SSETD4_9.1.2/lsf_admin/resource_preemption_about.html|archive-date=19 March 2017}}</ref>{{Failed verification|date=December 2021}} | ||
=== रोकथाम === | === रोकथाम === | ||
{{main| | {{main|डेडलॉक रोकथाम कलन विधि}} | ||
[[File:Avoiding deadlock.gif|380px|thumbnail|right|(ए) | [[File:Avoiding deadlock.gif|380px|thumbnail|right|(ए) पहले पाओ की नीति का पालन करते हुए दो प्रक्रियाएँ एक संसाधन के लिए प्रतिस्पर्धा करती हैं।(बी) गतिरोध तब होता है जब दोनों प्रक्रियाएं संसाधन को एक साथ लॉक कर देती हैं। | ||
(बी) गतिरोध तब होता है जब दोनों प्रक्रियाएं संसाधन को एक साथ लॉक कर देती हैं। | |||
(सी) तालों की समरूपता को तोड़कर गतिरोध को हल किया जा सकता है। | (सी) तालों की समरूपता को तोड़कर गतिरोध को हल किया जा सकता है। | ||
(डी) लॉकिंग तंत्र की समरूपता को तोड़कर डेडलॉक को रोका जा सकता है।]]चार कॉफमैन स्थितियों में से एक को होने से रोककर डेडलॉक की रोकथाम काम करती है। | (डी) लॉकिंग तंत्र की समरूपता को तोड़कर डेडलॉक को रोका जा सकता है।]]चार कॉफमैन स्थितियों में से एक को होने से रोककर डेडलॉक की रोकथाम काम करती है। | ||
* पारस्परिक बहिष्करण | * पारस्परिक बहिष्करण परिस्तिथि को हटाने का अर्थ है कि किसी भी प्रक्रिया की किसी संसाधन तक अनन्य पहुँच नहीं होगी। यह उन संसाधनों के लिए असंभव सिद्ध होता है जो [[ अटेरन ]]नहीं हो सकते। लेकिन बिखरे हुए संसाधनों के साथ भी, गतिरोध अभी भी हो सकता है। पारस्परिक बहिष्करण से बचने वाले कलन विधि को गैर-अवरुद्ध समकालन कलन विधि कहा जाता है। | ||
* होल्ड एंड वेट या रिसोर्स होल्डिंग की स्थिति को उन सभी संसाधनों का अनुरोध करने के लिए प्रक्रियाओं की आवश्यकता के द्वारा हटाया जा सकता है, जिनकी उन्हें | * होल्ड एंड वेट या रिसोर्स होल्डिंग की स्थिति को उन सभी संसाधनों का अनुरोध करने के लिए प्रक्रियाओं की आवश्यकता के द्वारा हटाया जा सकता है, जिनकी उन्हें प्रारम्भ करने से पहले (या संचालन के किसी विशेष सम्मुच्चय को प्रारम्भ करने से पहले) आवश्यकता होगी। यह उन्नत ज्ञान प्रायः संतुष्ट करना कठिन होता है और किसी भी स्तिथि में संसाधनों का अक्षम उपयोग होता है। दूसरा तरीका यह है कि संसाधनों का अनुरोध करने के लिए प्रक्रियाओं की आवश्यकता तभी हो जब उसके पास कोई न हो; सबसे पहले, उन्हें उन सभी संसाधनों का अनुरोध करने से पहले अपने सभी वर्तमान संसाधनों को जारी करना होगा जिनकी उन्हें प्रारम्भ से आवश्यकता होगी। यह भी कई बार अव्यवहारिक होता है। ऐसा इसलिए है क्योंकि संसाधन आवंटित किए जा सकते हैं और लंबे समय तक अप्रयुक्त रह सकते हैं। साथ ही, एक लोकप्रिय संसाधन की आवश्यकता वाली प्रक्रिया को अनिश्चित काल तक इंतजार करना पड़ सकता है, क्योंकि ऐसे संसाधन हमेशा किसी प्रक्रिया को आवंटित किए जा सकते हैं, जिसके परिणामस्वरूप [[संसाधन भुखमरी]] हो सकती है।<ref>{{cite book|last=Silberschatz|first=Abraham|url=https://books.google.com/books?id=WjvX0HmVTlMC&q=deadlock+operating+systems|publisher=Wiley-India|year=2006|title=ऑपरेटिंग सिस्टम सिद्धांत|edition=7|page=244|isbn=9788126509621|access-date=16 October 2020|archive-date=18 April 2021|archive-url=https://web.archive.org/web/20210418013932/https://books.google.com/books?id=WjvX0HmVTlMC&q=deadlock+operating+systems|url-status=live}}</ref> (ये कलन विधि, जैसे कि [[क्रमबद्ध टोकन]], को ऑल-ऑर-नो कलन विधि के रूप में जाना जाता है।) | ||
* नो प्रीमेशन (कंप्यूटिंग) की स्थिति से बचना | * नो प्रीमेशन (कंप्यूटिंग) की स्थिति से बचना कठिन या असंभव भी हो सकता है क्योंकि एक प्रक्रिया को एक निश्चित समय के लिए संसाधन रखने में सक्षम होना चाहिए, या प्रसंस्करण परिणाम असंगत हो सकता है या थ्रैशिंग (कंप्यूटर विज्ञान) हो सकता है। हालांकि, प्रीमेशन को लागू करने में असमर्थता प्राथमिकता कलन विधि में हस्तक्षेप कर सकती है। लॉक आउट संसाधन की रोकथाम सामान्यतः [[रोलबैक (डेटा प्रबंधन)]] का तात्पर्य है, और इससे बचा जाना चाहिए क्योंकि यह शिरोपरी में बहुत महंगा है। प्रीमेशन की अनुमति देने वाले कलन विधि में [[लॉक-फ्री और वेट-फ्री एल्गोरिदम|लॉक-फ्री और वेट-फ्री कलन विधि]] और [[आशावादी समवर्ती नियंत्रण]] सम्मिलित हैं। यदि कोई प्रक्रिया कुछ संसाधनों को धारण करती है और किसी अन्य संसाधन (संसाधनों) के लिए अनुरोध करती है जिसे तुरंत आवंटित नहीं किया जा सकता है, तो उस प्रक्रिया के सभी वर्तमान संसाधनों को जारी करके स्थिति को हटाया जा सकता है। | ||
* अंतिम स्थिति | * अंतिम स्थिति वृत्ताकार प्रतीक्षा स्थिति है। वृत्ताकार प्रतीक्षा से बचने वाले दृष्टिकोणों में महत्वपूर्ण वर्गों के दौरान रुकावटों को अक्षम करना और संसाधनों का आंशिक क्रम निर्धारित करने के लिए पदानुक्रम का उपयोग करना सम्मिलित है। यदि कोई स्पष्ट पदानुक्रम उपस्थित नहीं है, तो संसाधनों के स्मृति पते का भी क्रम निर्धारित करने के लिए उपयोग किया गया है और गणना के बढ़ते क्रम में संसाधनों का अनुरोध किया जाता है। <ref name="os_galvin"/> दिज्क्स्ट्रा के समाधान का भी उपयोग किया जा सकता है। | ||
=== गतिरोध परिहार === | === गतिरोध परिहार === | ||
गतिरोध निवारण के समान, गतिरोध परिहार दृष्टिकोण यह सुनिश्चित करता है कि प्रणाली में गतिरोध उत्पन्न नहीं होगा। शब्द गतिरोध परिहार भाषाई संदर्भ में गतिरोध निवारण के बहुत करीब प्रतीत होता है, लेकिन वे गतिरोध से निपटने के संदर्भ में बहुत भिन्न हैं। गतिरोध परिहार किसी भी स्थिति को लागू नहीं करता है जैसा कि रोकथाम में देखा गया है लेकिन, यहां प्रत्येक संसाधन अनुरोध का सावधानीपूर्वक विश्लेषण किया जाता है ताकि यह देखा जा सके कि गतिरोध | गतिरोध निवारण के समान, गतिरोध परिहार दृष्टिकोण यह सुनिश्चित करता है कि प्रणाली में गतिरोध उत्पन्न नहीं होगा। शब्द गतिरोध परिहार भाषाई संदर्भ में गतिरोध निवारण के बहुत करीब प्रतीत होता है, लेकिन वे गतिरोध से निपटने के संदर्भ में बहुत भिन्न हैं। गतिरोध परिहार किसी भी स्थिति को लागू नहीं करता है जैसा कि रोकथाम में देखा गया है लेकिन, यहां प्रत्येक संसाधन अनुरोध का सावधानीपूर्वक विश्लेषण किया जाता है ताकि यह देखा जा सके कि गतिरोध उत्पन्न किए बिना इसे सुरक्षित रूप से पूरा किया जा सकता है या नहीं। | ||
गतिरोध से बचाव के लिए आवश्यक है कि ऑपरेटिंग | गतिरोध से बचाव के लिए आवश्यक है कि ऑपरेटिंग प्रणाली को अग्रिम रूप से अतिरिक्त जानकारी दी जाए कि कौन से संसाधन अपने जीवनकाल के दौरान संसाधनों का अनुरोध और उपयोग करेंगे। डेडलॉक परिहार कलन विधि प्रत्येक अनुरोध का विश्लेषण करके जांच करता है कि यदि अनुरोधित संसाधन आवंटित किया गया है तो भविष्य में डेडलॉक होने की कोई संभावना नहीं है। इस दृष्टिकोण की कमी यह है कि भविष्य में संसाधनों का अनुरोध कैसे किया जाए, इसके बारे में पहले से जानकारी की आवश्यकता है। बैंकर्स कलन विधि सबसे अधिक उपयोग किए जाने वाले डेडलॉक परिहार कलन विधि में से एक है।<ref>{{Cite web|url=https://www.electronicsmind.com/2022/01/deadlock-avoidance-algorithms-in-operating-system.html|title=ऑपरेटिंग सिस्टम (OS) में डेडलॉक परिहार एल्गोरिदम|date=26 January 2022|website=Electronics Mind}}</ref> | ||
== लाइवलॉक == | == लाइवलॉक == | ||
{{redirect| | {{redirect|लाइवलॉक|वीडियो गेम|लाइवलॉक (वीडियो गेम)}} | ||
लाइवलॉक एक गतिरोध के समान है, अतिरिक्त इसके कि लाइवलॉक में सम्मिलित प्रक्रियाओं की स्थिति एक दूसरे के संबंध में लगातार बदलती रहती है, कोई भी प्रगति नहीं करता है। | |||
यह शब्द 1975 के पेपर में एडवर्ड ए. एशक्रॉफ्ट द्वारा एयरलाइन बुकिंग प्रणाली की जांच के संबंध में गढ़ा गया था। <ref>{{cite journal|title=समांतर कार्यक्रमों के बारे में दावा साबित करना|journal=Journal of Computer and System Sciences|volume=10|pages=110–135|doi=10.1016/S0022-0000(75)80018-3|year=1975|last1=Ashcroft|first1=E.A.|doi-access=free}}</ref><ref>{{cite book|chapter=On the absence of livelocks in parallel programs|doi=10.1007/BFb0022469|title=समवर्ती संगणना का शब्दार्थ|volume=70|pages=172–190|series=Lecture Notes in Computer Science|year=1979|last1=Kwong|first1=Y. S.|isbn=3-540-09511-X}}</ref> लाइवलॉक संसाधन भुखमरी की एक विशेष स्तिथि है; सामान्य परिभाषा केवल यह बताती है कि एक विशिष्ट प्रक्रिया प्रगति नहीं कर रही है।<ref>{{cite web|url=http://citeseer.ist.psu.edu/anderson01sharedmemory.html|first=James H.|last=Anderson|author2=Yong-jik Kim|title=Shared-memory mutual exclusion: Major research trends since 1986|year=2001|url-status=live|archive-url=https://web.archive.org/web/20060525013335/http://citeseer.ist.psu.edu/anderson01sharedmemory.html|archive-date=25 May 2006}}</ref> | |||
लाइवलॉक कुछ कलन विधि के साथ एक जोखिम है जो गतिरोध का पता लगाता है और उससे उबरता है। यदि एक से अधिक प्रक्रियाएँ कार्रवाई करती हैं, तो डेडलॉक अभिज्ञान[[ कलन विधि | कलन विधि]] को बार-बार प्रेरित किया जा सकता है। यह सुनिश्चित करके इससे बचा जा सकता है कि केवल एक प्रक्रिया (स्वेच्छाचारी ढंग से या प्राथमिकता से चुनी गई) कार्रवाई करती है।<ref>{{cite journal|doi=10.1145/850752.850753 |title=The Deadlock problem: a classifying bibliography | first = Dieter |last = Zöbel | journal = ACM SIGOPS Operating Systems Review |volume=17 |issue=4 |date=October 1983 |issn=0163-5980 |pages = 6–15|s2cid=38901737 |doi-access=free }}</ref> | |||