हैंग (कंप्यूटिंग)

कम्प्यूटिंग में, हैंग या फ्रीज तब होता है जब कोई प्रक्रिया (कंप्यूटिंग) या सिस्टम इनपुट/आउटपुट पर प्रतिक्रिया देना बंद कर देता है। एक विशिष्ट उदाहरण है जब कंप्यूटर का ग्राफिकल यूज़र इंटरफ़ेस (जैसे कि माइक्रोसॉफ्ट विंडोज) उपयोगकर्ता द्वारा कीबोर्ड पर टाइप करने या माउस को हिलाने पर प्रतिक्रिया नहीं करता है। यह शब्द क्लाइंट (कंप्यूटिंग) और सर्वर (कंप्यूटिंग) दोनों में व्यवहार की एक विस्तृत श्रृंखला को सम्मलित करता है, और यह ग्राफिकल यूजर इंटरफेस मुद्दों तक सीमित नहीं है।

हैंग होने के विभिन्न कारण और लक्षण होते हैं, जिनमें सॉफ़्टवेयर या कंप्यूटर हार्डवेयर दोष सम्मलित हो सकती हैं, जैसे कि अनंत लूप या लंबे समय तक चलने वाली निर्बाध संगणना, संसाधन थकावट (थ्रैशिंग (कंप्यूटर विज्ञान)), खराब प्रदर्शन करने वाला हार्डवेयर (दर सीमित करना), बाहरी घटनाएं जैसे कि धीमा संगणक संजाल, गलत कॉन्फ़िगरेशन और कंप्यूटर संगतता समस्याएं। मौलिक कारण सामान्यतः संसाधन थकावट है: सिस्टम के कुछ भाग को चलाने के लिए आवश्यक संसाधन उपलब्ध नहीं हैं, अन्य प्रक्रियाओं द्वारा उपयोग में होने या बस अपर्याप्त होने के कारण। अधिकांशतः इसका कारण कई कारकों की परस्पर क्रिया होती है, जिससे तकनीकी शब्द के अतिरिक्त एक ढीला-ढाला शब्द बना रहता है।

एक हैंग अस्थायी हो सकता है यदि किसी ऐसी स्थिति के कारण होता है जो स्वयं को हल करता है, जैसे धीमा हार्डवेयर, या यह स्थायी हो सकता है और हार्डवेयर या सॉफ़्टवेयर तर्क त्रुटि के स्थितियों में मैन्युअल हस्तक्षेप की आवश्यकता होती है। कई आधुनिक ऑपरेटिंग सिस्टम उपयोगकर्ता को रिबूट या लॉग इन करें  किए बिना त्रिशंकु  प्रोग्राम को जबरन समाप्त करने का साधन प्रदान करते हैं; कुछ ऑपरेटिंग सिस्टम, जैसे कि मोबाइल उपकरणों के लिए डिज़ाइन किए गए, यह स्वचालित रूप से भी कर सकते हैं। पूरे सिस्टम को प्रभावित करने वाले अधिक गंभीर हैंग में, मशीन को रिबूट करने का एकमात्र समाधान हो सकता है, सामान्यतः बिजली साइकिल चलाना द्वारा ऑफ / ऑन या रीसेट बटन के साथ।

हैंग क्रैश (कंप्यूटिंग) से भिन्न होता है, जिसमें विफलता तत्काल होती है और इनपुट की जवाबदेही से संबंधित नहीं होती है।

मल्टीटास्किंग
एक मल्टीटास्किंग ऑपरेटिंग सिस्टम में, एक व्यक्तिगत प्रक्रिया (कंप्यूटिंग) या थ्रेड (कंप्यूटिंग) अटक जाना संभव है, जैसे संसाधन पर अवरुद्ध होना या अनंत लूप में आना, चूंकि समग्र प्रणाली पर प्रभाव अधिक भिन्न होता है। एक सहकारी मल्टीटास्किंग सिस्टम में, कोई भी थ्रेड जो बिना यील्ड के अटक जाता है, सिस्टम को हैंग कर देगा, क्योंकि यह स्वयं को रनिंग थ्रेड के रूप में वेज करेगा और अन्य थ्रेड्स को चलने से रोक सकता है।

इसके विपरीत, आधुनिक ऑपरेटिंग सिस्टम मुख्य रूप से प्री-एम्प्टिव मल्टीटास्किंग का उपयोग करते हैं, जैसे कि विंडोज 2000 और इसके उत्तराधिकारी, साथ ही लिनक्स और ऐप्पल इंक का मैकओएस। इन स्थितियों में, एकल थ्रेड जब अटक जाता है तो सामान्यतः सिस्टम को हंग नहीं करता है, क्योंकि ऑपरेटिंग सिस्टम इसे प्रीम्प्ट करेगा जब इसका समय स्लाइस समाप्त हो जाएगा, और एक और थ्रेड को चलाने की अनुमति देता है। यदि कोई थ्रेड हैंग हो जाता है, तो शेड्यूलर अन्योन्याश्रित कार्यों के दूसरे समूह में स्विच कर सकता है जिससे सभी प्रक्रियाएँ हैंग न हों। चूंकि, एक अटका हुआ थ्रेड अभी भी संसाधनों का उपभोग करेगा: कम से कम शेड्यूलिंग में एक प्रविष्टि, और यदि यह चल रहा है (उदाहरण के लिए, एक अनंत लूप में फंस गया है), तो यह निर्धारित होने पर प्रोसेसर चक्र और शक्ति का उपभोग करेगा, चूंकि यह सिस्टम को धीमा कर देगा इसे लटकाता नहीं है।

चूँकि, प्रीमेप्टिव मल्टीटास्किंग के साथ भी, एक सिस्टम हैंग हो सकता है, और एक दुर्व्यवहार या दुर्भावनापूर्ण कार्य सिस्टम को हैंग कर सकता है, मुख्य रूप से कुछ अन्य संसाधनों, जैसे IO या मेमोरी पर एकाधिकार करके, के होने पर भी प्रोसेसर समय का एकाधिकार नहीं किया जा सकता है। उदाहरण के लिए, फ़ाइल सिस्टम को ब्लॉक करने वाली प्रक्रिया अधिकांशतः सिस्टम को हैंग कर देती है।

हैंग होने के समय हैंगिंग प्रोग्राम के शीर्ष पर विंडो (कम्प्यूटिंग)  के चारों ओर घूमने से विंडो ट्रेल को फिर से ड्रॉइंग से रोका जा सकता है।

कारण
पर्सनल कंप्यूटर हार्डवेयर कंप्यूटर के हैंग होने का कारण बन सकता है, या तो यह आंतरायिक है या क्योंकि यह कंप्यूटर में अन्य हार्डवेयर के साथ बेमेल है (यह तब हो सकता है जब कोई उन्नत करना  करता है)। गंदगी या गर्मी से होने वाली क्षति के कारण हार्डवेयर भी समय के साथ ख़राब हो सकता है।

यह भी हो सकता है कि हंग होने का कारण है कि प्रोग्रामर के पास प्रोग्राम लूप के लिए गलत समाप्ति की स्थिति है, या, एक सहकारी मल्टीटास्किंग ऑपरेटिंग सिस्टम में, अन्य कार्यों को यिल्ड करना भूल जाते हैं। अलग प्रकार से कहा जाए तो कई सॉफ्टवेयर से संबंधित हैंग थ्रेड (कंप्यूटिंग) के कारण होता है जो किसी घटना के घटित होने की प्रतीक्षा करता है जो कभी नहीं होगा, इसे अनंत लूप के रूप में भी जाना जाता है।

हैंग होने का एक अन्य कारण प्रक्रियाओं (कंप्यूटिंग) के बीच संचार में दौड़ की स्थिति है। एक प्रक्रिया दूसरी प्रक्रिया को एक सिग्नल (IPC) भेज सकती है, तब तक कार्यान्वयन को रोक देती है जब तक उसे प्रतिक्रिया प्राप्त नहीं होती है। यदि दूसरी प्रक्रिया व्यस्त होती है तो सिग्नल को प्रक्रिया तक पहुंचने तक प्रतीक्षा करने के लिए मजबूर किया जाता है। चूँकि, यदि दूसरी प्रक्रिया पहली प्रक्रिया को सिग्नल भेजने में व्यस्त होती है, तो दोनों प्रक्रियाएं सिग्नल के प्रतिक्रिया के लिए सदैव के लिए एक-दूसरे की प्रतिक्रिया की प्रतीक्षा करेंगी और दूसरी की सिग्नल को कभी नहीं देखेंगी (इस घटना को गतिरोध के रूप में जाना जाता है)। यदि प्रक्रियाएं निर्बाध नींद हैं तो वे हंग जाएंगी और उन्हें बंद करना होगा। यदि प्रक्रियाओं में से कम से कम एक महत्वपूर्ण कर्नेल (ऑपरेटिंग सिस्टम) प्रक्रिया है तो पूर्ण सिस्टम हैंग हो सकता है और पुनरारंभ करने की आवश्यकता होती है ।

ऐसा लग सकता है कि एक कंप्यूटर हैंग हो रहा है जब वास्तव में यह बहुत धीमी गति से प्रोसेस कर रहा होता है। इसकी वजह एक साथ बहुत सारे प्रोग्राम चल रहे होने, पर्याप्त मेमोरी ( रैंडम एक्सेस मेमोरी ), न होने या मेमोरी के विखंडन (कंप्यूटिंग) से हो सकती है, धीमे हार्डवेयर एक्सेस (विशेष रूप से दूरस्थ उपकरणों के लिए), धीमे सिस्टम एपीआई आदि के कारण हो सकता है। यह निम्न के कारण भी हो सकता है छिपे हुए प्रोग्राम जिन्हें गुप्त रूप से इंस्टॉल किया गया था, जैसे स्पाइवेयर।

समाधान
कई स्थितियों में प्रोग्राम रुके हुए दिखाई दे सकते हैं, किन्तु धीमी प्रगति कर रहे होते हैं, और कुछ मिनटों की प्रतीक्षा करने से कार्य पूर्ण हो जाता है।

आधुनिक ऑपरेटिंग सिस्टम त्रिशंकु प्रक्रियाओं को समाप्त करने के लिए एक तंत्र प्रदान करता है, उदाहरण के लिए, यूनिक्स मारना (आदेश)  कमांड के साथ, या  माइक्रोसॉफ़्ट विंडोज़  में कार्य प्रबंधक (विंडोज़) के एंड टास्क बटन जैसे ग्राफिकल माध्यमों के माध्यम से (सूची में विशेष प्रक्रिया का चयन करें और "एंड टास्क" दबाएं ")। पुराने सिस्टम पर, जैसे कि MS-DOS चलाने वाले, विंडोज के प्रारंभिक संस्करण, या क्लासिक मैक ओएस को अधिकांशतः हैंग होने की स्थिति में  कठिन रिबूट  करने की आवश्यकता होती है।

अंतः स्थापित प्रणाली पर जहां मानव संपर्क सीमित है, निगरानी घड़ी  हैंग होने की स्थिति में कंप्यूटर को रीबूट कर सकता है।

यह भी देखें

 * गर्भपात (कंप्यूटिंग)
 * मौत के नीले स्क्रीन
 * क्रैश (कंप्यूटिंग)
 * गतिरोध
 * लाइवलॉक
 * सॉफ्टवेयर बग
 * अनंत लूप
 * अबाध निद्रा