সম্পূর্ণতা এর fork()
mmap ব্যবহার বাস্তবায়িত হয় / লেখা উপর কপি করুন।
এটি কেবল স্তূপকে প্রভাবিত করে না, তবে লাইব্রেরি, স্ট্যাক, বিএসএস অঞ্চলগুলিও ভাগ করে দেয়।
যা, ঘটনাক্রমে, এর অর্থ দাঁড়ায় যে কাঁটাচামচ একটি অত্যন্ত হালকা ওজনের অপারেশন, যতক্ষণ না ফলপ্রসূ 2 প্রক্রিয়া (পিতামাতা এবং শিশু) আসলে মেমরির ব্যাপ্তিতে লিখতে শুরু করে। এই বৈশিষ্ট্যটি কাঁটাচামচের প্রাণঘাতীতার জন্য প্রধান অবদানকারী - কার্নেল পৃষ্ঠার অনুলিপি এবং পার্থক্য সহ অতিরিক্ত লোড হওয়ার আগে আপনি অনেকগুলি প্রক্রিয়া শেষ করেন।
একটি আধুনিক ওএসে আপনাকে এমন কোনও অপারেশনের উদাহরণ খুঁজে পেতে কঠোর চাপ দেওয়া হবে যেখানে কার্নেল একটি হার্ড কপি করে (ডিভাইস ড্রাইভাররা এর ব্যতিক্রম) সম্পাদন করে - এটি ভিএম কার্যকারিতা নিযুক্ত করার জন্য এটি কেবল অনেক দূরের, আরও সহজ এবং আরও দক্ষ।
এমনকি execve()
মূলত "দয়া করে বাইনারি / এলডি.এসো / হোয়াট নোট এমএম্যাপ করুন, তারপরে এক্সিকিউট করুন" - এবং ভিএম প্রক্রিয়াটির আসল লোডকে র্যাম এবং এক্সিকিউশনে পরিচালনা করে। স্থানীয় অবিচ্ছিন্ন ভেরিয়েবলগুলি একটি 'শূন্য পৃষ্ঠা' থেকে এমএমএপ করা শেষ হয় - বিশেষ পঠনযোগ্য কেবল-অনুলিপি-র শিরোনামে লেখা পৃষ্ঠাগুলি, স্থানীয় প্রাথমিক ভেরিয়েবলগুলি বাইনারি ফাইল থেকে নিজেই এমএমপি করা (অনুলিপি-অন-রাইটিং) হয়ে যায়, প্রভৃতি