مفاهیم سیستم عامل (2)
جلسه چهارم:
FCFS :
SRTN :
SJF :
Priority :
اگر اولویت دادن منصفانه باشد، Fairness است.
یک سیستم به نام Aging است که اولویت پروسه هایی را که بیش از اندازه در صف مانده است از طریق جدول PCB Waiting Time پیدا می کند تا اجرا شود.
Round Robin (قاچ زمانی) :
.jpg)
الگوریتم Multi Level Queue Schduling :
در حقیقت هر الگوریتمی که تا به حال توضیح داده شد ،به صورت جداگانه توسط سیستم عامل اجرا می شود و این عمل به این صورت است که پروسه ها در صف های مختلف قرار می گیرند هر الگوریتم در هر یک از این صف ها پروسه را انتخاب می کند و توسط یک الگوریتم زمانبندی دیگر وارد حالت Running می شود.
سطح اول پروسه های سیستمی که دارای اولویت بالایی می باشند،قرار می گیرند و توسط الگوریتم Priority و Even Driven پروسه ای را انتخاب می کند که اولویت بالایی دارد.
سطح بعدی پروسه هایی قرار می گیرند که اهمیت انها نسبت به پروسه های سیستمی پایین تر است. مثل پروسه های محاوره ای و این پروسه ها از طریق الگوریتم Round Robin یا قاچ زمانی مدیریت می شوند.
سطح سوم پروسه هایی هستند که بسیار بزرگ هستند . مانند پروسه های Bach و توسط الگوریتم FCFS مدیریت می شوند.
.jpg)
الگوریتم Feed Back :
P1 تا زمانی که پروسه ای وارد صف نشده است ،اجرا می شود.پروسه ای که وارد صف می شود،اولویتش بالاتر است.اولویت پروسه ی در حال اجرا پایین می اید.اگر اولویت P1 پایین بیاید و اجرا نشود ،سیستم عامل با سیستم Aging اولویت P1 را بالاتر می برد و اجرا می شود.
جلسه پنجم:
1) بی اطلاعی پروسه ها از یکدیگر :
سه حالت برای این پروسه ها اتفاق می افتد که باید مکانیزم هایی را رعایت کنند:
الف) انحصار متقابل
ب) بن بست
ج) گرسنگی
2) اطلاع غیر مستقیم پروسه ها از یکدیگر :
دو حالت نیز برای این پروسه ها اتفاق می افتد که باید مکانیزم هایی را رعایت کنند:
الف) بن بست
ب) گرسنگی
3) پروسه هایی که اطلاع مستقیم از یکدیگر دارند :
چهار حالت نیز برای این پروسه ها اتفاق می افتد که باید مکانیزم هایی را رعایت کنند:
1) انحصار متقابل
2) بن بست
3) گرسنگی
4) وابستگی داده ها
رقابت پروسه ها :
در استفاده از منابع مشترک باید مکانیزم ها و کنترل هایی را اعمال کرد تا قابلیت اطمینان خدشه دار نشود.مثلا اگر پروسه ای به سراغ منبع مشترکی می رود ،مطمئن باشیم تا تکمیل فعالیت پروسه ،پروسه ای دیگر به سراغ ان منبع مشترک نرود.به این مکانیزم انحصار متقابل یا بازداری دوجانبه می گویند.
فرض کنید دو پروسه یا بیشتر به یک منبع غیرمشترک (چاپگر) نیاز دارد.این منبع غیر مشترک را منبع بحرانی می گویند.ان قسمت از پروسه که با این منبع کار می کند ،ناحیه ی بحرانی پروسه می گویند.از ان دستورالعمل پروسه که با یک منبع مشترک یا غیر مشترک کار می کند تا اخرین دستورالعملی که با این منبع در ارتباط است ناحیه ی بحرانی پروسه می گویند.
تعریف بن بست:اگر سه پروسه به نام های 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 می داند که وقتی کارش تمام شود نتیجه به دست امده توسط پروسه دیگر استفاده خواهد شد.پروسه های متعددی به پرونده های مشترک در بانک اطلاعاتی مشترک دسترسی دارند.ممکن است هر پروسه این داده ها را بدون اطلاع پروسه ی دیگر به هنگام سازی کند،ولی بداند که پروسه های دیگر به این داده ها دسترسی دارند.
همکاری پروسه ها توسط ارتباط: پروسه ها با یکدیگر تعارف می کنند.
ملزومات انحصار متقابل:
2) سرعت نسبی پروسه ها واولوت پروسه ها نقشی در دستیابی منبع مشترک یا ورودشان به ناحیه بحرانی نداشته باشد.
3) پروسه هایی که در ناحیه ی بحرانی خود قرار گرفته اند، نباید تاثیری بر روی پروسه هایی داشته باشند که در ناحیه ی بحرانی قرار دارند.
4) نباید پروسه ها بیش از اندازه برای ورود به ناحیه بحرانی منتظر بمانند.
5) باید این تضمین وجود داشته باشد که وقتی پروسه ای در ناحیه ی بحرانی دچار مشکل شد، پروسه های دیگر بتوانند با ان منبع کار کنند.
6) دو پروسه در یک زمان محدود می توانند داخل بخش بحرانی قرار گیرند.
پروتکل هایی که پروسه ها باید رعایت کنند:
1) مذاکره
2) بخش بحرانی
3) اعلام
مذاکره:
بخش بحرانی یا Critical Selection :
اعلام:
جلسه ششم:
گام اول :
گام دوم :
گام سوم :
گام چهارم :
semafor :
تابع Wait :
درسمافور عمومی به این شکل است که یک تعداد منبع به عنوان منابع ازاد وجود دارد.پروسه برای به دست اوردن منبع درخواست خود را به سیستم عامل اعلام می کند و سیستم نیز یک منبع از منابع ازاد را به پروسه اختصاص می دهد.این تا زمانی ادامه پیدا می کند که منابع ازاد موجود به اتمام برسد و پروسه های بعدی برای به دستگیری منبع باید در انتظار بمانند.
زمانی که پروسه منبع را ازاد می کند یک منبع از منابع اشغال را کم می کند و یک منبع به منابع ازاد اضافه می کند.
جلسه هفتم:
مدیریت حافظه:
معیارهای مختلفی برای محک زدن حافظه وجود دارد:
1) پیچیدگی زمانی
2) اتلاف حافظه
3) افزونگی داده ها هنگام تبدیل ادرس های مجازی به نسبی و نسبی به فیزیکی
دو بحث اساسی برای هر مکانیزم وجود دارد:
1) محافظت ( Protection ) و امنیت( Security )
2) Sharing یا اشتراک داده ها
که این دو نقیض همدیگر هستند.
مکانیزم هایی که ما در مورد انها بحث می کنیم، همه مبتنی بر تخصیص یکپارچه ی حافظه به پروسه یا انتقال یکپارچه ی پروسه به حافظه است.یعنی اینکه پروسه به صورت چندتکه ای در حافظه قرار نمی گیرد و قسمت منطقی پروسه یکجا در حافظه قرار می گیرد.
مکانیزم ها یا شمای مدیریت حافظه ای باید وجود داشته باشد که اعمال پروسه مورد بررسی قرار گیرد:
الف) Single Monitor Memory Management And Single Monitor Process :
ب) پارتیشن بندی( 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 :
دارای اتلاف حافظه است.مشکل زمانی دارد.
.jpg)
Partition Static Model :
به اشتراک گذاری در مدلStatic ) Sharing Static Model) :
زیاد از اشتراک گذاری حمایت نمی شود . در این روش یا کل پارتیشن به اشتراک گذارده می شود یا بخشی از پارتیشن با تمهیداتی کد و داده را بین پروسه هایی که همکار هستند به اشتراک می گذارد.1) ادرس Object هایی که به اشتراک گذارده می شود ،برای سیستم عامل تعریف می شود.
2) تهیه ی چند کپی از داده ها و کدهای به اشتراک گذاری شده جهت اطمینان از صحت انها.
3) پارتیشن بین همه ی پروسه ها به اشتراک گذارده می شود.
پارتیشن های مشترک به اشتراک گذارده می شود . حسن این کار این است که افزونگی داده ها نداشته باشیم.
ادامه دارد ......
ارسال مقاله توسط عضو محترم سایت با نام کاربری : PSTdinco
/س