[আমি আমার উত্তরের কিছু অংশ এখান থেকে পুনরায় বলব ।]
কেন কেবল কমান্ড নেই যা স্ক্র্যাচ থেকে একটি নতুন প্রক্রিয়া তৈরি করে? কেবলমাত্র এখনই প্রতিস্থাপন করা হবে এমন একটি অনুলিপি করা কি অযৌক্তিক এবং অদক্ষ নয়?
আসলে, এটি সম্ভবত কয়েকটি কারণে কার্যকর হবে না:
উত্পাদিত "অনুলিপি" fork()
কিছুটা বিমূর্ততা, যেহেতু কার্নেল একটি অনুলিপি-অন- সিস্টেম ব্যবহার করে ; যা সত্যই তৈরি করতে হবে তা হ'ল ভার্চুয়াল মেমরি মানচিত্র। যদি অনুলিপিটি সাথে সাথে কল করে exec()
, প্রক্রিয়াটির ক্রিয়াকলাপ দ্বারা এটি সংশোধন করা হত তবে অনুলিপি করা হত এমন বেশিরভাগ ডেটা আসলেই অনুলিপি / তৈরি করতে হয় নি কারণ প্রক্রিয়াটি এর ব্যবহারের প্রয়োজনীয়তার জন্য কিছু করে না।
শিশু প্রক্রিয়াটির বিভিন্ন উল্লেখযোগ্য দিকগুলি (যেমন, এর পরিবেশ) প্রসঙ্গের জটিল বিশ্লেষণের ভিত্তিতে স্বতন্ত্রভাবে সদৃশ বা সেট করতে হবে না etc. এগুলি কেবল কলিং প্রক্রিয়ার মতোই বলে ধরে নেওয়া হয়, এবং এটি আমাদের সাথে পরিচিত মোটামুটি স্বজ্ঞাত সিস্টেম।
আরও 1 টি ব্যাখ্যা করার জন্য, মেমরি যা "অনুলিপি করা হয়" তবে পরবর্তীতে অ্যাক্সেস করা হয় না তা কমপক্ষে বেশিরভাগ ক্ষেত্রেই সত্যই অনুলিপি করা হয় না। এই প্রসঙ্গে একটি ব্যতিক্রম হতে পারে যদি আপনি কোনও প্রক্রিয়া শুরু করেন, তবে সন্তানের নিজেকে প্রতিস্থাপনের আগে পিতামাতার প্রক্রিয়াটি প্রস্থান করা উচিত exec()
। আমি বলতে শক্তি যদি যথেষ্ট মেমরি মুক্ত কারণ পিতা বা মাতা অনেক ক্যাশে যেতে পারে, এবং আমি কি পরিমাণ এই শোষিত হবে নিশ্চিত (যা অপারেটিং সিস্টেম বাস্তবায়ন উপর নির্ভর করে হবে) নই।
অবশ্যই, যে একটি কপি ব্যবহার পৃষ্ঠ করে তাদের উপর এর না আরো একটি ফাঁকা স্লেট ব্যবহার তুলনায় দক্ষ - ব্যতীত "ফাঁকা স্লেট" -এর আক্ষরিক কিছুই নয়, এবং বরাদ্দ জড়িত নয়। সিস্টেমে একটি জেনেরিক ফাঁকা / নতুন প্রক্রিয়া টেম্পলেট থাকতে পারে যা এটি একইভাবে অনুলিপি করে, 1 তবে এরপরে অনুলিপি-অন-লিখনের কাঁটা বনাম কোনও কিছুই সংরক্ষণ করতে পারে না। সুতরাং # 1 কেবল দেখায় যে "নতুন" খালি প্রক্রিয়া ব্যবহার করা আরও কার্যকর হবে না।
পয়েন্ট # 2 ব্যাখ্যা করায় কেন কাঁটা ব্যবহার সম্ভবত আরও কার্যকর। কোনও শিশুর পরিবেশ তার পিতামাতার কাছ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হয়, এমনকি এটি সম্পূর্ণ ভিন্ন নির্বাহযোগ্য। উদাহরণস্বরূপ, যদি পিতামাতার প্রক্রিয়াটি শেল হয় এবং শিশু একটি ওয়েব ব্রাউজার $HOME
হয় তবে এখনও উভয়ের জন্য একইরকম, তবে যেহেতু হয় পরবর্তীকালে এটি পরিবর্তন করতে পারে তাই এগুলি দুটি পৃথক অনুলিপি হতে হবে। সন্তানের মধ্যে একটি আসল দ্বারা উত্পাদিত হয় fork()
।
১. এমন একটি কৌশল যা হয়ত আক্ষরিক অর্থে না বোঝায়, তবে আমার বক্তব্যটি হ'ল একটি প্রক্রিয়া তৈরির সাথে ডিস্ক থেকে মেমরির প্রতিচ্ছবিটি অনুলিপি করার চেয়ে আরও বেশি কিছু জড়িত।