प्रक्रिया पहचानकर्ता
कम्प्यूटिंग में, प्रोसेस आइडेंटिफ़ायर (उर्फ प्रोसेस आईडी या पीआईडी) एक संख्या के रूप में आता है जिसका प्रयोग अधिकांश ऑपरेटिंग सिस्टम कर्नेल (ऑपरेटिंग सिस्टम) उदहारण स्वरुप यूनिक्स, मैकओएस और विंडोज आदि द्वारा - विशिष्ट रूप से एक सक्रिय प्रक्रिया (कंप्यूटिंग) की पहचान हेतु किया जाता है। इस संख्या का उपयोग विभिन्न फ़ंक्शन कॉल में एक पैरामीटर के रूप में किया जा सकता है, जिससे प्रक्रियाओं में बदलाव लाया जा सकता है, जैसे कि प्रक्रिया की प्राथमिकता को समायोजित करना या इसे पूर्ण रूप से समाप्त करना है (आदेश देना)।
यूनिक्स की तरह
यूनिक्स जैसे ऑपरेटिंग सिस्टम में नई प्रक्रियाओं का निर्माण किया जाता है fork()
सिस्टम कॉल। पीआईडी को मूल प्रक्रिया में वापस कर दिया जाता है, जिससे यह आगे की फ़ंक्शन कॉल में बच्चे को संदर्भित करने में सक्षम हो जाता है। उदाहरण के लिए, माता-पिता बच्चे के समाप्त होने की प्रतीक्षा कर सकते हैं waitpid()
कार्य करें, या प्रक्रिया को समाप्त करें kill()
.
विशेष रूप से विशिष्ट प्रक्रिया आईडी वाले दो कार्य हैं: स्वैपर या शेड्यूल में प्रक्रिया आईडी 0 है और पेजिंग के लिए ज़िम्मेदार है, और वास्तव में सामान्य उपयोगकर्ता-मोड प्रक्रिया के बजाय कर्नेल का हिस्सा है। प्रक्रिया आईडी 1 आमतौर पर init प्रक्रिया है जो मुख्य रूप से सिस्टम को शुरू करने और बंद करने के लिए जिम्मेदार है। मूल रूप से, प्रक्रिया आईडी 1 विशेष रूप से किसी भी तकनीकी उपायों द्वारा init के लिए आरक्षित नहीं थी: कर्नेल द्वारा लागू की गई पहली प्रक्रिया होने के स्वाभाविक परिणाम के रूप में यह आईडी थी। अधिक हाल के यूनिक्स सिस्टम में आमतौर पर 'प्रक्रियाओं' के रूप में दिखाई देने वाले अतिरिक्त कर्नेल घटक होते हैं, जिस स्थिति में PID 1 पुराने सिस्टम के साथ निरंतरता बनाए रखने के लिए init प्रक्रिया के लिए सक्रिय रूप से आरक्षित होता है।
प्रक्रिया आईडी, पहली जगह में, आमतौर पर अनुक्रमिक आधार पर आवंटित की जाती है, 0 से शुरू होती है और अधिकतम मूल्य तक बढ़ जाती है जो सिस्टम से सिस्टम में भिन्न होती है। एक बार यह सीमा समाप्त हो जाने के बाद, आवंटन 300 पर पुनः आरंभ होता है और फिर से बढ़ जाता है। MacOS और HP-UX में, आवंटन 100 पर फिर से शुरू होता है। हालाँकि, इसके लिए और बाद में प्रक्रियाओं को सौंपे गए किसी भी PID को छोड़ दिया जाता है। कुछ लोग इसे एक संभावित सुरक्षा भेद्यता मानते हैं जिसमें यह सिस्टम के बारे में जानकारी निकालने की अनुमति देता है, या संदेशों को प्रक्रियाओं के बीच गुप्त रूप से पारित करने की अनुमति देता है। इस प्रकार, कार्यान्वयन जो विशेष रूप से सुरक्षा के बारे में चिंतित हैं, पीआईडी असाइनमेंट का एक अलग तरीका चुन सकते हैं।[1] कुछ प्रणालियों पर, जैसे एचपी मल्टी-प्रोग्रामिंग एक्जीक्यूटिव|एमपीई/आईएक्स, सबसे कम उपलब्ध पीआईडी का उपयोग किया जाता है, कभी-कभी स्मृति में प्रक्रिया सूचना कर्नेल पृष्ठों की संख्या को कम करने के प्रयास में।
वर्तमान प्रक्रिया आईडी एक द्वारा प्रदान की जाती है getpid()
सिस्टम कॉल, या एक चर के रूप में $$
खोल में। पेरेंट प्रोसेस की प्रोसेस आईडी किसके द्वारा प्राप्त की जा सकती है? getppid()
सिस्टम कॉल।
लिनक्स पर, छद्म फ़ाइल द्वारा अधिकतम प्रक्रिया आईडी दी जाती है /proc/sys/kernel/pid_max
.[2]
पिडफाइल
कुछ प्रक्रियाएँ, उदाहरण के लिए, कंसोल पर संगीत म्यूजिक प्लेयर और MySQL डेमॉन, अन्य प्रक्रियाओं को इसे देखने की अनुमति देने के लिए एक दस्तावेज फ़ाइल स्थान पर अपना पीआईडी लिखते हैं।
माइक्रोसॉफ्ट विंडोज
ऑपरेटिंग सिस्टम के विंडोज परिवार पर, वर्तमान प्रक्रिया की आईडी का उपयोग करके प्राप्त किया जा सकता है GetCurrentProcessId()
विंडोज एपीआई का कार्य,[3] और अन्य प्रक्रियाओं का उपयोग कर आईडी GetProcessId()
.[4] आंतरिक रूप से, प्रक्रिया आईडी को क्लाइंट आईडी कहा जाता है, और उसी नामस्थान से थ्रेड (कंप्यूटर विज्ञान) आईडी के रूप में आवंटित किया जाता है, इसलिए ये दोनों कभी ओवरलैप नहीं होते हैं। सिस्टम निष्क्रिय प्रक्रिया को प्रोसेस आईडी 0 दिया गया है। विंडोज एनटी की वास्तुकला को विंडोज 2000 पर प्रोसेस आईडी 8 और विन्डोज़ एक्सपी और विंडोज सर्वर 2003 पर 4 दिया गया है।[5] ऑपरेटिंग सिस्टम के विंडोज एनटी परिवार पर, प्रक्रिया और थ्रेड पहचानकर्ता सभी 4 के गुणक हैं, लेकिन यह विनिर्देश का हिस्सा नहीं है।[6]
यह भी देखें
- उपयोगकर्ता पहचानकर्ता (यूआईडी)
- समूह पहचानकर्ता (जीआईडी)
- हैंडल (कंप्यूटिंग)
- कार्यक्रम खंड उपसर्ग (पीएसपी)
संदर्भ
- ↑ comp.unix.aix Frequently Asked Questions, retrieved 2008-07-21
- ↑ "proc - process information pseudo-filesystem", Linux Programmer's Manual, retrieved 2009-12-28
- ↑ "GetCurrentProcessId Function", Windows Dev Center, Microsoft, 5 December 2018
- ↑ "GetProcessId function", Windows Dev Center, Microsoft, 5 December 2018
- ↑ Russinovich, Mark; David A. Solomon (2005), "Chapter 2: System Architecture", Microsoft Windows Internals (4th ed.), Microsoft Press, p. 76, ISBN 0-7356-1917-4
- ↑ Chen, Raymond (2008-02-28), "Why are process and thread IDs multiples of four?", The Old New Thing, Microsoft