جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
مفاهيم سيستم عامل (3)
-(7 Body) 
مفاهيم سيستم عامل (3)
Visitor 1565
Category: دنياي فن آوري

جلسه هشتم:

پارتيشن بندي پويا ( Dynamic Partition ) :

در اين پارتيشن بندي اساس کار به اين ترتيب است که در ابتدا فرض مي کنيم هيچ پارتيشني وجود ندارد.وقتي که پروسه درخواست ورود به حافظه را مي کند يک پارتيشن به اندازه ي خود پروسه ساخته مي شود و در اختيار پروسه قرار مي گيرد.در اين حالت پارتيشن اختصاص يافته Fit پروسه است و Fragmentation داخلي نداريم.

Partition Description Table :

اطلاعات پارتيشن ها را که به پروسه تخصيص داده شده است ،نمايش مي دهد.ديگرين امکاني که در پارتيشن بندي پويا وجود دارد، Free List است. Free List يک ليست پيوندي است که نشان مي دهد کجاهاي حافظه فضاي خالي وجود دارد.

همان طوري که در شکل مشاهده مي شود،هر سطر جدول PDT نشان دهنده ي شروع پارتيشن،اندازه پارتيشن و اختصاص داده شدن ان مشاهده مي شود. سطرهايي که خالي هستند نشان دهنده ي فضاهاي ازادي هستند که اختصاص نيافته اند و يا اينکه اختصاص يافته اند ،هم اکنون پروسه انجا را ترک کرده است و يک امکاني که وجود دارد، Free List شامل Node شروع که نشان دهنده ي ادرس فضاي ازاد بعدي و حجم اندازه ي فضاي ازاد اول است.

Sharing در مدل پويا :

در اشتراک گذاري پارتيشن بندي پويا بين دو پروسه که پشت سر هم در حافظه قرار دارد حافظه به اشتراک گذارده مي شود.به اين ترتيب که قسمتي از پروسه ي بالايي و قسمتي از پروسه ي پاييني که به هم متصل هستند بين دو پروسه به اشتراک گذارده مي شود.

Relocation (جابه جايي) :

يک پروسه داراي دستورالعمل هايي است که اين دستورالعمل ها با ادرس نسبي کار مي کنند که در حافظه اين ادرس نسبي بايد به ادرس فيزيکي تبديل شود.وقتي پروسه اي بارها اجرا مي شود،سيستم عامل بايد بتواند فضاي ازادي را در هر صورت به پروسه اختصاص دهد.مثلا وقتي پروسه اي پي در پي درخواست فضايي را بکند که اين فضا در اختيار پروسه هاي ديگر است،سيستم عامل بايد بتواند ادرس پروسه را به فضاي ازاد حافظه انتقال دهد.
تبديل ادرس مجازي به فيزيکي به دو روش صورت مي گيرد:
1) Static Relocation (تبديل ادرس به صورت ايستا) :
در روش ايستا کل پروسه کدگشايي مي شود.يعني اينکه ادرس هاي مجازي دستورالعمل هاي پروسه تبديل به ادرس هاي فيزيکي در حافظه مي شود.سرعت اجراي پروسه در اين حالت زياد است.
2) Dynamic Relocation (تبديل ادرس به صورت پويا) :
در هنگام اجرا دستورالعمل هايي که به CPU داده شده است ،ادرس هاي مجازي انها به ادرس فيزيکي تبديل مي شود.
مقايسه دو روش:اگر از روش ايستا استفاده شود و پروسه هزار خط دستورالعمل داشته باشد،تمام اين دستورالعمل ها تبديل به ادرس مي شود.وقتي که پروسه شروع به اجرا مي کند ممکن است در خط مثلا سوم يک Jamp به خط هزارم وجود داشته باشد و پروسه اجرايش به اتمام برسد.دستورالعمل هايي که مابين اين Jamp و اين خط هزارم وجود دارد بي دليل ادرس مجازي انها تبديل به ادرس فيزيکي مي شود.
در روش پويا هر دستورالعمل هنگام ورود به CPU کدگشايي مي شود.يعني ادرس مجازي انها به ادرس فيزيکي تبديل مي شود.اگر پروسه 5 خط دستورالعمل داشته باشد که چهار خط اول ابتدا وارد CPU شده و تبديل ادرس شوند ، بعد خط پنجم وارد شود و در خط پنجم يک Jamp به خط اول وجود داشته باشد، در اين حالت ادرس هاي پروسه دوباره تبديل به ادرس فيزيکي مي شود و ممکن است اين عمل هزار بار بخواهد انجام شود.

Defragmentation و Compaction :

با امد و شد پروسه ها به حافظه در روش پويا ممکن است فضاهاي بين پروسه ها بيش از اندازه تکه تکه شود و ديگر پروسه اي نتواند در اين فضاها جاي بگيرد.به اين حالت مي گويند External Fragmentation .
دو مدل Defragmentation وجود دارد: Global Move و Selection .
در روش Global Move همه ي پروسه ها به ابتداي حافظه انتقال داده مي شود.در اين روش سرعت بالا مي رود.
در روش Selection بايد محاسبات مفصلي صورت بگيرد که کدام پروسه را به چه صورت جا به جا کنيم تا فضاي ازادي را که بين پروسه ها است از بين برود.در شرايطي که رفت و امد پروسه ها به حافظه زياد مي شود ،اين روش تبديل مي شود به روش Global .

جلسه نهم:

Segmentation (قطعه بندي) :

يک شماي ديگري از مديريت حافظه است که مبني بر تخصيص حافظه ي فيزيکي به صورت قطعه قطعه به پروسه هايي که درخواست قطعه کرده اند و برنامه نويس اين قطعه ها را مشخص کرده است و تحويل سيستم عامل داده است.هر قطعه شامل قسمتي از پروسه است.
انواع قطعه: Data Segment ، Code Segment ، Stack Segment ، Extra Segment .
در پارتيشن بندي پويا ،حافظه به علت رفت و امد زياد پروسه ها تکه تکه مي شد .در قطعه بندي اين تکه تکه شدن خارجي وجود دارد.ولي اينکه مقدار ان کمتر از مقداري است که در پارتيشن بندي پويا وجود دارد.
در قطعه بندي به علت اندازه هاي مختلف Segment ها ،رابطه ي ساده اي بين ادرس هاي منطقي و ادرس هاي فيزيکي وجود ندارد.
در پارتيشن بندي پويا تبديل ادرس منطقي به ادرس فيزيکي به سادگي صورت مي گيرد.ولي در Segmentation به دليل وجود Segment به اندازه هاي مختلف اين ادرس دهي کمي پيچيده تر است.
Segment Descriptor Table (جدول تخصيص Segment ) :اين جدول مشخص مي کند کدام قطعه از کجاي حافظه شروع شده است و هم چنين از دو بخش تشکيل شده است:
1) Base (شروع Segment )
2) Size (اندازه ي Segment )

ادرس منطقي پروسه از دو قسمت شماره Segment و Offset اي که پروسه از ان به بعد بايد در Segment جاي بگيرد ،تشکيل شده است.در شکل بالا پروسه مي خواهد وارد Segment شود که شماره ي ان 3 است و مي خواهد از Offset 100 Segment بارگذاري شود. Segment شماره ي 3 مربوط به Shared مي باشد.پروسه وارد Segment Shared از Offset 100 Segment مي شود.اگر Offset درخواستي پروسه بيشتر از حجم اندازه ي Segment باشد ،برنامه يا پروسه با خطا روبرو مي شود.
Sharing در Segmentation :در اشتراک گذاري Segmentation ،پروسه Base ، Segment را که مي خواهد به اشتراک گذارد ،براي استفاده ي پروسه هاي ديگر مشخص مي کند .در اين حالت پروسه کل Segment مشخص خود را به اشتراک مي گذارد.

جلسه دهم:

Paging :

شماي مديريت حافظه است که در ان حافظه به Frame هاي مساوي تقسيم مي شود و پروسه به صفحات و Page هاي مساوي با فريم هاي ايجاد شده تقسيم مي شود.وظيفه ي سيستم عامل اين است که حافظه اي که به اين فريم تقسيم شده است به پروسه اختصاص دهد.اندازه ي فريم ها هم ثابت است.

Page Map Table :

مشخص مي کند کدام صفحه از پروسه در کدام فريم از حافظه قرار گرفته است.تعداد سطرهاي جدول PMT به اندازه ي تعداد صفحات پروسه است.

Memory Map Table :

مشخص مي کند کدام فريم از حافظه تخصيص يافته و کدام فريم ازاد مي باشد.تعداد سطرهاي MMT به اندازه ي تعداد فريم ها است.

پروسه تبديل مي شود به صفحاتي که برابر با فريم هاي حافظه است.هر دستورالعمل پروسه که اجرا مي شود حاوي 24 بيت ادرس است. 12 بيت سمت چپ ادرس ،شماره ي صفحه را در جدول PMT نشان مي دهد و 12 بيت سمت راست ادرس ، Offset صفحه اي را از حافظه نشان مي دهد که دستورالعمل بايد از انجا باز شود.

در اين ساختار دو رجيستر وجود دارد.يکي از انها ،ادرس شروع جدول PMT و ديگري ادرس انتهايي ترين صفحه در جدول PMT است.اين دو رجيستر ابتدايي ترين صفحه و انتهايي ترين صفحه را در جدول PMT مشخص مي کند.

Page In cash :

يعني اين صفحه در حافظه ي ما قرار دارد يا نه؟

جدول TLB :

اين جدول شامل ادرس و نام صفحه است.براي اينکه دستورالعملي ازپروسه اجرا شود،شماره ي صفحه و Offset ان در قسمت Virtual Address قرار مي گيرد. Page In cash چک مي کند که اين صفحه قبلا در حافظه قرار گرفته است يا نه.
اگر قرار گرفته است،در جدول TLB چک مي کند و ان صفحه را پيدا مي کند و ادرس ان صفحه با Offset مورد نظر جمع مي شود و ادرس فيزيکي پيدا مي شود.
اگر اين شماره ي صفحه در جدول TLB وجود نداشت،اين شماره ي صفحه را با انتهايي ترين صفحه در جدول PMT مقايسه مي کند.اگر صفحه ي درخواست شده خارج از تعداد صفحات پروسه نبود با Base جدول PMT جمع مي شود و سطر مورد نظر در جدول PMT پيدا مي شود.ادرس موجود در ان با Offset دستورالعمل Concat مي شود.در نهايت در ان ادرس فيزيکي قرار گرفته و اجرا مي شود.

اتلاف حافظه در Paging :

به خاطر ايجاد جداول PMT و MMT مقداري از حافظه به هدر مي رود.به طور کلي اتلاف حافظه در Paging به اندازه ي نصف انتهايي ترين صفحه است.اگر پروسه اي داشته باشيم که 100 صفحه داشته باشد،به اندازه ي نصف اخرين صفحه اتلاف حافظه داريم.
اگر کل حافظه را با M و اندازه ي هر فريم را با P مشخص کنيم ،تعداد صفحاتي که در حافظه مي تواند ايجاد شود M/P است.
اگر S اندازه ي يک پروسه باشد و اندازه ي هر فريم P باشد،تعداد Page هاي لازم براي هر پروسه S/P مي شود.
ادامه دارد ......
* ارسال مقاله توسط عضو محترم سايت با نام کاربري : PSTdinco
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image