حافظه اصلی
اسلاید 1: فصل 8: حافظه اصلی
اسلاید 2: مروری بر عناوین مطالبپیش زمینهمبادله (Swapping)اختصاص یکپارچهصفحه بندی (Paging)قطعه بندی (Segmentation)قطعه بندی به همراه صفحه بندی
اسلاید 3: برای اجرای یک برنامه باید ابتدا آن را به حافظه منتقل کرد و سپس آن را درون یک پردازه قرار داد تا اجرا شود.صف ورودی: مجموعه ی پردازه های روی دیسک که در انتظار ورود به حافظه برای اجرا هستند.برنامه های کاربر قبل از اجرا شدن، مراحل متعددی را طی می کنند.پیش زمینه
اسلاید 4: نگاشت آدرس دستورالعمل ها و داده ها به آدرس حافظه در سه مرحله امکان پذیر است...زمان کامپایل: اگر فضای حافظه برنامه از قبل شناخته شده باشد، می توان در زمان کامپایل آدرس ها را مشخص کرد. در صورتی که آدرس شروع حافظه برنامه تغییر کند، برنامه باید مجددا کامپایل شود.زمان بارگذاری: در صورتی که در زمان کامپایل آدرس حافظه برنامه مشخص نباشد، باید برای آن کد قابل جابجایی تولید شود.زمان اجرا: اگر بتوان پردازه را در زمان اجرا از یک قطعه حافظه به قطعه دیگر منتقل کرد می توان اختصاص آدرس حافظه به دستورالعمل ها و داده ها را تا زمان اجرا به تعویق انداخت.نیاز به حمایت سخت افزاری از نگاشت آدرس دارد، به عنوان مثال ثبات های base و limit.پیش زمینه
اسلاید 5: پردازش چند مرحله ای برنامه کاربر
اسلاید 6: یکی از مفاهیم اصلی مدیریت حافظه، فضای آدرس منطقی متناسب با فضای حافظه فیزیکی است.آدرس منطقی آدرسی است که توسط پردازنده تولید می شود و فضای آدرس مجازی نیز نامیده می شود.آدرس فیزیکی آدرسی است که توسط واحد حافظه دیده می شود.آدرس های منطقی و فیزیکی در روش های نگاشت فضای حافظه زمان کامپایل و زمان بارگذاری یکی هستند اما در روش زمان اجرا با یکدیگر متفاوتند.فضای حافظه منطقی و فیزیکی
اسلاید 7: واحد مدیریت حافظه (Memory Management Unit, MMU) یک ابزار سخت افزاری است که آدرس های مجازی را به آدرس فیزیکی نگاشت می کند.در MMU مقدار ثبات جابجایی (relocation reg.) هنگام ارسال آدرس های تولیدشده توسط پردازه کاربر به حافظه به آدرس اضافه می شود.برنامه کاربر صرفا با آدرس های منطقی کار می کند و اصولا اطلاعی از آدرس های فیزیکی واقعی ندارد. واحد مدیریت حافظه
اسلاید 8: جابجایی پویا با استفاده از ثبات جابجایی
اسلاید 9: در این روش یک روال تا زمانی که فراخوانی نشده است به درون حافظه اصلی منتقل نمی گردد.بهبود بهره وری فضای حافظه روالی که فراخوانی نمی شود بارگذاری نیز نمی شود.مناسب برای مواردی که حجم زیادی از کد برای حمایت از اتفاقات نادر مورد نیاز هستند.نیاز به حمایت خاصی توسط سیستم عامل ندارد و در فرایند طراحی برنامه مد نظر قرار می گیرد.بارگذاری پویا (Dynamic Loading)
اسلاید 10: در این روش اتصال پیمانه ها به یکدیگر تا زمان اجرا به تعویق می افتد.از قطعه کد کوچکی به نام stub برای جای دهی روتین کتابخانه ای مقیم در حافظه مناسب استفاده می شود. stub خودش را با آدرس روتین عوض می کند و روتین را اجرا می کند.سیستم عامل باید بررسی کند که روتین در فضای حافظه پردازه قرار دارد یا خیر؟این روش بخصوص برای کتابخانه ها بسیار مناسب است.اتصال پویا (Dynamic Linking)
اسلاید 11: می توان یک پردازه را موقتا از حافظه به یک انباره پشتیبان (Backing Store) منتقل کرد و پس از مدتی برای ادامه اجرا مجددا به حافظه فراخواند.انباره پشتیبان یک دیسک سریع و به اندازه کافی بزرگ است که می تواند تصاویر حافظه تمام کاربران را در خود جای دهد.ورود، خروج: شاخص مبادله برای الگوریتم های زمان بندی مبنی بر اولویت استفاده می شود. پردازه با اولویت پایین تر خارج می شود تا پردازه با اولویت بالاتر بتواند بارگذاری و اجرا شود.انباره باید امکان دسترسی مستقیم به تصاویر حافظه را فراهم آورد.بیشتر زمان مبادله پردازه صرف انتقال حافظه اختصاص یافته به پردازه ها می شود. زمان کل مبادله پردازه مستقیما به اندازه فضای حافظه ای که باید جابجا شود بستگی دارد.نسخه های متفاوتی از مبادله پردازه ها روی سیستم عامل های مختلف وجود دارد. (UNIX, Linux, and Windows)مبادله (Swapping)
اسلاید 12: طرح کلی مبادله پردازه ها
اسلاید 13: معمولا حافظه اصلی به دو قسمت تقسیم می شود:حافظه مقیم مربوط به سیستم عامل که معمولا به همراه بردار وقفه در آدرس پایین حافظه قرار می گیرد.پردازه های کاربر که معمولا در آدرس بالای حافظه قرار می گیرند.ثبات جابجایی (relocation reg.) برای محافظت از پردازه ها در قبال یکدیگر و همچنین محافظت از کد سیستم عامل در برابر پردازه ها استفاده می شود.مقدار ثبات پایه کوچکترین آدرس فضای فیزیکی اختصاص یافته به پردازه است.ثبات حد (limit reg.) دامنه آدرس های فیزیکی را تعیین می کند.هر آدرس منطقی باید از ثبات حد کوچکتر باشد.اختصاص همجوار (Contiguous Allocation)
اسلاید 14: محافظت از آدرس به صورت سخت افزاری به کمک ثبات های پایه و حد
اسلاید 15: یک ثبات پایه و یک ثبات حد یک فضای آدرس منطقی را تعریف می کنند.
اسلاید 16: اختصاص چندتکهبه بلاک های آزاد حافظه سوراخ (hole) می گویند. سوراخ ها در سراسر حافظه با اندازه های متفاوت پراکنده شده اند.وقتی یک پردازه وارد می شود، فضای حافظه مورد نیاز آن از یکی از سوراخ های موجود که به اندازه کافی بزرگ است اختصاص می یابد.سیستم عامل اطلاعات مربوط به 1) قطعه های اختصاص یافته و 2) قطعه های آزاد (سوراخ ها) را نگهداری می کند.اختصاص همجوار (ادامه)OSprocess 5process 8process 2OSprocess 5process 2OSprocess 5process 2OSprocess 5process 9process 2process 9process 10
اسلاید 17: چطور یک درخواست حافظه با اندازه n را از یک لیست از فضاهای آزاد برآورده کنیم؟اولین گزینه (First Fit): اولین فضای آزاد را که به اندازه کافی بزرگ باشد اختصاص می دهد.بهترین گزینه (Best Fit): کوچکترین فضای آزاد را که به اندازه کافی بزرگ باشد اختصاص می دهد.باید همه فضاهای آزاد را جستجو کرد، مگر آنکه اطلاعات مربوط به آنها مرتب شده باشد.کوچکترین فضای آزاد باقی مانده را تولید می کند.مساله اختصاص فضای پویا
اسلاید 18: بدترین گزینه (Worst Fit): بزرگترین فضای آزاد را که به اندازه کافی بزرگ باشد اختصاص می دهد.باز هم باید همه فضاهای آزاد را جستجو کرد، مگر آنکه اطلاعات مربوط به آنها مرتب شده باشد.بزرگترین فضای آزاد باقی مانده را تولید می کند.روش های اولین گزینه و بهترین گزینه بر اساس معیارهای سرعت و بهره وری فضای حافظه بهتر از بدترین گزینه هستند.مساله اختصاص فضای پویا (ادامه)
اسلاید 19: قطعه قطعه گی خارجیمجموع فضای حافظه آزاد برای اجابت درخواست کافی است، اما امکان اختصاص فضای یکپارچه وجود ندارد.قطعه قطعه گی داخلیفضای اختصاص یافته ممکن است اندکی از فضای درخواستی بیشتر باشد. این فضای اضافه در حافظه موجود است اما از آن استفاده نمی شود.قطعه قطعه گی (Fragmentation)
اسلاید 20: کاهش قطعه قطعه گی خارجی با فشرده سازی (Compaction)محتویات حافظه را جابجا کن تا تمام فضای آزاد در یک بلاک حافظه بزرگ قرار گیرد.فشرده سازی تنها در صورتی امکان پذیر است که جابجایی پویا باشد و در زمان اجرا صورت پذیرد.مشکل ورودی / خروجی: دستورات خواندن و نوشتن روی حافظه ای که در حال جابجایی است...وقتی حافظه درگیر ورودی/خروجی است آن را جابجا نکن.ورودی / خروجی را فقط با حافظه های میانگیر سیستم عامل انجام بده.قطعه قطعه گی (ادامه)
اسلاید 21: فضای آدرس منطقی اختصاص یافته به یک پردازه ممکن است یکپارچه نباشد.هر وقت فضای فیزیکی موجود بود به پردازه اختصاص داده می شود.حافظه فیزیکی به بلاک هایی با اندازه ثابت که قاب (frame) نامیده می شوند تقسیم می شود.اندازه هر قاب توانی از 2 بین 512 تا 8192 بایت است.حافظه منطقی به بلاک هایی با همان اندازه که صفحه (page) نامیده می شوند تقسیم می شود.صفحه بندی (Paging)
اسلاید 22: مشخصات تمام قاب های آزاد نگه داری می شود.برای اجرای برنامه ای با اندازه n صفحه باید n قاب آزاد پیدا کرد و سپس برنامه را بارگذاری کرد.از یک جدول صفحه (page table) برای تبدیل آدرس منطقی به فیزیکی استفاده می شود.قطعه قطعه گی داخلیصفحه بندی (Paging) (ادامه)
اسلاید 23: آدرس تولیدشده توسط پردازنده به دو قسمت شماره صفحه و افست صفحه تقسیم می شود.شماره صفحه به عنوان اندیسی استفاده می شود که به خانه ای از جدول صفحه اشاره می کند.جدول صفحه، آدرس شروع هر صفحه در فضای حافظه فیزیکی را دارد.افست (offset) صفحه با آدرس شروع صفحه ترکیب می شود تا آدرس فیزیکی را که به حافظه اصلی ارسال می شود تشکیل دهد.رویه ترجمه آدرس
اسلاید 24: معماری ترجمه آدرس
اسلاید 25: مثالی از صفحه بندی
اسلاید 26: مثالی دیگر از صفحه بندی
اسلاید 27: قاب های آزاد
اسلاید 28: جدول صفحه در حافظه اصلی نگهداری می شود.ثبات مبنای جدول صفحه (PTBR) به جدول صفحه اشاره می کند.ثبات اندازه جدول صفحه (PTLR) اندازه جدول صفحه را مشخص می کند.در این مدل دسترسی به هر دستورالعمل یا داده متضمن دو دسترسی به حافظه است: یکی به جدول صفحه و دیگری به آدرس فیزیکی.مشکل دسترسی دوتایی را می توان با استفاده از یک حافظه نهان سخت افزاری ویژه که قابلیت جستجوی سریع داشته باشد، حل کرد. به این سخت افزار حافظه انجمنی (Associative Memory) و یا حافظه میانگیر ترجمه (TLB ) می گویند.TLB : Translation Look-aside Buffersپیاده سازی جدول صفحه
اسلاید 29: حافظه ی انجمنی- جستجوی موازیترجمه ی آدرس (p,d)اگر p در ثبات انجمنی باشد، شماره ی قاب را از بیرون حافظه بارگذاری کن.در غیر این صورت شماره ی قاب را از جدول صفحه از حافظه بگیر.حافظه ی انجمنیPage #Frame #
اسلاید 30: صفحه بندی سخت افزار با TLB
اسلاید 31: جستجوی انجمنی = واحد زمانفرض کنید دوره ی زمانی حافظه 1 میلی ثانیه باشد.نرخ برخورد: درصد تعداد دفعاتی که شماره ی صفحه در رجیستر های انجمنی وجود دارد.این نرخ با تعداد رجیستر های انجمنی متناسب است.نرخ برخورد = زمان دستیابی موثر(EAT)EAT = (1 + ) + (2 + )(1 – )= 2 + – زمان دستیابی موثر
اسلاید 32: محافظت از حافظه به وسیله ی یک بیت محافظ انجمنی که همراه هر قاب است، پیاده سازی شده است.یک بیت اعتبار به هر ورودی در جدول صفحه مرتبط شده است.معتبر نشان دهنده ی این است که صفحه ی مرتبط در فضای آدرس منطقی پردازه است، پس یک صفحه ی معتبر است.نا معتبر نشان دهنده ی این است که صفحه در فضای آدرس منطقی پردازه نیست.محافظت از حافظه
اسلاید 33: بیت معتبر(V) و نامعتبر(i) در یک صفحه ی جدول
اسلاید 34: کد مشترکیک کپی از کد مشترک فقط خواندنی در میان پردازه ها (مثل پردازنده های متن، کامپایلرها و ... ) کد مشترک باید در فضای آدرس منطقی تمام پردازه ها، در مکان یکسان باشد.کد و داده ی خصوصیهر پردازه یک کپی مجزا از کد و داده نگه می دارد.صفحه ی کد و داده ی خصوصی می توانند هر جایی از فضای آدرس منطقی قرار بگیرند.صفحات مشترک
اسلاید 35: مثال از صفحات مشترک
اسلاید 36: صفحه بندی سلسله مراتبیجدول صفحه های در هم سازیجدول صفحه های معکوسساختار جدول صفحه
اسلاید 37: مفاهیم سیستم عامل دانشکده ی مهندسی برق و کامپیوتر- دانشگاه صنعتی نوشیروانی بابلفضای آدرس منطقی را به چندین جدول صفحه تقسیم می کند.یک روش ساده، جدول صفحه ی دو-سطحی است.صفحه بندی سلسله مراتبی
اسلاید 38: طرح یک جدول صفحه ی دو-سطحی
اسلاید 39: یک آدرس منطقی ( در یک ماشین 32 بیتی با اندازه ی صفحه ی 4K) تقسیم می شود به:یک شماره ی صفحه شامل 20 بیتیک افست صفحه شامل 12 بیتچون صفحه ی جدول صفحه بندی شده است، شماره ی صفحه تقسیم می شود به:10 بیت شماره ی صفحه10 بیت افست صفحهپس، یک آدرس منطقی به صورت زیر است:P1 اندیس صفحه ی جدول بیرونی است و P2 جابجایی داخل صفحه ی جدول صفحه ی بیرونی است.مثال صفحه بندی دو-سطحیpage numberpage offsetpip2d101012
اسلاید 40: طرح ترجمه ی آدرس برای یک معماری صفحه بندی 32 بیت دو سطحیطرح ترجمه ی آدرس
اسلاید 41: Three-level Paging Scheme
اسلاید 42: به طور معمول فضای آدرس ها > 32 بیتشماره ی صفحه ی مجازی داخل یک جدول صفحه در هم سازی (hash) می شوند. این جدول صفحه شامل یک زنجیره از عناصر است که برای یک مکان در هم سازی (hash) شده اند.شماره ی صفحات مجازی در این زنجیره aبرای پیدا کردن تلاقی مقایسه می شوند. اگر تلاقی وجود داشت، قاب فیزیکی مربوطه مورد استفاده قرار می گیرد.جدول صفحه ی در هم سازی
اسلاید 43: جدول صفحه ی در هم سازی
اسلاید 44: یک ورودی برای هر صفحه ی واقعی حافظهورودی شامل آدرس مجازی صفحه ای است که در آن مکان واقعی حافظه ذخیره شده است، همراه با اطلاعات درباره ی پردازه ی مالک آن صفحهحافظه ی مصرفی برای نگه داری هر صفحه را کم می کند، اما زمان لازم برای جستجوی جدول در زمان یک ارجاع به صفحه را زیاد می کند.از جدول در هم سازی برای محدود کردن جستجو به یک (ویا تعداد محدودی از) ورودی های جدول صفحه استفاده می شود.جدول صفحه ی معکوس
اسلاید 45: معماری جدول صفحه ی معکوس
اسلاید 46: طرحی برای مدیریت حافظه که از دید کاربر در مورد حافظه پیروی می کند.یک برنامه مجموعه ای از قطعه ها است. یک قطعه یک واحد منطقی است مثل:برنامه ی اصلیرویهتابعمتدشیءمتغیرهای محلی، متغیرهای کلیبلوک عمومیاستکجدول علائمآرایه هااست.قطعه بندی (Segmentation)
اسلاید 47: دید کاربر از یک برنامه
اسلاید 48: دید منطقی قطعه بندی 13241423user space physical memory space
اسلاید 49: آدرس منطقی از دو قسمت تشکیل شده است:< شماره ی قطعه، افست>جدول قطعه ها: آدرس های فیزیکی دو بعدی را نگاشت می کند. هر ورودی جدول دارای دو عنصر پایه و حد است.پایه: شامل آدرس فیزیکی شروع است.(مکانی که قطعه ها در حافظه قرار می گیرند.)حد: طول قطعه ها را مشخص می کند.رجیستر پایه ی جدول قطعه (STBR): به مکان جدول قطعه در حافظه اشاره می کند.رجیستر طول جدول قطعه (STLR) تعداد قطعه هایی که توسط یک برنامه استفاده شده است را مشخص می کند.شماره ی قطعه ی s معتبر است اگر s < STLR باشد.معماری قطعه بندی
اسلاید 50: محافظت: هر ورودی در جدول قطعه همراه است با:قطعه غیر مجاز است بیت اعتبار=0 اجازه ی خواندن، نوشتن، اجرا کردنبیت های محافظت همراه با قطعه ها هستند. اشتراک کد در سطح قطعه اتفاق می افتد.چون قطعات از لحاظ طول متفاوتند، تخصیص حافظه تبدیل به مسئله ی تخصیص حافظه ی پویا می شود.معماری قطعه بندی (ادامه)
اسلاید 51: معماری ترجمه ی آدرس
اسلاید 52: مثال قطعه بندی
اسلاید 53: به اشتراک گذاشتن قطعه ها
اسلاید 54: Example: The Intel PentiumSupports both segmentation and segmentation with pagingCPU generates logical addressGiven to segmentation unitWhich produces linear addresses Linear address given to paging unitWhich generates physical address in main memoryPaging units form equivalent of MMU
اسلاید 55: Logical to Physical Address Translation in Pentium
اسلاید 56: Intel Pentium Segmentation
اسلاید 57: Pentium Paging Architecture
اسلاید 58: Linear Address in LinuxBroken into four parts:
اسلاید 59: Three-level Paging in Linux
اسلاید 60: پایان فصل نهم
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.