مجموعه نکات سیستم عامل

n                 بخش ا ول ( تعاریف ، مقدمه ، تاریخچه و انواع سیستم عامل )

 

·                    نرم افزارها به دو دسته کلی تقسیم می شوند : الف) نرم افزار های سیستمی     ب ) نرم افزارهای کاربردی

·                    مهمترین نرم افزار سیستمی ، سیستم عامل است . editorها و  کامپایلر ها نیز جزء این دسته هستند.

 

·                    در بحث مفاهیم سیستم عامل باید توجه داشت که بعضی سیستمها وروشها ی ذکر شده درمورد pcها صدق نمی کنند  وبرای درک بهتر مطالب  لازم است تجسم درستی از آنها داشته باشید .

 

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

·                     

·                    Time Sharing  یعنی اشتراک زمانی و تقسیم زمان پردازشگربه زمانهای کوچک و مساوی بین تمام کاربران که در هر تکّه زمان، CPU کارهای متفاوت کاربران مختلف را اجراء میکند . که استفاده بهینه را از توانمندی های سیستم محیّا می کند .

 

·                    سیستم عامل منابع سیستم و همچنین خودش را مدیریت می کند .

·                    در کامپیوترهای نسل اول که سیستم عامل وجود ندلشت ،  وظایف آن را اپراتور و تا حدودی  برنامه های کاربر انجام می داداند .

 

·                    سیستم های دسته ای یا Batch Systems (1960) جزء سیستمهای نسل دوم هستند که دارای اولین سیستمها ی عامل  شدند . FMS وسیستم عامل IBSYSبرای سخت افزار IBM7094 از آن جمله بودند.

 

·                    چند برنامگی اولین بار با سیستم عامل OS/360 (1970) از نسل سوم کامپیوتر ها ارائه شد .

·                    سیستم های Time Sharing با ایده نیاز به Quick Response پس از سیستم های دسته ای وارد عرصه کامپیوترشدند.

·                    اولین سیستم اشتراک زمانی CTSS نام داشت  . Multics دیگر سیستم اشتراک زمانی بود که می توانست صدها کاربر را سرویس دهی کند .

·                    Time Sharing  یعنی اشتراک زمانی و تقسیم زمان پردازشگربه زمانهای کوچک و مساوی بین تمام کاربران که در هر تکّه زمان، CPU کارهای متفاوت کاربران مختلف را اجراء میکند .

 

 

·                    در سالهای 1990 یکی از دانشمندان رشته کامپیوتر بنام کن تامسون نسخه تک کاربره ای از روی  Multics ساخت که همان منجر به پیدایش سیستم عامل Unix شد.

·                    کامپیتر های نسل چهارم ازLSI استفاده می کردند (1980) . DOS و LINUX از سیستم های اولیّه این نسل هستند .

·                    باز بودن کد Unix باعث شد تا نسخه های متعدد ی از روی آن نوشته شود .نهاتاً   IEEE یک استانداردی بر روی آن بنا نهاد که Posix نام گرفت .

·                    سیستمهای عامل توزیع شده در شبکه ها استفاده میشوند و امکان پردازش موازی و استفاده همزمان از چند cpu   را دارند . لذا مدیریت پردازه پیچیده دارند .

·                    سیستم های چند پردازه ای Multi Processor هم در شبکه و هم روی یک سیستم ممکن است استفاده شوند.دوبه قسم     SMP چند پردازنده ای متقارن و ASMP چند پردازنده ای نا متقارن تقسیم مشوند . SMP ها سیستم عامل و برنامه های دگر را ممکن استبر روی هر یک از CPUها اجراء کنند .ولی در ASMPها سیستم عامل همواره از یک CPU استفاده کرده و دیگر CPU ها برای برنامه های دیگر استفاده می شوند.

·                    سیستم SUNos/4 از نوع ASMP و سیستم solaris/2 از نوع SMP میباشد .

·                    Real Time یعنی سرویس دهی آنی و بی درنگ به کاربر. پروسه های Real Time می بایست در زمان مشخصی اجراء شوند . پس از آن دیگر نتیجه اجراء پروسه ارزشی ندارد .

·                    Real Time نوع سخت محدودیّت زمانی دارد وپاسخ را در زمان مشخصی می خواهد لذا از حافظه مجازی و سیستم Time Sharing در آن استفاده نمی شود . بی درنگ نوع نرم کافی است وعده پاسخ را در یک محدوده زمانی داشته باشد و پروسه آن نسبت به دیگر پروسه ها همواره از اولویّت بیشتری برخوردار است ..

·                    پاسخ سریع یا Quick Response جزء انواع سیستم عاملها نیست .

·                    سیستم های دسترسی چند تایی Multi Access به سیستمی اطلاق می شود که هنگام پردازش یک کار به دستگا ههای دیگر I/O نیز توجه دارد و واکنش نشان می دهد.

·                    انواع ساختارهای موجود در سیستم عاملها عبارتند از : لایه ای – یک پارچه – ماشین مجازی – مشتری خدمت گذار

·                    Dos سیستم یک پارچه، THEsystem یک سیستم لایه ای ، VM یک سیستم ماشین مجازی  و  novel یک سیستم مشتری خدمت گزار می باشند .

·                    Bufferهای مورد استفاده درسیستم های کامپیوتری ممکن است سخت افزاری باشند مانند بافر موجود در یک چاپگر و یا بافر کنترلر هارد دیسک .  یا نرم افزاری تشکیل شده در RAM سیستم ویا حجیم تر بر روی دیسک .

 

·                    هدف از استفاده  بافر ها تسریع در عملیات I/O است همچنین تطایق سرعت بین دستگاههای کند I/O با CPU ی سریع

·                    در استفاده از Single Buffer نمی توان همزمان با خوانده شدن  بافر توسط CPU ، از ورودی  اطلاعات  جدیدی را در آن ریخت ولی  در Double Buffer می توان همزمان با عملیات پردازش ، عملیات ورودی وخروجی را نیز انجام داد.

 

 

 

 

·                    سیستم عاملها یی که در شروع کار ، بر روی دیسک قرار می گرفتند را سیستمهای عامل دیسکی یا  DOS  می خواندند که مخفف Disk Operating System می باشد .

 

·                    بیشترین قسمت از سیستم عامل Uinx به زبان C نوشته شده است لذا قابل حمل برروی سخت افزارهای مختلف میباشد .

 

·                    Win 3.1 یک سیستم کامل نیست . چرا که به صورت یک پوسته بر روی DOS سوار می شود.

·                    CPUlimited یا  CPU bound به برنامه های سنگین باتنگنای عملیّاتی محاسباتی اطلاق می شود . I/O limited به برنامه های دارای تنگنای زمانیI/O گفته می شود . مانند برنامه های محاوره ای و تجاری با حجم I/O زیاد  .

 

·                    Spooling یعنی عملیّات همزمان دستگاههای جانبی Simultaneous Prifral Operation  On Line

 

·                    در سیستم های نسل سوم کارهای I/O پشت سر هم منظم شده بودند . لذا سیستم پس از اجراء یکی می توانست بلا فاصله به دیگری بپردازد . این توانمندی را تکنیک Spooling  می خوانند .

·                    خواندن اطلاعات کارهای مختلف ( JOB ) از روی دیسک یا نوارمغناتیسی  پشت سر هم ویا چاپ اطلاعات کاربران مختلف نمونه هایی از استفاده Spooling  می باشد .

 

·                    وقفه سخت افزاری  یک سیگنال یا علامت سخت افزاری است که بروز یک اتفاق در سیستم را به CPU  اعلام می کند .

·                    یک سیستم عامل باید بتواند وقفه وارد شده به CPU را شناسایی کند و در پاسخ به آن ، عمل مناسب را ( سرویس وقفه ) به اجراءگذارد.وقفه های سخت به کمک یک چیپ کنترل وقفه شناسایی شده و کد آن به CPU  گزارش می شود .

·                    وقفه ها از نقطه نظر های مختلف تقسیم بندی می شوند . انواع آن عبارتند از وقفه سخت افزاری ، وقفه نرم افزاری                وقفه Timer  و I/O و وقفه برنامه که نرم افزاری است و در روند اجراء برنامه ها ممکن است رخ دهد .

 

·                    سیستم عامها دارای دو بخش دستورات پوسته ای  و فراخوانی سیستمی می باشند. System cals ها در داخل برنامه ها استفاده می شوند .

·                     مفسر دستورات است که با کاربر تعامل دارد ممکن است درون پوسته سیستم باشد یا در هسته

·                    فرا خوانی سیستمی در سیستم های دسته ای JCL نام داشت که برنامه و داده های مربوطه را با هم به ماشین می سپرد و از تعامل مدام کاربر با آن جلو گیری می کرد . در Unix بنام Force شناخته می شود.

 

 

 

 

 

 

n               بخش دوم ( مدیریّت پردازه )

 

·                    پروسه یک فراروند در حال اجراء است در حالی که برنامه و فایل ممکن است روی حافظه جانبی در یک دستگاه خاموش قرار گرفته باشند . پروسه باید CPU  را تا انتهای اجراء در اختیار بگیرد .

 

·                    CPU  از نظر مدیریتی هیچ توانی را ندارد و اصولاً نمی تواند تشخیص دهد که چه چیز را به اجرا در می آورد.

 

·                    تنها حالت موجود  یک پروسه نسبت به CPU حالت RUN می باشد .

·                    حالت های اصلی پروسه نسبت به سیستم عامل ، سه حالت : RUN           READY           BLOCKED    می باشد .

 

·                    حالت های  New      ,     End    ,   Suspend Wait      ,     Suspend Ready  را نیز در بعضی موارد می توان در نظر گرفت .

·                    SUspend Blocked :حالت Blocked اگر به طول بی انجامد، پروسه به دیسک منتقل شوده و این حالت رخ می دهد

·                    Suspend  Ready  : پروسه از حالت Ready با توجه به نبود حافظه کافی به این حالت می رود .

 

·                    هنگامی که سیستم عامل تصمیم می گیرد CPU را به پردازش دیگری اختصاص دهد ، وضعیّت پردازش فعلی را که درون CPU موجود است ، برای ادامه عملیات در مرحله بعد در جایی از حافظه ذخیره می کند . به این عمل تعویض متن یا  Context Switch گویند.

 

·                    هر گاه یک وقفه رخ دهد ، سرویس مربوط به آن وقفه اجراء می شود سپس برنامه وقفه خورده اجراء میشود . البته ممکن است با بروز وقفه برنامه ای با اولویّت بالاتر متقاضی اجراء شده باشد که طبیعتاً آن برنامه اجرا خواهد شد .

 

·                    Thread  نخ  یا رشته کنترلی : منظور پروسه های سبک وزن سیستمی هستند که می توانند به طور  موازی اجراء شوند . به آنها Light Weight Process یا LWP نیز گفته می شود .

·                    منظور از زمان بندی آن بخش از سیستم عامل است که مشخص می کند از پروسه های آماده اجراءکدام زودتر وبرای چه مدتی اجراء شوند . Scheduler .

·                    برش زمانی CPU  یا Time Slice یا Quantum یا  برهه زمانی ، همگی یک مفهوم دارند. معمولاً کمتر ازms  100

 

 

 

 

 

·                    انواع زمانبندها : کوتاه مدت -- بلند مدت -- میان مدت

·                    JOB Scheduler جزء زمانبندی دراز مدت است که در آن کارهایی از روی دیسک را انتخاب و به حافظه اصلی بار می کند.

·                    الگریتم های انتخاب Job عبارتند از Mixed  -- Fifo  و SJF                          

·                    منظور از زمان انفجار CPU زمانی است که برای اجراء پروسه کامل نیاز است .

 

·                    زمان بازگشت برای یک پروسه عبارت است از زمان تحویل آن به سیستم تا پایان اجرایش

 

·                    زمانبندب FIFO یا FCFS یک الگریتم انحصاری است ولی در صورت نیاز پروسه به عملیات I/O ممکن است CPU را به پروسه   دیگری داد . ( انحصاری یا Non Preemptive)

·                    RR یا نوبت گردشی یک الگریتم ساده قدیمی و رایج می باشد . غیر انحصاری است . با میانگین انتظارنسبتاً بالا

 

·                    الگریتم زمانبندی ابتداء کوتاهترین کار یا SJF انحصاری است ودارای کمترین زمان انتظار برای پروسه ها می باشد . نام دیگر آن SPN  می باشد . ( Shortest Process Next )  برای کار های دسته ای که زمان انفجار پروسه از پیش   مشخص است مناسب می باشد .

 

 

·                    الگریتم HRRN یا بالاترین نسبت پاسخ همان HRNاست که زمان انتظار پروسه های بلند مدت را نسبت به روش SJF در نظر می گیرد.

 

·                    الگریتم SRT نوع غیر انحصاری SJF می باشد . که در آن ممکن است CPU  از پروسه فعلی گرفته شده و به پروسه ای تازه وارد داده شود که زمان کمتری را برای اجراء نسبت به پروسه فعلی نیاز دارد

 

·              SRT  یا SRTF به کارهای کوتاهتر اولوّیت می دهد . لذا به دلیل مصرف زمان بیشتر برای عملیات زمانبندی Over Head بیشتری نیز دارد .

 

 

 

 

·                    الگوریتم زمانبندی RR همه پروسه هارا یکسان در نظر می گیرد در حالی که پروسه ها از نظر اهمیّت پردازش با هم متفاوت هستند . در زمانبندی Priority اولیت پروسه ها نسیت به نوعشان متفاوت است و با توجه به اولویتشان در صف قرارمی گیرند .

·                    در استفاده از  Priority پروسه های با اولویت CPU  را در اختبار گرفته و اجراء      می شوند سپس نوبت به پروسه بعدی می رسد .( انحصاری ) اما ممکن است این الگریتم به صورت غیر انحصاری سازماندهی شده با شد که در آن صورت با اجراء پروسه به اندازه یک Quantum از اولویّت آن کم شود وپروسه دیگری جای آن را  بگیرد .

 

·                    زمانبندی صف های چندگانه یا Multiple Queues برای پردازشها ی مختلف چندین صف جدا درنظر می گیرد . پروسه ها با توجه به نوعشان در صف خود قرار می گیرند .    برای استفاده از این روش می بایست پردازش ها قابل دسته بندی باشند . ابتداء پروسه های صف های با اولویت بالاتر اجراء شده سپس پروسه های صفهای بعدی .

 

·                    در Multiple Queues ممکن است Priority بین صفوف ودر هر صف از الگریتم دیگری مثلاً RR یا FCFS استفاده شود .

·                    در الگریتم Priority اگر به پروسه ها اجازه دهیم که بین صفها نیز جا بجا شوند آن الگریتم را صفهای چند گانه با فیدبک می خوانیم .MFQ یا MLFQ .

·                    زمانبندی شانسی یا Lottery : به پروسه ها با توجه به اولویتشان تعدادی عدد به صورت اتفاقی هنگام تقاضای اجراء ، داده می شود وهنگام اجراء ،عددی اتفاقی تولید می شود و پروسه دارنده آن عدد به اجرا گذاشته می شود .

 

·                    ابتدا کوتاهترین کار ، الگریتمی است که برعکس SJF  عمل می کند . LPT

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

 

n              بخش سوّم ( مدیریّت حافظه )

 

·                    منظورازمدیریت حافظه،مدیریت حافظه اصلی است Main Memory Managemant.

 

·                    دودسته کلّی مدیریت حافظه داریم : ساده و پیچیده

 

?    BY : Mohammad Ansari

* Mail : MA623@yahoo.com

·