تاریخچه ی:
سیستم عامل
تفاوت با نگارش: 8
| + | ||V{maketoc}|| |
| + | ^@#16: |
| !مفاهیم کلی | | !مفاهیم کلی |
- | به طور کلی نرم افزارهای کامپیوتر به دو گروه تقسیم میشوند: یکی ((برنامههای سیستمی)) که عملیات کامپیوتر را مدیریت میکنند و دیگری برنامههای کاربردی .سیستم عامل (operating system=os) اصلی ترین برنامه سیستمی است که به عنوان رابط بین کاربر و ((سخت افزار)) کامپیوتر عمل میکند . | |
- | سیستم عامل دو وظیفه (یا هدف) اصلی دارد:
| |
- | *سیستم عامل استفاده از کامپیوتر را ساده میسازد. این بدان معناست که مثلاًکاربر یا ((برنامه نویس)) بدون درگیر شدن با مسائل سخت افزاری ((دیسک))ها به راحتی ((فایل))ی را بر روی دیسک ذخیره و حذف کند . این کار در واقع با به کاربردن دستورات سادهای که ((فراخوان های سیستمی)) (System Calls) را صدا میزنند انجام پذیرد . در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس میبایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل ((منیتور)) ,((فلاپی)) , ((کی بورد)) و غیره) داشته باشدو ((روتین))هایی برای خواندن و یا نوشتن آنها به ((زبانهای سطح پائین)) بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ((ماشین مجازی)) (Virtual machine) یاد میشود که واقعیت سخت افزار را از دید برنامه نویسان مخفی میسازد.
*وظیفه دوم سیستم عامل ((مدیریت منابع))(Resource Management) میباشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم میگردد. منظور از منابع پردازندهها ,حافظهها ,دیسکها,((ماوس)) ها , ((چاپگر))ها , فایلها , ((پورت))ها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامههای مشخصی تخصیص میدهد. |
+ | {*به طور کلی نرم افزارهای کامپیوتر به دو گروه تقسیم میشوند: یکی ((برنامههای سیستمی)) که عملیات کامپیوتر را مدیریت میکنند و دیگری برنامههای کاربردی .سیستم عامل (operating system=os) اصلی ترین برنامه سیستمی است که به عنوان رابط بین کاربر و ((سخت افزار)) کامپیوتر عمل میکند . سیستم عامل دو وظیفه (یا هدف) اصلی دارد:
*}
{*سیستم عامل استفاده از کامپیوتر را ساده میسازد. این بدان معناست که مثلاًکاربر یا ((برنامه نویس)) بدون درگیر شدن با مسائل سخت افزاری ((دیسک))ها به راحتی ((فایل))ی را بر روی دیسک ذخیره و حذف کند . این کار در واقع با به کاربردن دستورات سادهای که ((فراخوان های سیستمی)) (System Calls) را صدا میزنند انجام پذیرد . در صورت عدم وجود سیستم عامل کاربرو یا برنامه نویس میبایست آشنایی کاملی با سخت افزارهای مختلف کامپیوتر (مثل ((صفحه نمایش رایاه|مانیتور)) ,((فلاپی)) , ((صفحه کلید|کی بورد)) و غیره) داشته باشدو ((روتین))هایی برای خواندن و یا نوشتن آنها به ((زبانهای سطح پائین)) بنویسد. از این جنبه به سیستم عامل با عنوان ماشین توسعه یافته(Extended machine) یا ((ماشین مجازی)) (Virtual machine) یاد میشود که واقعیت سخت افزار را از دید برنامه نویسان مخفی میسازد.
>*} > {*وظیفه دوم سیستم عامل ((مدیریت منابع))(Resource Management) میباشد, یعنی سیستم عامل باعث استفاده بهینه و سودمند (اقتصادی) از منابع سیستم میگردد. منظور از منابع پردازندهها ,حافظهها ,دیسکها,((موس)) ها , ((چاپگر))ها , فایلها , ((پورت))ها و غیره هستند. یک سیستم کامپیوتری منابع نرم افزاری و سخت افزاری بسیار دارد که ممکن است در حین اجراء برنامه لازم باشند , سیستم عامل همانند مدیر منابع عمل کرده و آنها را بر حسب نیاز به برنامههای مشخصی تخصیص میدهد. |
| سیستم عامل معمولا اولین برنامههای است که پس از ((بوت)) شدن در حافظه بار میشود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در ((حافظه)) باقی (Resident)میماند. قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده میشود.
| | سیستم عامل معمولا اولین برنامههای است که پس از ((بوت)) شدن در حافظه بار میشود. پس از بار شدن قسمتی از سیستم عامل بطور دائم در ((حافظه)) باقی (Resident)میماند. قسمتهای دیگر با توجه به کاربرد کامپیوتر توسط کاربر از دیسک به حافظه آورده میشود.
|
- | به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام میدهد هسته یا Kernel گفته میشود. هسته سیستم عامل برنامهای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست. سیستم عامل و ((معماری کامپیوتر)) اثر زیادی بر روی یکدیگر داشتهاند. یعنی جهت سهولت کار با سخت افزارهای جدید, سیستم عاملها توسعه یافتندو همچنین در اثنای طراحی سیستم عاملها , مشخص شد که تغییراتی در طراحی سخت افزار میتواند سیستم عاملها را ساده تر و کارآمدتر سازد .
هر چند که تطبیق نسلهای کامپیوتر با نسلهای سیستم عامل کار درستی نیست ولی این تطبیق که در ادامه انجام میدهیم علت ایجاد سیستم عاملهای جدید را مشخص میسازد.
|
+ | به قسمت اصلی سیستم عامل که وظایف مهم آن را انجام میدهد هسته یا Kernel گفته میشود. هسته سیستم عامل برنامهای است که در تمامی اوقات بر روی کامپیوتر در حال اجراست. سیستم عامل و ((معماری کامپیوتر)) اثر زیادی بر روی یکدیگر داشتهاند. یعنی جهت سهولت کار با سخت افزارهای جدید, سیستم عاملها توسعه یافتندو همچنین در اثنای طراحی سیستم عاملها , مشخص شد که تغییراتی در طراحی سخت افزار میتواند سیستم عاملها را ساده تر و کارآمدتر سازد .
هر چند که تطبیق نسلهای کامپیوتر با نسلهای سیستم عامل کار درستی نیست ولی این تطبیق که در ادامه انجام میدهیم علت ایجاد سیستم عاملهای جدید را مشخص میسازد. *} --- |
| !تطابق تکنیکهای سیستم عامل با نسل های کامپیوتر:
| | !تطابق تکنیکهای سیستم عامل با نسل های کامپیوتر:
|
- | در نسل اول کامپیوترها (55-1945) که از ((لامپ خلأ)) برای ساخت آنها استفاده میشد,زبانهای برنامه نویسی (حتی ((اسمبلی)))ابداع نشده بودند و سیستم عامل نیز اصلاً وجود نداشت . روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند. آنها برنامههای خود را توسط تخته مدار سوراخدار (و بعدها توسط کارتهای ((پانچ))) و به زبان ماشین به کامپیوتر میدادند. اکثر برنامههای محاسبات عددی معمولی مانند جداول ((سینوس)) و ((کسینوس)) بود. |
+ | {*در نسل اول کامپیوترها (55-1945) که از ((لامپ خلأ)) برای ساخت آنها استفاده میشد,زبانهای برنامه نویسی (حتی ((اسمبلی)) )ابداع نشده بودند و سیستم عامل نیز اصلاً وجود نداشت . روند کار به این صورت بود که برنامه نویسان تنها در یک فاصله زمانی مشخص حق استفاده از کامپیوتر بزرگ و گران قیمت را داشتند. آنها برنامههای خود را توسط تخته مدار سوراخدار (و بعدها توسط کارتهای ((پانچ))) و به زبان ماشین به کامپیوتر میدادند. اکثر برنامههای محاسبات عددی معمولی مانند جداول ((سینوس)) و ((کسینوس)) بود.*} |
| *((سیستم های دسته ایBatch system)) | | *((سیستم های دسته ایBatch system)) |
| *((سیستم های چند برنامه ایMulti programming)) | | *((سیستم های چند برنامه ایMulti programming)) |
| *((سیستم spooling)) | | *((سیستم spooling)) |
- | *((سیستم اشتراک زمانیTime sharing)) *((سیستم عاملهای کامپیوتر های شخصی و شبکه)) |
+ | *((سیستم اشتراک زمانی Time sharing)) *((سیستم عامل های کامپیوتر های شخصی و شبکه)) |
| *((سیستم های توزیع شدهDistributed system)) | | *((سیستم های توزیع شدهDistributed system)) |
| *((سیستم ها ی چند وظیفه ایMulti tasking)) | | *((سیستم ها ی چند وظیفه ایMulti tasking)) |
| *((سیستم های چند پردازندهای Multi processing)) | | *((سیستم های چند پردازندهای Multi processing)) |
| *((سیستم های بی درنگReal Time)) | | *((سیستم های بی درنگReal Time)) |
- | !ساختار سیستم عامل: |
+ | --- !ساختار سیستم عامل |
| *خدمات و مولفه های سیستم عامل: | | *خدمات و مولفه های سیستم عامل: |
- | **((مدیریت پردازش در سیستم عامل در سیستم عامل)) |
+ | **((مدیریت پردازش در سیستم عامل)) |
| **((مدیریت حافظه در سیستم عامل)) | | **((مدیریت حافظه در سیستم عامل)) |
| **((مدیریت فایل در سیستم عامل)) | | **((مدیریت فایل در سیستم عامل)) |
| **((مدیریت ورودی- خروجی در سیستم عامل)) | | **((مدیریت ورودی- خروجی در سیستم عامل)) |
| *((مفسر فرمان)) | | *((مفسر فرمان)) |
| *((وقفه در سيستم عامل)) | | *((وقفه در سيستم عامل)) |
| *((فراخوانی سیستمی)) | | *((فراخوانی سیستمی)) |
- | *__انوع سیستم عامل از نظر ساختار:__ |
+ | --- !انوع سیستم عامل از نظر ساختار |
| **((تکنیک سیستم یکپارچه)) | | **((تکنیک سیستم یکپارچه)) |
| **((تکنیک سیستم لایه ای)) | | **((تکنیک سیستم لایه ای)) |
| **((سیستم مجازی در سیستم عامل)) | | **((سیستم مجازی در سیستم عامل)) |
| **((سیستم مشتری –خدمتگزار)) | | **((سیستم مشتری –خدمتگزار)) |
- | *((زبان های پیاده سازی سیستم عامل)) !پردازش و زمابندی: |
+ | **((زبان های پیاده سازی سیستم عامل)) --- !پردازش و زمابندی |
| *((پردازش در سیستم عامل)) | | *((پردازش در سیستم عامل)) |
| *((حالات یک پردازش)) | | *((حالات یک پردازش)) |
| *((بلوک کنترلی پردازش)) | | *((بلوک کنترلی پردازش)) |
- | *((نخ«بند-رشته))) |
+ | *((نخ بند-رشته)) |
| *((زمان بندی در سیستم عامل)) | | *((زمان بندی در سیستم عامل)) |
- | *((انواع زمانبندیها در سیستم عامل)) |
+ | *((انواع زمانبندی ها در سیستم عامل)) |
| *((معیار های زمانبندی در سیستم عامل)) | | *((معیار های زمانبندی در سیستم عامل)) |
- | *__انواع زمانبندی ها__: |
+ | --- !انواع زمانبندی ها |
| اولویتها میتوانند بصورت اتوماتیک توسط سیستم نسبت داده شوند و یا از خارج سیستم تعیین گردند, مثلاً ممکن است یک کاربر کار فوری داشته باشدو حاضر باشد به خاطر بدست آوردن سرویس بالاتر هزینه بیشتری بپردازد , یعنی اولویت را بخرد . یک اولویت ممکن است ((استاتیک ))باشد یا ((دینامیک )). اولویت استاتیک تغییر نمیکندو بنابراین پیاده سازی آن ساده است . | | اولویتها میتوانند بصورت اتوماتیک توسط سیستم نسبت داده شوند و یا از خارج سیستم تعیین گردند, مثلاً ممکن است یک کاربر کار فوری داشته باشدو حاضر باشد به خاطر بدست آوردن سرویس بالاتر هزینه بیشتری بپردازد , یعنی اولویت را بخرد . یک اولویت ممکن است ((استاتیک ))باشد یا ((دینامیک )). اولویت استاتیک تغییر نمیکندو بنابراین پیاده سازی آن ساده است . |
| ولی این نوع اولویت در مقابل تغییرات محیطی عکس العملی نشان نمیدهد . برعکس اولویت دینامیک بر اثر تغییرات محیطی تغییر میکند مثلا ً ممکن است در آغاز یک برنامه اولویت پائینی داشته باشد ولی به تدریج اولویت آن بهبود یابد. | | ولی این نوع اولویت در مقابل تغییرات محیطی عکس العملی نشان نمیدهد . برعکس اولویت دینامیک بر اثر تغییرات محیطی تغییر میکند مثلا ً ممکن است در آغاز یک برنامه اولویت پائینی داشته باشد ولی به تدریج اولویت آن بهبود یابد. |
| **((اول آمده-اول سرویس شده)) | | **((اول آمده-اول سرویس شده)) |
| **((زمانبندی نوبت گردشی)) | | **((زمانبندی نوبت گردشی)) |
- | **((اول کوتاه ترین زمان)) |
+ | **((اول کوتاهترین زمان)) |
| **((کوتاه ترین زمان باقی مانده)) | | **((کوتاه ترین زمان باقی مانده)) |
| **((بالا ترین نسبت پاسخ)) | | **((بالا ترین نسبت پاسخ)) |
| **(( دادن اولویت به پردازش)) | | **(( دادن اولویت به پردازش)) |
| **((صفهای چند گانه MQ)) | | **((صفهای چند گانه MQ)) |
| **((صفهای چند گانه با فید بک)) | | **((صفهای چند گانه با فید بک)) |
| **((بلا درنگReal time)) | | **((بلا درنگReal time)) |
- | **((تضمین شده«در زمان مقرر))) |
+ | **((تضمین شده در زمان مقرر)) |
| **((زمان بندی شانسی )) | | **((زمان بندی شانسی )) |
| ** ((LPT)) | | ** ((LPT)) |
- | .... ! انواع سیستم عامل ها: |
+ | --- ! انواع سیستم عامل ها |
| *((Windows)) | | *((Windows)) |
| *((Linux)) | | *((Linux)) |
| *((Unix)) | | *((Unix)) |
| *((DOS)) | | *((DOS)) |
| *((OS/2)) | | *((OS/2)) |
| *((Solaris)) | | *((Solaris)) |
- | ......
|
+ | --- !پیوندهای خارجی *[http://en.wikipedia.org/wiki/Operating_system ] *[http://dmoz.org/Computers/Software/Operating_Systems/ ] *[http://www.osdev.org/wiki/index.php/Projects ] *[http://cliki.tunes.org/Operating%20Systems ] *[http://www.cbi.umn.edu/iterations/haigh.html ] #@^ |