কীভাবে পিআইডি উত্পন্ন হয়?


42

* নিক্সে, পিআইডি হ'ল প্রক্রিয়াগুলির জন্য অনন্য শনাক্তকারী। কীভাবে পিআইডি উত্পন্ন হয়? এটি কি কেবলমাত্র পূর্ণসংখ্যা যা বৃদ্ধি পায় বা আরও জটিল কাঠামো যেমন একটি তালিকার মতো? কীভাবে তারা পুনর্ব্যবহারযোগ্য? পুনর্ব্যবহারের দ্বারা আমি বোঝাতে চাইছি যে, যখন কোনও প্রক্রিয়া শেষ হয়, শেষ পর্যন্ত এটি অন্য কোনও প্রক্রিয়া দ্বারা পিআইডি পুনরায় ব্যবহার করা হবে।


উত্তর:


39

উইকিপিডিয়া যেমন বলেছে,

ইউনিক্সের অধীনে, প্রসেস আইডিগুলি সাধারণত 0 থেকে শুরু করে একটি সর্বাধিক মান পর্যন্ত বাড়ানো হয় যা সিস্টেম থেকে সিস্টেমে পরিবর্তিত হয় sequ এই সীমাটি পৌঁছে গেলে বরাদ্দ শূন্যে আবার শুরু হয় এবং আবার বৃদ্ধি পায়। তবে এটির এবং পরবর্তী পাসগুলির জন্য এখনও প্রসেসগুলিতে নির্ধারিত কোনও পিআইডি এড়িয়ে যায়।

সুতরাং এটি "জেনারেশন" এর পক্ষে খুব সহজ নীতি, কেবল একটি পাল্টা বৃদ্ধি করুন এবং "পুনর্ব্যবহারযোগ্য", কেবলমাত্র সর্বাধিক মানটির চারপাশে সংখ্যাটি গুটিয়ে রাখুন এবং যতক্ষণ না আপনি কোনও প্রক্রিয়া নির্ধারিত হয়ে গেছে এমন একটি নম্বর খুঁজে না পান ততক্ষণ পর্যন্ত ইনক্রিমেন্ট বজায় রাখুন has প্রক্রিয়া টেবিল থেকে সরানো হয়েছে।

কিছু ইউনিক্স বাস্তবায়ন যেমন এআইএক্স এমন নীতি ব্যবহার করে যা কম সহজ, উদাহরণস্বরূপ এই FAQ দেখুন


উত্তর করার জন্য ধন্যবাদ. যাইহোক, এই এআইএক্স নীতিটি "এটি কম সহজ" ঠিক কী?

1
@ হেল্টোন, আমি এআইএক্স নথিটি ঠিক কী নীতি ব্যবহার করে তা নথিভুক্ত মনে করি না (যাতে এটি কোনও রিলিজের ক্ষেত্রে পরিবর্তন হতে পারে) তবে আপনি এটিকে উপযুক্ত পরিসরে একটি এলোমেলো সংখ্যা জেনারেশন হিসাবে ভাবতে পারেন (যা পিআইডি তৈরি না হওয়া পর্যন্ত পুনরাবৃত্তি হয়) বর্তমানে ব্যবহৃত হয় না)।
অ্যালেক্স মার্টেলি

এই অ্যালগরিদমটি আমার কাছে কিছুটা সমস্যাযুক্ত বলে মনে হচ্ছে। আপনি কীভাবে নিশ্চিত করবেন যে আপনি অচলাবস্থায় না চলেছেন? এবং কোনও পারফরম্যান্সের সমস্যা নেই?

1
কার্নেলটি নিয়ন্ত্রণে রয়েছে এবং কোনও কিছুই লক করার দরকার নেই, তবে এটি কীভাবে অচল করে দিতে পারে? হ্যাঁ, অর্থ প্রদানের জন্য একটি ছোট পারফরম্যান্সের মূল্য রয়েছে (কাঁটাচামচ করার সময় একটি ছোট অতিরিক্ত ওভারহেড - একটি জড়িত পিআরএনজি বা / দেব / ইউরানডম পড়ার জন্য কয়েক ডজন মেশিনের নির্দেশাবলী বলুন, কাউন্টার-ইনক্রিমেন্টের তুলনায় অনেক কম), তবে এটি সর্বদা সুরক্ষা উন্নয়নের উদ্দেশ্যে উদ্দিষ্ট পদক্ষেপের ক্ষেত্রে কেস (উদাহরণস্বরূপ, সরল এইচটিটিপি বনাম HTTPS যোগাযোগের সিপিইউ ওভারহেড পরীক্ষা করুন ;-)।
অ্যালেক্স মার্টেলি

আমার অর্থ লাইভলক ( while(true);), দুঃখিত, আমি দ্রুত উত্তর

11

এটি পরিবর্তিত হয়.

বেশিরভাগ সিস্টেমে কেবল সর্বশেষ পিআইডি তৈরি করা গণনা রাখে, একটি যুক্ত করুন (সর্বাধিক সংখ্যায় যেমন 65৫৫৩৫ বা কিছুটা ছোট আকারে মোড়ানো - প্রায়শই মোড়ানো 65৫০০ বা এমনকি 00০০০০ এ দেখা যায়) এবং পরীক্ষা করুন যে সংখ্যাটি বর্তমানে ব্যবহৃত হচ্ছে না ( পুনরুক্তি করা হয় যদি পিআইডি এখনও ব্যবহারে নেই - সুতরাং পিআইডি 1, কার্নেল, এখনও রয়েছে এবং 'পুনরায় চালু করা' পায় না)।

অন্যান্য সুরক্ষা মনের সিস্টেমগুলি এলোমেলোভাবে একটি সংখ্যা উত্পন্ন করে এবং এটি ব্যবহার করা হচ্ছে না তা পরীক্ষা করে।

যে কোনও সময়ে, এটি গ্যারান্টিযুক্ত যে সমস্ত পিআইডি নম্বর অনন্য।


9

প্রশ্নের পুনর্ব্যবহারযোগ্য অংশ হিসাবে, একটি জিনিস মনে রাখতে হবে যে পিডের সাথে প্রক্রিয়াটি শেষ হওয়ার সাথে সাথে একটি পিড উপলব্ধ হয় না। এই প্রক্রিয়াটির পিতামাতারা তার সন্তানের সমাপ্তির স্থিতি ওয়েট () সিস্টেম কলের কোনও ফর্মের মাধ্যমে সংগ্রহ না করা পর্যন্ত পিড উপলব্ধ হয় না। যে শিশুটির অবসান হয় তবে যার বাবা-মা অপেক্ষা করেনি তাকে জম্বি বলা হয় এবং সাধারণত একটি পিএসে অপ্রত্যাশিত হিসাবে প্রদর্শিত হবে। অসৎ আচরণ করা পিতামাতার পক্ষে পিডস সিস্টেমটি অনাহারে থাকা সম্ভব হয় যদি এটি শিশুদের চালু করে এবং তাদের জন্য অপেক্ষা না করে ()।

যদি কোনও প্রক্রিয়াটির পিতা বা মাতা সন্তানের স্থিতি সংগ্রহের আগে মারা যায় তবে তা ঠিক। শিশুটি ডিআই দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত, যিনি নিশ্চিত হন যে অপেক্ষা () জারি করা হয়েছে এবং পিডটি পুনর্ব্যবহারযোগ্য is


এটি একটি খুব গুরুত্বপূর্ণ বিস্তারিত। এটি ছাড়া এমনকি একটি সাধারণ myprog &অনুসরণ wait $!ইউবি হবে।
আন্দ্রেয়াস

3

এগুলি ক্রম সংখ্যা এবং র‍্যাপটি মোড়ক করে (একটি ওএস-নির্দিষ্ট মান অনুসারে) যদি সিস্টেমটি দীর্ঘ সময় ধরে থাকে। নম্বরগুলি বিন্দুতে মুক্ত না হলে কখনও পুনরায় ব্যবহৃত হয় না fork()

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