تالار گفتمان مانشت
صفحه بندی چند سطحی - نسخه‌ی قابل چاپ

صفحه بندی چند سطحی - LALEH - 13 بهمن ۱۳۸۹ ۰۵:۴۷ ب.ظ

صفحه بندی چند سطحی را نفهمیدم فرمولشم حفظ نمیشم
میشه یه نفر که فهمیده با شکل توضیح بده من بفهمم؟ممنون میشم

صفحه بندی چند سطحی - ahmadnouri - 15 بهمن ۱۳۸۹ ۰۲:۳۴ ب.ظ

من تصویری نداشتم بذارم
ببینید در صفحه بندی ساده m بیت سمت چپ آدرس منطقی شماره صفحه را میداد که این شماره صفحه یه درایه از جدول صفحه رو مشخص می کرد .که این درایه از جدول هم شماره قاب رو میدادکه این شماره قاب با آفست صفحه آدرس فیزیکی رو مشخص می کنه
اما در صفحه بندی چند سطحی m بیت سمت چپ آدرس منطقی خودش به چند قسمت تقسیم می شه که قسمت اول از سمت چپ یه درایه از جدول سطح اول رو می ده که هر درایه از جدول این سطح خودش یه جدول از سطح دوم رو میده و بقیه قسمت‌ها به همین ترتیب ادامه پیدا میکنه تا این که جدول سطح آخر شماره قاب رو بده و آفست قاب هم از آدرس منطقی میاد و آدرس فیزیکی مشخص میشه
البته بیشتر از دو سطح زیاد کارایی نداره
اگه متوجه نشدید بگید تا شکل هم تهیه کنم و بذارم

صفحه بندی چند سطحی - homa - 15 بهمن ۱۳۸۹ ۰۵:۰۱ ب.ظ

سلام
میشه توضیح بدین که چه جوری این m بیت سمت چپ رو تقسیم بندی می کنیم یعنی چند بیت برای p1 و چند بیت برای p2 ؟

صفحه بندی چند سطحی - LALEH - 15 بهمن ۱۳۸۹ ۰۵:۱۶ ب.ظ

متوجه نشدم به خدا این توضیح گویا نیست

RE: صفحه بندی چند سطحی - homa - 15 بهمن ۱۳۸۹ ۰۷:۵۵ ب.ظ

در مورد جداول صفحه ساده یک مشکل داریم که برای رفع این مشکل از جدول ۲ سطحی استفاده می کنیم مشکل اینه که:
فضای زیادی از حافظه رو اشغال میکنن
به طور مثال اگر فرض کنیم در یک کامپیوتر از آدرس ۳۲ بیتی برای حافظه مجازی استفاده می کنه پس به اندازه ۳۲^۲ حافظه مجازی داریم یعنی: ۴GB
اگه اندازه صفحه ۴kb و اندازه هر درایه ۴ باشه تعداد صفحه‌ها میشه ۲۰^۲ که در کل اندازه جدول صفحه به ازاء هر فرایند میشه ۴MB
تعداد صفحه‌ها ۲۰^۲ یا ۱۰۲۴*۱۰۲۴ است و اگر یک فرایند فقط تعداد کمی از این صفحه رو استفاده کنه فضای زیادی هدر میره پس ما این تعداد رو به ۲ قسمت تقسیم می کنیم به طور مثال یک قسمت ۱۰۲۴ تایی در نظر می گیریم که هر درایه اون یک بخش ۱۰۲۴ تایی رو مشخص میکنه یعنی همون اندازه اولیه
این جوری فرض کن که ما ۱۰۲۴ راهرو داریم که تو هر کدوم ۱۰۲۴ اتاق وجود داره
۱۰۲۴ یعنی ۱۰^۲ پس ما به ۱۰ بیت برای آدرس دهی نیاز داریم پس با ۱۰ شماره‌ی اول راهرو رو انتخاب می کنیم و با ۱۰ شماره‌ی بعد اتاق مشخصی تو اون راهرو
که همون سطح اول جدول صفحه میشه راهرو و سطح دوم میشه اتا قا(Big Grin)
حتی میشه به تعداد مساوی هم نباشه مثلا واسه سطح اول ۹ بیت داشته باشیم(۵۱۲ )و در سطح دوم ۱۱ بیت
بستگی داره چه جوری ۲۰ بیت رو تقسیم بندی کنیم و باید جوری باشه که مشکل ما یعنی اتلاف حافظه رو حل کنه که بهترین گزینه ۱۰ بیت ۱۰ بیت می باشد

صفحه بندی چند سطحی - ahmadnouri - 16 بهمن ۱۳۸۹ ۰۷:۳۷ ب.ظ

تقسیم بندی این m بیت به طراحی ما برای صفحه بندی چند سطحی بستگی داره.
کلا هدف از تقسیم بندی این m بیت (یعنی صفحه بندی چند سطحی )اینه که جدول صفحه ای که برای یک فرایند به حافظه آورده می شه اندازه کوچکی داشته باشه (حافظه زیاد صرف جداول صفحه‌ها نشند)
برای مثال اگه m =4 بیت باشه در صفحه بندی ساده جدول صفحه ۲^۴=۱۶ درایه خواهد داشت اما در صفحه بندی چند سطحی اگه m رو به دو قسمت ۲ بیتی تقسیم کنیم جدول صفحه سطح اول با توجه به ۲ بیت چپ m , 2^2= 4 درایه خواهد داشت که
هرکدوم از این درایه‌ها با توجه به ۲ بیت دوم m میتونن یه جدول سطح دوم رو که ۲^۲=۴ درایه داره تشکیل بدن
کاملا معلوم که در صفحه بندی ساده یه جدول صفحه ای که ۱۶ تا درایه داشت به حافظه آورده می شد در حالیکه در صفحه بندی
دو سطحی ما دو تا جدولی که هر کدوم ۴ تا درایه دارشتن به حافظه میاد یعنی نصف صفحه بندی ساده حافظه صرف جداول صفحه میشه
براتون تصویر گذاشتم و به ترتیب مراحل شماره هم نوشتمCool
یکی از تصویر‌ها صفحه بندی ساده ویکی صفحه بندی دو سطحیه

RE: صفحه بندی چند سطحی - sal_dovomi - 17 بهمن ۱۳۸۹ ۰۶:۵۷ ب.ظ

لطفاقطعه بندی صفحه بندی روهم توضیح بدین باشکل.

RE: صفحه بندی چند سطحی - ahmadnouri - 17 بهمن ۱۳۸۹ ۰۷:۵۷ ب.ظ

در قطعه بندی صفحه بندی برنامه نویس برنامه رو به قطعاتی تقسیم میکنه و سیستم عامل هم هر قطعه رو صفحه بندی میکن توجه داشته باشین که در جدول سگمنت آدرس شروع جدول صفحه قرار داره

صفحه بندی چند سطحی - zahra412 - 27 آبان ۱۳۹۰ ۱۲:۱۷ ق.ظ

سلام دوستان
میشه لطفا در مورد صفحه بندی معکوس هم توضیح بدید؟
ممنون میشم