0% found this document useful (0 votes)
27 views47 pages

Fvsft103 s06 A Notes

Uploaded by

behkia007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views47 pages

Fvsft103 s06 A Notes

Uploaded by

behkia007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

‫آموزش سیستم های عامل‬

‫‪faradars.org/fvsft103‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫سیستم های عامل‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫مدرس‪:‬‬

‫‪F‬‬ ‫‪a‬‬ ‫فرشید شیرافکن‬

‫دانشجوی دکتری دانشگاه تهران‬


‫(کارشناسی و کارشناسی ارشد ‪ :‬کامپیوتر نرم افزار) (دکتری‪ :‬بیو انفورماتیک)‬

‫‪1‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫فصل ششم‬
‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬
‫‪a‬‬
‫مدیریت حافظه‬
‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪2‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫یکی از وظایف سیستم عامل‪ ،‬مدیریت حافظه است‪.‬‬

‫مدیریت حافظه اصلی و مدیریت حافظه دیسک بر عهده سیستم عامل است‪.‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫مدیریت حافظه ‪:‬‬

‫‪F‬‬ ‫‪a‬‬ ‫‪ -1‬تک برنامگی‬


‫‪ -2‬چند برنامگی‬

‫‪3‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫چند برنامگی با پارتیشن ثابت‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪4‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫معایب مدیریت حافظه به روش پارتیشن بندی ایستا‬

‫س‬ ‫ر‬ ‫د‬ ‫‪ -1‬مشکل بودن تعیین تعداد و اندازه پارتیشن ها‪.‬‬

‫‪g‬‬
‫‪ -2‬محدود بودن درجه چند برنامگی به تعداد پارتیشن ها ‪.‬‬

‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪ -3‬تکه تکه شدن داخلی‬

‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬


‫‪5‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫صف‬

‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫هر پارتیشن می تواند‪ ،‬صف مربوط به خود را داشته باشد‪ .‬می توان یک صف مشترك برای همه پارتیشن ها در نظر گرفت‪.‬‬

‫س‬ ‫ر‬ ‫د‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪6‬‬
‫آموزش سیستم های عامل‬

‫ثبات پایه و حد‬ ‫‪faradars.org/fvsft103‬‬

‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫هنگامی که پردازنده به فرایندی داده می شود‪ ،‬آدرس شروع پارتیشن در ‪ Base‬و طول پارتیشن در ‪Limit‬‬

‫س‬ ‫ر‬ ‫قرار می گیرد‪.‬‬

‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫اگر ثبات پایه حاوی ‪ 100‬و ثبات حد شامل ‪ 20‬باشد‪ ،‬آن گاه برنامه می تواند به آدرسهایی از ‪ 100‬تا خود‬

‫‪a‬‬
‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪ ، 120‬دستیابی داشته باشد‪.‬‬

‫‪F‬‬ ‫‪a‬‬
‫‪7‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫برای جلوگیری از مشکل جا به جایی‪ ،‬هر آدرس حافظه ای که تولید می شود‪ ،‬قبل از ارسال به حافظه‪،‬‬

‫س‬ ‫ر‬ ‫مقدارش به صورت خودکار با محتوای ‪ Base‬جمع می شود‪.‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫برای جلوگیری از حفاظت‪ ،‬آدرس ها با محتوای ‪ Limit‬مقایسه می شوند تا به فضای خارج از پارتیشن‬

‫‪F‬‬ ‫‪a‬‬ ‫دسترسی نشود‪.‬‬

‫‪8‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫مبادله )‪(swapping‬‬

‫ﻓ‬
‫در سیستم های اشتراك زمانی در گاهی اوقات نمی توان همه فرایندهای فعال را در حافظه اصلی جای داد‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬


‫و باید فرایندهای اضافی به دیسک منتقل شده و بعدا به صورت پویا به داخل حافظه آورده شوند‪.‬‬
‫در روش مبادله‪ ،‬هر فرایند به طور کامل به حافظه اصلی آورده می شود و بعد از مدتی اجرا‪ ،‬به دیسک‬

‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫برگردانده می شود ‪(Swap in ,Swap out).‬‬

‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬


‫مثال در یک محیط چند برنامه ای که از ‪ RR‬استفاده می کند‪ ،‬وقتی فرایندی کوانتوم زمانی اش تمام می‬

‫‪F‬‬ ‫‪a‬‬
‫شود‪ ،‬با فرایند دیگری مبادله می شود‪.‬‬
‫در پارتیشن بندی پویا‪« ،‬تعداد‪ ،‬موقعیت و اندازه» پارتیشن ها متفاوت است‪ .‬این انعطاف پذیری باعث‬
‫بهبود بهره وری حافظه می شود‪.‬‬

‫‪9‬‬
‫آموزش سیستم های عامل‬

‫مثال‬ ‫‪faradars.org/fvsft103‬‬

‫شکل زیر نحوه عملکرد سیستمی را نشان می دهد که بر اساس مبادله کار می کند‪.‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫اگر انقیاد در زمان اسمبل یا بار کردن باشد‪ ،‬وقتی فرایندی از حافظه بیرون رفت‪ ،‬هنگام برگشت به حافظه‪ ،‬در همان فضای قبلی بر می گردد‪.‬‬
‫اگر انقیاد در زمان اجرا صورت گیرد‪ ،‬فرایند در محلی غیر از محل اول قرار می گیرد‪ ،‬زیر آدرسهای فیزیکی در زمان اجرا محاسبه می شوند‪.‬‬

‫‪10‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫تکه تکه شدن خارجی‬

‫ﺮ‬ ‫ﻓ‬
‫در پارتیشن بندی پویا‪ ،‬به خاطر مبادله‪ ،‬حفره های متعددی در حافظه به وجود می آید که باعث اتالف‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫حافظه می شود‪ .‬به این مشکل‪ ،‬تکه تکه شدن خارجی می گویند‪.‬‬

‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫برای مقابله با تکه تکه شدن خارجی از فشرده سازی میتوان استفاده کرد‪.‬‬

‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬


‫ساده ترین الگوریتم فشرده سازی این است که تمام حفره ها را به یک طرف برده و حفره بزرگی از حافظه‬

‫‪a‬‬‫‪r‬‬ ‫‪a‬‬
‫‪F‬‬
‫آزاد تشکیل می شود‪ .‬ولی این روش هزینه زیادی دارد‪.‬‬

‫‪11‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫تشخیص بخش های آزاد حافظه‬

‫ﺮ‬ ‫ﻓ‬
‫وقتی که حافظه به صورت پویا تخصیص داده می شود‪ ،‬سیستم عامل باید بداند که کدام بخش حافظه‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫در هر لحظه‪ ،‬تخصیص داده شده و کدام بخش آزاد است‪.‬‬

‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫برای این منظور‪ ،‬دو روش وجود دارد‪:‬‬

‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪ -1‬مدیریت حافظه با نگاشت های بیتی‬

‫‪F‬‬
‫‪ -2‬مدیریت حافظه با لیست های پیوندی‬

‫‪12‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫مدیریت حافظه با نگاشت های بیتی‬

‫ﺮ‬ ‫ﻓ‬
‫حافظه به چندین واحد تخصیص تقسیم می شود‪.‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫متناظر با هر واحد تخصیص‪،‬یک بیت وجود دارد‪.‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪D‬‬
‫اگر واحد متناظر آزاد باشد‪ ،‬این بیت ‪ 0‬است و در صورت پر بودن‪ 1 ،‬است‪.‬‬

‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬


‫‪13‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫مثال‬
‫شکل زیر قسمتی از حافظه شامل ‪ 5‬فرایند و ‪ 3‬حفره را نشان می دهد‪.‬‬

‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫مناطق هاشور خورده‪ ،‬فضاهای خالی هستند‪ .‬به طور مثال‪ 8 ،‬بیت اول ‪ ،‬شامل پنج تا ‪ 1‬و سه تا ‪ 0‬است‪.‬‬

‫س‬ ‫ر‬
‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫هر چه واحد تخصیص کوچکتر باشد‪ ،‬نگاشت بیتی بزرگتر خواهد بود‪.‬‬
‫اگر اندازه فرایند‪ ،‬ضریبی از اندازه واحد تخصیص نباشد‪ ،‬در آخرین واحد مقداری از حافظه هدر می رود‪.‬‬
‫برای انتقال یک فرایند به حافظه که به ‪ k‬واحد فضا نیاز دارد‪ ،‬مدیر حافظه باید در نگاشت بیتی جستجو کرده و ‪ k‬بیت متوالی ‪ 0‬را پیدا کند‪ .‬که‬
‫عملی زمانبر است‪.‬‬

‫‪14‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫مدیریت حافظه با لیست های پیوندی‬
‫یک لیست پیوندی از قطعه های آزاد یا تخصیص یافته حافظه تشکیل می شود‪.‬‬

‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫فضاهای خالی با ‪ H‬و فضاهای پر با ‪ P‬مشخص شده اند‪.‬‬

‫س‬ ‫ر‬
‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪ -4‬آدرس گره بعدی‬ ‫‪ -3‬طول‬ ‫‪ -2‬آدرس شروع‬
‫فیلدهای گره لیست پیوندی‪:‬‬
‫‪ -1‬حفره یا فرایند بودن‬

‫مزیت این روش این است که زمانی که فرایندی خاتمه می یابد‪ ،‬یا مبادله می شود‪ ،‬این لیست به سادگی ‪ update‬می شود‪.‬‬

‫‪15‬‬
‫آموزش سیستم های عامل‬
‫الگوریتم های مکان یابی و تخصیص حافظه‬ ‫‪faradars.org/fvsft103‬‬

‫وقتی فرایندها و حفره ها در یک لیست مرتب شده بر اساس آدرس قرار می گیرند‪ ،‬الگوریتم های مختلفی جهت تخصیص‬

‫ﻓ‬
‫حافظه به یک فرایند وجود دارد‪.‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫‪ -1‬اولین برازش )‪(First fit‬‬


‫جستجو از ابتدای حافظه شروع شده و فرایند در اولین حفره ای قرار داده می شود که در آن جا می شود‪.‬‬

‫‪r‬‬ ‫‪g‬‬
‫‪ -2‬برازش بعدی )‪(Next fit‬‬

‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬


‫مانند ‪ First fit‬است‪ ،‬با این تفاوت که جستجو از آخرین محل تخصیص شروع می شود‪.‬‬

‫‪F‬‬ ‫‪a‬‬
‫‪ -3‬بهترین برازش )‪(Best fit‬‬

‫تمام لیست جستجو می شود و فرایند در کوچکترین حفره ای قرار داده می شود که در آن جا می شود‪.‬‬

‫‪ -4‬بدترین برازش )‪(Worst fit‬‬

‫تمام لیست جستجو می شود و فرایند در بزرگترین حفره ای قرار داده می شود که در آن جا می شود‪.‬‬
‫‪16‬‬
‫آموزش سیستم های عامل‬
‫مثال‬ ‫‪faradars.org/fvsft103‬‬

‫تخصیص فضا به فرایند ‪ 16‬مگابایتی‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪17‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫مثال‬

‫ﻓ‬
‫در یک سیستم که مدیریت حافظه با استفاده از مبادله انجام میشود‪ ،‬حافظه اصلی شامل فضاهای خالی با اندازههای به ترتیب‬

‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬


‫‪(10 , 4 , 20 , 18 , 7 , 9 , 12‬چپ به راست) است‪ .‬برای درخواست تکه هایی از حافظه به طور متوالی و به مقدارهای ‪ 12‬و‪ 10‬و‬

‫س‬
‫‪ 6‬کیلو بایت با استفاده از روش های گفته شده کدام یک از فضاهای خالی فوق الذکر اشغال میشوند؟‬

‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪10‬‬ ‫‪4‬‬ ‫‪20 18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪12 10‬‬

‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪4‬‬ ‫‪8 18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬

‫‪F‬‬
‫‪10 0‬‬ ‫‪4‬‬ ‫‪8 18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬
‫‪6 0‬‬ ‫‪4‬‬ ‫‪2 18‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪12‬‬

‫‪First fit‬‬

‫‪18‬‬
‫آموزش سیستم های عامل‬
faradars.org/fvsft103

Next fit

‫س‬
10
12 10
‫ر‬ ‫د‬ ‫ا‬
4 20
4 8 ‫ﺮ‬ ‫ﻓ‬18
18
7
7
9
9
12
12

or g
10 10 4 8 8 7 9 12
6 10

r aD a
4 8

r s
2
. 7 9 12

F a
19
‫آموزش سیستم های عامل‬
faradars.org/fvsft103
Best fit

‫س‬
12 10
‫ر‬
10

‫د‬ ‫ا‬
4
4 ‫ﺮ‬ ‫ﻓ‬
20 18 7
20 18 7
9 12
9 0

r g
10 0 4 20 18 7 9 0
6

r
0

aD a
4

r s .o
20 18 1 9 0

F a
20
‫آموزش سیستم های عامل‬
faradars.org/fvsft103

Worst fit

‫س‬
10
12 10 ‫ر‬ ‫د‬
4
4
‫ا‬ ‫ﺮ‬ ‫ﻓ‬
20
8
18
18
7
7
9
9
12
12
10 10 4

a r s
8

.or
8
g 7 9 12

r aD
6 10 4 8 8 7 9 6

F a
21
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫‪ ‬اگر لیست فضاهای خالی بر اساس اندازه فضاها مرتب باشد‪ ،‬سرعت‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬ ‫‪ ،Best fit‬افزایش می یابد‪.‬‬

‫‪g‬‬
‫‪ ‬سرعت الگوریتم های ‪ Best fit‬و ‪ Worst fit‬پایین است‪ ،‬چون کل لیست باید‬

‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫جستجو شود‪.‬‬

‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬


‫‪ ‬در ‪ ،Next fit‬حفره های بزرگ انتهای حافظه سریع تر شکسته می شود و در ورود‬
‫فرایندهای بزرگ بعدی‪ ،‬مشکل ایجاد می شود‪.‬‬

‫‪22‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫برازش سریع )‪(Quick fit‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫برای هر دسته از فرایندها با اندازه های متداول‪ ،‬یک لیست جداگانه تهیه می شود‪.‬‬
‫جدولی با ‪ n‬خانه را فرض کنید که ‪:‬‬

‫‪r‬‬ ‫‪g‬‬
‫خانه اول ‪ :‬اشاره گری به ابتدای لیست حفره های ‪ 4‬کیلو بایتی‪،‬‬

‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬ ‫خانه دوم‪ :‬به ابتدای حفره های ‪ 8‬کیلو بایتی‬

‫‪F‬‬ ‫‪a‬‬
‫و ‪...‬‬

‫یافتن حفره ای با اندازه مناسب‪ ،‬بسیار سریع است‪.‬‬

‫‪23‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫مدیریت حافظه با سیستم رفاقتی )‪(Buddy System‬‬
‫در بخش بندی ایستا امکان تکه تکه شدن داخلی و در بخش بندی پویا ‪ ،‬امکان تکه تکه شدن خارجی‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬ ‫وجود دارد‪.‬‬


‫سیستم رفاقتی‪ ،‬یک تعادل قابل قبول برای فائق آمدن بر معایب طرحهای بخش بندی ایستا و پویا است‪.‬‬

‫‪r‬‬ ‫‪g‬‬
‫اندازه بالکهای حافظه توانی از ‪ 2‬میباشند‪.‬‬

‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬


‫‪F‬‬ ‫‪a‬‬
‫‪24‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫نحوه کار‪:‬‬
‫اگر اندازه یک حفره برابر ‪ 2k‬باشد و فرایندی به اندازه ‪ S‬باید به داخل آن مبادله شود‪ ،‬اگر ‪ S‬از نصف‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫اندازه حفره بزرگتر بود‪ ،‬کل فضا به آن داده می شود‪ ،‬در غیر اینصورت‪،‬کل بلوك نصف شده و دو بلوك رفیق‬
‫ایجاد می شود‪ .‬این روند به صورت بازگشتی تکرار خواهد شد‪ .‬در صورت آزاد شدن یک حفره‪ ،‬امکان‬

‫‪g‬‬
‫ترکیب رفقای مجاور می باشد‪.‬‬

‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬


‫‪a‬‬‫‪r‬‬ ‫‪a‬‬
‫از معایب سیستم رفاقتی‪ ،‬اتالف حافظه در این روش است‪.‬‬

‫‪F‬‬
‫‪25‬‬
‫آموزش سیستم های عامل‬
‫مثال‬ ‫‪faradars.org/fvsft103‬‬

‫شکل زیر نحوه عملکرد سیستم رفاقتی را نشان می دهد‪:‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪26‬‬
‫آموزش سیستم های عامل‬
‫ساختار درختی سیستم رفاقتی‬ ‫‪faradars.org/fvsft103‬‬

‫مزیت سیستم رفاقتی این است که چیدمان حفره ها ساخت یافته است و می توان یک ساختار درختی برای بلوك های پر و‬

‫ﺮ‬ ‫ﻓ‬
‫خالی ایجاد کرد و با یک الگوریتم بازگشتی‪ ،‬حفره مناسب را خیلی سریع پیدا کرد‪.‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫مثال‪ :‬درخت دودویی بعد از درخواست ‪Release B‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪27‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫ر‬ ‫د‬
‫صفحه س‬
‫بندی‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬
‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪28‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫صفحه بندی )‪(Paging‬‬

‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫حافظه اصلی به بلوکهایی با اندازه های ثابت به نام قاب )‪(frame‬تقسیم می شود‪.‬‬

‫س‬ ‫ر‬
‫حافظه منطقی به بلوك هایی با اندازه های یکسان به نام صفحه )‪(page‬تقسیم میشود‪.‬‬
‫اندازه صفحه و اندازه قاب توسط سخت افزار تعریف می شود‪.‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫وقتی یک فرایند به داخل حافظه آورده میشود‪ ،‬تمام صفحات آن به داخل قابهای موجود بار میشوند‬

‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫و یک جدول صفحه ایجاد میشود‪.‬‬

‫‪F‬‬ ‫‪a‬‬ ‫جدول صفحه‪ ،‬محل قاب هر صفحه از فرایند را مشخص میکند‪.‬‬
‫اندازه صفحه و اندازه قاب باید توانی از ‪ 2‬باشند‪.‬‬
‫نقطه ضعف اصلی صفحه بندی تکه تکه شدن داخلی است‪.‬‬

‫‪29‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫مثال‬

‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫تخصیص قاب های آزاد به صفحههای فرایند ‪ A‬و نمایش جدول صفحه ‪:‬‬

‫س‬ ‫ر‬ ‫د‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪30‬‬
‫آموزش سیستم های عامل‬
‫مثال‬ faradars.org/fvsft103

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


a r s .or g
F ar aD
31
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫ترجمه آدرس در سیستم صفحه بندی‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬‫آدرس منطقی از دو قسمت تشکیل شده است‪:‬‬

‫‪ -2‬آفست )‪(d‬‬ ‫‪ -1‬شماره صفحه )‪(P‬‬

‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫پردازنده به کمک جدول صفحه‪ ،‬یک آدرس فیزیکی تولید میکند‪.‬‬

‫‪a‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫آدرس فیزیکی از دو قسمت تشکیل شده است‪:‬‬

‫‪ -2‬آفست‬ ‫‪ -1‬شماره قاب‬

‫به آفست‪ ،‬انحراف یا تفاوت مکان نیز می گویند‪.‬‬

‫‪32‬‬
‫آموزش سیستم های عامل‬

‫نحوه ترجمه آدرس در سیستم صفحه بندی‬ ‫‪faradars.org/fvsft103‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪33‬‬
‫آموزش سیستم های عامل‬

‫مثال‬ ‫‪faradars.org/fvsft103‬‬

‫با توجه به آدرس نسبی ‪ ، 0000010111011110‬چند بیت برای شماره صفحه نیاز است؟‬

‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫(اندازه صفحه برابر یک کیلو بایت می باشد‪).‬‬

‫ر‬ ‫د‬
‫پاسخ‪ :‬اندازه صفحه یک کیلو بایت است‪ ،‬پس‪ 10‬بیت برای آفست مورد نیاز است‪.‬‬

‫س‬
‫چون آدرس ‪ 16‬بیتی است‪ 6 ،‬بیت برای شماره صفحه باقی میماند‪.‬‬
‫آدرس نسبی داده شده دارای آفست (‪ )0111011110‬در صفحه (‪ )000001‬است‪.‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫یک برنامه میتواند حداکثر ‪ 26 = 64‬صفحه یک کیلوبایتی داشته باشد‪.‬‬
‫‪34‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫مثال‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫یک فضای آدرس دهی منطقی شامل ‪ 4‬صفحه است و هر صفحه حاوی ‪ 2‬کلمه است‪ .‬اگر این صفحات بر روی‬
‫یک فضای آدرس دهی فیزیکی حاوی ‪ 8‬قاب صفحه نگاشت شود‪ ،‬آدرس منطقی و فیزیکی چند بیتی خواهد‬

‫‪r‬‬ ‫‪g‬‬
‫بود؟‬

‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬ ‫‪4× 2 = 8 = 23‬‬ ‫فضای آدرس دهی منطقی‪:‬‬

‫‪F‬‬ ‫‪a‬‬ ‫‪8× 2 = 16 = 24‬‬ ‫فضای آدرس دهی فیزیکی‪:‬‬

‫بنابراین آدرس منطقی ‪ 3‬بیتی و آدرس فیزیکی ‪ 4‬بیتی است‪.‬‬

‫‪35‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫مثال‬

‫ﺮ‬ ‫ﻓ‬
‫در یک سیستم حافظه صفحه بندی با یک جدول صفحه حاوی ‪ 64‬مدخل ‪ 10‬بیتی و صفحه های ‪ 512‬بایتی‪،‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫آدرس منطقی و فیزیکی چند بیتی است؟‬
‫اندازه حافظه منطقی =حاصل ضرب تعداد صفحات (تعداد مدخل ها) در اندازه هر صفحه‪:‬‬

‫‪64× 512 = 26 × 29 = 215‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪210 × 512 = 219‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫اندازه حافظه فیزیکی =حاصل ضرب تعداد آدرسها در اندازه هر صفحه‪:‬‬

‫بنابراین آدرس منطقی ‪ 15‬بیتی و آدرس فیزیکی ‪ 19‬بیتی است‪.‬‬

‫‪36‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫مثال‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫در یک فضای آدرس دهی منطقی هر صفحه حاوی ‪ 512‬کلمه است‪ .‬صفحات حافظه اصلی بر روی یک‬

‫فضای آدرس دهی فیزیکی حاوی ‪ 8‬قاب صفحه نگاشته می شود‪ .‬آدرس فیزیکی حاوی چند بیت است؟‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪3‬‬
‫‪8× 512 = 2 × 2 = 2‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬
‫‪9‬‬
‫‪a‬‬‫‪D‬‬ ‫‪12‬‬

‫‪37‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬


‫قطعه بندی‬
‫ﻓ‬
‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪38‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫قطعه بندی‬
‫در روش قطعه بندی برای مدیریت حافظه‪ ،‬برنامه و داده ها به تعدادی قطعه )‪ (Segment‬تقسیم میشوند‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬ ‫و لزومی ندارد اندازه این قطعهها هم اندازه باشند‪.‬‬

‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬


‫هنگامی که یک فرایند به داخل آورده میشود‪ ،‬کلیه قطعههای آن به داخل حافظه بار میشوند و جدول‬

‫قطعه ایجاد می شود‪.‬‬

‫هر سطر این جدول شامل آدرس شروع قطعه مورد نظر در حافظه اصلی و طول قطعه می باشد‪.‬‬

‫‪39‬‬
‫آموزش سیستم های عامل‬
‫دید منطقی از قطعه بندی‬ ‫‪faradars.org/fvsft103‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪40‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫نکاتی در رابطه با قطعه بندی‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫‪ -1‬آدرس منطقی از دو قسمت تشکیل یافته است‪ :‬شماره قطعه و آفست‪.‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪ -2‬امتیاز قطعه بندی‪ ،‬حفاظت از قطعات و اشتراك داده ها و کد می باشد‪.‬‬

‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬


‫‪ -3‬الگوی صفحه بندی نمی تواند حافظه فیزیکی را از دیدگاه کاربر نسبت به‬

‫حافظه تفکیک کند‪.‬‬

‫‪41‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫قطعه بندی به دلیل بکارگیری قطعههای غیرهم اندازه‪ ،‬مشابه بخش بندی پویا است‪.‬‬ ‫‪-4‬‬

‫ﻓ‬
‫البته در قطعه بندی یک برنامه میتواند بیش از یک بخش را اشغال کند و لزومی ندارد‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫این بخشها پیوسته باشند‪.‬‬

‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪ -5‬قطعه بندی تکه تکه شدن داخلی را حذف میکند‪ ،‬اما دارای تکه تکه شدن خارجی‬

‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬ ‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫است‪.‬‬

‫‪F‬‬
‫‪ -6‬در حالی که صفحه بندی از دید برنامهساز مخفی است‪ ،‬قطعه بندی قابل رویت و عامل‬

‫تسهیل سازماندهی برنامهها و دادهها میباشد‪.‬‬


‫‪42‬‬
‫آموزش سیستم های عامل‬

‫سخت افزار قطعه بندی‬ ‫‪faradars.org/fvsft103‬‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪43‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫مثال‬

‫ﺮ‬ ‫ﻓ‬
‫آدرس منطقی ‪ 16‬بیتی ‪ 0001001011110000‬مفروض است‪ .‬نحوه تولید آدرس فیزیکی در روش قطعه بندی را‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫نشان دهید‪( .‬آفست ‪ 12‬بیتی و شماره قطعه ‪ 4‬بیتی)‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫آدرس فیزیکی از جمع آفست ‪ 12‬بیتی با مقدار پایه بدست می آید‪.‬‬

‫‪212  4096‬‬ ‫حداکثر اندازه قطعه ‪:‬‬


‫‪44‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬
‫مثال‬

‫ﺮ‬ ‫ﻓ‬
‫کدام آدرس منطقی فاقد آدرس فیزیکی هستند؟‬

‫ا‬
‫‪2, 700‬‬
‫‪0,150‬‬

‫س‬ ‫ر‬ ‫د‬


‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫آدرس منطقی در سیستم قطعه بندی از دو قسمت (شماره قطعه و آفست) تشکیل شده‪،‬‬
‫اولین آدرس منطقی‪،‬آدرس فیزیکی ندارد‪ ،‬چون ‪700  600 :‬‬

‫آدرس منطقی دوم ‪ ،‬دارای آدرس فیزیکی است‪ ،‬چون ‪150  200 :‬‬
‫این آدرس برابر است با‪500  150  650 :‬‬

‫‪45‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫ر‬ ‫د‬
‫پایانس‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬
‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬
‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫‪46‬‬
‫آموزش سیستم های عامل‬
‫‪faradars.org/fvsft103‬‬

‫این اسالید ها بر مبنای نکات مطرح شده در فرادرس‬

‫س‬ ‫ر‬ ‫د‬ ‫ا‬ ‫ﺮ‬ ‫ﻓ‬


‫«آموزش سیستم های عامل»‬
‫تهیه شده است‪.‬‬

‫‪a‬‬ ‫‪r‬‬ ‫‪s‬‬ ‫‪.‬‬‫‪o‬‬‫‪r‬‬ ‫‪g‬‬


‫‪F‬‬ ‫‪a‬‬‫‪r‬‬ ‫‪a‬‬‫‪D‬‬
‫برای کسب اطالعات بیشتر در مورد این آموزش به لینک زیر مراجعه نمایید‪.‬‬

‫‪47‬‬

You might also like