- जब एक प्रक्रिया किसी अन्य प्रक्रिया में सिग्नल भेजती है, तो कौन सी परिस्थितियों में प्रक्रिया को प्राप्त करने के लिए पुन: निर्धारित किए जाने तक प्रतीक्षा की जाती है?
- स्थापित सिग्नल हैंडलर को किस परिस्थिति में तुरंत शामिल किया जाता है?
- सिग्नल उठाते समय केवल सिग्नल हैंडलर को सीधे कॉल करने की तुलना में प्रक्रिया कितनी अधिक होती है?
उत्तर
संकेतों के वितरण के बारे में, TLPI कहा गया है कि संकेत हैं "सामान्य रूप से" को जन्म दिया है जब एक कार्य अगले, निर्धारित है जब उपयोगकर्ता मोड पर कर्नेल मोड से स्विच, या "तुरंत" जब काम पहले से ही (शायद तुरंत चल रहा है " "पहले एक बाधा फायर करके होना होगा, अन्यथा यह कैसे कर सकता है)। खैर, जो भी इसका मतलब है, यह सख्ती से बाध्यकारी नहीं है, लेकिन यह क्या होता है इसके बहुत करीब है।
आपको रीयलटाइम और "सामान्य" सिग्नल के साथ-साथ "सामान्य" संकेतों के बीच अंतर करना होगा जो सिंक्रनाइज़ रूप से उत्पन्न होते हैं, अधिकांश समय हार्डवेयर ईवेंट (जैसे सेगमेंटेशन गलती) और जो नहीं हैं (वे 'अतुल्यकालिक रूप से genereated)।
रीयलटाइम सिग्नल कतार, सामान्य संकेत नहीं हैं। इसका मतलब है कि सामान्य सिग्नल के कार्यान्वयन की संभावना केवल एक प्रति-कार्य शब्द की तरह होती है जो बिटमैस्क के रूप में कार्य करता है।
एक "सामान्य" सिग्नल उत्पन्न करना मतलब थोड़ा सा सेट करना है, और जब ओएस अगला निर्णय लेता है कि सिग्नल डिलीवर किया जाना है, तो यह शून्य के खिलाफ शब्द का परीक्षण करता है, और यदि आवश्यक आंकड़े बताते हैं कि कौन से बिट सेट किए गए थे, और कॉल सिग्नल हैंडलर, यदि कोई हो, तो तदनुसार।
एकमात्र व्यावहारिक कारण यह है कि किसी को यह जानने की आवश्यकता क्यों है क्योंकि संकेतों को "खोना" संभव है। यदि पहले वितरित होने से पहले दो या अधिक सिग्नल उत्पन्न होते हैं, तो यह अभी भी एक सिग्नल है।
रीयलटाइम सिग्नल के कार्यान्वयन (जो कार्यान्वयन-निर्भर लंबाई तक कतारबद्ध करने के लिए आवश्यक हैं) स्पष्ट रूप से अधिक जटिल है।
हार्डवेयर ईवेंट (उदा। Segfault) के कारण होने वाले सिग्नल सिंक्रनाइज़ रूप से उत्पन्न होते हैं, वैसे ही जैसे प्रक्रिया kill
स्वयं (अध्याय 22.4 टीएलपीआई) कहा जाता है, यानी उन्हें दो कारणों से "तत्काल" दिया जाता है। सबसे पहले, यह कुछ और करने के लिए समझ में नहीं आता है, और दूसरा ट्रैप हैंडलर लौटने पर पहले से ही कर्नेल/उपयोगकर्ता स्विच हो रहा है। तो वितरण हमेशा वैसे भी "तुरंत" होता है।
असल में, संकेत असीमित हैं। जब सिग्नल प्राप्त होता है तो वे सिग्नल हैंडलर पर कोड निष्पादित करने पर भरोसा करते हैं क्योंकि आप कभी नहीं जानते कि यह प्रक्रिया शेड्यूलर जैसे कारकों के कारण होगा। सिग्नल भेजने की विलंबता हार्डवेयर/सॉफ़्टवेयर इंटरप्ट पर आधारित होती है, जो घड़ी की गति पर आधारित होती है।
यदि आप यह जानना चाहते हैं कि लिनक्स पर कुछ कैसे लागू किया गया है, तो POSIX मानकों को देखें।
सिग्नल पर महान जानकारी:
http://www.gnu.org/software/libc/manual/html_node/index.html#toc_Signal-Handling
जब एक संकेत उत्पन्न होता है, यह लंबित हो जाता है। आम तौर पर केवल थोड़े समय के लिए लंबित रहता है और फिर प्रक्रिया को संकेतित किया गया था। हालांकि, अगर उस तरह का सिग्नल वर्तमान में अवरुद्ध अवरुद्ध हो सकता है, तो यह अनिश्चित काल तक लंबित रहेगा - जब तक कि सिग्नल अनब्लॉक किए गए हैं। एक बार अनब्लॉक हो जाने पर, इसे तुरंत वितरित किया जाएगा।
एक और अंश:
जब संकेत दिया जाता है, अभी या एक लंबी विलंब के बाद कि क्या, निर्दिष्ट क्रिया कि संकेत के लिए लिया जाता है।
- 1. कस्टम घटनाओं को दिखाने के लिए कितना समय लगता है?
- 2. एप्लिकेशन को स्टार्टअप के लिए कितना समय लगता है?
- 3. मेरा कोड कितना समय लगता है?
- 4. स्क्रिप्ट को निष्पादित करने में कितना समय लगता है?
- 5. लूप निष्पादित करने में कितना समय लगता है?
- 6. स्मृति से एक शब्द लाने में कितना समय लगता है?
- 7. जेएस: फ़ंक्शन को कॉल करने में कितना समय लगता है?
- 8. अपवाद हैंडलिंग। पकड़ने में कितना समय लगता है?
- 9. सी ++ को जानना, जावा सीखने में कितना समय लगता है?
- 10. योडली कार्यान्वयन करने में कितना समय लगता है?
- 11. पाइथन प्रोग्राम कब तक चलने में कितना समय लगता है?
- 12. ग्लिबैक संकलन करने में कितना समय लगता है?
- 13. । Htaccess परिवर्तनों को प्रभावी होने में कितना समय लगता है?
- 14. जावा में "सिंक्रनाइज़" कोड द्वारा कितना समय लगता है, यह जानने के लिए कैसे?
- 15. Google क्लाउड मैसेजिंग से संदेश पर आने के लिए कितना समय लगता है
- 16. एक अनुभवी प्रोग्रामर को नई तकनीक/भाषा के साथ कुशल बनने में कितना समय लगता है?
- 17. ड्रॉपबॉक्स के आवेदन की समीक्षा करने में कितना समय लगता है?
- 18. इंस्टॉलेशन के एंड्रॉइड मार्केट गिनती को अपडेट करने में कितना समय लगता है?
- 19. SHA256 हैश कितना समय है?
- 20. एसक्यूएल कॉमांड ऑब्जेक्ट, कमांडटाइमआउट के लिए कितना समय है?
- 21. LINQ के लिए कितना है?
- 22. किसी आईओएस ऐप को DNS परिवर्तन को पहचानने में कितना समय लगता है?
- 23. वेब सर्वर यातायात लॉग का संग्रह बनाए रखने में कितना समय लगता है?
- 24. हास्केल में 1 मिलियन धागे बनाने में कितना समय लगता है?
- 25. मैं कैसे गणना कर सकता हूं कि jQuery में फ़ंक्शन कितना समय लगता है?
- 26. आईफोन पर फ़ंक्शन कॉल करने में मुझे कितना समय लगता है?
- 27. mysql "ड्रॉप डेटाबेस" समय लगता है - क्यों?
- 28. टाइपराइटर emacs के लिए लगता है
- 29. विंडोज स्नैपशॉट्स का समय क्यों लगता है?
- 30. सिग्नल सिग्नल: सिग्नल हैंडलर