Linux पर PCB कहाँ है


10

एक पीसीबी या प्रक्रिया नियंत्रण ब्लॉक , विकिपीडिया पर इस तरह परिभाषित किया गया है

प्रोसेस कंट्रोल ब्लॉक (PCB, जिसे टास्क कंट्रोलिंग ब्लॉक भी कहा जाता है, [1] टास्क स्ट्रक्चर या स्विचफ्रेम) किसी विशेष प्रक्रिया को प्रबंधित करने के लिए आवश्यक जानकारी वाले ऑपरेटिंग सिस्टम कर्नेल में डेटा संरचना है। पीसीबी एक ऑपरेटिंग सिस्टम में एक प्रक्रिया की अभिव्यक्ति है

और इसका कर्तव्य है:

Process identification data
Processor state data
Process control data

तो एक प्रक्रिया का पीसीबी कहां मिल सकता है?


स्टैक ओवरफ्लो पर लिनक्स में प्रोसेस कंट्रोल ब्लॉक भी देखें ।

जवाबों:


15

लिनक्स कर्नेल में, प्रत्येक प्रक्रिया को task_structएक दोहरी-लिंक की गई सूची में दर्शाया गया है , जिसमें से सिर init_task(pid 0 है, pid 1 नहीं)। इसे आमतौर पर प्रक्रिया तालिका के रूप में जाना जाता है ।

उपयोगकर्ता मोड में, प्रक्रिया तालिका सामान्य उपयोगकर्ताओं को दिखाई देती है /proc। अपने प्रश्न के लिए शीर्षक लेना:

  • प्रक्रिया पहचान डेटा प्रक्रिया आईडी (जो पथ में है /proc/<process-id>/...), कमांड लाइन ( cmd), और संभवतः 'पहचान' की आपकी परिभाषा के आधार पर अन्य विशेषताएँ हैं।

  • प्रक्रिया राज्य डेटा शेड्यूलिंग डेटा (भी शामिल है sched, statऔर schedstat), क्या प्रक्रिया वर्तमान में (प्रतीक्षा कर रहा है wchan), अपने पर्यावरण ( environ) आदि

  • प्रक्रिया नियंत्रण डेटा को इसकी साख ( uid_map) और संसाधन सीमा ( limits) कहा जा सकता है ।

तो यह सब निर्भर करता है कि आप अपनी शर्तों को कैसे परिभाषित करते हैं ... लेकिन सामान्य तौर पर, एक प्रक्रिया के बारे में सभी डेटा में पाया जा सकता है /proc


"जिसका सिर है init_task(pid 0, pid 1 नहीं)" ऐसी कोई बात नहीं है init_task। यह है init, और इसकी पिड 1 है, 0 नहीं (इसके माध्यम से पुष्टि की गई है pidof init)।
AleksandrH

1
@AleksandrH init_task एक कर्नेल संरचना है और एक प्रक्रिया नहीं है। यह निष्क्रिय कार्य को इंगित करता है जिसे आंतरिक रूप से pid 0. init_task द्वारा दर्शाया गया है और init पूरी तरह से अलग चीजें हैं।
फ्लॉप

और अभी तक pidकेवल प्रक्रियाओं के लिए है ...
AleksandrH

1
@AleksandrH कर्नेल स्रोत के पेड़ में init / init_task.c पढ़ें ( github.com/torvalds/linux/blob/master/init/init_task.c )।
फ्लॉप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.