لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 11
صفحهبندی
به منظور برخورد با مشکل قطعه قطعه شدن خارجی حافظه و همچنین دستیابی به فضای آدرسدهی از فضای حافظه فیزیکی، میتوان از صفحهبندی استفاده نمود. در این روش، حافظه در بخشهایی به نام قاب صفحه درنظر گرفته میشود و هر برنامه نیز از نظر منطقی به بخشهایی با همان اندازه موسوم به صفحه تقسیم میشود. در چنین وضعیتی، هر صفحه از یک برنامه میتواند در هر قاب آزاد حافظه قرار گیرد. در نتیجه این تخصیص از نوع همجوار میباشد و بنابراین برای هر برنامه جدولی به نام جدول صفحه وجود دارد که نگاشت صفحات منطقی را به قابهای فیزیکی حافظه انجام دهد.
نکته: صفحهبندی به صورت گفته شده، موجب ایجاد فضای آدرسدهی مجازی بزرگتر از مجموع اندازه برنامهها نمیشود (باید اندازه حافظه به اندازه برنامهها باشد)، از این رو طول آدرس فیزیکی حافظه بزرگتر یا برابر آدرس منطقی برنامهها است.
صفحهبندی مشکل قطعه قطعه شدن خارجی را از بین میبرد، ولی خود موجب قطعه قطعه شدن داخلی میشود، چون اندازه قابها (صفحات) مستقل از اندازه برنامهها تعیین شده و غالباً فضایی به اندازه حداکثر یک قاب در اختیار صفحه آخر هر برنامه بلااستفاده باقی میماند.
نکته: اگر اندازه قابها به منظور کاهش قطعه قطعه شدن داخلی کوچک درنظر گرفته شود، تعداد صفحات زیاد شده و اندازه جداول صفحه و زمان تبدیل آدرس افزایش مییابد.
در صفحهبندی، هر آدرس برنامه به دو بخش شماره صفحه و اختلاف مکان در صفحه تقسیم میشود و در هنگام اجرا، سختافزار سیستم، عمل نگاشت شماره صفحه به شماره قاب را با استفاده از جدول صفحه انجام میدهد.
شکل 1، صفحهبندی
با توجه به اینکه در مکانیزم تبدیل آدرس، برای اجرای هر دستور یک مراجعه به جدول و یک مراجعه به حافظه لازم است، محل قرار گرفتن جدول صفحه مهم میباشد. جدول صفحه میتواند در ثباتهای خاص و یا در حافظههای سریع و موسوم به حافظه تناظری قرار گیرد. به دلیل محدود بودن بودن اندازه TBL همواره بخشی از جدول صفحه هر برنامه در داخل TLB قرار میگیرد و در هنگام تبدیل آدرس، اگر سطر حاوی شماره صفحه و شماره قاب در TLB موجود باشد، وضعیت برخورد (hit) رخ میدهد و اگر این سطر موجود نباشد، وضعیت عدم برخورد (miss) پیش میآید که نسبت این دو به نام نسبت برخورد از رابطه زیر محاسبه میشود:
hit ratio = hit/hit + miss
اشتراک و حفاظت در صفحهبندی
اشتراک در صفحهبندی به مفهوم استفاده چند برنامه از صفحات مشترک و در نتیجه، استفاده بهتر از حافظه است. با توجه به اینکه تقسیم برنامهها به صفحات، صرفاً با معیار اندازه قابها و نه بر اساس معیار منطقی نظیر ریزبرنامهها و روالها انجام میشود، امکان اینکه یک صفحه از برنامهای برای برنامه دیگر قابل استفاده باشد، معمولاً پیش نمیآید.
در مواردی نظیر استفاده چندین کاربر از یک ویرایشگر، در صورتی که بخش کد برنامه از قسمت دادهها جدا شده و در صفحات مجزایی قرار گیرد، امکان اشتراک وجود دارد، ولی به طور کلی، صفحهبندی از نظر اشتراک ضعیف است. حفاظت در صفحهبندی به مفهوم جلوگیری از دسترسی یک برنامه به صفحات برنامههای دیگر و نیز جلوگیری از تغییر بیمورد بخش کد یک برنامه میباشد. برای پیادهسازی حفاظت، میتوان از چندین بیت در کنار هر سطر جدول صفحه استفاده کرد. این بیتها قابل خواندن، نوشتن و قابل اجرا بودن محتویات صفحه را مشخص میکنند. همچنین با داشتن یک ثبات به نام PTLR میتوان محدوده جدول صفحه یک برنامه را در حافظه مشخص نمود.
حافظه مجازی
حافظه مجازی به مفهوم متفاوت بودن فضای آدرسدهی کاربر (آدرسهای منطقی) از فضای آدرس حافظه (آدرسهای فیزیکی) میباشد، ولی عموماً به مفهوم بزرگتر بودن فضای آدرس منطقی از فضای آدرس فیزیکی درنظر گرفته میشود. بدین منظور با اجرای روش صفحهبندی به صورت مناسب میتوان به این هدف دست یافت.
صفحهبندی بر حسب نیاز
اگر در روش صفحهبندی به جای بار کردن یک برنامه، فقط بخشی از کد و داده آن که فعلاً مورد رجوع قرار دارد، به حافظه بار شود، میتوان با درنظر گرفتن حداقل یک قاب برای هر برنامه، اجرای آن را شروع نمود. برای اعمال این تغییر باید با داشتن اطلاعات اضافی در جدول صفحه هر برنامه، صفحات موجود آن در حافظه اصلی نیست با بروز یک وقفه فقدان صفحه از حافظه جانبی به حافظه اصلی منتقل شود. در سیستمی از صفحهبندی بر حسبت نیاز استفاده میکند، مراحل زیر برای هر دسترسی به حافظه توسط مدیر حافظه انجام میشود:
با دریافت یک دستور، مراجعه به صفحهای با رجوع به جدول صفحه وجود یا عدم وجود آن صفحه در حافظه بررسی میشود و این بررسی با استفاده از بیت موجود بودن یا نبودن هر سطر جدول صفحه انجام میشود.
اگر صفحه مورد رجوع در حافظه نیست یا بروز وقفه فقدان صفحه از نوع Trap کنترل به مدیر حافظه سیستم عامل منتقل میشود تا سرویسدهی این وقفه انجام شود.
یک قاب آزاد برای بار کردن صفحه مورد تقاضا به حافظه جستجو میشود. در صورتی که هیچ قاب آزادی موجود نباشد، بر اساس آلگوریتمهایی که در ادامه ذکر میشود، یکی از قابهای پر انتخاب میشود.
با ارسال دستوری به بخش دیسک، دیسکگردان جهت خواندن صفحه مورد نیاز به قاب تعیین شده و با مقداردهی اولیه راهاندازی میشود.
با اتمام خواندن آن صفحه به حافظه، اصلاحات لازم در جدول صفحه انجام میشود (بیت موجود بودن صفحه اصلاح میشود).
دستور مراجعه به حافظه مجدداً اجرا میشود و اکنون صفحه مورد تقاضا در حافظه قرار دارد.
تحقیق و بررسی در مورد صفحهبندی در سیستم عامل 10 ص