سیستم عامل چیست ؟
سیستم عامل بدون شك مهمترین نرم افزار در كامپیوتر است . پس از روشن كردن كامپیوتر اولین نرم افزاری كه مشاهده می گردد سیستم عامل بوده و آخرین نرم افزاری كه قبل از خاموش كردن كامپیوتر مشاهده خواهد شد، نیز سیستم عامل است . سیستم عامل نرم افزاری است كه امكان اجرای تمامی برنامه های كامپیوتری را فراهم می آورد. سیستم عامل با سازماندهی ، مدیریت و كنترل منابع سخت افزاری امكان استفاده بهینه و هدفمند آنها را فراهم می آورد. سیتم عامل فلسفه بودن سخت افزار را بدرستی تفسیر و در این راستا امكانات متعدد و ضروری جهت حیات سایر برنامه های كامپیوتری را فراهم می آورد.
تمام كامپیوترها از سیستم عامل استفاده نمی كنند. مثلا" اجاق های مایكرویو كه در آشپزخانه استفاده شده دارای نوع خاصی از كامپیوتر بوده كه از سیستم عامل استفاده نمیكنند. در این نوع سیستم ها بدلیل انجام عملیات محدود و ساده، نیازی به وجود سیستم عامل نخواهد بود. اطلاعات ورودی و خروجی با استفاده از دستگاههائی نظیر صفحه كلید و نمایشگرهای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 كه امكان برقراری ارتباط كاربران را با برنامه های مختلف سیستم عامل فراهم مِ كنند اینترفیس كاربری هستند.
برگرفته از سایتSrco.ir