পিআইডি মানগুলি কেন অবিচ্ছিন্ন নয়?


14

যদি আমরা টাইপ করি ps -efতবে আমরা প্রক্রিয়াগুলির একটি তালিকা পাই। পিআইডি নম্বর কেন অবিচ্ছিন্ন নয়?

উত্তর:


16

উবুন্টুতে তারা অবিচ্ছিন্ন। অন্যান্য অপারেটিং সিস্টেমে এটি পৃথক হতে পারে।

কার্নেল (RESERVED_PIDS, PID_MAX_DEFAULT) এর ব্যাপ্তিতে PIDs বরাদ্দ করে। এটি প্রতিটি নেমস্পেসে যথাক্রমে করে (বিভিন্ন নেমস্পেসের কার্যগুলিতে একই আইডি থাকতে পারে)। যদি পরিসীমাটি নিঃশেষ হয়ে যায়, পিড অ্যাসাইনমেন্টটি প্রায় গুটিয়ে যায়।

( /programming/3446727/how-does-linux-determine-t--xt-pid )

মন যদিও ...

  • কার্নেল শিডিয়ুলিং একটি প্রক্রিয়া কাঁটাতে পারে যাতে এটি সংখ্যাগুলি এড়িয়ে যেতে পারে।
  • যখন একটি টাস্ক শেষ হবে তখন একটি পিআইডি অদৃশ্য হয়ে যাবে।
  • পিআইডি_এমএক্স_ডিএএফএলএটি পৌঁছানো পর্যন্ত পিআইডি পুনরায় ব্যবহার করা হয় না।
  • একটি সংরক্ষিত পিআইডি এড়িয়ে যায়।

স্ট্যাকওভারফ্লো সম্পর্কিত কিছু বিষয়:

মন্তব্যগুলিতে পিআইডিগুলির দায়িত্ব পরীক্ষা করার জন্য একটি আদেশ রয়েছে:

for i in {1..20}; do sh -c 'echo $$'; done

"কার্নেল শিডিয়ুলিং একটি প্রক্রিয়া কাঁটাতে পারে যাতে এটি সংখ্যা বাদ দেয়।" - কার্নেল কোন প্রক্রিয়াটি চালাবেন তা নির্ধারণের সময় একটি প্রক্রিয়া তৈরি করতে পারে? অদ্ভুত মনে হচ্ছে।
ব্যবহারকারী 253751

সময়সূচীর পক্ষে কোনও প্রক্রিয়া তৈরি করা খুব সাধারণ। সম্ভবত এই বিট: lxr.free-electrons.com/source/kernel/pid.c#L125 যা এটিকে
নিরস্ত

8

এর মধ্যে অনুপস্থিত প্রক্রিয়া আইডি ইতিমধ্যে মৃত এবং তাদের পিআইডি পরবর্তী প্রক্রিয়াগুলিতে কার্নেল দ্বারা পুনরায় ব্যবহার করা হবে।

মৃত প্রক্রিয়াগুলি প্রক্রিয়া সারণীতে প্রদর্শিত হবে না (জম্বিগুলি বাদে), সুতরাং ps -efসেগুলি প্রদর্শিত হবে না।


3

সাধারণত পিআইডি অবিচ্ছিন্ন থাকে তবে আপনি কমান্ডটি চালানোর সময় কিছু প্রক্রিয়া মারা যায় ps -ef

এছাড়াও কিছু প্রক্রিয়া অন্য একটি প্রক্রিয়ার কেবলমাত্র একটি উপ-প্রসেস হতে পারে যা ps -efকমান্ডে প্রদর্শিত হয়নি । কিছু প্রসারিত ফলাফল দেখতে এবং আপনি নিরবচ্ছিন্ন পিআইডি চেক করতে পারেনpstree

pstree -p

নমুনা আউটপুট:

   ├─teamviewerd(3468)─┬─{teamviewerd}(3474)
│                   ├─{teamviewerd}(3475)
│                   ├─{teamviewerd}(3476)
│                   ├─{teamviewerd}(3477)
│                   ├─{teamviewerd}(3478)

আপনি যদি চালান তবে ps -efকেবল পিতামাতার প্রক্রিয়াটি দেখুন।

$ ps -ef | grep teamviewerd
root      3468     1  0 Jul15 ?        00:07:38 /opt/teamviewer9/tv_bin/teamviewerd -f

2

তারা অবিচ্ছিন্ন হয়। সর্বাধিক সীমা না আসা পর্যন্ত পিআইডি ক্রমান্বয়ে ক্রমে নির্ধারিত হয়। এই সীমাটির পরে এটি আবার শূন্য থেকে শুরু হবে।

সুতরাং এটি হ'ল নিখোঁজ পিআইডিগুলি ps -efমৃত প্রক্রিয়াধীন। মনে রাখবেন যে ps -efকেবল চলমান প্রক্রিয়াগুলি তালিকাভুক্ত করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.