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

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


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

جلسه چهارم:

FCFS :

انحصاري است، قابليت تکرار ندارد، منصفانه نيست، قابليت پيش بيني ندارد.

SRTN :

غير انحصاري است، چون مربوط به يک پروسه نمي باشد، عادلانه است، زماني عادلانه است که پروسه ها کوچک و زمانشان به هم نزديک باشد، براي پروسه هاي کوچک قابليت تکرار دارد ، تقريبا قابليت پيش بيني دارد.

SJF :

انحصاري است، قابليت پيش بيني و تکرار دارد.

Priority :

زماني انحصاري است که پروسه وارد حالت Running مي شود.اين اولويت زماني انحصاري است که پروسه اي در حال اجرا است و پروسه اي ديگر با اولويت بالاتر وارد صف مي شود.اگر پروسه اي با اولويت بالاتر وارد صف Ready شود، ان پروسه که در حال اجرا است ،از اين حالت خارج شده و پروسه اي که اولويتش بالاتر است ،اجرا مي شود.
اگر اولويت دادن منصفانه باشد، Fairness است.
يک سيستم به نام Aging است که اولويت پروسه هايي را که بيش از اندازه در صف مانده است از طريق جدول PCB Waiting Time پيدا مي کند تا اجرا شود.

Round Robin (قاچ زماني) :

در اين الگوريتم زمان پردازش تخصيص مي شود.

اين الگوريتم براساس قاچ زماني که سيستم عامل انتخاب مي کند ،پروسه ها را به حالت اجرا مي برد.اگر قاچ زماني خيلي بزرگ باشد اين الگوريتم تبديل به الگوريتم FCFS مي شود.چون تا کار پروسه در طول قاچ زماني تمام نشود، منبع را رها نمي کند و مشکلي که زمان انتخاب قاچ زماني کوچک وجود دارد اين است که پروسه به قطعات کوچک اجرا مي شود و حالت سوئيچ براي پروسه توسط سيستم عامل به وجود مي ايد.يعني سيستم عامل بايد عمليات Push و Pop زيادي را انجام دهد.از لحاظ سيستم عامل پياده سازي قاچ زماني ايستا بسيار راحت است.ولي اين حالت منصفانه نيست. اگر هم به صورت پويا بخواهد قاچ زماني مختلفي را براي پروسه تخصيص دهد دچار پيچيدگي مي شود و امکان دارد زمان بر باشد.اين الگوريتم هم انحصاري است و هم غير انحصاري.پروسه در داخل قاچ زماني اجرا قرار مي گيرد، انحصاري است و زماني که قاچ زماني تمام شده و مي خواهد جاي خود را به پروسه ي ديگر بدهد اين حالت غير انحصاري مي شود.

الگوريتم Multi Level Queue Schduling :

مخلوطي از الگوريتم هاي زمانبندي در اين الگوريتم استفاده مي شود.
در حقيقت هر الگوريتمي که تا به حال توضيح داده شد ،به صورت جداگانه توسط سيستم عامل اجرا مي شود و اين عمل به اين صورت است که پروسه ها در صف هاي مختلف قرار مي گيرند هر الگوريتم در هر يک از اين صف ها پروسه را انتخاب مي کند و توسط يک الگوريتم زمانبندي ديگر وارد حالت Running مي شود.
سطح اول پروسه هاي سيستمي که داراي اولويت بالايي مي باشند،قرار مي گيرند و توسط الگوريتم Priority و Even Driven پروسه اي را انتخاب مي کند که اولويت بالايي دارد.
سطح بعدي پروسه هايي قرار مي گيرند که اهميت انها نسبت به پروسه هاي سيستمي پايين تر است. مثل پروسه هاي محاوره اي و اين پروسه ها از طريق الگوريتم Round Robin يا قاچ زماني مديريت مي شوند.
سطح سوم پروسه هايي هستند که بسيار بزرگ هستند . مانند پروسه هاي Bach و توسط الگوريتم FCFS مديريت مي شوند.

الگوريتم Feed Back :

در اين الگوريتم همانند الگوريتم هاي Priority به پروسه ها اولويت داده مي شود.پروسه ها در چندين صف اولويت قرار مي گيرند . پروسه اي که اول وارد صف مي شود داراي اولويت بالايي است و اول اجرا مي شود.
P1 تا زماني که پروسه اي وارد صف نشده است ،اجرا مي شود.پروسه اي که وارد صف مي شود،اولويتش بالاتر است.اولويت پروسه ي در حال اجرا پايين مي ايد.اگر اولويت P1 پايين بيايد و اجرا نشود ،سيستم عامل با سيستم Aging اولويت P1 را بالاتر مي برد و اجرا مي شود.

جلسه پنجم:

گفتگوي پروسه ها به سه دسته طبقه بندي مي شود:

1) بي اطلاعي پروسه ها از يکديگر :

بين پروسه ها ،پروسه هايي هستند که مي خواهند با هم کار کنند.بهترين مثال براي اين وضعيت برنامه هايي هستند که در پردازنده هاي مختلف اجرا مي شوند.اين پروسه ها براي رسيدن به منبع با يکديگر رقابت مي کنند.در نهايت سيستم عامل يکي از اين پروسه ها را انتخاب و منبع را در اختيار ان قرار مي دهد که منابع شامل حافظه،پردازنده،چاپگر و ... است.
سه حالت براي اين پروسه ها اتفاق مي افتد که بايد مکانيزم هايي را رعايت کنند:
الف) انحصار متقابل
ب) بن بست
ج) گرسنگي

2) اطلاع غير مستقيم پروسه ها از يکديگر :

چنين پروسه هايي با اسم يکديگر در ارتباط اند.فقط به وسيله اشتراک شي هاي مشترک با يکديگر همکاري مي کنند.
دو حالت نيز براي اين پروسه ها اتفاق مي افتد که بايد مکانيزم هايي را رعايت کنند:
الف) بن بست
ب) گرسنگي

3) پروسه هايي که اطلاع مستقيم از يکديگر دارند :

اين پروسه ها با نام يکديگر کار مي کنند. امکان وابستگي نتايج يک پروسه به اطلاعات به دست امده از پروسه هاي ديگر وجود دارد.
چهار حالت نيز براي اين پروسه ها اتفاق مي افتد که بايد مکانيزم هايي را رعايت کنند:
1) انحصار متقابل
2) بن بست
3) گرسنگي
4) وابستگي داده ها

رقابت پروسه ها :

هنگامي که پروسه ها نياز به يک منبع مشترک دارند ،اين پروسه ها با يکديگر درگير مي شوند و در نهايت يکي از اين پروسه ها در اين درگيري برنده مي شود.حال پروسه اي که در حال اجرا است پروسه هاي ديگر نبايد حالت اين پروسه را تغيير دهند و نبايد به حالت Running بروند. به اين حالت که پروسه ها به پروسه اي ديگر در حالت اجرا دخل و تصرفي نداشته باشند ،انحصار متقابل مي گويند.
در استفاده از منابع مشترک بايد مکانيزم ها و کنترل هايي را اعمال کرد تا قابليت اطمينان خدشه دار نشود.مثلا اگر پروسه اي به سراغ منبع مشترکي مي رود ،مطمئن باشيم تا تکميل فعاليت پروسه ،پروسه اي ديگر به سراغ ان منبع مشترک نرود.به اين مکانيزم انحصار متقابل يا بازداري دوجانبه مي گويند.
فرض کنيد دو پروسه يا بيشتر به يک منبع غيرمشترک (چاپگر) نياز دارد.اين منبع غير مشترک را منبع بحراني مي گويند.ان قسمت از پروسه که با اين منبع کار مي کند ،ناحيه ي بحراني پروسه مي گويند.از ان دستورالعمل پروسه که با يک منبع مشترک يا غير مشترک کار مي کند تا اخرين دستورالعملي که با اين منبع در ارتباط است ناحيه ي بحراني پروسه مي گويند.
تعريف بن بست:اگر سه پروسه به نام هاي P1 و P2 و P3 داشته باشيم،پروسه P1 منبع R1 ،پروسه P2 منبع R2 و پروسه P3 منبع R3 را در اختيار دارد.پروسه P1 منبع R2 ،پروسه P2 منبع R2 وپروسه P3 منبع R3 را درخواست مي کند و هر پروسه منبع در اختيار خود را ازاد نمي کند.در اين حالت است که بن بست اتفاق مي افتد.
تعريف گرسنگي:فرض مي کنيم سه پروسه P1 ، P2 ، P3 درخواست منبع R را بکنند.در رقابت بين پروسه ها پروسه P1 منبع را در اختيار بگيرد و بعد از اينکه پروسه P1 کارش با منبع R تمام شد و منبع را رها کرد ،در رقابت بين P2 و P3 ،پروسه P3 منبع R را در اختيار بگيرد.در اين زمان پروسه P1 دوباره درخواست منبع R را بکند.وقتي که P3 کارش با منبع R تمام شد ،در رقابت بين پروسه هاي P1 و P2 دوباره P1 برنده شود.اين حالت ممکن است چند بار اتفاق بيفتد و منبع به پروسه P2 نرسد. در اين حالت مي گويند گرسنگي اتفاق افتاده است.
همکاري پروسه ها توسط اشتراک:همکاري به وسيله ي اشتراک پروسه هايي را پوشش مي دهد که با يکديگر گفتگو مي کنند .بدين معني که از يکديگر اطلاع دارند.يعني اينکه پروسه P1 مي داند که وقتي کارش تمام شود نتيجه به دست امده توسط پروسه ديگر استفاده خواهد شد.پروسه هاي متعددي به پرونده هاي مشترک در بانک اطلاعاتي مشترک دسترسي دارند.ممکن است هر پروسه اين داده ها را بدون اطلاع پروسه ي ديگر به هنگام سازي کند،ولي بداند که پروسه هاي ديگر به اين داده ها دسترسي دارند.
همکاري پروسه ها توسط ارتباط: پروسه ها با يکديگر تعارف مي کنند.

ملزومات انحصار متقابل:

1) از ميان تمام پروسه هايي که براي منبع يکسان يا شي مشترکي داراي بخش بحراني هستند،تنها يک پروسه بتواند وارد بخش بحراني شود.
2) سرعت نسبي پروسه ها واولوت پروسه ها نقشي در دستيابي منبع مشترک يا ورودشان به ناحيه بحراني نداشته باشد.
3) پروسه هايي که در ناحيه ي بحراني خود قرار گرفته اند، نبايد تاثيري بر روي پروسه هايي داشته باشند که در ناحيه ي بحراني قرار دارند.
4) نبايد پروسه ها بيش از اندازه براي ورود به ناحيه بحراني منتظر بمانند.
5) بايد اين تضمين وجود داشته باشد که وقتي پروسه اي در ناحيه ي بحراني دچار مشکل شد، پروسه هاي ديگر بتوانند با ان منبع کار کنند.
6) دو پروسه در يک زمان محدود مي توانند داخل بخش بحراني قرار گيرند.
پروتکل هايي که پروسه ها بايد رعايت کنند:
1) مذاکره
2) بخش بحراني
3) اعلام

مذاکره:

در مذاکره پروسه ها فقط يک پروسه براي دريافت منبع برنده مي شود و Winner مي شود و مي تواند وارد بخش بحراني شود.

بخش بحراني يا Critical Selection :

پروسه اي وارد بخش بحراني شد ،پروسه هاي ديگر بر روي ان تاثير نگذارند.

اعلام:

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

جلسه ششم:

رويکردهاي نرم افزاري انحصار متقابل:

گام اول :

در گام اول دو پروسه را در نظر مي گيريم.پروسه ي P0 و P1 که اين دو منبع در رقابتي که مي کنند فقط يکي مي تواند وارد بخش بحراني شود.پروسه ي دوم در اين حالت به طور متناوب به بخش بحراني سرکشي مي کند تا اگر پروسه اي در حال اجرا نباشد وارد بخش بحراني شود.مشکل اين حالت اين است که پروسه ي P1 پشت سر هم به بخش بحراني سرکشي مي کند و اين حالت وقت CPU و خود CPU را اشغال مي کند.

گام دوم :

مشکل بخش بحراني حالت اول را ندارد.در حالت دوم وقت CPU به هدر نمي رود.هر پروسه در بخش غيربحراني خود باقي مي ماند تا پروسه ديگر وضعيت هاي خودش را تغيير دهد.مشکل اين گام دوم اين است که پروسه ي اول زماني که Flag هاي پروسه ي دوم را چک مي کند و مي فهمد که در بخش بحراني نيست،براي ورود به ناحيه بحراني Flag هاي خودش را تغيير مي دهد.اين حالت انحصار متقابل را تضمين مي کند . ولي مشکل اين حالت اين است که پروسه ي دوم قبل از اينکه وضعيت خودش را تغيير دهد ،پروسه ي اول نيز اين وضعيت را تغيير مي دهد.پروسه ي اول درخواست منبعي را دارد که در اختيار پروسه ي دوم است و پروسه ي دوم درخواست منبعي را دارد که در اختيار پروسه ي اول است.اين حالت باعث وقوع بن بست مي شود.

گام سوم :

در اين گام دو پروسه ي مجزا قسمت هاي مختلفي را براي انتظار دارند.به اين حالت که اگر پروسه ي دوم امد وديد که پروسه ي اول بيش از اندازه در ناحيه ي بحراني خود باقي مانده است،وضعيت هاي بخش بحراني را به نفع خودش تغيير مي دهد.باعث مي شود پروسه ي اول Terminate شود و خودش وارد بخش بحراني شود.

گام چهارم :

در اين گام براي پروسه ها يک داور انتخاب مي کنند يک متغير که امکان مي دهد پروسه وارد بخش بحراني شود.به اين ترتيب که پروسه اي که در بخش بحراني قرار دارد،از بخش بحراني خارج شده و وضعيت خودش را اعلام مي کند.هم چنين به داور اعلام مي کند که کدام پروسه وارد بخش بحراني شود.

semafor :

يک نوع داده اي صحيح است که به عنوان دو ارگومان يا عمليات و يا دو تابع کار مي کند.

تابع Wait :

زماني استفاده مي شود که منبعي به صورت ازاد وجود ندارد و پروسه نياز به منبع دارد.منبع هم اشغال است.تابع Signal که همان عمل اعلان را پياده سازي مي کند ،زماني که پروسه اي منبعي را ازاد مي کند با Signal يک علامت مي دهد و اين علامت مشخص مي کند که منبع ازاد شد.
درسمافور عمومي به اين شکل است که يک تعداد منبع به عنوان منابع ازاد وجود دارد.پروسه براي به دست اوردن منبع درخواست خود را به سيستم عامل اعلام مي کند و سيستم نيز يک منبع از منابع ازاد را به پروسه اختصاص مي دهد.اين تا زماني ادامه پيدا مي کند که منابع ازاد موجود به اتمام برسد و پروسه هاي بعدي براي به دستگيري منبع بايد در انتظار بمانند.
زماني که پروسه منبع را ازاد مي کند يک منبع از منابع اشغال را کم مي کند و يک منبع به منابع ازاد اضافه مي کند.

جلسه هفتم:

مديريت حافظه:

تخصيص قسمت هاي فيزيکي حافظه به قسمت هاي منطقي پروسه يا به طور کلي تعيين مکانيزم هايي مشخص براي تخصيص حافظه ي فيزيکي به بخش منطقي پروسه ها.
معيارهاي مختلفي براي محک زدن حافظه وجود دارد:
1) پيچيدگي زماني
2) اتلاف حافظه
3) افزونگي داده ها هنگام تبديل ادرس هاي مجازي به نسبي و نسبي به فيزيکي
دو بحث اساسي براي هر مکانيزم وجود دارد:
1) محافظت ( Protection ) و امنيت( Security )
2) Sharing يا اشتراک داده ها
که اين دو نقيض همديگر هستند.
مکانيزم هايي که ما در مورد انها بحث مي کنيم، همه مبتني بر تخصيص يکپارچه ي حافظه به پروسه يا انتقال يکپارچه ي پروسه به حافظه است.يعني اينکه پروسه به صورت چندتکه اي در حافظه قرار نمي گيرد و قسمت منطقي پروسه يکجا در حافظه قرار مي گيرد.
مکانيزم ها يا شماي مديريت حافظه اي بايد وجود داشته باشد که اعمال پروسه مورد بررسي قرار گيرد:

الف) Single Monitor Memory Management And Single Monitor Process :

يک شماي مديريت حافظه است که در ان سيستم عامل در بالاي حافظه قرار مي گيرد و از قسمتي از حافظه پروسه به حافظه وارد مي شود و سيستم عامل ناظر رفت و امد پروسه هايي است که يکجا در حافظه قرار مي گيرد.در اين شما پيچيدگي زماني نداريم.سرعت بالا است.چون فقط يک پروسه اجرا مي شود. Multi Program نداريم.افزونگي داده ها در تبديل ادرس وجود ندارد.اتلاف حافظه وجود دارد.به علت اينکه ممکن است يک پروسه که 1KB است ،همانند پروسه اي که 150KB است به ان حافظه تخصيص يابد.

ب) پارتيشن بندي( Partitioning ) :

يعني تقسيم بندي حافظه به چند قسمت و تخصيص هر قسمت به قسمت هاي منطقي پروسه که به دو صورت مي تواند انجام گيرد:
1) پارتيشن بندي پويا
2 ) پارتيشن بندي ايستا
پارتيشن بندي ايستا:در اين پارتيشن بندي در ابتدا حافظه به چند قسمت تقسيم مي شود.اندازه ي پارتيشن ها يکسان نيست و بزرگترين پارتيشن به اندازه ي بزرگترين پروسه اي است که قرار است در حافظه مقيم شود.

Partition Description Table :

اين پارتيشن سه فيلد دارد:

1) Base :

مشخص مي کند پارتيشن از چه ادرسي شروع مي شود.

2) Size :

مشخص مي کند اندازه ي پارتيشن چقدر است.

3) Allocate & Free :

مشخص مي کند اين پارتيشن تخصيص يافته است يا خير؟

Internal Fragmentation :

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

1) First Fit & Next Fit :

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

2) Best Fit :

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

3) Worst Fit :

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

Partition Static Model :

پروسه اي که مي خواهد وارد حافظه شود در ابتدا اندازه ي پروسه با اندازه ي Limit Register مقايسه مي شود. اگر اندازه ي پروسه کوچکتر از Limit Register بود با ادرس شروع پارتيشن جمع مي شود و وارد حافظه مي شود.

به اشتراک گذاري در مدلStatic ) Sharing Static Model) :

زياد از اشتراک گذاري حمايت نمي شود . در اين روش يا کل پارتيشن به اشتراک گذارده مي شود يا بخشي از پارتيشن با تمهيداتي کد و داده را بين پروسه هايي که همکار هستند به اشتراک مي گذارد.
1) ادرس Object هايي که به اشتراک گذارده مي شود ،براي سيستم عامل تعريف مي شود.
2) تهيه ي چند کپي از داده ها و کدهاي به اشتراک گذاري شده جهت اطمينان از صحت انها.
3) پارتيشن بين همه ي پروسه ها به اشتراک گذارده مي شود.
پارتيشن هاي مشترک به اشتراک گذارده مي شود . حسن اين کار اين است که افزونگي داده ها نداشته باشيم.
ادامه دارد ......
ارسال مقاله توسط عضو محترم سايت با نام کاربري : PSTdinco
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image