Wait (system call)
কম্পিউটার অপারেটিং সিস্টেমে, একটি প্রক্রিয়া (বা কাজ) তার বাস্তবায়ন সম্পূর্ণ করার জন্য অন্য প্রক্রিয়াটির জন্য অপেক্ষা করতে পারে। বেশিরভাগ ব্যবস্থায়, একটি মূল প্রক্রিয়া একটি স্বাধীনভাবে শিশু প্রক্রিয়া সম্পাদন করতে পারে। প্যারেন্ট প্রসেস তখন একটি ওয়েট সিস্টেম কল জারি করতে পারে, যা শিশু কার্যকর করার সময় প্যারেন্ট প্রসেসের এক্সিকিউশন স্থগিত করে। যখন চাইল্ড প্রক্রিয়াটি শেষ হয়ে যায়, তখন এটি অপারেটিং সিস্টেমে একটি প্রস্থান অবস্থা ফিরিয়ে দেয়, যা পরে অপেক্ষমান প্যারেন্ট প্রক্রিয়াতে ফিরে আসে। প্যারেন্ট প্রসেস তারপর এক্সিকিউশন পুনরায় শুরু করে। আধুনিক অপারেটিং সিস্টেমগুলি সিস্টেম কলগুলিও সরবরাহ করে যা একটি প্রক্রিয়াটির থ্রেডকে অন্যান্য থ্রেড তৈরি করতে দেয় এবং একইভাবে তাদের শেষ ("যোগদান") করার জন্য অপেক্ষা করে। একটি অপারেটিং সিস্টেম ওয়েট কলের বৈচিত্র্য প্রদান করতে পারে যা একটি প্রক্রিয়াকে তার যে কোনও চাইল্ড প্রসেসের প্রস্থানের জন্য অপেক্ষা করতে বা একটি নির্দিষ্ট চাইল্ড প্রসেসের (তার প্রসেস আইডি দ্বারা চিহ্নিত) প্রস্থানের জন্য অপেক্ষা করতে দেয়। কিছু অপারেটিং সিস্টেম মূল প্রক্রিয়াটিকে একটি সংকেত (এস. আই. জি. সি. এইচ. এল. ডি) জারি করে যখন একটি শিশু প্রক্রিয়া শেষ হয়, মূল প্রক্রিয়াটিকে অবহিত করে এবং এটিকে শিশু প্রক্রিয়াটির প্রস্থান অবস্থা পুনরুদ্ধার করার অনুমতি দেয়। একটি শিশু প্রক্রিয়া দ্বারা ফিরে আসা প্রস্থান অবস্থা সাধারণত নির্দেশ করে যে প্রক্রিয়াটি স্বাভাবিকভাবে বা অস্বাভাবিকভাবে শেষ হয়েছে কিনা। স্বাভাবিক সমাপ্তির জন্য, এই স্থিতিতে প্রস্থান কোড (সাধারণত একটি পূর্ণসংখ্যা মান) অন্তর্ভুক্ত থাকে যা প্রক্রিয়াটি সিস্টেমে ফিরে আসে। ইউনিক্সের প্রথম 20 বছরে, প্রস্থান কোডের মাত্র 8টি ছোট বিট অপেক্ষমান পিতামাতার জন্য উপলব্ধ ছিল। 1989 সালে এস. ভি. আর. 4-এর সাথে, একটি নতুন কল ওয়েটিড চালু করা হয়েছে যা স্ট্রাকচার মেম্বার সি _ স্ট্যাটাসে সিগিনফো _ টি নামে একটি কাঠামোতে প্রস্থান কল থেকে সমস্ত বিট প্রদান করে। ওয়েটিড 2001 সাল থেকে পজিক্স স্ট্যান্ডার্ডের একটি বাধ্যতামূলক অংশ। জম্বিস এবং অনাথরা যখন একটি শিশু প্রক্রিয়া শেষ হয়, এটি একটি জম্বিস প্রক্রিয়া হয়ে ওঠে এবং সিস্টেম প্রক্রিয়া টেবিলে একটি এন্ট্রি হিসাবে বিদ্যমান থাকে যদিও এটি আর সক্রিয়ভাবে কার্যকর করার প্রোগ্রাম নয়। স্বাভাবিক ক্রিয়াকলাপের অধীনে এটি সাধারণত তার মূল দ্বারা অবিলম্বে অপেক্ষা করা হবে, এবং তারপর সিস্টেম দ্বারা কাটা হবে, সম্পদ পুনরুদ্ধার (প্রক্রিয়া টেবিল এন্ট্রি)। যদি কোনও শিশু তার পিতামাতার দ্বারা অপেক্ষা না করে, তবে এটি অনির্দিষ্টকালের জন্য এই সম্পদটি গ্রাস করে চলেছে এবং এইভাবে এটি একটি সম্পদ ফাঁস। এই ধরনের পরিস্থিতি সাধারণত একটি বিশেষ "রিপার" প্রক্রিয়ার মাধ্যমে পরিচালিত হয় যা জম্বিদের সনাক্ত করে এবং তাদের প্রস্থানের অবস্থা পুনরুদ্ধার করে, যার ফলে অপারেটিং সিস্টেম তাদের সংস্থানগুলি বাতিল করতে পারে। বিপরীতভাবে, একটি শিশু প্রক্রিয়া যার মূল প্রক্রিয়াটি একটি অনাথ প্রক্রিয়া হয়ে ওঠার আগেই শেষ হয়ে যায়। এই ধরনের পরিস্থিতি সাধারণত একটি বিশেষ "মূল" (বা "init") প্রক্রিয়া দ্বারা পরিচালিত হয়, যা একটি প্রক্রিয়ার নতুন মূল হিসাবে নির্ধারিত হয় যখন তার মূল প্রক্রিয়াটি প্রস্থান করে। এই বিশেষ প্রক্রিয়াটি সনাক্ত করে যে কোনও অনাথ প্রক্রিয়া কখন শেষ হয় এবং তারপরে তার প্রস্থানের অবস্থা পুনরুদ্ধার করে, যা সিস্টেমটিকে সমাপ্ত শিশু প্রক্রিয়াটি বাতিল করার অনুমতি দেয়। যদি কোনও শিশু প্রক্রিয়া একটি সংকেত পায়, তবে একজন অপেক্ষমান অভিভাবক একটি অনাথ প্রক্রিয়া রেখে মৃত্যুদণ্ড কার্যকর করা চালিয়ে যাবেন। তাই কখনও কখনও ওয়েট, ওয়েটপিড বা ওয়েটিড দ্বারা সেট করা যুক্তিটি পরীক্ষা করা প্রয়োজন এবং যদি ওয়াইএফএসআইজিএনএএলডি সত্য হয়, তবে সংস্থানগুলি বাতিল করার জন্য আবার চাইল্ড প্রসেসের জন্য অপেক্ষা করুন। আরও দেখুন এক্সিট (সিস্টেম কল) ফর্ক (সিস্টেম কল) স্পন (কম্পিউটিং) ওয়েট (কমান্ড) রেফারেন্স প্রসেস (কম্পিউটিং) সি পজিক্স লাইব্রেরি সিস্টেম কল