> For the complete documentation index, see [llms.txt](https://sh.howtocode.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sh.howtocode.dev/1.0.0.part1intro/1.7.0.processes/1.7.1.processing.md).

# প্রসেস এর প্রাথমিক ধারণা

## প্রসেস কি?

সাদামাটা কথায় যা কম্পিউটারের কাছে কাজ, তাই প্রসেস। তা চালু থাকা কোনো প্রোগ্রাম হতে পারে। বা যেকোনো ধরনের কাজ।

## কীভাবে প্রসেস কাজ করে?

যখন সিস্টেম চালু হয়, কার্নেল নিজের কিছু কাজ শুরু করে প্রসেস হিসেবে। তারপর একটা প্রোগ্রাম চালু করে যার নাম **init**। এরপর **init** প্রোগ্রামটি /etc ডিরেক্টরিতে থাকা কিছু শেলস্ক্রিপ্ট চালু করে যাদের ইনিটস্ক্রিপ্ট(init script) বলা হয়। এই স্ক্রিপ্টগুলো কিছু সার্ভিস প্রোগ্রাম চালু করে যেগুলো নেটওয়ার্কিংসহ বিভিন্ন বিষয় পরিচালনা করে। এগুলো অধিকাংশই ডেমন(daemon) প্রোগ্রাম অর্থাৎ যাদের ইউজার ইন্টারফেস নেই বরং ব্যাকগ্রাউন্ডে কাজ করে। মানে আমরা যদি লগিন নাও করি কম্পিউটার কিছু কাজকর্মে ব্যস্ত থাকে। এরপর আমরা কোনো প্রোগ্রাম চালালে সেগুলো প্রসেসে যুক্ত হয়। এবং সেই প্রোগ্রামগুলো আরো প্রোগ্রাম তথা প্রসেস চালু করতে পারে। তখন বলা হয় প্যারেন্ট প্রসেস চাইল্ড প্রসেস তৈরী করছে।

কার্নেল প্রত্যেক প্রসেস সম্পর্কে তথ্য রাখে যেন তাদের ঠিকমত ব্যবহার করতে পারে। যেমন প্রত্যেক প্রসেসকে সে একটি নম্বর দিয়ে দেয় যাকে PID বলে। **init** সবার আগে চালু হয় বলে এর PID হয় 1। তাছাড়াও কোন প্রসেসের কতটুকু মেমরী লাগবে, বা তা চালু হতে প্রস্তুত কিনা এগুলোর খবরও কার্নেলকে রাখতে হয়।

একটা প্রসেস আরো প্রসেস তৈরী করতে পারে। নতুন জন্ম দেয়া প্রসেসটিকে চাইল্ড প্রসেস বলা হয় আর তার জন্মদাতা প্রসেসকে প্যারেন্ট প্রসেস।
