এটি ইন্টারফেস সহজতর করা। বিকল্প forkএবং execউইন্ডোজ 'ভালো কিছু হবে CreateProcess ফাংশন। কতগুলি পরামিতি CreateProcessরয়েছে তা লক্ষ্য করুন এবং এর মধ্যে অনেকগুলি আরও বেশি পরামিতি সহ স্ট্রাক্ট রয়েছে। এটি কারণ যে আপনি নতুন প্রক্রিয়াটি সম্পর্কে নিয়ন্ত্রণ করতে পারেন এমন সমস্ত কিছু করতে হবে CreateProcess। আসলে, CreateProcessপর্যাপ্ত প্যারামিটার নেই, তাই মাইক্রোসফ্টের ক্রিয়েটপ্রোসেসস ব্যবহারকারী এবং ক্রিয়েটপ্রসেসউইথলগনডব্লু যোগ করতে হয়েছিল ।
fork/execমডেলটি সহ আপনার এই সমস্ত পরামিতিগুলির প্রয়োজন নেই। পরিবর্তে, প্রক্রিয়াটির নির্দিষ্ট বৈশিষ্ট্যগুলি জুড়ে সংরক্ষণ করা হয় exec। এটি আপনাকে অনুমতি দেয় fork, তারপরে আপনার পছন্দমতো যে কোনও প্রক্রিয়া বৈশিষ্ট্যগুলি পরিবর্তন করুন (আপনি সাধারণভাবে একই ফাংশনগুলি ব্যবহার করে) এবং তারপরে exec । লিনাক্সে, forkকোনও প্যারামিটার নেই এবং execveকেবল 3 রয়েছে: প্রোগ্রামটি চালানো, এটি দেওয়ার জন্য কমান্ড লাইন এবং তার পরিবেশ। (অন্যান্য execফাংশন রয়েছে, তবে execveসাধারণ ব্যবহারের কেসগুলি সহজ করার জন্য এগুলি কেবল লাইব্রেরির প্রদত্ত কেবল মোড়ক )
আপনি কি অন্য কিছু বর্তমান ডিরেক্টরী সঙ্গে একটি প্রক্রিয়া শুরু করতে চাইলে: fork, chdir, exec।
আপনি যদি স্টিডিন / স্টডআউট পুনর্নির্দেশ করতে চান:, forkফাইলগুলি বন্ধ / খুলুন exec,।
আপনি সুইচ ব্যবহারকারীদের চাইলে: fork, setuid, exec।
এই সমস্ত জিনিস প্রয়োজন হিসাবে একত্রিত করা যেতে পারে। যদি কেউ নতুন ধরণের প্রক্রিয়া বৈশিষ্ট্য নিয়ে আসে তবে আপনাকে পরিবর্তন করতে হবে না forkএবং exec।
যেমন উল্লেখ করা হয়েছে, বেশিরভাগ আধুনিক ইউনিক্সগুলি অনুলিপি-অনুলিপি ব্যবহার করে, তাই forkউল্লেখযোগ্য ওভারহেড জড়িত না।
fork(2)লিনাক্সের অধীনে ম্যান পেজটি বলেছেন:Under Linux, fork() is implemented using copy-on-write pages, so the only penalty that it incurs is the time and memory required to duplicate the parent's page tables, and to create a unique task structure for the child.আমি কল্পনা করেছি (তবে নিশ্চিতভাবে জানি না) অন্যান্য আধুনিক ইউনিক্স স্বাদের ক্ষেত্রে এটিই।