در مورد تاريخچه سيستم عامل و نحوه به وجود امدن ان و سير تكاملي سيستم عامل از گذشته تا حال
در مورد تاريخچه سيستم عامل و نحوه به وجود امدن ان و سير تكاملي سيستم عامل از گذشته تا حال
منظورتون نحوه شکل گیری سیستم عامل هاست بصورت کلی است یا سیستم عامل خاصی مد نظرتون هست ؟
لینوکس ، ویندوز و ... ؟
مقدمه:آشنایی با سيستم عامل
سيستمعامل بدون شک مهمترين نرم افزار در کامپيوتر است. پس از روشن کردن کامپيوتر اولين نرم افزاری که مشاهده می گردد سيستم عامل بوده و آخرين نرم افزاری که قبل از خاموش کردن کامپيوتر مشاهده خواهد شد، نيز سيستمعامل است. سيستمعامل نرمافزاری است که امکان اجرای تمامی برنامههای کامپيوتری را فراهم میآورد. سيستم عامل با سازماندهی، مديريت و کنترل منابع سختافزاری امکان استفاده بهينه و هدفمند آنها را فراهم میآورد. سيتمعامل فلسفه بودن سختافزار را بدرستی تفسير و در اين راستا امکانات متعدد و ضروری جهت حيات ساير برنامههای کامپيوتری را فراهم می آورد.
تمام کامپيوترها از سيستمعامل استفاده نمینمايند. مثلا" اجاق های مايکرويو که در آشپزخانه استفاده شده دارای نوع خاصی از کامپيوتر بوده که از سيستم عامل استفاده نمینمايند. در اين نوع سيستمها بدليل انجام عمليات محدود و ساده، نيازی به وجود سيستم عامل نخواهد بود. اطلاعات ورودی و خروجی با استفاده از دستگاههائی نظير صفحه کليد و نمايشگرهای LCD ، در اختيار سيستم گذاشته میگردند. ماهيت عمليات انجام شده در يک اجاق گاز مايکروويو بسيار محدود و مختصر است، بنابراين همواره يک برنامه در تمام حالات و اوقات اجراء خواهد شد.
برای سيستمهای کامپيوتری که دارای عملکردی بمراتب پيچيده تر از اجاق گاز مايکروويو میباشند، بخدمت گرفتن يک سيستمعامل باعث افزايش کارآئی سيستم و تسهيل در امر پيادهسازی برنامههای کامپيوتری میگردد. تمام کامپيوترهای شخصی دارای سيستمعامل میباشند. ويندوز يکی از متداولترين سيستمهای عامل است. يونيکس يکی ديگر از سيستمهایعامل مهم در اين زمينه است. صدها نوع سيستم عامل تاکنون با توجه به اهداف متفاوت طراحی و عرضه شده است. سيستمهایعامل مختص کامپيوترهای بزرگ، سيستمهای روبوتيک، سيستمهای کنترلی بلادرنگ، نمونههائی در اين زمينه میباشند.
سيستمعامل با ساده ترين تحليل و بررسی دو عمليات اساسی را در کامپيوتر انجام میدهد :
- مديريت منابع نرمافزاری و سختافزاری يک سِیستم کامپيوتری را برعهده دارد. پردازنده، حافظه، فضای ذخيره سازی نمونههائی از منابع اشاره شده می باشند .
- روشی پايدار و يکسان برای دستيابی و استفاده از سختافزار را بدو ن نياز از جزئيات عملکرد هر يک از سخت افزارهای موجود را برای برنامههای کامپيوتری فراهم مینمايد
اولين وظيفه يک سيستمعامل، مديريت منابع سختافزاری و نرمافزاری است. برنامههای متفاوت برای دستيابی به منابع سختافزاری نظير: پردازنده، حافظه، دستگاههای ورودی و خروجی، حافطههای جانبی، در رقابتی سخت شرکت خواهند کرد. سيستمهایعامل بعنوان يک مدير عادل و مطمئن زمينه استفاده بهينه از منابع موجود را برای هر يک از برنامههای کامپيوتری فراهم مینمايند.
وظيفه دوم يک سيستمعامل ارائه يک رابط (اينترفيس) يکسان برای ساير برنامههای کامپيوتری است. در اين حالت زمينه استفاده بيش از يک نوع کامپيوتر از سيستم عامل فراهم شده و در صورت بروز تغييرات در سخت افزار سيستمهای کامپيوتری نگرانی خاصی از جهت اجرای برنامه وجود نخواهد داشت، چراکه سيستمعامل بعنوان ميانجی بين برنامههای کامپيوتری و سختافزار ايفای وظيفه کرده و مسئوليت مديريت منابع سختافزاری به وی سپرده شده است .برنامه نويسان کامپيوتر نيز با استفاده از نقش سيستم عامل بعنوان يک ميانجی براحتی برنامههای خود را طراحی و پياده سازی کرده و در رابطه با اجرای برنامه های نوشته شده بر روی ساير کامپيوترهای مشابه نگرانی نخواهند داشت. (حتی اگر ميزان حافظه موجود در دو کامپيوتر مشابه نباشد). در صورتيکه سخت افزار يک کامپيوتر بهبود و ارتقاء يابد، سيستم عامل اين تضمين را ايجاد خواهد کرد که برنامهها، در ادامه بدون بروز اشکال قادر به ادامه حيات وسرويسدهی خود باشند. مسئوليت مديريت منابع سختافزاری برعهده سيتمعامل خواهد بود نه برنامههای کامپيوتری، بنابراين در زمان ارتقای سختافزار يک کامپيوتر مسئوليت سيتستم عامل در اين راستا اولويت خواهد داشت. ويندوز 98 يکی از بهترين نمونهها در اين زمينه است. سيستم عامل فوق بر روی سختافزارهای متعدد توليد شده توسط توليدکنندگان متفاوت اجراء میگردد. ويندوز 98 قادر به مديريت و استفاده از هزاران نوع چاپگر ديسک و ساير تجهيزات جانبی است.
سيستمهایعامل را از بعد نوع کامپيوترهائی که قادر به کنترل آنها بوده و نوع برنامههای کاربردی که قادر به حمايت از آنها میباشند به چهار گروه عمده تقسيم می نمايند.
- سيستمعامل بلادرنگ (RTOS). از اين نوع سيستمهایعامل برای کنترل ماشينآلات صنعتی، تجهيزات علمی و سيستمهای صنعتی استفاده میگردد. يک سيستمعامل بلادرنگ دارای امکانات محدود در رابطه با بخش رابط کاربر و برنامههای کاربردی مختص کاربران میباشند. يکی از بخشهای مهم اين نوع سيستمهایعامل، مديريت منابع موجود کامپيوتری بگونهای است که يک عمليات خاص در زمانی که میبايست، اجراء خواهند شد.
- تک کاربره - تک کاره. همانگونه که از عنوان اين نوع سيستمهایعامل مشخص است، آنها بگونهای طراحی شده اند که قادر به مديريت کامپيوتر بصورتی باشند که يک کاربر در هر لحظه قادر به انجام يک کار باشد. سيستمعامل PalmOS برای کامپيوترهای PDA نمونهای مناسب از يک سيستم عامل مدرن تک کاربره و تک کاره است.
- تککاربره - چندکاره . اکثر سيستمهایعامل استفاده شده در کامپيوترهای شخصی از اين نوع می باشند. ويندوز 98 و MacOS نمونههائی در اين زمينه بوده که امکان اجرای چندين برنامه بطور همزمان را برای يک کاربر فراهم مینمايند. مثلا" يک کاربر ويندوز 98 قادر به تايپ يک نامه با استفاده از يک واژه پرداز بوده و در همان زمان اقدام به دريافت يک فايل از اينترنت نموده و در همان وضعيت محتويات نامه الکترونيکی خود را برای چاپ بر روی چاپگر ارسال کرده باشد.
- چندکاربره. يک سيستمعامل چندکاربره، امکان استفاده همزمان چندين کاربر از منابع موجود کامپيوتر را فراهم میآورند. منابع مورد نياز هر يک از کاربران میبايست توسط سيستمعامل بدرستی مديريت تا در صورت بروز اشکال در منابع تخصيص يافته به يک کاربر، بر روند استفاده ساير کاربران از منابع مورد نظر اختلالی ايجاد نگردد. يونيکس، VMS و سيستم های عامل کامپيوترهای بزرگ نظير MVSنمونههائی از سيستمهایعامل چندکاربره می باشند.
در اينجا لازم است که به تفاوتهای موجود سيستمهایعامل " چند کاربر" و " تک کاربر" در رابطه با امکانات شبکهای اشاره گردد. ويندوز 2000 و ناول قادر به حمايت از صدها و هزاران کاربر شبکه میباشند اين نوع سيستم های عامل بعنوان سيستمعامل چند کاربره واقعی در نظر گرفته نمیشوند.
در ادامه با توجه به شناخت مناسب بوجود آمده در دررابطه با انواع سيستم های عامل به عمليات و وظايف سيستمعامل اشاره میگردد.
وظايف سيستم عامل
پس از روشن نمودن کامپيوتر، لولين برنامهای که اجراء می گردد، مجموعه دستوراتی میباشند که در حافظه ROM ذخيره و مسئول بررسی صحت عملکرد امکانات سختافزاری موجود میباشند. برنامه فوق (POST)، پردازنده، حافظه و ساير عناصر سخت افزاری را بررسی خواهد کرد. پس از بررسی موفقيت آميز برنامه POST ، در ادامه درايوهای (هارد، فلاپی) سيستم فعال خواهند شد. در اکثر کامپيوترها، پس از فعال شدن هاردديسک، اولين بخش سيستمعامل با نام Bootstrap Loader فعال خواهد شد. برنامه فوق صرفا" دارای يک وظيفه اساسی است: انتقال (استقرار) سيستمعامل در حافظه اصلی و امکان اجرای آن .
برنامه فوق عمليات متفاوتی را بمنظور استفرار سيستم عامل در حافظه انجام خواهد داد.
سيستمعامل دارای وظايف زير است :
مديريت پردازنده
مديريت حافظه
مديريت دستگاهها ( ورودی و خروجی )
مديريت حافظه جانبی
اينترفيس برنامههای کاربردی
رابط کاربر
وظايف ششگانه فوق، هسته عمليات در اکثر سيستمهایعامل است. در ادامه به تشريح وظايف فوق اشاره میگردد:
مديريت پردازنده
مديريت پردازنده دو وظيفه مهم اوليه زير را دارد:
ايجاد اطمينان که هر پردازه و يا برنامه به ميزان مورد نياز پردازنده را برای تحقق عمليات خود ، اختيار خواهد کرد.
استفاده از بيشترين سيکل های پردازنده برای انجام عمليات
سادهترين واحد نرم افزاری که سيستم عامل بمنظور زمانبندی پردازنده با آن درگير خواهد شد، يک پردازه و يا يک Thread خواهد بود. موقتا" می توان يک پردازه را مشابه يک برنامه در نظر گرفت، در چنين حالتی مفهوم فوق (پردازه)، بيانگر يک تصوير واقعی از نحوه پردازشهای مرتبط با سيستمعامل و سختافزار نخواهد بود. برنامههای کامپيوتری (نظير واژه پردازها، بازيهای کامپيوتری و ...) در حقيقت خود يک پردازه میباشند، ولی برنامه های فوق ممکن است از خدمات چندين پردازه ديگر استفاده نمايند. مثلا" ممکن است يک برنامه از پردازهای بمنظور برقراری ارتباط با ساير دستگاههای موجود در کامپيوتر استفاده نمايد. پردازههای فراوان ديگری نيز وجود دارد که با توجه به ماهيت عمليات مربوطه، بدون نياز به محرک خارجی (نظير يک برنامه) فعاليتهای خود را انجام میدهند. يک پردازه، نرمافزاری است که عمليات خاص و کنترل شدهای را انجام میدهد. کنترل يک پردازه ممکن است توسط کاربر، ساير برنامههای کاربردی و يا سيستم عامل صورت پذيرد.
سيستمعامل با کنترل و زمانبندی مناسب پردازه ها زمينه استفاده از پردازنده را برای آنان، فراهم مینمايد. در سيستمهای " تک - کاره"، سيستم زمانبندی بسيار روشن و مشخص است. در چنين مواردی، سيستم عامل امکان اجرای برنامه را فراهم و صرفا" در زمانيکه کاربر اطلاعاتی را وارد و يا سيستم با وقفهای برخورد نمايد، روند اجراء متوقف خواهد شد. وقفه، سيگنالهای خاص ارسالی توسط نرم افزار و يا سخت افزار برای پردازنده میباشند. در چنين مواردی منابع صادر کننده وقفه درخواست برقراری يک ارتباط زنده با پردازنده برای اخذ سرويس و يا ساير مسائل بوجود آمده، را مینمايند. در برخی حالات سيستمعامل پردازهها را با يک اولويت خاص زمانبندی مینمايد. در چنين حالتی هر يک از پردازهها با توجه به اولويت نسبت داده شده به آنان، قادر به استفاده از زمان پردازنده خواهند بود. در اينچنين موارد، در صورت بروز وقفه، پردازنده آنها را ناديده گرفته و تا زمان عدم تکميل عمليات مورد نظر توسط پردازنده، فرصت پرداختن به وقفه ها وجود نخواهد داشت. بديهی است با توجه به نحوه برخورد پردازنده (عدم توجه به وقفه ها)، در سريعترين زمان ممکن عمليات و فعاليت جاری پردازنده به اتمام خواهد رسيد. برخی از وقفهها با توجه به اهميت خود (نظير بروز اشکال در حافظه و يا ساير موارد مشابه)، قابل اغماص توسط پردازنده نبوده و میبايست صرفنظر از نوع و اهميت فعاليت جاری، سريعا" به وقفه ارسالی پاسخ مناسب را ارائه گردد.
پردازنده، با توجه به سياست های اعمال شده سيستمعامل و بر اساس يک الگوريتم خاص، در اختيار پردازه های متفاوت قرار خواهد گرفت. در چنين مواردی پردازنده مشغول بوده و برای اجراء، پردازهای را در اختيار دارد. در زمانيکه پردازنده درگير يک پردازه است، ممکن است وقفه هائی از منابع متفاوت نرم افزاری و يا سخت افزاری محقق گردد. در چنين وضعيتی با توجه به اهميت و جايگاه يک وقفه، پردازنده برخی از آنها را ناديده گرفته و همچنان به فعاليت جاری خود ادامه داده و در برخی موارد با توجه به اهميت وقفه، فعاليت جاری متوقف و سرويسدهی به وقفه آغاز خواهد شد.
در سيستم های عامل " تک- کاره "، وجود وقفهها و نحوه مديريت آنها در روند اجرای پردازهها تاثير و پيچيدگیهای خاص خود را از بعد مديريتی بدنبال خواهد داشت. در سيستمهایعامل |"چند - کاره " عمليات بمراتب پيچيدهتر خواهد بود. در چنين مواردی می بايست اين اعتقاد بوجود آيد که چندين فعاليت بطور همزمان در حال انجام است. عملا" پردازنده در هر لحظه قادر به انجام يک فعاليت است و بديهی است رسيدن به مرز اعتقادی فوق (چندين فعاليت بطور همزمان) مستلزم يک مديريت قوی و طی مراحل پيچيدهای خواهد بود. در چنين حالتی لازم است که پردازنده در مدت زمان يک ثانيه هزاران مرتبه از يک پردازه به پردازه ه ديگر سوئيچ تا امکان استفاده چندين پردازه از پردازنده را فراهم نمايد. در ادامه نحوه انجام عمليات فوق، تشريح می گردد :
1.يک پردازه بخشی از حافظه RAM را اشغال خواهد کرد.
2.پس از استفرار بيش از يک پردازه در حافظه، پردازنده بر اساس يک زمانبندی خاص، فرصت اجراء را به يکی از پردازه ها خواهد داد.
3.پردازنده، بر اساس تعداد سيکلهای خاصی پردازه را اجراء خواهد کرد .
4.پس ازاتمام تعداد سيکلهای مربوطه، پردازنده وضعيت پردازه (مقاير ريجسترها و ...) را ذخيره و به پردازه اتمام زمان مربوطه را اعلام می نمايد.
5.پردازنده در ادامه اطلاعات ذخيره شده در رابطه با پردازه ديگر را فعال (ريجسترها و ...) و زمينه اجرای پردازه دوم فراهم میگردد.
6.پس ازاتمام تعداد سيکل های مربوطه، پردازنده وضعيت پردازه ( مقاير ريجسترها و ...) را ذخيره و به پردازه اتمام زمان مربوطه را اعلام و مجددا" پردازه اول جهت اجراء فعال خواهد گرديد.
تمام اطلاعات مورد نياز بمنظور مديريت يک پردازه در ساختمان دادهای خاص با نام PCB)Process ControlBlock)، نگهداری میگردد. پردازنده در زمان سوئيچ بين پردازه ها، از آخرين وضعيت هر پردازه با استفاده از اطلاعات ذخيره شده در PCB آگاهی پيدا کرده و در ادامه زمينه اجرای پردازه مورد نظر بر اساس تعداد سيکلهای در نظر گرفته شده فراهم خواهد شد. برای هر پردازه يک PCB ايجاد و اطلاعات زير در آن ذخيره خواهد گرديد :
1.يک مشخصه عددی (ID) که نمايانگر پردازه خواهد بود .
2.اشارهگری که نشاندهنده آخرين محل اجرای پردازه است
3.محتويات ريجسترها
4.وضعيت سوئيچ ها و متغيرهای مربوطه
5.اشاره گره هائی که حد بالا و پايين حافظه مورد نياز پردازه را مشخص خواهد کرد.
6.اولويت پردازه
7.وضعيت دستگاههای ورودی و خروجی مورد نياز پردازه
هر زمان که اطلاعات مربوط به پردازه ای تغيير يابد، (پردازه از حالت "آماده" تبديل به حالت "اجراء" و يا از حالت" اجراء" به حالت "انتظار" و يا "آماده" سوئيچ نمايد) اطلاعات ذخيره شده در PCB استفاده و بهنگام خواهند شد.
عمليات جايگزينی پردازها، بدون نظارت و ارتباط مستقيم کاربر انجام و هر پردازه به ميزان کافی از زمان پردازنده برای اتمام عمليات خود استفاده خواهد کرد. در اين راستا ممکن است ، کاربری قصد اجرای تعداد بسيار زيادی از پردازه ها را بسورت همزمان داشته باشد. در چنين مواردی است، پردازنده خود نيازمند استفاده از چندين سيکل زمانی برای ذخيره و بازيابی اطلاعات مربوط به هر يک از پردازه ها خواهد بود .در صورتيکه سيستم عامل با دقت طراحی نشده باشد و يا پردازه های زيادی فعاليت خود را آغاز کرده باشند، مدت زمان زيادی از پردازنده صرف انجام عمليات سوئيچينگ بين پردازها شده و عملا" در روند اجرای پردازها اختلال ايجاد میگردد. وضعيت بوجود آمده فوق را Thrashing میگويند. در چنين مواردی کاربر می بايست نسبت به غيرفعال نمودن برخی از پردازهها اقدام تا سيستم مجددا" در وضعيت طبيعی قرار گيرد.
يکی از روشهائی که طراحان سيستمعامل از آن استفاده تا امکان (شانس) تحقق Thrashing را کاهش دهند، کاهش نياز به پردازههای جديد برای انجام فعاليت های متفاوت است. برخی از سيستم های عامل ازيک "پردازه -lite " با نام Thread استفاده می نمايند. Thread از لحاظ کارآئی همانند يک پردازه معمولی رفتار نموده ولی نيازمند عمليات متفاوت ورودی و خروجی و يا ايجاد ساختمان داده PCB مشابه يک پردازه عادی نخواهد بود. يک پردازه ممکن است باعث اجرای چندين Threads و يا ساير پردازه های ديگر گردد. يک Thread نمیتواند باعث اجرای يک پردازه گردد.
تمام موارد اشاره شده در رابطه با زمانبندی با فرض وجود يک پردازنده مطرح گرديده است. در سيستمهائی که دارای دو و يا بيش از دو پردازنده می باشند، سيستمعامل حجم عمليات مربوط به هر گردازنده را تنظيم و مناسبترين روش اجراء برای يک پردازه در نظر گرفته شود. سيستمهایعامل نامتقارن، از يک پردازنده برای انجام عمليات مربوط به سيستمعامل استفاده و پردازههای مربوط به برنامههای کاربردی را بين ساير پردازهها تقسيم مینمايند. سيستمهایعامل متقارن، عمليات مربوط به خود و عمليات مربوط به ساير پردازهها را بين پردازه های موجود تقسيم مینمايند. در اين راستا سعی میگردد که توزيع عمليات برای هر يک از پردازهها بصورت متعادل انجام گردد.
مديريت حافظه و فضای ذخيره سازی
سيستم عامل در رابطه با مديريت حافظه دو عمليات اساسی را انجام خواهد داد :
1.هر پردازه بمنظور اجراء می بايست دارای حافظه مورد نياز و اختصاصی خود باشد .
2.از انواع متفاوتی حافظه در سيستم استفاده تا هر پردازه قادر به اجراء با بالاترين سطح کارآئی باشد.
سيسمهای عامل در ابتدا می بايست محدوده های حافظه مورد نياز هر نوع نرم افزار و برنامههای خاص را فراهم نمايند. مثلا فرض کنيد سيستمی دارای يک مگابايت حافظه اصلی باشد. سيستمعامل کامپيوتر فرضی، نيازمند 300 کيلو بايت حافظه است. سيستمعامل در بخش انتهائی حافظه مستقر و بهمراه خود درايورهای مورد نياز بمنظور کنترل سخت افزار را نيز مستقر خواهد کرد. درايورهای مورد نظر به 200 کيلوبايت حافظه نياز خواهند داشت. بنابراين پس از استقرار سيستم عامل بطور کامل در حافظه ، 500 کيلوبايت حافظه باقيمانده و از آن برای پردازش برنامههای کاربردی استفاده خواهد شد. زمانيکه برنامههای کاربردی در حافظه مستقر میگردند، سازماندهی آنها در حافظ بر اساس بلاک هائی خواهد بود که اندازه آنها توسط سيستم عامل مشخص خواهد شد. در صورتيکه اندازه هر بلاک 2 کيلوبايت باشد، هر يک از برنامه های کاربردی که در حافظه مستقر می گردنند، تعداد زيادی از بلاک های فوق را (مضربی از دو خواهد بود)، بخود اختصاص خواهند داد. برنامه ها در بلاک هائی با طول ثابت مستقر میگردند. هر بلاک دارای محدودههای خاص خود بوده که توسط کلمات چهار و يا هشت بايت ايجاد خواهند شد. بلاکها و محدودههای فوق اين اطمينان را بوجود خواهند آورد که برنامهها در محدودههای متداخل مستقر نخواهند شد. پس از پر شدن فضای 500 کيلوبايت اختصاصی برای برنامههای کاربردی، وضعيت سيستم به چه صورت تبديل خواهد گرديد؟
در اغلب کامپيوترها، میتوان ظرفيت حافظه را ارتقاء و افزايش داد. مثلا" می توان ميزان حافظه RAM موجود را از يک مگابايت به دو مگابايت ارتقاء داد. روش فوق يک راهکار فيزيکی برای افزايش حافظه بوده که در برخی موارد دارای چالش های خاص خود می باشد. در اين زمينه میبايست راهکارهای ديگر نيز مورد بررسی قرار گيرند. اغلب اطلاعات ذخيره شده توسط برنامهها در حافظه، در تمام لحظات مورد نياز نخواهد نبود. پردازنده در هر لحظه قادر به دستيابی به يک محل خاص از حافظه است. بنابراين اکثر حجم حافظه در اغلب اوقات غيرفابل استفاده است. از طرف ديگر با توجه به اينکه فضای ذخيرهسازی حافظههای جانبی نظير ديسکها بمراتب ارزانتر نسبت به حافظه اصلی است، میتوان با استفاده از مکانيزمهائی اطلاعات موجود در حافظه اصلی را خارج و آنها را موقتا" بر روی هارد ديسک ذخيره نمود. بدين ترتيب فضای حافظه اصلی آزاد و در زمانيکه به اطلاعات ذخيره شده بر روی هارد ديسک نياز باشد، مجددا" آنها را در حافظه مستقر کرد. روش فوق " مديريت حافظه مجازی" ناميده می شود.
حافطههای ذخيره سازی ديسکی، يکی از انواع متفاوت حافظه موجود بوده که می بايست توسط سيستمعامل مديريت گردد. حافطه های با سرعت بالای Cache، حافظه اصلی و حافظه های جانبی نمونه های ديگر از حافظه بوده که توسط سيستم عامل مديريت گردند.
مديريت دستگاهها
دستيابی سيستمعامل به سختافزارهای موجود از طريقه برنامههای خاصی با نام "درايور" انجام میگيرد. درايور مسئوليت ترجمه بين سيگنال های الکترونيکی زير سيستمهای سخت افزاری و زبانهای برنامه نويسی سطح بالا و سيستمعامل و برنامه های کاربردی را برعهده خواهد داشت. مثلا" درايورها اطلاعاتی را که سيستمعامل بصورت يک فايل تعريف و در نظر می گيرد را اخذ و آنها را به مجموعهای از بيتها برای ذخيره سازی بر روی حافظه های حانبی و يا مجموعهای از پالسها برای ارسال بر روی چاپگر، ترجمه خواهد کرد.
با توجه به ماهيت عملکرد عناصر سخت افزاری و وجود تنوع در اين زمينه ، درايورهای مربوطه نيز دارای روش های متعدد بمنظور انجام وظايف خود می باشند. اکثر درايورها در زمانيکه به خدمات دستگاه موردنظر نياز باشد، استفاده شده و دارای پردازشهای يکسانی در زمينه سرويس دهی خواهند بود. سيستمعامل بلاک های با اولويت بالا را به درايورها اختصاص داده تا از اين طريق منابع سخت افزاری قادر به آزادسازی سريع بمنظور استفاده در آينده باشند.
يکی از دلايلی که درايورها از سيستم عامل تفکيک شده اند، ضرورت افزودن عمليات و خواسته ای حديد برای درايورها است. در چنين حالتی ضرورتی بر اصلاح و يا تغيير سيستمعامل نبوده و با اعمال تغييرات لازم در درايورها می توان همچنان از قابليتهای آنها در کنار سيستمعامل موجود استفاده کرد.
مديريت عمليات ورودی و خروجی در کامپيوتر مستلزم استفاده و مديريت " صف ها" و " بافرها" است. بافر، مکان های خاصی برای ذخيرهسازی اطلاعات بصورت مجموعه ای از بيتهای ارسالی توسط دستگاهها (نظير صفحه کليد و يا يک پورت سريال) و نگهداری اطلاعات فوق و ارسال آنها برای پردازنده در زمان مورد نظر و خواسته شده است. عمليات فوق در موارديکه چندين پردازنده در وضعيت اجراء بوده و زمان پردازنده را بخود اختصاص داده اند، بسيار حائز اهميت است. سيستمعامل با استفاده از يک بافر قادر به دريافت اطلاعات ارسالی توسط دستگاه مورد نظر است . ارسال اطلاعات ذخيره شده برای پردازنده پس از غيرفعال شدن پردازه مربوطه، متوقف خواهد شد. در صورتيکه مجددا" پردازه به اطلاعات ورودی نياز داشته باشد، دستگاه فعال و سيستمعامل دستوراتی را صادر تا بافر اطلاعات مربوطه را ارسال دارد. فرآيند فوق اين امکان را به صفحه کليد يا مودم خواهد داد تا با سرعت مناسب خدمات خود را همچنان ادامه دهند (ولو اينکه پردازنده در آن زمان خاص مشغول باشد).
مديريت تمام منابع موجود در يک سيستم کامپيوتری، يکی از مهمترين و گستردهترين وظايف يک سيستم عامل است.
ارتباط سيستم با دنيای خارج
اينترفيس برنامه ها
سيستمعامل در رابطه با اجرای برنامههای کامپيوتری خدمات فراوانی را ارائه مینمايد. برنامهنويسان و پياده کنندگان نرم افزار میتوانند از امکانات فراهم شده توسط سيستمهایعامل استفاده و بدون اينکه نگران و يا درگير جزئيات عمليات در سيستم باشند، از خدمات مربوطه استفاده نمايند. برنامهنويسان با استفاده از API(Applicationprogram interface)، قادر به استفاده از خدمات ارائه شده توسط سيستمهایعامل در رابطه با طراحی و پيادهسازی نرمافزار می باشند. در ادامه بمنظور بررسی جايگاه API به بررسی مثالی پرداخته خواهد شد که هدف ايجاد يک فايل بر روی هارد ديسک برای ذخيره سازی اطلاعات است .
برنامه نويسی، برنامه ای را نوشته که بکمک آن قادر به ذخيره سازی داده های ارسالی توسط يک دستگاه کنترل علمی است. سيستم عامل يک تابع API با نام MakeFile را بمنظور ايجاد فايل در اختيار برنامهنويس قرار میدهد. برنامهنويس در زمان نوشتن برنامه از دستوری مشابه زير استفاده می نمايد :
MakeFile [1,%Name,2]
دستورالعمل فوق به سيستمعامل خواهد گفت که فايلی را ايجاد که شيوه دستيابی به دادههای آن بصورت تصادفی (عدد يک بعنوان اولين پارامتر)، دارای نام مشخص شده توسط کاربر (Name%) و دارای طولی متغير است . ( عدد 2 ، بعنوان سومين پارامتر) سيستم عامل دستور فوق را بصورت زير انجام خواهد داد :
● سيستم عامل درخواستی برای هارد ارسال تا اولين مکان آزاد قابل استفاده مشخص گردد.
● با توجه به اطلاعات ارسالی، سيستمعامل يک entry در سيستم فايل مربوطه ايجاد و ابتدا و انتهای فايل، نام فايل، نوع فايل، تاريخ و زمان ايجاد فايل و ساير اطلاعات ضروری را ذخيره خواهد کرد.
● سيستمعامل اطلاعاتی را در ابتدای فايل بمنظور مشخص کردن فايل، تنظيمات مربوط به شيوه دستيابی به فايل و ساير اطلاعات مورد نياز را خواهد نوشت.
در چنين حالتی برنامهنويس از تابع فوق برای ايجاد و ذخيرهسازی فايل استفاده نموده و ضرورتی بر نوشتن کدها، نوع دادهها و کدهای پاسخ برای هر نوع هارد ديسک نخواهد بود. سيستمعامل از امکانات درايورها استفاده و درايورها مسئول برقراری ارتباط با منابع سخت افزاری خواهند بود. در چنين حالتی برنامهنويس بسادگی از تابع مورد نظر استفاده و ادامه عمليات توسط سيستم عامل انجام خواهد شد.
امکانات ارائه شده توسط سيستمهایعامل در قالب مجموعه ای از توابع و امکانات API يکی از موارد بسيار مهم استفاده از سيستم عامل از ديدگاه طراحان و پياده کنندگان نرم افزار است.
اينترفيس کاربر
API يک روش يکسان برای برنامههای کامپيوتری بمنظور استفاده از منابع موجود در يک سيستم کامپيوتری را فراهم می نمايد. بخش رابط کاربر (UI)، يک ساختار مناسب ارتباطی بين کاربر و کامپيوتر را فراهم میآورد. اکثر سيستمهایعامل از رابطهای گرافيکی در اين زمينه استفاده مینمايند. بخش رابط کاربر هر سيستمعامل شامل يک و يا مجموعهای از برنامههای کامپيوتری است که بصورت يک لايه در بالاترين سطح يک سيستمعامل و در ارتباط با کاربر مستقر میگردند. برخی از سيستمهای عامل از رابطهای گرافيکی (نظير ويندوز) و برخی ديگر از رابطهای مبتنی بر متن (نظير سيستم عامل DOS) استفاده مینمايند.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)