سؤال

أقرأ كتاب "نظام التشغيل الحديث". وأنا مرتبك بشأن "حجم الصفحة".

في الكتاب ، يقول المؤلف ،

يتم تقسيم العنوان الافتراضي الافتراضي 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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top