प्रक्रिया पहचानकर्ता: Difference between revisions
No edit summary |
No edit summary |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[ कम्प्यूटिंग ]] में, '''प्रोसेस आइडेंटिफ़ायर''' (उर्फ '''प्रोसेस | [[ कम्प्यूटिंग |कम्प्यूटिंग]] में, '''प्रोसेस आइडेंटिफ़ायर''' (उर्फ '''प्रोसेस ID''' या '''PID''') एक संख्या के रूप में आता है जिसका प्रयोग अधिकांश [[ऑपरेटिंग सिस्टम]] [[कर्नेल (ऑपरेटिंग सिस्टम)]] उदहारण स्वरुप [[यूनिक्स]], मैकओएस और [[ खिड़कियाँ | विंडोज]] आदि द्वारा - विशिष्ट रूप से एक सक्रिय [[प्रक्रिया (कंप्यूटिंग)|प्रोसेस (कंप्यूटिंग)]] की पहचान हेतु किया जाता है। इस संख्या का उपयोग विभिन्न फ़ंक्शन कॉल में एक पैरामीटर के रूप में किया जा सकता है, जिससे प्रोसेसओं में बदलाव लाया जा सकता है, जैसे कि प्रोसेस की प्राथमिकता को समायोजित करना या इसे पूर्ण रूप से समाप्त करना है (आदेश देना)। | ||
== यूनिक्स की तरह == | == यूनिक्स की तरह == | ||
यूनिक्स जैसे ऑपरेटिंग सिस्टम में नई | यूनिक्स जैसे ऑपरेटिंग सिस्टम में नई प्रोसेसओं का निर्माण किया जाता है <code>[[Fork (operating system)|fork()]]</code> [[सिस्टम कॉल]]। PID को पैरेंट प्रोसेस (मूल प्रोसेस) में वापस कर दिया जाता है, जिससे यह आगे की फ़ंक्शन कॉल में चाइल्ड को संदर्भित करने में सक्षम हो जाता है। पैरेंट, उदाहरण के लिए, चाइल्ड पर प्रतिबंध लगाता है <code>[[waitpid()]]</code> फ़ंक्शन करें, या प्रोसेस को <code>[[kill()]]</code> समाप्त कर देंl | ||
विशेष रूप से विशिष्ट | विशेष रूप से विशिष्ट प्रोसेस ID वाले दो फ़ंक्शन हैं: ''स्वैपर'' या ''शेड्यूल'' में प्रोसेस ID 0 है और [[पेजिंग]] के लिए ज़िम्मेदार है, और वास्तव में सामान्य उपयोगकर्ता-मोड प्रोसेस के बजाय कर्नेल का हिस्सा है। प्रोसेस ID 1 सामान्यतः [[init]] प्रोसेस है जो मुख्य रूप से सिस्टम को प्रारम्भ करने और बंद करने के लिए जिम्मेदार है। मूल रूप से, प्रोसेस ID 1 विशिष्टतया किसी भी तकनीकी उपायों द्वारा init के लिए आरक्षित नहीं थी: कर्नेल द्वारा लागू की गई पहली प्रोसेस होने के स्वाभाविक परिणाम के रूप में यह ID थी। हाल के यूनिक्स सिस्टम में सामान्यतः 'प्रोसेसओं' के रूप में दिखाई देने वाले अतिरिक्त कर्नेल घटक होते हैं, जिस स्थिति में PID 1 पुराने सिस्टम के साथ निरंतरता बनाए रखने के लिए init प्रोसेस के लिए सक्रिय रूप से आरक्षित होता है। | ||
प्रोसेस ID, पहली जगह में, सामान्यतः अनुक्रमिक आधार पर आवंटित की जाती है, 0 से प्रारम्भ होती है और अधिकतम मूल्य तक बढ़ जाती है जो सिस्टम से सिस्टम में भिन्न होती है। एक बार यह सीमा समाप्त हो जाने के बाद, आवंटन 300 पर पुनः आरंभ होता है और फिर से बढ़ जाता है। MacOS और [[HP-UX]] में, आवंटन 100 पर फिर से प्रारम्भ होता है। हालाँकि, इसके लिए और बाद में प्रोसेसओं को सौंपे गए किसी भी PID को छोड़ दिया जाता है। कुछ लोग इसे एक संभावित सुरक्षा भेद्यता मानते हैं जिसमें यह सिस्टम के बारे में जानकारी निकालने की अनुमति देता है, या संदेशों को प्रोसेसओं के बीच गुप्त रूप से पारित करने की अनुमति देता है। इस प्रकार, फ़ंक्शनान्वयन जो विशेष रूप से सुरक्षा के बारे में चिंतित हैं, PID असाइनमेंट का एक अलग तरीका चुन सकते हैं।<ref name="Nonsequential PIDs">{{citation |title=comp.unix.aix Frequently Asked Questions |url=http://www.faqs.org/faqs/aix-faq/part2/section-20.html |access-date=2008-07-21}}</ref> कुछ प्रणालियों पर, जैसे एचपी मल्टी-प्रोग्रामिंग एक्जीक्यूटिव|एमपीई/आईएक्स, सबसे कम उपलब्ध PID का उपयोग किया जाता है, कभी-कभी मेमोरी में प्रोसेस सूचना कर्नेल पृष्ठों की संख्या को कम करने के प्रयास में। | |||
वर्तमान प्रोसेस ID एक द्वारा प्रदान की जाती है <code>getpid()</code> सिस्टम कॉल, या एक चर के रूप में <code>$$</code> खोल में। पेरेंट प्रोसेस की प्रोसेस ID किसके द्वारा प्राप्त की जा सकती है? <code>getppid()</code> सिस्टम कॉल। | |||
[[लिनक्स]] पर, छद्म फ़ाइल द्वारा अधिकतम प्रोसेस ID दी जाती है <code>/proc/sys/kernel/pid_max</code>.<ref>{{citation |title=proc - process information pseudo-filesystem |work=Linux Programmer's Manual |url=http://www.tin.org/bin/man.cgi?section=5&topic=proc |access-date=2009-12-28}}</ref> | |||
=== पिडफाइल === | === पिडफाइल === | ||
कुछ | कुछ प्रोसेसेस, उदाहरण के लिए, [[कंसोल पर संगीत|म्यूजिक ऑन कंसोल]] (ऍमऔसी) म्यूजिक प्लेयर और [[MySQL]] डेमॉन, अन्य प्रोसेसेस को इसे देखने की अनुमति देने के लिए एक दस्तावेज (डॉक्युमेंटेड) फ़ाइल स्थान पर अपना PID लिखते हैं। | ||
== माइक्रोसॉफ्ट विंडोज == | == माइक्रोसॉफ्ट विंडोज == | ||
ऑपरेटिंग सिस्टम के विंडोज परिवार पर, वर्तमान | ऑपरेटिंग सिस्टम के विंडोज परिवार पर, वर्तमान प्रोसेस की ID का उपयोग करके प्राप्त किया जा सकता है <code>GetCurrentProcessId()</code> [[विंडोज एपीआई]] का फ़ंक्शन,<ref>{{citation |title=GetCurrentProcessId Function |website=Windows Dev Center |publisher=[[Microsoft]] |url=https://docs.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentprocessid |date=5 December 2018}}</ref> और अन्य प्रोसेसओं का उपयोग कर ID <code>GetProcessId()</code><ref>{{citation |title=GetProcessId function |website=Windows Dev Center |publisher=[[Microsoft]] |url=https://docs.microsoft.com/windows/win32/api/processthreadsapi/nf-processthreadsapi-getprocessid |date=5 December 2018}}</ref> आंतरिक रूप से, प्रोसेस ID को क्लाइंट ID कहा जाता है, और उसी नामस्थान से थ्रेड (कंप्यूटर विज्ञान) ID के रूप में आवंटित किया जाता है, इसलिए ये दोनों कभी ओवरलैप नहीं होते हैं। [[ सिस्टम निष्क्रिय प्रक्रिया | सिस्टम निष्क्रिय प्रोसेस]] को प्रोसेस ID 0 दिया गया है। [[विंडोज एनटी की वास्तुकला]] को [[विंडोज 2000]] पर प्रोसेस ID 8 और [[ विन्डोज़ एक्सपी ]] और [[विंडोज सर्वर 2003]] पर 4 दिया गया है।<ref>{{citation | title = Microsoft Windows Internals | edition = 4th | chapter = Chapter 2: System Architecture | page = [https://archive.org/details/isbn_9780735619173/page/76 76] | last = Russinovich | first = Mark | author-link = Mark Russinovich | author2 = David A. Solomon | year = 2005 | publisher = Microsoft Press | isbn = 0-7356-1917-4 | url-access = registration | url = https://archive.org/details/isbn_9780735619173/page/76 }}</ref> ऑपरेटिंग सिस्टम के [[विंडोज एनटी परिवार]] पर, प्रोसेस और थ्रेड पहचानकर्ता सभी 4 के गुणक हैं, लेकिन यह विनिर्देश का हिस्सा नहीं है।<ref>{{citation |last=Chen|first=Raymond|title=Why are process and thread IDs multiples of four?|website=The Old New Thing|date=2008-02-28|publisher=[[Microsoft]]|url=https://devblogs.microsoft.com/oldnewthing/?p=23283}}</ref> | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[उपयोगकर्ता पहचानकर्ता]] ( | * [[उपयोगकर्ता पहचानकर्ता]] (यूजर आइडेंटिफायर) (UID) | ||
* [[समूह पहचानकर्ता]] ( | * [[समूह पहचानकर्ता]] (ग्रुप आइडेंटिफायर) (GID) | ||
* [[हैंडल (कंप्यूटिंग)]] | * [[हैंडल (कंप्यूटिंग)]] | ||
* [[कार्यक्रम खंड उपसर्ग]] ( | * [[कार्यक्रम खंड उपसर्ग|प्रोग्राम खंड उपसर्ग]] (PSP) | ||
== संदर्भ == | == संदर्भ == | ||
{{Reflist}} | {{Reflist}} | ||
{{DEFAULTSORT:Process Identifier}} | {{DEFAULTSORT:Process Identifier}} | ||
[[Category: Machine Translated Page]] | [[Category:Created On 15/05/2023|Process Identifier]] | ||
[[Category: | [[Category:Machine Translated Page|Process Identifier]] | ||
[[Category:Pages with script errors|Process Identifier]] | |||
[[Category:Templates 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]
यह भी देखें
- उपयोगकर्ता पहचानकर्ता (यूजर आइडेंटिफायर) (UID)
- समूह पहचानकर्ता (ग्रुप आइडेंटिफायर) (GID)
- हैंडल (कंप्यूटिंग)
- प्रोग्राम खंड उपसर्ग (PSP)
संदर्भ
- ↑ 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