प्रक्रिया पहचानकर्ता: Difference between revisions

From Vigyanwiki
No edit summary
 
Line 25: Line 25:
{{Reflist}}
{{Reflist}}


{{DEFAULTSORT:Process Identifier}}[[Category: प्रक्रिया (कंप्यूटिंग)]]
{{DEFAULTSORT:Process Identifier}}


 
[[Category:Created On 15/05/2023|Process Identifier]]
 
[[Category:Machine Translated Page|Process Identifier]]
[[Category: Machine Translated Page]]
[[Category:Pages with script errors|Process Identifier]]
[[Category:Created On 15/05/2023]]
[[Category:Templates Vigyan Ready]]
[[Category:Vigyan Ready]]
[[Category:प्रक्रिया (कंप्यूटिंग)|Process Identifier]]

Latest revision as of 12:12, 10 June 2023

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

यूनिक्स की तरह

यूनिक्स जैसे ऑपरेटिंग सिस्टम में नई प्रोसेसओं का निर्माण किया जाता है fork() सिस्टम कॉल। PID ​​​​को पैरेंट प्रोसेस (मूल प्रोसेस) में वापस कर दिया जाता है, जिससे यह आगे की फ़ंक्शन कॉल में चाइल्ड को संदर्भित करने में सक्षम हो जाता है। पैरेंट, उदाहरण के लिए, चाइल्ड पर प्रतिबंध लगाता है waitpid() फ़ंक्शन करें, या प्रोसेस को kill() समाप्त कर देंl

विशेष रूप से विशिष्ट प्रोसेस ID वाले दो फ़ंक्शन हैं: स्वैपर या शेड्यूल में प्रोसेस ID 0 है और पेजिंग के लिए ज़िम्मेदार है, और वास्तव में सामान्य उपयोगकर्ता-मोड प्रोसेस के बजाय कर्नेल का हिस्सा है। प्रोसेस ID 1 सामान्यतः init प्रोसेस है जो मुख्य रूप से सिस्टम को प्रारम्भ करने और बंद करने के लिए जिम्मेदार है। मूल रूप से, प्रोसेस ID 1 विशिष्टतया किसी भी तकनीकी उपायों द्वारा init के लिए आरक्षित नहीं थी: कर्नेल द्वारा लागू की गई पहली प्रोसेस होने के स्वाभाविक परिणाम के रूप में यह ID थी। हाल के यूनिक्स सिस्टम में सामान्यतः 'प्रोसेसओं' के रूप में दिखाई देने वाले अतिरिक्त कर्नेल घटक होते हैं, जिस स्थिति में PID 1 पुराने सिस्टम के साथ निरंतरता बनाए रखने के लिए init प्रोसेस के लिए सक्रिय रूप से आरक्षित होता है।

प्रोसेस ID, पहली जगह में, सामान्यतः अनुक्रमिक आधार पर आवंटित की जाती है, 0 से प्रारम्भ होती है और अधिकतम मूल्य तक बढ़ जाती है जो सिस्टम से सिस्टम में भिन्न होती है। एक बार यह सीमा समाप्त हो जाने के बाद, आवंटन 300 पर पुनः आरंभ होता है और फिर से बढ़ जाता है। MacOS और HP-UX में, आवंटन 100 पर फिर से प्रारम्भ होता है। हालाँकि, इसके लिए और बाद में प्रोसेसओं को सौंपे गए किसी भी PID को छोड़ दिया जाता है। कुछ लोग इसे एक संभावित सुरक्षा भेद्यता मानते हैं जिसमें यह सिस्टम के बारे में जानकारी निकालने की अनुमति देता है, या संदेशों को प्रोसेसओं के बीच गुप्त रूप से पारित करने की अनुमति देता है। इस प्रकार, फ़ंक्शनान्वयन जो विशेष रूप से सुरक्षा के बारे में चिंतित हैं, PID ​​​​असाइनमेंट का एक अलग तरीका चुन सकते हैं।[1] कुछ प्रणालियों पर, जैसे एचपी मल्टी-प्रोग्रामिंग एक्जीक्यूटिव|एमपीई/आईएक्स, सबसे कम उपलब्ध PID ​​का उपयोग किया जाता है, कभी-कभी मेमोरी में प्रोसेस सूचना कर्नेल पृष्ठों की संख्या को कम करने के प्रयास में।

वर्तमान प्रोसेस ID एक द्वारा प्रदान की जाती है getpid() सिस्टम कॉल, या एक चर के रूप में $$ खोल में। पेरेंट प्रोसेस की प्रोसेस ID किसके द्वारा प्राप्त की जा सकती है? getppid() सिस्टम कॉल।

लिनक्स पर, छद्म फ़ाइल द्वारा अधिकतम प्रोसेस ID दी जाती है /proc/sys/kernel/pid_max.[2]

पिडफाइल

कुछ प्रोसेसेस, उदाहरण के लिए, म्यूजिक ऑन कंसोल (ऍमऔसी) म्यूजिक प्लेयर और MySQL डेमॉन, अन्य प्रोसेसेस को इसे देखने की अनुमति देने के लिए एक दस्तावेज (डॉक्युमेंटेड) फ़ाइल स्थान पर अपना PID ​​​​लिखते हैं।

माइक्रोसॉफ्ट विंडोज

ऑपरेटिंग सिस्टम के विंडोज परिवार पर, वर्तमान प्रोसेस की ID का उपयोग करके प्राप्त किया जा सकता है GetCurrentProcessId() विंडोज एपीआई का फ़ंक्शन,[3] और अन्य प्रोसेसओं का उपयोग कर ID GetProcessId()[4] आंतरिक रूप से, प्रोसेस ID को क्लाइंट ID कहा जाता है, और उसी नामस्थान से थ्रेड (कंप्यूटर विज्ञान) ID के रूप में आवंटित किया जाता है, इसलिए ये दोनों कभी ओवरलैप नहीं होते हैं। सिस्टम निष्क्रिय प्रोसेस को प्रोसेस ID 0 दिया गया है। विंडोज एनटी की वास्तुकला को विंडोज 2000 पर प्रोसेस ID 8 और विन्डोज़ एक्सपी और विंडोज सर्वर 2003 पर 4 दिया गया है।[5] ऑपरेटिंग सिस्टम के विंडोज एनटी परिवार पर, प्रोसेस और थ्रेड पहचानकर्ता सभी 4 के गुणक हैं, लेकिन यह विनिर्देश का हिस्सा नहीं है।[6]

यह भी देखें

संदर्भ

  1. comp.unix.aix Frequently Asked Questions, retrieved 2008-07-21
  2. "proc - process information pseudo-filesystem", Linux Programmer's Manual, retrieved 2009-12-28
  3. "GetCurrentProcessId Function", Windows Dev Center, Microsoft, 5 December 2018
  4. "GetProcessId function", Windows Dev Center, Microsoft, 5 December 2018
  5. Russinovich, Mark; David A. Solomon (2005), "Chapter 2: System Architecture", Microsoft Windows Internals (4th ed.), Microsoft Press, p. 76, ISBN 0-7356-1917-4
  6. Chen, Raymond (2008-02-28), "Why are process and thread IDs multiples of four?", The Old New Thing, Microsoft