سيستم عامل

كامپيوتر و اخبار اي تي

دوشنبه ۲۴ شهریور ۰۴

سيستم عامل

۲۶ بازديد


يكي از مهمترين بخش‌هاي يك رايانه، سيستم عامل آن است. سيستم عامل وظيفه كنترل سخت‌ افزار و ايجاد ارتباط بين نرم افزار و سخت افزار را به كمك عوامل متعددي انجام مي‌دهد. سيستم عامل بستر اصلي مديريت نرم افزار، اجراي انواع اپليكشن‌ها و مديريت منابع سيستم همچون ميزان حافظه اختصاص داده شده به يك نرم‌ افزار، ارسال و دريافت دستورات پردازنده مركزي و گرافيكي و… است.

در كامپيوتر به هر هر عملي همچون باز كردن يا بستن يك برنامه، تايپ يك حرف، انجام محاسبات رياضي و مواردي از اين دست يك عمليات گفته مي‌شود. بعضي از سيستم‌هاي عامل تنها توان انجام يك عمل در ثانيه را دارند و به فرض در يك زمان واحد نمي‌توانند يك عمليات همچون ضرب دو عدد و باز كردن يك برنامه را انجام دهند. اين دسته از سيستم‌هاي عامل كه به تك عملياتي معروف هستند، عمليات درخواستي كاربر و يا هر عمليات ديگر، بايد يكي يكي پردازش شده و به پايان برسد در اين حالت سيستم عامل نمي‌تواند در يك زمان بيش از يك دستور را به انجام برساند و ممكن است براي اجراي چند دستور ساده، زمان زيادي را هدر دهد. از سيستم عامل‌هاي تك عملياتي مي‌توان به DOS اشاره كرد كه البته اين روزها كاربرد كمتري دارد.
 
سيستم عامل dos
 
امروزه اكثر سيستم عامل‌ها در رده چند عملياتي قرار مي‌گيرند. اين دسته مي‌توانند به طور همزمان چندين دستور مختلف را انجام دهند و به مديريت منابع رايانه بپردازند. در سيستم‌هاي عامل چند عملياتي، منابع سخت افزاري به چندين قسمت متناسب با برنامه‌هاي در حال اجرا تقسيم مي‌گردد. سيستم عامل فضاي بيشتري از حافظه رم و  پردازنده را در اختيار برنامه‌هايي كه احتياج به محاسبات بيشتر و سنگين‌تري دارند قرار داده و به نرم افزارهاي سبك‌تر، مقدار محدودتري را اختصاص مي‌دهد. به عبارت ساده‌تر سيستم عامل با مديريت هوشمند، باعث اجراي صحيح و سريع‌تر نرم افزار مي‌شود. از سيستم عامل‌هاي معروف چند عملياتي مي‌توان ويندوز، لينوكس، مكينتاش، اندرويد و IOS را نام‌ برد. سالانه با آپديت‌ها و عرضه نسخه‌هاي جديدتر سيستم عامل‌هاي مذكور، يكي از مهمترين بخش‌هايي كه دست‌خوش تغييرات مي‌شود، نحوه مديريت سيستم چند عملياتي است.
وظايف سيستم عاملپس از روشن نمودن كامپيوتر، اولين برنامه اي كه اجراء مي گردد ، مجموعه دستوراتي مي باشند كه در حافظهROM ذخيره و مسئول بررسي صحت عملكرد امكانات سخت افزاري موجود مي باشند. برنامه فوق (POST) ، پردازنده ، حافظه و ساير عناصر سخت افزاري را بررسي خواهد كرد . پس از بررسي موفقيت آميز برنامهPOST ، در ادامه درايوهاي ( هارد ، فلاپي ) سيستم فعال خواهند شد. در اكثر كامپيوترها  ، پس از فعال شدن هارد ديسك ، اولين بخش سيستم عامل با نامBootstrap Loader فعال خواهد شد. برنامه فوق صرفا” داراي يك وظيفه اساسي است : انتقال ( استقرار ) سيستم عامل در حافظه اصلي و امكان اجراي آن . برنامه فوق عمليات متفاوتي را بمنظور استفرار سيستم عامل در حافظه انجام خواهد داد.
سيستم عامل داراي وظايف زير است :
  مديريت پردازنده
 مديريت حافظه
مديريت دستگاهها ( ورودي و خروجي )
مديريت حافظه جانبي
 اينترفيس برنامه هاي كاربردي
  رابط كاربر
وظايف شش گانه فوق ، هسته عمليات در اكثر سيستم هاي عامل است . در ادامه به تشريح  وظايف فوق اشاره مي گردد :
مديريت پردازنده
مديريت پردازنده دو وظيفه مهم اوليه زير را دارد :
  ايجاد اطمينان كه هر پردازه  يا برنامه به ميزان مورد نياز پردازنده را براي تحقق عمليات خود ، اختيار خواهد كرد.
  استفاده از بيشترين سيكل هاي پردازنده براي انجام عمليات
ساده ترين واحد نرم افزاري  كه سيستم عامل بهمنظور زمانبندي پردازنده با آن درگير خواهد شد ، يك پردازه  يا يكThread خواهد بود. موقتا” مي توان يك پردازه را مشابه يك برنامه در نظر گرفت ، در چنين حالتي مفهوم فوق ( پردازه ) ، بيانگر يك تصوير واقعي از نحوه پردازش هاي مرتبط با سيستم عامل و سخت افزار نخواهد بود. برنامه هاي كامپيوتري ( نظير واژه پردازها ، بازيهاي كامپيوتري و …) در حقيقت خود يك پردازه مي باشند ، ولي برنامه هاي فوق ممكن است از خدمات چندين پردازه ديگر استفاده نمايند. مثلا” ممكن است يك برنامه از پردازه اي بمنظور برقراري ارتباط با ساير دستگاههاي موجود در كامپيوتر استفاده نمايد. پردازه هاي فراوان ديگري نيز وجود دارد كه با توجه به ماهيت عمليات مربوطه ، بدون نياز به محرك خارجي ( نظير يك برنامه ) فعاليت هاي خود را انجام مي دهند. يك پردازه ، نرم افزاري است كه عمليات خاص و كنترل شده اي را انجام مي دهد. كنترل يك پردازه ممكن است توسط كاربر ، ساير برنامه هاي كاربردي و يا سيستم عامل صورت پذيرد.
سيستم عامل با كنترل و زمانبندي مناسب پردازه ها زمينه استفاده از پردازنده را براي آنان ، فراهم  مي نمايد. در سيستم هاي ” تك – كاره ” ، سيستم زمانبندي بسيار روشن و مشخص است . در چنين مواردي،  سيستم عامل امكان اجراي برنامه را فراهم و صرفا” در زمانيكه كاربر اطلاعاتي را وارد  يا سيستم با وقفه اي برخورد نمايد ، روند اجراء متوقف خواهد شد. وقفه ، سيگنال هاي خاص ارسالي توسط نرم افزار و يا سخت افزار براي  پردازنده مي باشند. در چنين مواردي منابع صادر كننده وقفه درخواست برقراري يك ارتباط زنده با پردازنده براي اخذ سرويس  يا ساير مسائل بوجود آمده ، را مي نمايند. در برخي حالات سيستم عامل پردازه ها  را با يك اولويت خاص زمانبندي مي نمايد . در چنين حالتي هر يك از پردازه ها با توجه به اولويت نسبت داده شده به آنان ، قادر به استفاده از زمان پردازنده خواهند بود. در اين چنين موارد ، در صورت بروز وقفه ، پردازنده آنها را ناديده گرفته و تا زمان عدم تكميل عمليات مورد نظر توسط پردازنده ، فرصت پرداختن به وقفه ها وجود نخواهد داشت . بديهي است با توجه به نحوه برخورد پردازنده ( عدم توجه به وقفه ها ) ، در سريعترين زمان ممكن عمليات و فعاليت جاري پردازنده به اتمام خواهد رسيد. برخي از وقفه ها با توجه به اهميت خود ( نظير بروز اشكال در حافظه و يا ساير موارد مشابه ) ، قابل اغماص توسط پردازنده نبوده و مي بايست صرفنظر از نوع و اهميت فعاليت جاري ،  سريعا” به وقفه ارسالي پاسخ مناسب را ارائه گردد.
پردازنده ، با توجه به سياست هاي اعمال شده سيستم عامل و بر اساس يك الگوريتم خاص ، در اختيار پردازه هاي متفاوت قرار خواهد گرفت . در چنين مواردي پردازنده مشغول بوده و براي اجراء ، پردازه اي را در اختيار دارد. در زمانيكه پردازنده درگير يك پردازه است ، ممكن است وقفه هائي از منابع متفاوت نرم افزاري  يا سخت افزاري محقق گردد. در چنين وضعيتي با توجه به اهميت و جايگاه يك وقفه ، پردازنده برخي از آنها را ناديده گرفته و همچنان به فعاليت جاري خود ادامه داده و در برخي موارد با توجه به اهميت وقفه ، فعاليت جاري متوقف و سرويس دهي به وقفه آغاز خواهد شد.
در سيستم هاي عامل ” تك – كاره ” ، وجود وقفه ها و نحوه مديريت آنها در روند اجراي پردازه ها تاثير و پيچيدگي هاي خاص خود را از بعد مديريتي بدنبال خواهد داشت . در سيستم هاي عامل “چند – كاره ” عمليات بمراتب پيچيده تر خواهد بود. در چنين مواردي مي بايست اين اعتقاد بوجود آيد كه چندين فعاليت بطور همزمان در حال انجام است . عملا” پردازنده در هر لحظه قادر به انجام يك فعاليت است و بديهي است رسيدن به مرز اعتقادي فوق ( چندين فعاليت بطور همزمان ) مستلزم يك مديريت قوي و طي مراحل پيچيده اي خواهد بود.  در چنين حالتي لازم است كه پردازنده در مدت زمان يك ثانيه هزاران مرتبه از يك پردازه به پردازه ه ديگر سوئيچ  تا امكان استفاده چندين پردازه از پردازنده را فراهم نمايد . در ادامه نحوه انجام عمليات فوق ، تشريح مي گردد :
  يك پردازه بخشي از حافظهRAM را اشغال خواهد كرد
  پس از استفرار بيش از يك پردازه در حافظه ، پردازنده بر اساس يك زمانبندي خاص ، فرصت اجراء را به يكي از پردازه ها خواهد داد.
  پردازنده ، بر اساس تعداد سيكل هاي خاصي پردازه را اجراء خواهد كرد .
   پس ازاتمام تعداد سيكل هاي مربوطه ، پردازنده وضعيت پردازه ( مقاير ريجسترها و …) را ذخيره و به پردازه اتمام زمان مربوطه را اعلام مي نمايد.
 پردازنده در ادامه اطلاعات ذخيره شده در رابطه با پردازه ديگر را فعال ( ريجسترها و …) و زمينه اجراي پردازه دوم فراهم مي گردد.
 پس ازاتمام تعداد سيكل هاي مربوطه ، پردازنده وضعيت پردازه ( مقاير ريجسترها و …) را ذخيره و به پردازه اتمام زمان مربوطه را اعلام و مجددا” پردازه اول جهت اجراء فعال خواهد گرديد.
تمام اطلاعات مورد نياز بمنظور مديريت يك پردازه در  ساختمان داده اي خاص با نامPCB)ProcessControl Block) ، نگهداري مي گردد. پردازنده در زمان سوئيچ بين پردازه ها ، از آخرين وضعيت هر پردازه  با استفاده از اطلاعات ذخيره شده درPCB آگاهي پيدا كرده و در ادامه زمينه اجراي پردازه مورد نظر بر اساس تعداد سيكل هاي در نظر گرفته شده فراهم خواهد شد. براي هر پردازه يكPCB ايجاد و اطلاعات زير در آن ذخيره خواهد گرديد :
1- يك مشخصه عددي (ID) كه نمايانگر پردازه خواهد بود .
2-اشاره گري كه نشان دهنده آخرين محل اجراي پردازه است
3-محتويات رجيستر ها
4-وضعيت سوئيچ ها و متغيرهاي مربوطه
5-اشاره گره هائي كه حد بالا و پايين حافظه مورد نياز پردازه را مشخص خواهد كرد.
6- اولويت پردازه
7-وضعيت دستگاههاي ورودي و خروجي مورد نياز پردازه
هر زمان كه اطلاعات مربوط به پردازه اي تغيير يابد ، ( پردازه از حالت “آماده ” تبديل به حالت “اجراء ” و يا از حالت ” اجراء ” به حالت “انتظار” و يا “آماده ” سوئيچ نمايد ) اطلاعات ذخيره شده درPCB استفاده و بهنگام خواهند شد.
عمليات جايگزيني پردازها،  بدون نظارت و ارتباط مستقيم كاربر انجام و هر پردازه به ميزان كافي از زمان پردازنده براي اتمام عمليات خود استفاده خواهد كرد. در اين راستا ممكن است ، كاربري قصد اجراي تعداد بسيار زيادي از پردازه ها را بسورت همزمان داشته باشد. در چنين مواردي است ، پردازنده خود نيازمند استفاده از چندين سيكل زماني براي ذخيره و بازيابي اطلاعات مربوط به هر يك از پردازه ها خواهد بود .در صورتيكه سيستم عامل با دقت طراحي نشده باشد  يا پردازه هاي زيادي فعاليت خود را آغاز كرده باشند ، مدت زمان زيادي از پردازنده صرف انجام عمليات سوئيچينگ بين پردازها شده و عملا” در روند اجراي پردازها اختلال ايجاد مي گردد. وضعيت بوجود آمده فوق راThrashing مي گويند. در چنين مواردي كاربر مي بايست نسبت به غيرفعال نمودن برخي از پردازه ها اقدام تا سيستم مجددا” در وضعيت طبيعي قرار گيرد.
يكي از روش هائي كه طراحان سيستم عامل از آن استفاده تا امكان ( شانس) تحققThrashing را كاهش  دهند ، كاهش نياز به پردازه هاي جديد براي انجام فعاليت هاي متفاوت است . برخي از سيستم هاي عامل ازيك  ” پردازه -lite ” با نامThread استفاده مي نمايند. Thread از لحاظ كارآئي همانند يك پردازه معمولي رفتار نموده ولي نيازمند عمليات متفاوت ورودي و خروجي  يا ايجاد ساختمان دادهPCB مشابه يك پردازه عادي نخواهد بود. يك پردازه ممكن است باعث اجراي چندينThreads  يا ساير پردازه هاي ديگر گردد. يكThread نمي تواند باعث اجراي يك پردازه گردد.
تمام موارد اشاره شده در رابطه با زمانبندي با فرض وجود يك پردازنده مطرح گرديده است . در سيستم هائي كه داراي دو  يا بيش از دو پردازنده مي باشند ، سيستم عامل حجم عمليات مربوط به هرپردازنده را تنظيم و مناسب ترين روش اجراء براي يك پردازه در نظر گرفتهميشود .  سيستم هاي عامل نامتقارن ، از يك پردازنده براي انجام عمليات مربوط به سيستم عامل استفاده و پردازه هاي مربوط به برنامه هاي كاربردي را بين ساير پردازه ها تقسيم مي نمايند. سيستم هاي عامل متقارن ،  عمليات مربوط به خود و عمليات مربوط به ساير پردازه ها را بين پردازه هاي موجود تقسيم مي نمايند. در اين راستا سعي مي گردد كه توزيع عمليات براي هر يك از پردازه ها بصورت متعادل انجام گردد.
مديريت حافظه و فضاي ذخيره سازي
سيستم عامل در رابطه با مديريت حافظه دو عمليات اساسي را انجام خواهد داد :
 هر پردازه بمنظور اجراء مي بايست داراي حافظه مورد نياز و اختصاصي خود باشد .
 از انواع متفاوتي حافظه در سيستم استفاده تا هر پردازه قادر به اجراء با بالاترين سطح كارآئي باشد.
سيسم هاي عامل در ابتدا مي بايست محدوده هاي حافظه مورد نياز هر نوع نرم افزار و برنامه هاي خاص را فراهم نمايند. مثلا” فرض كنيد سيستمي داراي يك مگابايت حافظه اصلي باشد . سيستم عامل كامپيوتر فرضي ، نيازمند 300 كيلو بايت حافظه است . سيستم عامل در بخش انتهائي حافظه مستقر و بهمراه خود درايورهاي مورد نياز بمنظور كنترل سخت افزار را نيز مستقر خواهد كرد. درايورهاي مورد نظر به 200 كيلو بايت حافظه نياز خواهند داشت . بنابراين پس از استقرار سيستم عامل بطور كامل در حافظه ، 500 كيلو بايت حافظه باقيمانده و از آن براي پردازش برنامه هاي كاربردي استفاده خواهد شد. زمانيكه برنامه هاي كاربردي در حافظه مستقر مي گردند ، سازماندهي آنها در حافظه بر اساس بلاك هائي خواهد بود كه اندازه آنها توسط سيستم عامل مشخص خواهد شد. در صورتيكه اندازه هر بلاك 2 كيلوبايت باشد ، هر يك از برنامه هاي كاربردي كه در حافظه مستقر مي گردنند ، تعداد زيادي  از بلاك هاي فوق را (مضربي از دو خواهد بود) ، بخود اختصاص خواهند داد. برنامه ها در بلاك هائي با طول ثابت مستقر مي گردند. هر بلاك داراي محدوده هاي خاص خود بوده كه  توسط كلمات چهار و يا هشت بايت ايجاد خواهند شد. بلاك ها و محدو ده هاي فوق اين اطمينان را بوجود خواهند آورد كه برنامه ها در محدوده هاي متداخل مستقر نخواهند شد.  پس از پر شدن فضاي 500 كيلوبايت اختصاصي براي برنامه هاي كاربردي ، وضعيت سيستم به چه صورت تبديل خواهد گرديد؟
در اغلب كامپيوترها ، مي توان ظرفيت حافظه را ارتقاء و افزايش داد. مثلا” مي توان ميزان حافظهRAM موجود را از يك مگابايت به دو مگابايت ارتقاء داد. روش فوق يك راهكار فيزيكي براي افزايش حافظه بوده كه در برخي موارد داراي چالش هاي خاص خود مي باشد. در اين زمينه مي بايست راهكارهاي ديگر نيز مورد بررسي قرار گيرند. اغلب اطلاعات ذخيره شده توسط برنامه ها در حافظه ، در تمام لحظات مورد نياز نخواهد نبود. پردازنده در هر لحظه قادر به دستيابي به يك محل خاص از حافظه است . بنابراين اكثر حجم حافظه در اغلب اوقات  غير فابل استفاده است . از طرف ديگر با توجه به اينكه فضاي ذخيره سازي حافظه ها ي جانبي نظير ديسك ها بمراتب ارزانتر نسبت به حافظه اصلي است ، مي توان با استفاده از مكانيزم هائي اطلاعات موجود در حافظه اصلي را  خارج و آنها را موقتا”  بر روي هارد ديسك  ذخيره نمود.  بدين ترتيب فضاي حافظه اصلي آزاد و در زمانيكه به اطلاعات ذخيره شده بر روي هارد ديسك نياز باشد ، مجددا” آنها را  در حافظه مستقر كرد. روش فوق ” مديريت حافظه مجازي ” ناميده مي شود.
حافطه هاي  ذخيره سازي ديسكي ، يكي از انواع متفاوت حافظه موجود بوده كه مي بايست توسط سيستم عامل مديريت گردد. حافطه هاي با سرعت بالايCache ، حافظه اصلي و حافظه هاي جانبي نمونه هاي ديگر از حافظه  بوده كه  توسط سيستم عامل مديريت گردند.
مديريت دستگاهها
دستيابي سيستم عامل به  سخت افزارهاي موجود از طريقه برنامه هاي خاصي با نام “درايور” انجام مي گيرد. درايور مسئوليت ترجمه بين سيگنال هاي الكترونيكي زير سيستم هاي سخت افزاري و زبانهاي برنامه نويسي سطح بالا و سيستم عامل و برنامه هاي كاربردي را برعهده خواهد داشت . مثلا” درايورها اطلاعاتي را كه سيستم عامل بصورت يك فايل تعريف و در نظر مي گيرد را اخذ و آنها را به مجموعه اي از بيت ها براي ذخيره سازي بر روي حافظه هاي حانبي و يا مجموعه اي از پالس ها براي ارسال بر روي چاپگر ، ترجمه خواهد كرد.
با توجه به ماهيت عملكرد عناصر سخت افزاري و وجود تنوع در اين زمينه ، درايورهاي مربوطه نيز داراي روش هاي متعدد بمنظور انجام وظايف خود مي باشند. اكثر درايورها در زمانيكه به خدمات دستگاه مورد نظر نياز باشد ، استفاده شده و داراي پردازش هاي يكساني در زمينه سرويس دهي خواهند بود. سيستم عامل بلاك هاي با اولويت بالا را به درايورها اختصاص داده تا از اين طريق منابع سخت افزاري قادر به آزادسازي سريع بمنظور استفاده  در آينده باشند.
يكي از دلايلي كه درايورها از سيستم عامل تفكيك شده اند ، ضرورت افزودن عمليات و خواسته اي حديد براي درايورها است . در چنين حالتي ضرورتي بر اصلاح يا تغيير سيستم عامل نبوده و با اعمال تغييرات لازم در درايورها مي توان همچنان از قابليت هاي آنها در كنار سيستم عامل موجود استفاده كرد.
مديريت عمليات ورودي و خروجي در كامپيوتر مستلزم استفاده و مديريت ” صف ها ” و ” بافرها ” است .  بافر ، مكان هاي خاصي براي ذخيره سازي اطلاعات بصورت مجموعه اي از بيت ها ي ارسالي توسط دستگاهها ( نظير صفحه كليد و يا يك پورت سريال ) و نگهداري اطلاعات فوق و ارسال آنها براي پردازنده در زمان مورد نظر و خواسته شده است .  عمليات فوق در موارديكه چندين پردازنده در وضعيت اجراء بوده و زمان پردازنده را بخود اختصاص داده اند ، بسيار حائز اهميت است . سيستم عامل با استفاده از يك بافر قادر به دريافت اطلاعات ارسالي توسط دستگاه مورد نظر است . ارسال اطلاعات ذخيره شده براي پردازنده پس از غير فعال شدن پردازه مربوطه ، متوقف خواهد شد. در صورتيكه مجددا” پردازه به اطلاعات ورودي نياز داشته باشد ، دستگاه فعال و سيستم عامل دستوراتي را صادر  تا بافر اطلاعات مربوطه را ارسال دارد. فرآيند فوق اين امكان را به صفحه كليد يا مودم خواهد داد تا با سرعت مناسب خدمات خود را همچنان ادامه دهند ( ولواينكه پردازنده در آن زمان خاص مشغول باشد).
مديريت تمام منابع موجود در يك سيستم كامپيوتري ، يكي از مهمترين و گسترده ترين وظايف يك سيستم عامل است .

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در رویا بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.