لماذا ينتج عن عنوان 16 بت مع إزاحة 12 بت حجم صفحة 4 كيلو بايت؟
-
02-10-2019 - |
سؤال
أقرأ كتاب "نظام التشغيل الحديث". وأنا مرتبك بشأن "حجم الصفحة".
في الكتاب ، يقول المؤلف ،
يتم تقسيم العنوان الافتراضي الافتراضي 16 بت إلى رقم صفحة 4 بت وإزاحة 12 بت. مع 4 بتات رقم الصفحة ، يمكن أن يكون لدينا 16 صفحة ، مع 12 بت للإزاحة ، يمكننا معالجة جميع 4096 بايت داخل صفحة.
لماذا 4096 بايت؟ مع 12 بت ، يمكننا معالجة 4096 إدخالات داخل صفحة ، صحيح. ولكن ، إدخال واحد هو عنوان (في هذه الحالة ، حجم العنوان = 16 بت). لذلك أعتقد أنه يمكننا معالجة 4096 (الإدخال) * 16 (بت) = 4096 (إدخال) * 2 (بايت) = 8 كيلو بايت ، ولكن لماذا يقول الكتاب أنه يمكننا معالجة 4096 (بايت)؟
شكرا مقدما! قون
المحلول
هذا يفترض الذاكرة التي يتم تعديلها للبايت (والتي تستخدم كل جهاز تقريبًا في السنوات الثلاثين الماضية) ، لذلك يشير كل عنوان إلى بايت ، وليس إدخالًا أو عنوانًا أو أي قيمة أكبر أخرى. لعقد قيمة 16 بت ، ستحتاج إلى عنوانين متتاليين (بايتان).
منذ أكثر من 30 عامًا ، كانت هناك آلات تم تناولها للكلمة ، والتي عملت مثلك. لكن مثل هذه الآلات واجهت وقتًا عصيبًا في التعامل مع البيانات الموجهة نحو البايت (مثل أحرف ASCII) ، وبالتالي لم تفضي إلى التفضيل. في الوقت الحاضر ، يتم افتراض أشياء مثل قابلية المعالجة البايت والبايتات 8 بت والأعداد الصحيحة المكتملة إلى حد كبير.
نصائح أخرى
12 بت هي إزاحة داخل صفحة. الإزاحة في البايتات ، وليس العناوين. 2^12 هو 4096.
ما تحسبه هو حجم الصفحة ، أي حجم الصفحة في جدول الصفحة في الذاكرة. بينما نستخدم 12 بت للإزاحة ، يكون كل إطار في الذاكرة الفعلية 2^12 = 4096K. ومع ذلك ، تحتل كل صفحة في جدول الصفحة 2^12 إدخالات × 2 بايت = 8K في الذاكرة.
حسنًا ، لديك عنوان افتراضي 16 بتات ، دعنا نرى ماذا يعني. يعني أن لديك 2 ** 16 = 65536 بايت.
4 بتات الصفحة التي تعني أن هناك 16 صفحة مثل 2^4 = 16 الآن يمكنك تسمية الصفحات كصفحة 1 ، Page2 ... Page16.
الآن نترك مع 12 بتات ، دعنا نرى عدد العنوان الذي يمكن أن يمثله 12 بت 2 ** 12 = 4096 بايت
يمكن أيضًا تحقيق 65536 بايت بتقسيمه إلى 16 صفحة تحتوي على 4096 بايت لكل منها 4096*16 = 65536