مجموعه ای از برنامه ها را که موجب راه اندازی و استفاده از کامپیوتر می شوند " سیستم عامل " یا Operating System (OS) گویندمی گردد . سيستم عامل بدون شک مهمترين نرم افزار در کامپيوتر است . پس از روشن کردن کامپيوتر اولين نرم افزاری که مشاهده می گردد سيستم عامل بوده و آخرين نرم افزاری که قبل از خاموش کردن کامپيوتر مشاهده خواهد شد، نيز سيستم عامل است . سيستم عامل نرم افزاری است که امکان اجرای تمامی برنامه های کامپيوتری را فراهم می آورد. سيستم عامل با سازماندهی ، مديريت و کنترل منابع سخت افزاری امکان استفاده بهينه و هدفمند آنها را فراهم می آورد . سيستم عامل فلسفه بودن سخت افزار را بدرستی تفسير و در اين راستا امکانات متعدد و ضروری جهت حيات ساير برنامه های کامپيوتری را فراهم می آورد .
وظایف سیستم عامل
سیستم عامل دو وظیفه (یا هدف) اصلی دارد :
سیستم عامل استفاده از کامپیوتر را ساده میسازد . این بدان معناست که مثلاً کاربر یا برنامه نویس بدون درگیر شدن با مسائل سخت افزاری دیسک ها به راحتی فایلی را بر روی دیسک ذخیره و حذف کند . این کار در واقع با به کاربردن دستورات سادهای که فراخوان های سیستمی (System Calls) را صدا میزنند انجام پذیرد .
در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس میبایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مانیتور ,فلاپی ,کی برد و غیره) داشته باشدو روتینهایی برای خواندن و یا نوشتن آنها به زبانهای سطح پائین بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ماشین مجازی (Virtual machine) یاد میشود که واقعیت سخت افزار را از دید برنامه نویسان مخفی میسازد .
وظیفه دوم سیستم عامل مدیریت منابع(Resource Management) میباشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم میگردد . منظور از منابع پردازندهها ,حافظهها ,دیسک ها موس ها , چاپگرها , فایلها , پورت ها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامههای مشخصی تخصیص میدهد .
سیستم عامل معمولا اولین برنامههای است که پس از بوت شدن در حافظه بار میشود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در حافظه باقی (Resident)میماند . قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده میشود.
به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام میدهد هسته یا Kernel گفته میشود. هسته سیستم عامل برنامهای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست.
سیستم عامل و معماری کامپیوتر اثر زیادی بر روی یکدیگر داشتهاند . یعنی جهت سهولت کار با سخت افزارهای جدید, سیستم عاملها توسعه یافتندو همچنین در اثنای طراحی سیستم عاملها , مشخص شد که تغییراتی در طراحی سخت افزارمیتواند سیستم عامل ها را ساده ترو کارآمدتر سازد .
چگونه یك سیستم عامل عمل می كند
سیستم عامل پردازش های مختلف رایانه را همچون اجرای یك برنامه صفحه گسترده یا دسترسی به اطلاعات از حافظه سیستم كنترل می كند . یكی از مهمترین پردازش ها، فرامین مفسری یا تك خطی است كه كاربر را قادر می سازد با رایانه ارتباط برقرار كند . برخی از فرامین مفسری در محیط متنی است و می بایست تایپ شوند و یا با انتخاب كلیدهای توابع بر روی صفحه كلید اجرا می شوند. فرامین دیگر به صورت گرافیكی قابل اجرا هستند و كاربر با انتخاب و كلیك كردن بر روی آن می تواند آن را اجرا كند. این فرامین توسط یك نقش گرافیكی (ICON) شناسایی می شوند . كاربران غیرحرفه ای محیط های گرافیكی را راحت تر استفاده می كنند اما بسیاری از متخصصین از فرامین متنی استفاده می كنند .
انواع سیستم های عامل
سیستمهای عامل انواع گوناگون دارند که با توجه به اندازه کامپیوتر و نوع کاربرد های آن برخی از آنها بسیار ساده و برخی دیگر پیچیده است .
.
1- سیستم عامل تک برنامه ای : single program
برخی از کامپیوتر ها میتوانند در یک لحظه فقط به پردازش یک برنامه بپردازند . سیستم عامل های این نوع کامپیوترها می توانند برنامه را بارگذاری و اجرا کنند و یا اطلاعات را به دستگاه جانبی بفرستند یا از آن دریافت کنند و دستورات مخصوص خود را به اجرا درآورند .
سیستم عامل های موجود بر روی بیشتر میکرو کامپیوترها ازاین نوع هستند لذا این نوع کامپیوترها قادر به اجرای چند برنامه به طورهمزمان یا انجام کاری دیگر علاوه بر پردازش یک برنامه نیستند .مانند MS-DOS
2- سیستم عامل های چند برنامه ای : multi programming
برای جلوگیری از تلف شدن وقت واحد پردازشگر این سیستم های عامل طوری طراحی شده اند که می توانند اجرای چند برنامه را به طور همزمان بر عهده بگیرند . انجام این کار بدبن صورت است که در هر لحظه چند برنامه در داخل حافظه موجود هستند به هر کدام از این برنامه ها در مرحله اجرای خاص خود قرار دارند .این برنامه ها به صورت قسمت قسمت مطابق با احتیاجات ورودی و خروجی خود پردازش می شوند .
می توان برای پردازش برنامه ها اولویت هائی را نیز در نظز گرفت در این حالت برنامه هایی که دارای اولویت برای اجرا هستند زود تر از دیگر برنامه ها پردازش خواهند شد به عبارت دیگر اجرای این برنامه ها بر برنامه های دیگری که دارای اولویت نیستند تقدم خواهند داشت . کاربر میتواند بنا به میل خود ترتیب پردازش برنامه ها را تغییر دهد یا برای اجرای برنامه ها اولویت قائل شوند .سیتم عامل لینوکس ویا و Windows2000 مثال هایی از این دسته اند .
3- سیستم عامل برای سیستم هایی با چند استفاده کننده : multi user
کامپیوتر هایی که چند ترمینال ورودی و خروجی مستقل دارند وسیله خوبی برای سرویس دهی به کاربران متعدد هستند . به دلیل اینکه پردازشگر این نوع کامپیوتر ها کار خود را با سرعت زیادی انجام میدهد کاربرهرترمینال فکر میکند که کامپیوتر فقط در حال انجام عملیات مربوط به آن ترمینال است در صورتی که حقیقت غیرازاین است .
سیستم عامل های این نوع کامپیوتر ها کل مسائل مربوط به حافظه و واحد های ذخیره هر ترمینال را تحت کنترل خود دارند . مانند یونیكس یا VMS در رایانه های Main Frame نكته مهم در تفكیك سیستم عامل های چند كاربره واقعی با سیستم عامل های تك كاربره تحت شبكه مانند Novell Netware یا Windows2000 می باشند .
4- سیستم عامل برای سیستم هایی با پردازش توزیعی : distributed processing
با ظهور و ایجاد شبکه های کامپیوتری متشکل از چند ریز کامپیوتر ارزان قیمت متصل شده به یکدیگر هم بسیاری از محدودیت های ریز کامپیوتر ها حل شده و هم از محبوبیت کامپیوتر های بزرگ گران قیمت کاسته شد سیستم عامل هایی وجود دارند که کامپیوتر های متصل شده به شبکه را تحت کنترل و نظارت خود در می آورند .
5- سیستم عامل بلادرنگ real time operating system :
از اين نوع سيستم های عامل برای کنترل ماشين آلات صنعتی ، تجهيزات علمی و سيستم های صنعتی استفاده می گردد . يک سيستم عامل بلادرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامه های کاربردی مختص کاربران می باشند . يکی از بخش های مهم اين نوع سيستم های عامل ، مديريت منابع موجود کامپيوتری به گونه ای است که يک عمليات خاص در زمانی که می بايست ، اجراء خواهند شد
وظایف سیستم عامل
سیستم عامل دو وظیفه (یا هدف) اصلی دارد :
سیستم عامل استفاده از کامپیوتر را ساده میسازد . این بدان معناست که مثلاً کاربر یا برنامه نویس بدون درگیر شدن با مسائل سخت افزاری دیسک ها به راحتی فایلی را بر روی دیسک ذخیره و حذف کند . این کار در واقع با به کاربردن دستورات سادهای که فراخوان های سیستمی (System Calls) را صدا میزنند انجام پذیرد .
در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس میبایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل مانیتور ,فلاپی ,کی برد و غیره) داشته باشدو روتینهایی برای خواندن و یا نوشتن آنها به زبانهای سطح پائین بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ماشین مجازی (Virtual machine) یاد میشود که واقعیت سخت افزار را از دید برنامه نویسان مخفی میسازد .
وظیفه دوم سیستم عامل مدیریت منابع(Resource Management) میباشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم میگردد . منظور از منابع پردازندهها ,حافظهها ,دیسک ها موس ها , چاپگرها , فایلها , پورت ها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامههای مشخصی تخصیص میدهد .
سیستم عامل معمولا اولین برنامههای است که پس از بوت شدن در حافظه بار میشود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در حافظه باقی (Resident)میماند . قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده میشود.
به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام میدهد هسته یا Kernel گفته میشود. هسته سیستم عامل برنامهای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست.
سیستم عامل و معماری کامپیوتر اثر زیادی بر روی یکدیگر داشتهاند . یعنی جهت سهولت کار با سخت افزارهای جدید, سیستم عاملها توسعه یافتندو همچنین در اثنای طراحی سیستم عاملها , مشخص شد که تغییراتی در طراحی سخت افزارمیتواند سیستم عامل ها را ساده ترو کارآمدتر سازد .
چگونه یك سیستم عامل عمل می كند
سیستم عامل پردازش های مختلف رایانه را همچون اجرای یك برنامه صفحه گسترده یا دسترسی به اطلاعات از حافظه سیستم كنترل می كند . یكی از مهمترین پردازش ها، فرامین مفسری یا تك خطی است كه كاربر را قادر می سازد با رایانه ارتباط برقرار كند . برخی از فرامین مفسری در محیط متنی است و می بایست تایپ شوند و یا با انتخاب كلیدهای توابع بر روی صفحه كلید اجرا می شوند. فرامین دیگر به صورت گرافیكی قابل اجرا هستند و كاربر با انتخاب و كلیك كردن بر روی آن می تواند آن را اجرا كند. این فرامین توسط یك نقش گرافیكی (ICON) شناسایی می شوند . كاربران غیرحرفه ای محیط های گرافیكی را راحت تر استفاده می كنند اما بسیاری از متخصصین از فرامین متنی استفاده می كنند .
انواع سیستم های عامل
سیستمهای عامل انواع گوناگون دارند که با توجه به اندازه کامپیوتر و نوع کاربرد های آن برخی از آنها بسیار ساده و برخی دیگر پیچیده است .
.
1- سیستم عامل تک برنامه ای : single program
برخی از کامپیوتر ها میتوانند در یک لحظه فقط به پردازش یک برنامه بپردازند . سیستم عامل های این نوع کامپیوترها می توانند برنامه را بارگذاری و اجرا کنند و یا اطلاعات را به دستگاه جانبی بفرستند یا از آن دریافت کنند و دستورات مخصوص خود را به اجرا درآورند .
سیستم عامل های موجود بر روی بیشتر میکرو کامپیوترها ازاین نوع هستند لذا این نوع کامپیوترها قادر به اجرای چند برنامه به طورهمزمان یا انجام کاری دیگر علاوه بر پردازش یک برنامه نیستند .مانند MS-DOS
2- سیستم عامل های چند برنامه ای : multi programming
برای جلوگیری از تلف شدن وقت واحد پردازشگر این سیستم های عامل طوری طراحی شده اند که می توانند اجرای چند برنامه را به طور همزمان بر عهده بگیرند . انجام این کار بدبن صورت است که در هر لحظه چند برنامه در داخل حافظه موجود هستند به هر کدام از این برنامه ها در مرحله اجرای خاص خود قرار دارند .این برنامه ها به صورت قسمت قسمت مطابق با احتیاجات ورودی و خروجی خود پردازش می شوند .
می توان برای پردازش برنامه ها اولویت هائی را نیز در نظز گرفت در این حالت برنامه هایی که دارای اولویت برای اجرا هستند زود تر از دیگر برنامه ها پردازش خواهند شد به عبارت دیگر اجرای این برنامه ها بر برنامه های دیگری که دارای اولویت نیستند تقدم خواهند داشت . کاربر میتواند بنا به میل خود ترتیب پردازش برنامه ها را تغییر دهد یا برای اجرای برنامه ها اولویت قائل شوند .سیتم عامل لینوکس ویا و Windows2000 مثال هایی از این دسته اند .
3- سیستم عامل برای سیستم هایی با چند استفاده کننده : multi user
کامپیوتر هایی که چند ترمینال ورودی و خروجی مستقل دارند وسیله خوبی برای سرویس دهی به کاربران متعدد هستند . به دلیل اینکه پردازشگر این نوع کامپیوتر ها کار خود را با سرعت زیادی انجام میدهد کاربرهرترمینال فکر میکند که کامپیوتر فقط در حال انجام عملیات مربوط به آن ترمینال است در صورتی که حقیقت غیرازاین است .
سیستم عامل های این نوع کامپیوتر ها کل مسائل مربوط به حافظه و واحد های ذخیره هر ترمینال را تحت کنترل خود دارند . مانند یونیكس یا VMS در رایانه های Main Frame نكته مهم در تفكیك سیستم عامل های چند كاربره واقعی با سیستم عامل های تك كاربره تحت شبكه مانند Novell Netware یا Windows2000 می باشند .
4- سیستم عامل برای سیستم هایی با پردازش توزیعی : distributed processing
با ظهور و ایجاد شبکه های کامپیوتری متشکل از چند ریز کامپیوتر ارزان قیمت متصل شده به یکدیگر هم بسیاری از محدودیت های ریز کامپیوتر ها حل شده و هم از محبوبیت کامپیوتر های بزرگ گران قیمت کاسته شد سیستم عامل هایی وجود دارند که کامپیوتر های متصل شده به شبکه را تحت کنترل و نظارت خود در می آورند .
5- سیستم عامل بلادرنگ real time operating system :
از اين نوع سيستم های عامل برای کنترل ماشين آلات صنعتی ، تجهيزات علمی و سيستم های صنعتی استفاده می گردد . يک سيستم عامل بلادرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامه های کاربردی مختص کاربران می باشند . يکی از بخش های مهم اين نوع سيستم های عامل ، مديريت منابع موجود کامپيوتری به گونه ای است که يک عمليات خاص در زمانی که می بايست ، اجراء خواهند شد