X
تبلیغات
کامپیوتر - جلسه چهارم مفاهیم سیستم عامل

کامپیوتر

دروس مختلف دوره های کاردانی و کارشناسی

جلسه چهارم مفاهیم سیستم عامل

اعمـال روي پـردازش

o.s بايد مكانيزمي جهت حذف و خلق پردازش فراهم آورد .

يك مديريت فرآيند سه عمل :

1-     ايجاد  پروسس

2-       گذراندن چرخه حيات

3-       خاتمه فرايند را انجام مي دهد .

ايجاد فرايند ( پردازش )

 

 ايجاد يك فرايند توسط سيستم عامل موجب تخصيص منابع ماشين به آن فرايند مي شود . يك پردازش مي تواند پردازش هاي جديد متعددي را از طريق فراخواني سيستم توليد پردازش ،  در جريان اجرايش خلق نمايد .

پردازش خالق بنام پردازش والد ( فرايند پدر  Parent) و پردازش هاي جديد به نام فرزندان آن پردازش ناميده مي شوند . هريك از پردازش هاي جديد ممكن است پردازش هاي فرزند ديگري ايجاد نمايند .

دستور Fork  در Unix چنين عملي را انجام مي دهد .

 

دو حالت براي اجراي پردازش هاي فرزند و پردازش والد وجود دارد :

1-  والد منتظر بماند تا تعدادي يا همه فرزندان به اتمام رسند.

2- والد به اجراي همروند با فرزندانش ادامه مي دهد .

نكته : سيستم مي تواند درختي از پروسس ها  داشته باشد . بديهي است هر پروسس فقط يك پدر دارد ولي مي تواند صفر يا چندين فرزند داشته باشد .

زمانيكه پردازش يك زير پردازش پديد مي آورد پروسس فرزند مي تواند منابع مورد نيازش را مستقيماً از سيستم عامل كسب كند يا محدود به استفاده از زيرمجموعه اي از منابع پروسس والدش گردد . پردازش والد نيز ممكن است مجبور شود منابعش را مابين فرزندانش قسمت كند يا ممكن است قادر باشد بعضي منابع ( مثل : حافظه يا فايل ) را با فرزندانش به اشتراك گذارد .

 

نكته : محدود كردن يك پردازش فرزند به استفاده از زير مجموعه اي از منابع والدش ،  از زياد   بار شدن ( Overload) سيستم توسط ايجاد پروسس هاي بيشمار ، پيشگيري مي كند .

 

 

 

خـاتـمه پـردازش

 

زمانيكه آخرين  دستورالعمل پردازش اجرا شود پردازش خاتمه می یابد و با استفاده از فراخوانی سیستم Exit   از O.S   درخواست حذف خود را نماید . در آن زمان پردازش می تواند داده خروجی را به پردازش والد ( از طریق فراخوانی  Wait  ) بازگرداند .

کلیه منابع پردازش توسط O.S پس گرفته می شود .

پردازش می تواند باعث خاتمه پردازش دیگر از طریق فراخوانی سیستمی مناسب مثلاً Abort  گردد . چنین سیستم فراخوانی  سیستمی فقط توسط پردازش والد می تواند احضار شود . چون در غیر اینصورت کاربران  می توانند پردازش های یکدیگر را خاتمه دهند .

والد می تواند به دلایل متنوعی اجرای یکی از فرزندانش را خاتمه دهد از قبیل :

-        فرزند در میزان استفاده از منابعی که به او تخصیص داد ه شده اند ، فراتر رفته است .

-        وظیفه محوله به فرزند دیگر لازم نیست .

-         والد در حال خروج است و O.S   اجازه نمی دهد در صورت پایان  یافتن والد ، فرزندش ادامه یابد .

 در چنین سیستمی اگر پردازش والد خاتمه یابد ( طبیعی یا غیر طبیعی ) بایستی کلیه فرزندانش هم خاتمه یابند . این پدیده به نام اتمام آبشاری Caching Termination    نامیده می شود .

 

شـرح پـردازش :

سیستم عامل  استفاده از منابع سیستم را مدیریت می کند در محیط چند برنامگی ممکن است پردازش در انتظار منبعی باشد که فعلاً در اختیار پردازش  دیگری است  و مسدود است ( P2  در انتظار I/O  ی است که در اختیار P1   است ) Pn  معلق باشد .

P1

Pn

P2

 


حافظه مجازی

 

حافظه اصلی

پردازنده

 


I/O

 

I/O

 

I/O

منابع کامپیوتری

 

برای اینکه o.s   بتواند پردازش های گوناگون را کنترل نماید و منابع را برای آنها مدیریت نماید نیاز به ساختار های کنترلی دارد تا به بهره گیری از آنها اطلاعات مربوط به وضعیت جاری هر پردازش و هر منبع را در اختیار داشته باشد  لذا  O.S برای هر موجودیتی که مدیریت می کند  جدولهای اطلاعاتی  لازم را  ایجاد و نگهداری می نماید . چهار نوع جدولی که O.S  استفاده   می کند عبارتند از :

 

     1- جدولهای حافظه                                 2- جدولهای I/O

      3- جدولهای فایلها                                  4- جدولهای پردازش

 

جدول حافظه باید حاوی اطلاعات زیر باشد :

 

تخصیص حافظه اصلی به فرایند ها

تخصیص حافظه ثانویه به فرایندها

ویژگیهای حفاظتی در مورد بخشهای حافظه اصلی یا ثانویه ( مثلاً کدام پردازش ها می توانند به ناحیه خاصی از حافظه اشتراکی دسترسی نمایند . )

اطلاعات مورد نیاز برای مدیریت حافظه ثانویه

 

هر دستگاه I/O  در هر لحظه خاص به فرایند خاصی اختصاص می یابد زمانی که یک عمل I/O   در حال انجام است . O.S  باید از وضعیت آن عمل I/O  و محلی از حافظه که مبدا یا مقصد آن است آگاه باشد برای  این منظور از جدولهای I/O  استفاده می کند . جدولهای فایلها حاوی اطلاعات مربوط به فایلهای موجود ، محل آنها در حافظه ثانویه ، وضعیت جاری  آنها و سایر ویژگی های  آنها می باشد  البته ممکن است بخشی ( یا تمام ) این اطلاعات به وسیله سیستم مدیریت فایلها نگهداری شود .

برای مدیریت پردازشها  O.s   جدولهای پردازشها را نگهداری می نماید . O.S  باید از محل قرار گرفتن آن و از صفاتی که در مدیریت آن موثر است  ، با اطلاع باشد . معمولاً به مجموعه این صفات بلوک کنترل پردازش PCB می گویند به مجموعه برنامه داده ها ، پشته و صفات ، تصویر پردازش  می گویم برای اجرای یک پردازش تمام  تصویر آن باید در حافظه اصلی بار شود .

 

بلوک کنترل پردازش  یا      PCB  ) Process Control  Block )

  هر پردازش  در سیستم عامل توسط یک بلوک کنترل پردازش PCB  نمایش داده می شود  که به نام  بلوک کنترل وظیفه هم نامیده می شود.

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

هر PCB  حاوی اطلاعات زیادی درباره پردازش معینی می باشد. این اطلاعات زمانیکه  پروسس از(  حالت اجرا  ) به (  حالت آماده  )  می رود لازم است ذخیره شود  که اگر دوباره پروسس خواست  به حالت اجرا برگردد از همان نقطه ای  که قطع شده  بود ، به درستی ادامه دهد  .  که موارد زیر را شامل می شود :

-        حالت جاری پردازش  : آماده –  اجرا -  مسدود

-          شماره شناسایی پردازش

-          شمارنده برنامه : آدرس دستورالعمل بعدی قابل اجرای پردازش را نشان می دهد . (Program Counter =pc)

-          اطلاعات مدیریت حافظه : مانند محل قرارگیری پردازش در حافظه

-     اطلاعات وضعیت I/O  : شامل لیستی  از وسایل ورودی / خروجی  تخصیص یافته به پردازش ، لیست فایلهای باز شده برای پردازش و غیره .

 وقتی سیستم عامل Cpu  را به پردازش دیگر می دهد با استفاده از PCB   تمامی اطلاعاتی  که جهت راه اندازی  مجدد پردازش قبل لازم دارد را حفظ می کند . به این عملیات تعویض متن Context Switch  گویند . تعویض متن بوسیله بخشی از سیستم عامل به نام Dispatcher  انجام می پذیرد .

تصویر  سویچ پردازنده از پردازشی به پردازشی دیگر ص30 جزوه

 

مفهوم زمانبندی

 

هدف چند برنامگی  این است که در همه  اوقات ، پردازشی در حال  اجرا وجود داشته باشد تا بهره وری Cpu   بیشینه گردد.

هدف اشتراک زمانی آن است که Cpu مابین پردازش ها به قدری مکرر ، سوئیچ نماید  که کاربران با برنامه در حال اجرا محاوره داشته باشند .

 زمانیکه بیش از یک پروسس قابل اجرا باشد سیستم عامل باید تصمیم بگرد که کدامیک اول اجرا شود . بخشی از سیستم عامل که این تصمیم گیری را انجام می دهد  زمانبند (Scheduler) نامیده می شود .  پردازش هایی که در حافظه اصلی قرار دارند و منتظر اجرا شدن هستند در صفی به نام صف آماده   (ready queue) قرار می گیرند . این صف معمولاً به شکل یک لیست پیوندی  (linked list)    پیاده سازی می شود .

تصویر ص49 یــــــــــا 31-32 جزوه   ( صف آماده و صف دستگاههای ورودی/ خروجی)

معیار های زمانبندی در سیستم عامل

عدالت (fairness) یعنی اطمینان از اینکه هر پروسس سهم عادلانه و منصفانه‌ای از CPU را دریافت کند.

کارایی یا بهره وری (utilization- Efficiency) CPU یعنی اینکه CPU در تمام زمانها (حتی الامکان) مشغول باشد

زمان پاسخ (Response Time) یعنی به حداقل رساندن زمان پاسخ برای فرمانهای محاوره‌ای کاربر. این زمان معمولاً با سرعت ابزار خروجی محدود می‌شود. ( متوسط زمان ورود یک کار به سیستم تا دریافت اولین پاسخ توسط کاربر )

زمان برگشت (یا گردش کار (Turnaround) یعنی به حداقل رساندن زمانی که کاربران دسته‌ای باید منتظر بمانند تا خروجی آنها پدید آید . فاصله زمانی از لحظه تحویل کار تا لحظه تکمیل کار را زمان برگشت می‌نامند ولی زمان پاسخ مدت زمانی است که از صدور یک تقاضا تا تولید اولین پاسخ آن طول می‌کشد (نه زمان خروجی کل برنامه( . زمان برگشت یعنی اجرای کامل

زمان بارگذاری در حافظه +زمان عملیات I/O +زمان اجراء+ زمان انتظاردر صف آماده = زمان گردش کار

توان عملیاتی یا گذردهی (throughput) به تعدادکارهای انجام شده در واحد زمان گفته می‌شود.            هدف از چند برنامگی ، افزایش کارآئی پردازنده و توان عملیاتی سیستم به وسیله زمانبند ی است  .

زمان انتظار (waiting time) الگوریتم زمانبندی CPU, بر میزان زمان اجرای پردازش یا اعمال I/O اثر نمی‌کند, بلکه فقط در زمان صرف شده جهت انتظار در صف آماده اثر می‌گذارد. زمان انتظار , مجموع پریودهای زمانی صرف شده در صف آماده می‌باشد . تعریف دوم :

متوسط زمانی که فرایند در صف آماده  منتظر اجرا می ماند  وابسته به الگوریتم های زمانبندی است .

نکته : همواره رابطه مقابل برقرار است : زمان گردش کار => زمان پاسخگویی

صف های زمانبندی عبارتند از : 1- صف کار 2-  صف آماده 3 – صف دستگاههای ورودی / خروجی

 

انواع زمانبندی پردازنده

هدف از زمانبندی پردازنده ، تخصیص فرایندها به پردازنده یا پردازنده ها در ط.ل زمان است به گونه ای که هدفهای سیستم از قبیل زمان پاسخ ، توان عملیاتی و کارایی پردازنده را برآورده سازد .

زمانبندی پردازش به سـه دسته تقسیم می شوند :

1-   زمانبند کوتاه مدت (LLS)

2-   زمانبند میان مدت   (MLS)

3-     زمانبند بلند مدت (HLS)

آماده -----  اجرا   : زمانبند کوتاه مدت

جدید -----  آماده : زمانبند بلند مدت                    جدید  ----- آماده و معلق : زمانبند بلند مدت

آماده ، معلق -----  آماده : میان مدت                     مسدود ، معلق ---- مسدود : میان مدت

 

 زمانبند کوتاه مدت   از بین پروسسهای موجود در حافظه اصلی که آماده اجرا هستند یکی را انتخاب کرده و Cpu را به آن اختصاص می دهد . غالباً هر صد میلی ثانیه یک بار اجراء می شود .

نکته : تعویض متن توسط بخشی از سیستم عامل به نام Dispatcher انجام می شود که مدیریت آن به عهده زمانبند کوتاه مدت است .

زمانبند میان مدت  بخشی از  عملیات مبادله است . در بعضی از شرایط به دلیل زیادشدن تعدا فرایندهای موجود در چرخه حالات فرایند ها و در نتیجه کم شدن حافظ  آزاد سیستم و کاهش کارائی ، بهتر است تعدادی فرایند به حافظه جانبی منتقل شده و پس از مدتی به حافظه اصلی برگردانده شود . این عمل مبادله       نام داشته و توسط زمانبند میان مدت مدیریت می شود . (تصمیم گیری در مورد افزودن به تعداد فرایندهایی که بخشی یا تمام آنها در حافظه اصلی است ) .

زمانبند بلند مدت یا زمانبندی کار به انتخاب کارها و بارکردن آنها به حافظه مربوط می شود . تصمیم گیری در مورد افزودن به مجموعه فرایندها برای اجرا . این زمانبند می بایست مخلوط مناسبی از پردازشهای            cpu – limited و I/o limited را جهت قرارگیری در حافظه انتخاب کند تا کارایی cpu  و وسایل I/o بهینه شود .

با پذیرش  یک کار یا یک برنامه کاربر ، آن کار به صورت یک فرایند درآمده و به صف  زمانبندی         کوتاه مدت افزوده می شود .

 

+ نوشته شده در  شنبه بیست و هشتم شهریور 1388ساعت 0:34  توسط  فرزاد قاسمی  |