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