নিম্নলিখিত চিত্রটি দেখায় যে 32-বিট প্রক্রিয়া ভার্চুয়াল ঠিকানার স্থানটি কীভাবে বিভক্ত:
তবে কীভাবে একটি 64-বিট প্রক্রিয়া ভার্চুয়াল ঠিকানার স্থান ভাগ করা হয়?
নিম্নলিখিত চিত্রটি দেখায় যে 32-বিট প্রক্রিয়া ভার্চুয়াল ঠিকানার স্থানটি কীভাবে বিভক্ত:
তবে কীভাবে একটি 64-বিট প্রক্রিয়া ভার্চুয়াল ঠিকানার স্থান ভাগ করা হয়?
উত্তর:
-৪-বিট x86 ভার্চুয়াল মেমরি মানচিত্রটি অ্যাড্রেস স্পেসটিকে দুটি ভাগে বিভক্ত করে: নিম্ন বিভাগটি (শীর্ষে বিটটি 0 তে সেট করে) ব্যবহারকারী-স্থান, উপরের বিভাগটি (শীর্ষে বিট সেট করে 1) কর্নেল-স্পেস। (দ্রষ্টব্য যে x86-64 "বিহীন" "নিম্ন অর্ধেক" এবং "উচ্চতর অর্ধেক" ঠিকানা সংজ্ঞায়িত করে, বেশ কয়েকটি বিট কার্যকরভাবে 48 বা 56 এর মধ্যে সীমাবদ্ধ রয়েছে; বিশদগুলির জন্য উইকিপিডিয়া দেখুন ))
সম্পূর্ণ মানচিত্রটি কার্নেলে বিশদে ডকুমেন্টেড রয়েছে ; বর্তমানে এটি মত দেখাচ্ছে
========================================================================================
Start addr | Offset | End addr | Size | VM area description
========================================================================================
| | | |
0000000000000000 | 0 | 00007fffffffffff | 128 TB | user-space virtual memory
__________________|_________|__________________|_________|______________________________
| | | |
0000800000000000 | +128 TB | ffff7fffffffffff | ~16M TB | non-canonical
__________________|_________|__________________|_________|______________________________
| | | |
ffff800000000000 | -128 TB | ffffffffffffffff | 128 TB | kernel-space virtual memory
__________________|_________|__________________|_________|______________________________
48-বিট ভার্চুয়াল ঠিকানা সহ। (৫-বিট ভেরিয়েন্টের একই কাঠামো রয়েছে, একটি 16 কে পিবি গর্তের উভয় পাশে P৪ পিবি ব্যবহারযোগ্য ঠিকানা স্থান রয়েছে))
32-বিটের ক্ষেত্রে বিপরীতে, "64-বিট" মেমরি মানচিত্রটি হার্ডওয়্যার সীমাবদ্ধতার সরাসরি প্রতিচ্ছবি।