سیستم عامل:
سیستم عامل:
برنامه ای است که سخت افزار کامپیوتر را مدیریت می کند . مبنایی برای برنامه های کاربردی
است و به عنوان واسط بین کاربر و سخت افزار است . سیستم های عامل کامپیوترهای بزرگ
برای بهینه سازی بهره وری از سخت افزار ساخته شده اند. سیستمهای عامل pc ٬بازیهای پیچیده
٬ برنامه های کاربردی تجاری و هر انچه را که بین انها است پشتیبانی می کند . سیستم عامل
بخش مهمی از هر سیستم کامپیوتر است . هر سیستم کامپیوتری را می توان به چهار قسمت تقسیم
کرد .
1) سخت افزار 2) سیستم عامل
3) برنامه های کاربردی 4) کاربران
سخت افزار
سیستم عامل
نرم افزار
کاربر
سیستم عامل به کارگیری سخت افزار را بین برنامه های مختلف کاربران ٬ کنترل وتنظیم
می کند . سیستم عامل یکی از نرم افزار های سیستم است که موجب به کارگیری سخت افزار و
سایر نرم افزارها می شود . یکی از کارهای مهمی که سیستم عامل انجام می دهد این است که
تمام پیچدگیها را از دید کاربران کامپیوتر پنهان نگه داشته و با فراهم کردن مجموعه ای از
دستورالعمل ها به نام فرمانهای سیستم عامل محیط مناسبی را برای کار با کامپیوتر فراهم میکند
لذا می توان گفت سیستم عامل مجموعه ای از فرمانهاست سیستم عامل نقش یک مدیر را در
سیستم کامپیوتری به عهده دارد و کلیه خدمات لازم در مورد حافظه ٬ اطلاعات ٬ دستگاههای
جانبی و پردازش سایر امور زیر را نظر دارد . لذا می توان گفت که سیستم عامل دارای 4 نوع
مدیریت است .
1) مدیریت حافظه 2) مدیریت دستگاههای جانبی
3) مدیریت پردازش 4) مدیریت اطلاعات
منظور از مدیریت حافظه اتخاذ روشی مناسب جهت استفاده بهتر از حافظه و بر اورده ساختن
اهداف کلی سیستم از قبیل سرعت کارایی و غیره است . در سیستم های کامپیوتری مدیریت حافظه
به روشهای متفاوتی صورت می گیرد که این روشها در میزان کارایی و سرعت با یکدیگر
تفاوت دارند . نکاتی که در مدیریت حافظه مورد توجه قرار می گیرند عبارتند از :
1) نحوه به کارگیری قسمتهای مختلف حافظه و بخاطر سپردن حافظه های ازاد
2) مکانیزم تخصیص حافظه ( چه قسمتی از حافظه و چگونه تخصیص یابد )
3) نحوه باز پس گیری حافظه
4) الگوریتم هایی که برای اعمال فوق لازمند کدامند؟
5) روش مورد نظر چه اثری بر اشتغال پردازنده دارد ؟
منظور از مدیریت دستگاههای جانبی ٬ نگهداری وضعیت و سوابق دستگاهها و چگونگی بهره
برداری از انهاست این نوع مدیریت شامل موارد ذیل است :
1) نگهداری وضعیت دستگاههای جانبی مختلف
2) نحوه استفاده برنامه ها از دستگاههای جانبی
3) تخصیص دستگاه به برنامه ها
4) روشهای باز پس گیری دستگاه
منظور از مدیریت پردازش چگونگی بهره برداری از پردازنده یا پردازنده های سیستم است که
منجر به بر اوردن اهداف سیستم از نظر کارایی ٬ سرعت و غیره می شود .
تخصیص پردازنده معمولا در دو مرحله انجام می شود که عبارتند از :
1) انتخاب تعداد کار ( انچهکه توسط استفاده کننده به او واگذار می شود )
2) انتخاب یک یا چند کار از بین چندین کار اماده
منظور از مدیریت اطلاعات همان سیستم فایل ها (file system) است از انجایی که اطلاعات
منابع یک سیستم کامپیوتری هستند مدیریت اطلاعات نیز از اهمیت خاصی برخوردار است و
وظایف زیر را بر عهده دارد :
1) اطلاع از محل وجود اطلاعات از طریق تشکیل جداول مناسب
2) تعیین محل ذخیره اطلاعات و استفاده کنندگان از این اطلاعات بر طبق ضوابط مشخص
3) تخصیص اطلاعات (قرار دادن اطلاعات در اختیار کاربران )
سیستم عامل هماهنگ کننده همه دستگاههای سخت افزاری موجود در کامپیوتر است و بر عملکرد
ان نظارت دارد به این ترتیب شما می توانید برنامه مفیدی را روی کامپیوتر اجرا کنید. سیستم
عامل های مختلف شامل برنامه های مختلف و روشهای متفاوتی برای ارتباط با پردازنده (cpu)
حافظه و دستگاههای ورودی خروجی می باشند پس همانطور که دیدید سیستم عامل اساس و پایه
است و بدون ان کامپیوتر مجموعه ای از قطعات پلاستیکی و فلزی خواهد بود سیستم عامل
(operating system) با حروف اختصاری os نرم افزاری است که مسئول کنترل و به
کارگیری منابع سخت افزاری مانند حافظه ٬ واحد پردازش مرکزی (cpu) فضای ذخیره سازی
دیسک و تجهیزات جانبی است .
سیستم عامل مبنایی است که برنامه های کاربردی مانند برنامه های واژه پردازی و صفحه
گستردهها بر اساس ان ساخته می شود. امروزه مشهورترین سیستم عامل در جهان نرم افزار نرم
افزار ویندوز است که بر روی اکثر رایانه های شخصی نصب شده است . علاوه بر ویندوز سیستم
عامل های دیگری نیز بر روی انواع رایانه ها به کار میرود از جمله یونیکس ٬ لینوکس ٬
سولاریس٬ بی اس دی ٬ مک ٬ ام دی اس .
سيستم عامل بدون شك مهمترين نرم افزار در كامپيوتر است . سيستم عامل نرم افزاري است كه
امكان اجراي تمامي برنامه هاي كامپيوتري را فراهم مي اورد . سيستم عامل با سازماندهي ٬
مديريت و كنترل منابع سخت افزار را بدرستي تفسير و در اين راستا امكانات متعدد و ضروري
جهت حيات ساير برنامه هاي كامپيوتري را فراهم مي اورد . همه كامپيوتر هاي شخصي داراي
سيستم عامل هستند ويندوز يكي از پر كاربرد ترين سيستمهاي عامل است . يونيكس يكي ديگر از
سيستمهاي عامل مهم در اين زمينه است .
سيستم عامل با ساده ترين تحليل و بررسي دو كار را در كامپيوتر انجام مي دهند :
1) مديريت منابع نرم افزاري و سخت افزاري يك سيستم كامپيوتري را بردوش دارد .
پردازنده ٬ حافظه ٬ فضاي ذخيره سازي نمونه هايي از منابع اشاره شده هستند .
2) روشي پايدار و يكسان براي دستيابي و استفاده از سخت افزار را بدون نياز از جزئيات
عملكرد هر يك از سخت افزار هاي موجود را براي برنامه هاي كامپيوتري فراهم مي
نمايد .
وظيفه سيستم عامل :
اولين وظيفه يك سيستم عامل مديريت منابع سخت افزاري و نرم افزاري است . برنامه هاي
متفاوت براي دستبابي به منابع سخت افزاري همچون پردازنده ٬ حافظه ٬ دستگاههاي ورودي
خروجي ٬ حافظه هاي جانبي در رقابتي سخت شركت خواهد كرد . سيستم هاي عامل به عنوان يك
مدير دادگر و مطمئن زمينه استفاده بهينه از منابع موجود را براي هر يك از برنامه هاي
كامپيوتري را فراهم مي نمايند .
وظيفه دوم يك سيستم عامل ارائه يك رابط يكسان براي ساير برنامه هاي كامپيوتري است . در اين
حالت زمينه استفاده بيش از يك نوع كامپيوتر از سيستم عامل فراهم شده و در صورت بروز
تغييرات در سخت افزار سيستم هاي كامپيوتري نگراني خاصي براي اجراي برنامه وجود نخواهد
داشت . چرا كه سيستم عامل به عنوان ميانجي بين برنامه هاي كامپيوتري و سخت افزار ايفاي
وظيفه كرده و مسئوليت مديريت منابع سخت افزاري به وي سپرده شده است . برنامه نويسان
كامپيوتري نيز با استفاده از نقش سيستم عامل به عنوان يك ميا نجي براحتي برنامه هاي خود را
طراحي و پياده سازي كرده و در رابطه با اجراي برنامه هاي نوشته شده بر روي ساير
كامپيوترهاي مشابه نگراني نخواهد داشت ( حتي اگر ميزان حافظه موجود در دو كامپيوتر مشابه
نباشد ) در صورتيكه سخت افزار يك كامپيوتر بهبود و ارتقاء يابد سيستم عامل اين تضمين را
ايجاد خواهد كرد كه برنامه ها در ادامه بدون بروز اشكال قادر به ادامه حيا ت و سرويس دهي
خود باشند .
انواع سيستم عامل :
سيستم هاي عامل انواع گوناگون دارند كه با توجه به اندازه كامپيوتر ونوع كاربردهاي ان برخي
از انها بسيار ساده و برخي ديگر پيچيده است .
1) single program سيستم عامل تك برنامه اي :
برخي از كامپيوتر ها مي توانند در يك لحظه به پردازش يك برنامه بپردازند . سيستم عامل هاي
اين نوع كامپيوتر ها مي توانند برنامه ها را بار گذاري و اجرا كنند و يا اطلاعا ت را به دستگاه
جانبي بفرستند يا از ان دريافت كنند و دستورات مخصوص خود را به اجرا در اورند سيستم
عامل هاي موجود بر روي بيشتر ميكرو كامپيوترها از اين نوع هستند لذا اين نوع كامپيوترها قادر
به اجراي چند برنامه به طورهمزمان يا انجام كاري ديگر علاوه بر پردازش يك برنامه نيستند .
2) multi programming براي جلوگيري از تلف شدن وقت واحد پردازشگر اين سيستم عامل
طوري طراحي شده اند كه مي توانند اجراي چند برنامه را به طور همزمان بر عهده بگيرند .
انجام اين كار بدين صورت است كه در هر لحظه چند برنامه در داخل حافظه موجود هستند به هر
كدام از اين برنامه ها در مرحله اجراي خاص خود قرار دارند . اين برنامه ها به صورت قسمت
قسمت مطابق با احتياجات ورودي خروجي خود پردازش ميشوند. مي توان براي پردازش
برنامه ها اولويت هايي را نيز در نظر گرفت در اين حالت برنامه هايي كه داراي اولويت براي
اجرا هستند زودتر از ديگربرنامه ها پردازش خواهند شد به عبارت ديگر اجراي اين برنامه ها بر
برنامه هاي ديگري كه داراي اولويت نيستند تقدم خواهند داشت . كاربر مي تواند بنا به ميل خود
ترتيب پردازش برنامه ها را تغيير دهد يا براي اجراي برنامه ها اولويت قائل شوند .
3)multi user سيستم عامل براي سيستم هاي با چند استفاده كنند ه :
كامپيوتر هايي كه چند ترمينال ورودي خروجي مستقل دارند وسيله خوبي براي سرويس دهي به
كاربران متعدد هستند . به دليل اينكه پردازشگر اين نوع كامپيوترها كار خود را با سرعت زيادي
انجام ميدهند كاربر هر ترمينا ل فكر مي كند كه كامپيوتر فقط در حال انجام عمليات مربوط به ان
ترمينال است در صورتي كه حقيقت غير از اين است . سيستم عامل هاي اين نوع كامپيوترها كل
مسائل مربوط به حافظه وواحدهاي ذخيره هر ترمينال را تحت كنترل خود دارند.
3) distributed processing سيستم عامل براي سيستمهايي با پردازش توزيعي :
با ظهور و ايجاد شبكه هاي كامپيوتري متشكل از چند ريز كامپيوتر ارزان قيمت متصل شده به
يكديگر هم بسياري از محدوديت هاي ريز كامپيوتر ها حل شده و هم از محبوبيت كامپيوترهاي
بزرگ گران قيمت كاسته شد سيستم عامل هايي وجود دارند كه كامپيوترهاي متصل شده به شبكه
را تحت كنترل و نظارت خود در مي اورند.
اهداف سيستم :
اولين هدف سيستم عامل اين است كه محيط اساني را براي كاربرفراهم كند . علت استفاده از
سيستم عامل اين اسن كه به كارگيري كامپيوتر را اسان مي كند . اين ديدگاه براي كامپيوتر هاي
كوچك واضح تر است . هدف دوم سيستم عامل بهره برداري بهينه از سخت افزار است اين هدف
براي سيستمهاي كامپيوتري چندكاربره مورد نظر است چون اين سيستمها گران هستند مطلوب
است كه به طور بهينه وكارامد مورد بهره برداري قرار گيرند .
اين دو هدف يعني فراهم كردن محيط اسان و استفاده كار امد گاهي با هم تضاد دارند . طراحي
سيستم عامل ٬ وظيفه پيچيده اي است . طراحان با برقراري توازن بين طراحي و پياده سازي
مواجه اند و همواره سيستم عامل را به روز ميكنند . موفقيت سيستم عامل در بر اورده كردن
اهداف طراحي به كاربران بستگي دارد .
خدمات سيستم عامل :
سيستم عامل محيطي را براي اجراي برنامه ها فراهم مي كند وخدماتي را براي برنامه ها و
كاربران انها تدارك مي بيند . خدمات سيستم عامل مختلف با هم فرق مي كند اما خدمات مشتركي
وجود دارد كه انها را بررسي مي كنيم اين خدمات سيستم عامل براي راحتي برنامه نويس و تسهيل
كار برنامه نويسي ارائه مي شوند .
اجراي برنامه : سيستم بايد قادر به بار كردن برنامه در حافظه و اجراي ان باشد . برنامه بايد
بتواند به اجرايش خاتمه دهد ( چه به صورت عادي و چه به صورت غير عادي در اثر بروز
خطا)
عمليات I/O : برنامه در حال اجرا ممكن است نياز به I/O داشته باشد .اين I/O ممكن است
شامل فايل يا دستگاه I/O باشد براي دستگاههاي خاص ٬ ممكن است عمليات خاص مطلوب باشد
(مثل چرخش نوار يا پاك كردن صفحه نما يش ) . بدليل كارايي و حفاظت ٬ كاربران نمي توانند به
طور مستقيم دستگاههاي I/O را كنترل كنند . بنابراين سيستم عامل بايد عمل I/O را انجام دهد .
دستكاري سيستم فايل : بديهي است كه برنامه ها بايد فايل را بخوانند . همچنين بايد فايلهايي را
ايجاد يا حذف كنند
ارتباطات : فرايندها در صورت لزوم مي توانند اطلاعات را به يكديگر تبادل كنند اين ارتباطات
به دو روش صورت مي گيرد . روش اول ارتباط بين فرايندهايي است كه در يك كامپيوتر قرار
دارند . روش دوم ارتباط بين فرايندها يي است كه در سيستمهاي كامپيوتري گوناگوني قرار دارند
و از طريق شبكه كامپيوتري به هم متصل اند . ارتباطات مي تواند از طريق حافظه مشترك يا از
طريق ارسال پيام پياده سازي شود . در ارسال پيام سيستمهاي اطلاعات به وسيله سيستم عامل بين
فرايند ها منتقل مي شوند .
كشف خطا : سيستم عامل بايد از خطا هاي احتمالي خبر داشته باشد . خطا ممكن است در cpu و
سخت افزار كامپيوتر (مثل خرابي منبع تغذيه ) ٬ در دستگاههاي I/O يا در برنامه كاربر رخ دهد.
براي هر نوع خطا سيستم عامل بايد تصميم مناسبي اتخاذ كند تا محاسبات به طور صحيح و
سازگار انجام شود .
تخصيص منابع : وقتي چندين كاربر و چندين كار بخواهند همزمان از سيستم استفاده كنند منابع بايد
به هر كدام تخصيص يابند . سيستم عامل انواع مختلفي از منابع را مديريت مي كند . بعضي از انها
ممكن است كد خاص براي تخصيص داشته باشند در حا ليكه منابع ديگر ممكن است به كد
تخصيص و ازاد سازي عمومي تري نياز داشته باشند به عنوان مثال براي استفاده بهينه از cpu
سيستم عامل روالهايي براي زمانبندي cpu دارد كه سرعت cpu ٬ كارهايي كه بايد اجرا شوند
تعداد ثباتهاي اماده و ساير عوامل را در نظر مي گيرد . ممكن است روالهايي نيز وجود داشته باشد
كه گرداننده نوار را به كاري تخصيص دهد . چنين روالي يك گرداننده نوار بلا استفاده را پيدا مي
كند و يك جدول داخلي را انتخاب مي كند تا كاربر جديد گرداننده را در ان ثبت كند . يك روال
ديگر ان جدول را پيدا مي كند اين روالها ممكن است براي تخصيص رسام ٬ مودم و ساير
دستگاههاي جانبي به كار گرفته شوند .
حسابرسي : مي خواهيم بدانيم كه كاربران مختلف چقدر و از چه منابعي استفاده كرده اند اين كار
براي امارگيري مناسب است . اين امار براي متخصصين مناسب است تا جهت بهبود كارايي
سيستم در پيكربندي مجدد سيستم ازانها استفاده كنند .
حفاظت : مالكين اطلاعاتي كا در سيستم كامپيوتري چند كاربره ذخيره شده اند مي خواهند استفاده
از اطلاعات را كنترل كنند . وقتي چندين فرايند به طور همزمان اجرا شوند نبايد با يكديگر يا با
سيستم عامل تداخل داشته باشند . حفاظت موجب مي شود تا تضمين شود كه دستيابي به منابع تحت
كنترل است . امنيت سيستم در مقابل محيط خارج سيستم نيز مهم است . جهت برقراري امنيت ٬
كاربران بايد براي استفاده از منابع مجوز داشته باشند .امنيت شامل دستگاههاي I/O خارجي مثل
مودم و اداپتور شبكه در مقابل دستيابي هاي غير مجاز نيز هست ضمنا اين دستيا بيها ذخيره
مي شوند تا راههاي غير مجاز شناخته شوند . براي اينكه سيستمي حفا ظت شودوامن باشد در
سرتاسر ان بايد هشدارهايي داده شود .
توليد سيستم عامل :
سيستم عامل را مي توان براي يك ماشين در يك سايت خاص ٬ طراحي ٬ كدنويسي و پياده سازي
كرد . معمولا سيستمهاي عامل طوري طراحي مي شوند كه بر روي يك دسته خاصي از ماشينها
در سايتهاي مختلف وبا پيكر بندي هاي متفاوتي از دستگاههاي جانبي اجرا شوند . لذا سيستم بايد
براي هر سايت كامپيوتري پيكر بندي يا توليد شود اين فرايند را توليد سيستم (sysgen ) مي نامند.
سيستم عامل بر روي ديسك يا نوار قرار مي گيرد . براي توليد سيستم از برنامه خاصي استفاده
مي كنيم . برنامه sysgen اطلاعات مربوط به پيكر بندي خاصي از سيستم سخت افزار را از
اپراتور در خواست مي كند و يا از يك فايل مي خواند همچنين مي تواند سخت افزار را مورد
بررسي قرار دهد تا قطعات موجود در سخت افزار را تعيين كند اطلاعات زير بايد براي برنامه
sysgen فراهم شود .
v از كدام cpu استفاده مي شود ؟ چه امكاناتي نصب شده اند براي سيستمهايي با چند cpu
هر cpu بايد توصيف شود
v چقدر حافظه مهيا است ؟ بعضي از سيستمها براي تعيين مقدار حافظه به حافظه مراجعه
مي كنند تا به ادرس نا معتبر برسند بدين ترتيب اخرين ادرس معتبر تعريف مي شود و
ميزان حافظه در دسترس نيز تعيين مي گردد .
v چه دستگاههاي وجود دارند ؟ سيستم بايد چگونگي ادرس دهي به دستگاه ٬ شماره وقفه
دستگاه ٬ نوع ومدل و ساير ويژگيهاي دستگاه را بداند .
v چه امكاناتي از سيستم عامل مورد نيازند يا چه مقاديري بايد براي پارامترها مورد استفاده
قرار گيرد ؟ اين انكانات و مقادير شامل تعداد و اندازه ميانگين ها ٬ الگوريتم زمانبندي cpu
حداكثر تعداد و فرايندهايي كه بايد پشتيباني شوند و غيره است . پس از اينكه اين اطلاعات
تعيين شد به روشهاي مختلفي قابل استفاده است . از يك طرف مي توان براي تغيير كد منبع يك
كپي از سيستم عامل به كار گرفته شود . سپس اين كپي جديد دوباره ترجمه مي شود .
سيستمهاي عامل خدمات زيادي را فراهم مي كنند در پايين ترين سطح ٬ فراخوانهاي سيستم به
برنامه در حال اجرا اجازه ميدهند كه مستقيما درخواستهايي از سيستم داشته باشند . انواع در
خواستها برحسب سطح در خواست ها متفاوت است .
خدمات سيستم به دسته هاي مختلفي تقسيم مي شوند : كنترل برنامه ٬ در خواست وضعيت ٬ در
خواستهاي I/O . وقتي خدمات سيستم عامل تعريف شدند٬ ساختار سيستم عامل مي تواند ايجاد
شود . براي ذخيره اطلاعات مربوط به حالت سيستم كامپيوتر و وضعيت كارهاي سيستم ٬ نياز به
جدولهاي مختلفي است . قبل از شروع طراحي هدف سيستم بايد مشخص باشد بدين ترتيب
الگوريتمها و راهبردهاي مناسبي انتخاب مي شوند .
طراحي سيستم عامل جديد وظيفه مهمي است . قبل از طراحي سيستم بايد اهداف سيستم مشخص
باشد 0انواع سيستمهاي مطلوب ٬ اساس انتخاب الگوريتمها و راهبردهاي مورد نياز است . چون
سيستم عامل يك برنامه بزرگ است طراحي سيستم به صورت دنباله اي از لايه ها يك تكنيك
طراحي مهم است . در تمام دوران طراحي سيستم عامل بايد سياستها را از جزييات پياده سازي
تفكيك كنيم . بدين ترتيب قابليت انعطاف تصميم گيري اتي افزايش مي يابد .
سيستم هاي عامل اكنون به زبانهاي پياده سازي سيستم يا زبانهاي سطح بالا نوشته مي شوند . اين
ويژگي پياده سازي ٬ نگهداريو قابليت حمل انها را بهبود مي بخشد براي ايجاد يك سيستم عامل
براي پيكر بندي خاص از ماشين بايد توليد سيستم را اجرا كنيم .
مهندسی نرم افزار کامپیوتر