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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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