مفاهیم سیستم عامل

مقدمه

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

يك سيستم كامپيوتري از 3 بخش تشكيل مي شود :

سخت افزار – برنامه هاي كاربردي – نرم افزار

سيستم عامل چيست ؟

تعريف سيستم عامل :

تعريف كاملي از سيستم عامل وجود ندارد ، ولي بطور كلي مي توان گفت برنامه اي است كه به عنوان واسطه مابين كاربر و سخت افزار كامپيوتر عمل مي كند ، و جزئيات سخت افزار را از ديد كاربر ( برنامه ساز ) پنهان مي كند ، سيستم عامل تك برنامه اي است كه در تمامي اوقات بر روي سيستم كامپيوتر در حال اجرا است و معمولاً هسته[1] ناميده مي شود .

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

اهداف سيتم عامل

براي سيستم عامل سه هدف اصلي يا انجام سه وظيفه زير را مي توان در نظر گرفت :

1- سهولت : هدف اوليه سيستم عامل اين است كه استفاده از كامپيوتر را ساده تر و راحت تر مي كند . 2- كارآمدي : سيستم عامل موجب استفاده كارآمد از منابع سيستم كامپيوتري مي شود .

3- قابليت رشد : سيستم عامل بايد به نحوي ساخته شده باشد كه به طور موثر توسعه ، قابليت جديد سيستمي را بدون ايجاد مزاحمت در خدمات جاري ، ميسر سازد .

اهداف ديگر سيتم عامل عبارتند از :

4- پيشگيري از بروز خطا : سيستم عامل بايستي متضمن عملكرد صحيح سيستم كامپيوتر باشد .

5- محيط اجراي برنامه : ايجاد محيطي كه كاربر بتواند برنامه هايش را اجرا كند .

فيزيكي : CPU و دستگاهاي I/O

منطقي : خانه هاي حافظه فايل ها و داده ها

مولفه هاي سيستم كامپيوتري :

يك سيستم كامپيوتري به چهار مولفه تقسيم مي شود :

سخت افزار ، سيستم عامل ، برنامه هاي كاربردي و كاربران ( شكل 1-1 )

كاربر n

كاربر

3

كاربر

1

كاربر

2

سخت افزار

سيستم عامل

سيستم بانك اطلاعاتي ويرايشگر اسمبلر كامپايلر

شكل 1-1 مولفه هاي سيستم كامپيوتري

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

مي توانيم به سيستم عامل بعنوان يك تخصيص دهنده منابع بنگريم سيستم عامل همانند مدير منابع عمل مي كند و منابه ( زمان Cpu فضاي حافظه ، فضاي ذخيره فايل ، وسايل I/O و . . . ) را بر حسب نياز به برنامه هاي مشخصي تخصيص مي دهد . سيستم عامل برنامه كنترل است يك برنامه كنترل اجراي برنامه هاي كاربر را كنترل مي كند تا از خطا ها و استفاده غير صحيح از كامپيوتر ( وسايل I/o و . . . ) جلوگيري نمايد كنترل و تخصيص منابع ، در سيستم عامل انجام مي شود .

هيچ تعريف جامعي از اينكه چه چيزي بخشي از سيستم عامل است و چه چيز نيست وجود ندارد زيرا به تناسب تواناييهاي سخت افزار سيستم عامل ها نيز متفاوتند .

تاريخچه سيستم عامل

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

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

در نسل اول کامپیوترها (55-1945) که از لامپ خلا برای ساخت آنها استفاده می شد . زبانهای برنامه نویسی ( حتی اسمبلی ) ابداع نشده بودند و وسیستم عامل نیز اصلا وجود نداشت . روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند. آنها برنامه خود را توسط تخته مدار سوراخ دار ( بعدها توسط کارت پانچ ) و به زبان ماشین به کامپیوتر می دادند اکثر برنامه ها ی محاسبات عددی معمولی مانند جداول سینوس و کسینوس بود .

– سیستم های دسته ای

– سیستم های چند برنامگی

– سیستم های اشتراک زمانی

– سیستم های چند پردازنده ای

– سیستم های سیستم های بلادرنگ

– . . .

– ستم هاي دسته اي Batch System

كامپيوترهاي اوليه ، اكثراً ( بطور فيزيكي ) ماشين هاي بزرگ و گران قيمتي بودند بنابراين حداكثر استفاده از ماشين مهم بود . زماني كه به خاطر زمانبندي و نصب در سيستم هاي رديفي به هدر مي رفت قابل قبول نبود . سيستم عامل در كامپيوتري اوليه همواره مقيم در حافظه بود و وظيفه اصلي آن انتقال كنترل اتوماتيك از يك كار به ديگري بود . و در هر لحظه فقط یک برنامه اجرا می شد.طریقه کار با این کامپیوترها از طریق یک کنسول بود که تنها اپراتور مخصوص کامپیوتر با آن کار می کرد وكاربران سيستم ها بطور مستقيم با سيستم كامپيوتري محاوره نداشته . کاربر ابتدا برنامه خود را به زبان فرترن یا اسمبلی بر روی کاغذ می نوشت سپس توسط دستگاه card punch برنامه را روی کارت های سوراخدار منتقل می ساخت. بعد این دسته کارت تهیه شده که شامل برنامه ، داده ها و کارتهای کنترلی بود به صورت یک کار تحویل اپراتور داده می شد. اپراتور بعد از اتمام کار قبلی ، دسته کارت جدید را به کامپیوتر می داد تا برنامه را اجرا کند در انتها خروجی برنامه را به کاربر تحویل می داد.

هنگامی که اپراتور مشغول گذاشتن نوارها یا برداشتن کاغذهای چاپ شده بود وقت زیادی از این کامپیوترهای گران قیمت به هدر می رفت .

برای رفع مشکل فوق سیستم های دسته ای ابداع شد یعنی ابتدا یک سبد پر از دسته کارتها جمع آوری می شد سپس کلیه آنها بوسیله دستگاه کارتخوان یک کامپیوتر کوچک و نسبتاً ارزان خوانده و بر روی یک نوار ذخیره می گردید . سپس اپراتور نوار را برداشته بر روی کامپیوتر اصلی و گران قیمت که محاسبات را انجام می داد نصب می کرد . بعد از آن برنامه را اجرا می کرد تا اولین کار را از روی نوار برداشته و اجراء کند ، خروجی بر روی نوار دیگری نوشته می شد . پس از اتمام هرکار سیستم عامل به صورت خودکار کار بعدی را از نوار می خواند . پس از اجراء همه برنامه ها ، اپراتور نوار خروجی را برداشته و دوباره روی کامپیوتر منتقل می ساخت تا عملیات چاپ خروجی ها به صورت off line انجام شود . به این روش کار off line spooling نیز گفته می شود .

نمودار این عملیات به صورت زیر می باشد :

چاپگر خطی

نوار

نوار

cpu

نوار

نوار

کارت خوان

به طور خلاصه می توان گفت :

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

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

معایب این روش : 1- گردش طولانی کار 2- عدم وجود اولویت 3- نیاز به سخت افزار اضافی

مزایای سیستم off line spooling : 1- راندمان بهتر 2- عملیات ساده تر 3- سهولت برای استفاده از راه دور

تقسيم بندي سيستم عامل از جهت ارتباط با دستگاهاي ورودي / خروجي

الف ) سيستم هاي روي خطي : ( On – Line)

سيستم هايي كه در آنها پردازنده مستقيماً با دستگاهاي I/O در ارتباط است . به دليل كند بودن I/O بيكاري پردازنده ( Cpu) زياد بوده و بهره وري سيتم كاهش مي يابد .

چاپگر خطی

cpu

کارتخوان

ب ) سيستم هاي off-line :

سيستم هايي كه در آنها اطلاعات از طريق يك حافظه جانبي سريعتر نسبت به I/O ، به پردازنده داده شده و خروجي پردازنده هم از طريق همان نوع حافظه جانبي مثلاً TAPE به واحد خروجي ارسال مي گردد . هرچند كم كم ديسك وارد بازار شده و عمل بافرينگ براي اجراي همزمان و پردازش سريعتر داده ها استفاده شدند .

چاپگر خطی

نوار

نوار

cpu

نوار

نوار

کارت خوان

– سیستم های چند برنامگی Multiprogramming

در نسل سوم کامپیوترها (80-1965) از مدارت مجتمع برای ساخت کامپیوترها استفاده شد . به طور کلی برنامه ها را می توان به دو دسته تقسیم کرد :

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

زمانی که کارهای متعددی بر روی یک رسانه ما دسترسی مستقیم مانند دیسک قرار دارند ، زمانبندی کار امکان پذیر می گردد . عمل off line و spooling برای رویهم انداختن I/O محدودیتهایی دارند چون یک برنامه معمولاً نمی تواند هم از cpu و هم وسایل I/O را در تمامی اوقات مشغول نگه دارد ولی چند برنامگی که در اثر زمانبندی کار ایجاد می گردد سبب افزایش بهره وری cpu ، و همواره یک کار برای اجرا دارد .

100×

زمان موثر استفاده از cpu

= درصد بکارگیریcpu

کل زمان مورد استفاده

ایده چند برنامگی بشرح زیر است : O.S کار را انتخاب و اجرا می کند کار ممکن است بخاطرI/O متوقف شود . O.S بلافاصله به کار دیگری سوئیچ می کند ، اگر این کار هم وارد حالت انتظار شد Cpu به کار دیگری می پردازد و به همین ترتیب . بالاخره کار اول از حالت انتظار خارج می شود Cpu مجدداً به آن اختصاص می یابد . چون همواره Cpu مشغول اجرای یک کار است بنابراین بهره وری آن بالاست . طرح حافظه برای سیستم چند برنامگی به صورت زیر است :

DISK

Cpu

حافظه

Operation system

Job 1

Job 2

Job 3

Job 4

چند برنامگي : اجراي همزمان چند فرايند توسط يك پردازنده . هرچه درجه چند برنامگي افزايش يابد فعال بودن و بهره وري Cpu بالا مي رود .

نکته : یک شیوه برای بالا بردن راندمان cpu آن است که کارهای cpu limited را با I/o limited مخلوط کنیم.

**سیستم های اشتراک زمانی Time – Sharing

حالت خاصی از چندبرنامگی است که در آن به هر کار یک بازه ی زمانی داده می شود . پس از پایان این بازه ی زمانی ، پردازنده به برنامه دیگری داده می شود . به عبارتی از یک کار به کار دیگر سوئیچ می کند . در این سیستم امکان محاوره کاربر با سیستم وجود داشته و جابجایی کنترل بین برنامه ها براساس معیار زمانی است .

نکته : از دید کاربر ، سیستم عامل به سیستم های تک کاربره ، چند کاربره ، توزیع شده و سیستم عامل شبکه تقسیم می شود .

– سیستم های چند پردازنده ای Multiprocessor

کامپیوترها می توانند به جای یک Cpu چندین Cpu داشته باشند که در اینصورت به آنها سیستم های چند پردازنده ای می گویند . به عبارتی چند PC [2] در سیستم وجود دارد که اگر سیستم چندبرنامه ای باشد بیش از یک شمارنده برنامه ( pc ) فعال خواهد بود. حافظه بین پردازنده ها می تواند مشترک باشد و یا هر دو پردازنده حافظه ی مخصوص به خود را داشته باشد . همین طور پردازنده ها می توانند فعال باشند .

افزایش توان عملیاتی ، صرفه جویی هزینه و قابلیت اعتماد دلایل ساخت این سیستم هاست .

از آنجایی که پردازنده ها می توانند دستگاههای جانبی و قسمتهای دیگر سخت افزار تقسیم نمایند صرفه جویی در هزینه خواهیم داشت مثلا یکبار داده را در دیسک ذخیره کنیم و چندپردازنده بطور مشترک استفاده کنند . در صورت خرابی یک پردازنده سیستم متوقف نخواهد شد .

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

– سیستم های سیستم های بلادرنگ Real Time

– نخ ( thread ) و سیستم های

ه ) مشاوره اي interactive :

كاربر بصورت مستقيم با كامپيوتر در ارتباط است . دستوراتي را وارد مي كند و منتظر پاسخ مي ماند .

تمرین :

1- در مورد هریک از انواع سیستم عامل تحقیق صورت گیرد و دو مورد از آنها را از نظر کارایی ، مزایا ، معایب با هم مقیاس کنید .

2- درمورد(Job Control Language) JCL که نوعی زبان برنامه نویسی می باشد تحقیق کنید .

3- نخ ( thread )

4- در کامپیوترهای فعلی ، حداقل بخشی از وقفه به زبان اسمبلی نوشته می شود . چرا ؟

استوریج EMC
هارد اکسترنال
هاست وردپرس