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