صفحه 1:
صفحه 2:
۱ (( a An oan]
#تقسیم بندی حافظه به منظور پذیرش چندین فرآیند
۴ باید طوری حافظه را تخصیص دهیم که بیشترین تعداد
ممکن از فرآیندها را جا دهیم.
صفحه 3:
0 عاج جوج سنيج 18 ی ری ۱4((۹] 7(
® تخصیص مجدد
برنامه نویس نمی داند که برنامه در حین اجرا در کجای حافظه قرار
می گيرد.
*” ممكن است در حین اجرا برنامه به حافظه جانبی فرستاده شود و در
هنكام بركشت به حافظه اصلی در جای متفاوتی قرار گیرد.
* ارجاعات به حافظه اصلى بايد بطریقی به آدرس فیزیکی واقعی
تبديل شوند.
صفحه 4:
Process control جه سس
Information Entry point جد
to program
Branch
instruction
Increasing
address
values
Reference
todata
نت ها امس
of stack
صفحه 5:
car aS ON cae CANE CNG od 0 0ك
© حفاظت
* فرآیندها نباید بدون مجوز به فضاى آدرس ديكر فرآيندها دسترسى داشته
ably
* به دلیل امکان تخصیص مجدد نمی توان در برنامه ها از آدرسهای مطلق
استفاده کرد.
* سیستم عامل نمی تواند تمام ارجاعات یک ف رآیند به حافظه را پیش بینی کند.
* لذا این امر باید در حین اجرا کنترل شود.
٩ اشتراک
* به فرآیندهای مختلف اجازه می دهد که قسمتی از حافظه را بصورت اشتراکی
استفاده کنند.
صفحه 6:
car aS ON cae CANE CNG od 0 0ك
سازماندهی منطقی
برنامه ها بصورت ماژول نوشته می شوند.
؟ مازولها می توانند بصورت جداگانه نوشته و کامپایل شوند.
*می توان ماژولها را به اشتراک گذاشت.
سازماندهی فیزیکی
* حافظه موجود ممکن است از حد نیاز برنامه و داده های آن کمتر
باشد.
® برنامه نویس نمی داند مقدار حافظه موجود چقدر است.
صفحه 7:
#پارتیشن های هم اندازه
* هر فرآیندی که سایز آن کمتر یا مساوی اندازه پارتیشن است » می
تواند درون یک پارتیشن خالی قرار گیرد.
؟ اگر همه پارتیشن ها پر باشنده سیستم عامل می تواند یک فرآیند را
به حافظه جانبی بر گرداند.
* ممکن است اندازه ف رآیندی از اندازه پارتیشن بزرگتر باشد.
* استفاده ما از حافظه غیر موثر است. هر برنامه ای حتی اگر خیلی
کوچک باشد یک پارتیشن کامل را اشغال می کند. این مشکل ASS
تکه شدن داخلی نام دارد.
صفحه 8:
operating System Operating System
aM 8M.
2
ده iM
om
aM.
sm
su
م
sM
nM
aM.
su
1M
2
(a) Equa sie partons (0) Unequal size partitions
Figure 7.2. Example of Fixed Partitioning of a 64-Mbyte Memory
صفحه 9:
۱ (esa assed wits Punticas 0
# پارتیشنهای هم اندازه
" چون سایز پارتیشنها برابر است» مهم نیست که کدام پارتیشن
مصرف می شود.
#پارتیشنهای با سایز متفاوت.
* مى توان هر فرآيند را به كوجكترين يارتيشنى كه جا مى شود
تخصیص داد.
۴ فرآیندها را طوری تخصیص می دهیم که اتلاف حافظه مینیمم شود.
#صف بندی:
* هر پارتیشن دارای یک صف
* يك صف براى همه
صفحه 10:
New
Processes
New
Processes
(a) One process queue per partition (b) Single process queue
Figure 7.3. Memory Assignment for Fixed Partitioning
صفحه 11:
در روش دینامیک » تعداد و اندازه پارتيشنها متغییر است.
# حافظه ای که به فرآیند تخصیص داده می شود دقیقا به اندازه
مورد نیاز آن است.
این روش در نهایت منجر به ایجاد حفره های زیادی در حافظه
خواهد شد. به این پدیده تکه تکه شدن خارجی گفته می
۳
شود.
#برای حل این مشکل از تکنیک فشرده سازی استفاده می گردد.
صفحه 12:
ام ی
2
20M
14M 14M
SoM
22M
fa) (b) © نا
Figure 7.4 The Effect of Dynamic Partitioning
صفحه 13:
۳ tia 1
| سس |
لا
لكا
لا
Process 3
۷
|. on ou
Process 3 | ۷ Process 3 |} 18M 18M 18M
4M 4M 4M 4M
fe) 40 © زم
Figure 7.4 The Effect of Dynamic Partitioning
صفحه 14:
0 دم ل ا ۱۱۱
# سیستم عامل باید در مورد نحوه تخصیص فضاهای خالی به فرآیند
2
تصمیم بگیرد.
؟ الگوریتم Dest
© بلوکی را انتخاب می کند که اندازه آن به سایز درخواست فرآیند نزدیکتر
است. (کوچکترین بلوکی که فرآیند در آن جا می شود).
* این روش در مقایسه با دو روش دیگر که در ادامه معرفی می شوند عملکرد
بدتری دارد.
* چون بلو کهای کوچکتر انتخاب می شونده تکه های باقیمانده کوچکتر خواهند
بود. این تکه ها معمولا مصرف نمی شوند لذا نیاز به فشرده سازی بیشتر خواهد
by
صفحه 15:
0 دم ل ا ۱۱۱
© الگوریتم ۷-:۳)
* سریعترین است.
منجر به تجمع فرآیندها در ابتدای حافظه می شود. هنگام جستجوی برای پیدا
كردن فضاى خالى بايد از اين فرآیندها گذر کنیم تا یک بلوک خالی بيدا
شود.
Der Pit 9 N°
* اغلب اوقات قسمتهای انتهایی حافظه را برای تخصیص مورد استفاده قرار می
دهد.
* قسمتهای انتهایی شامل بلو کهای بزرگی از حافظه هستند که شکسته می شوند.
* فشرده سازی موقعی نیاز است که به یک بلوک بز رگ در انتهای حافظه نیاز
داریم.
صفحه 16:
aM
20M
Water
9 سسب
Crem
ا
ره
میاه
ut
انم
Figure 7.5 Example Memory Configuration Before
and After Allocation of 16 Mbyte Block
صفحه 17:
۲ (ce
کل فضای حافظه را به عنوان يكك بلوکک با سایز در نظر
مى كيريم.
© ۳ ۳
اگر درخواست ما یعنی < طوری بود كه <> ج > 6294©
اج ع
کل بلوک را در بر می گيرد.
#در غیر اینصورت:
* بلوك را به دو قسمت مساوی تقسیم می کنیم.
وتا = أي
الگوریتم را آنقدر ادامه می دهیم تا کوچکترین بلو کی که از <
بزرگتر هست ؛ تولید شود.
صفحه 18:
2561
2561
2561
2561
2561
3
5121
5121
312K
D=256K
D=256K
D=256K
D=256K
D=256K
D=256K
IM
13۳
2561
2561
2561
[oak
[64K]
Gis
[oak
Gis
5121
1281
3
۳3
۳3
A= 16
۳3
2 15
128
۲2 816
E= 28K
Figure 7.6 Example of Buddy System
1 Mbyte block
Request 100 K
Request 240K
Request 64K
Request 256K
Release B
Release A
Request 75 K
Release ع
Release E
Release D
صفحه 19:
3
D=256K
Figure 7.7. Tree Representation of Buddy System
256K
64
22
IM
512K
256K
128K
641
صفحه 20:
* وقتى که فرآیند به حافظه آورده می شود محل واقعی (مطلق)
آن در حافظه مشخص می گردد.
# چون فرآیند ممکن است در جاهای مختلفی قرار گیرد (مساله
تخصیص مجدد) » لذا در حین اجرا آدرسهای مطلق متفاوتی
سازی نیز باعث می شود محل برنامه در حافظه عوض
شود. لذا آدرسهای مطلق باز هم تغیبر می کنند.
صفحه 21:
0
* ارجاع به محلى از حافظه مستقل از تخصیص جاری فرآیند در
حافظه
* بايد آدرس منطقى را به آدرس فیزیکی ترجمه کنیم.
سبی
؟ آدرس محلی از حافظه نسبت به یک نقطه مشخص داده می شود.
#فیزیکی
* آدرس مطلق یا محل واقعی داده در حافظه اصلی
صفحه 22:
007
وس مه
1 1
٩ یبا
۰
Interrupt to
‘operating system
Process image in
‘main memory
Figure 7.8 Hardware Support for Relocation
صفحه 23:
(Nee ea ta Osed Naini] Ceca east 0
رجیستر پایه
* آدرس شروع فرآیند در حافظه
#رجيستر حد (bouerds)
© أدرسن آخرین محل فرآیند دو حافظه
* هنگام بار گذاری فرآیند در حافظه یا تعویض آن این رجیسترها
تنظیم می گردند.
صفحه 24:
(Nee ea ta Osed Naini] Ceca east 0
* مقدار رجیستر پایه با آدرس نسبی جمع می گردد تا یک
آدرس مطلق تولید گردد.
آدرس نتیجه با مقدار رجیستر حد مقایسه می شود.
گر در محدوده نباشدء يكك وقفه برای سیستم عامل توليد می
گردد.
صفحه 25:
حافظه و فررآیند را به مقادیر مساوی تقسیم می کنیم.
© به تکه های فرآیند صفحه و به تکه های حافظه قاب می گوییم.
© سیستم عامل برای هر ف رآیند یک جدول صفحه نگهداری می کند.
" برای هر صفحه محل قابهای آن در حافظه نگهداری می شود.
* آدرسهای حافظه شامل شماره صفحه و اا نسبت به ابتدای آن
صفحه می باشد.
صفحه 26:
Frame
number,
Main memory
Main memory
(a) Fifteen Available Frames (b) Load Process A (b) Load Process B
Figure 7.9 Assignment of Process Pages to Free Frames
صفحه 27:
Main memory Main memory Main memory
(@) Load Process C {e) Swap out B (1) Load Process D
Figure 7.9 Assignment of Process Pages to Free Frames
صفحه 28:
13
14
Free frame
list
11
12
بج سر يج نذا حك
Process D
page table
سر نو با
8
10
Process C
page table
neo
Process B
page table
ات نس تج دما
اح أس ادم نت
Process A
page table
Figure 7.10 Data Structures for the Example of Figure 7.9 at Time Epoch (f)
صفحه 29:
* تمام قطعه های برنامه هم اندازه نیستند.
© البته سایز قطعه ها دارای یک مقدار ما کسیمم است.
آدرس دهی شامل دو قسمت است: شماره قطعه و اعد!2
# چون قطعه ها هم اندازه نیستند» قطعه بندی مثل پارتیشن كردن
دینامیک است.