مجموعه مقالات رايانه MOGHALAT COMPUTER
وظايف سيستم عامل
پس از روشن نمودن کامپيوتر، لولين برنامه اي که اجراء مي گردد ، مجموعه دستوراتي مي باشند که در حافظه ROM ذخيره و مسئول بررسي صحت عملکرد امکانات سخت افزاري موجود مي باشند. برنامه فوق (POST) ، پردازنده ، حافظه و ساير عناصر سخت افزاري را بررسي خواهد کرد . پس از بررسي موفقيت آميز برنامه POST ، در ادامه درايوهاي ( هارد ، فلاپي ) سيستم فعال خواهند شد. در اکثر کامپيوترها ، پس از فعال شدن هارد ديسک ، اولين بخش سيستم عامل با نام Bootstrap Loader فعال خواهد شد. برنامه فوق صرفا" داراي يک وظيفه اساسي است : انتقال ( استقرار ) سيستم عامل در حافظه اصلي و امکان اجراي آن . برنامه فوق عمليات متفاوتي را بمنظور استفرار سيستم عامل در حافظه انجام خواهد داد.
سيستم عامل داراي وظايف زير است :
· مديريت پردازنده
· مديريت حافظه
· مديريت دستگاهها ( ورودي و خروجي )
· مديريت حافظه جانبي
· اينترفيس برنامه هاي کاربردي
· رابط کاربر
وظايف شش گانه فوق ، هسته عمليات در اکثر سيستم هاي عامل است . در ادامه به تشريح وظايف فوق اشاره مي گردد :
مديريت پردازنده
مديريت پردازنده دو وظيفه مهم اوليه زير را دارد :
· ايجاد اطمينان که هر پردازه يا برنامه به ميزان مورد نياز پردازنده را براي تحقق عمليات خود ، اختيار خواهد کرد.
· استفاده از بيشترين سيکل هاي پردازنده براي انجام عمليات
ساده ترين واحد نرم افزاري که سيستم عامل به منظور زمانبندي پردازنده با آن درگير خواهد شد ، يک پردازه يا يک Thread خواهد بود. موقتا" مي توان يک پردازه را مشابه يک برنامه در نظر گرفت ، در چنين حالتي مفهوم فوق ( پردازه ) ، بيانگر يک تصوير واقعي از نحوه پردازش هاي مرتبط با سيستم عامل و سخت افزار نخواهد بود. برنامه هاي کامپيوتري ( نظير واژه پردازها ، بازيهاي کامپيوتري و ...) در حقيقت خود يک پردازه مي باشند ، ولي برنامه هاي فوق ممکن است از خدمات چندين پردازه ديگر استفاده نمايند. مثلا" ممکن است يک برنامه از پردازه اي بمنظور برقراري ارتباط با ساير دستگاههاي موجود در کامپيوتر استفاده نمايد. پردازه هاي فراوان ديگري نيز وجود دارد که با توجه به ماهيت عمليات مربوطه ، بدون نياز به محرک خارجي ( نظير يک برنامه ) فعاليت هاي خود را انجام مي دهند. يک پردازه ، نرم افزاري است که عمليات خاص و کنترل شده اي را انجام مي دهد. کنترل يک پردازه ممکن است توسط کاربر ، ساير برنامه هاي کاربردي و يا سيستم عامل صورت پذيرد.
سيستم عامل با کنترل و زمانبندي مناسب پردازه ها زمينه استفاده از پردازنده را براي آنان ، فراهم مي نمايد. در سيستم هاي " تک - کاره " ، سيستم زمانبندي بسيار روشن و مشخص است . در چنين مواردي، سيستم عامل امکان اجراي برنامه را فراهم و صرفا" در زمانيکه کاربر اطلاعاتي را وارد يا سيستم با وقفه اي برخورد نمايد ، روند اجراء متوقف خواهد شد. وقفه ، سيگنال هاي خاص ارسالي توسط نرم افزار و يا سخت افزار براي پردازنده مي باشند. در چنين مواردي منابع صادر کننده وقفه درخواست برقراري يک ارتباط زنده با پردازنده براي اخذ سرويس يا ساير مسائل بوجود آمده ، را مي نمايند. در برخي حالات سيستم عامل پردازه ها را با يک اولويت خاص زمانبندي مي نمايد . در چنين حالتي هر يک از پردازه ها با توجه به اولويت نسبت داده شده به آنان ، قادر به استفاده از زمان پردازنده خواهند بود. در اين چنين موارد ، در صورت بروز وقفه ، پردازنده آنها را ناديده گرفته و تا زمان عدم تکميل عمليات مورد نظر توسط پردازنده ، فرصت پرداختن به وقفه ها وجود نخواهد داشت . بديهي است با توجه به نحوه برخورد پردازنده ( عدم توجه به وقفه ها ) ، در سريعترين زمان ممکن عمليات و فعاليت جاري پردازنده به اتمام خواهد رسيد. برخي از وقفه ها با توجه به اهميت خود ( نظير بروز اشکال در حافظه و يا ساير موارد مشابه ) ، قابل اغماص توسط پردازنده نبوده و مي بايست صرفنظر از نوع و اهميت فعاليت جاري ، سريعا" به وقفه ارسالي پاسخ مناسب را ارائه گردد.
پردازنده ، با توجه به سياست هاي اعمال شده سيستم عامل و بر اساس يک الگوريتم خاص ، در اختيار پردازه هاي متفاوت قرار خواهد گرفت . در چنين مواردي پردازنده مشغول بوده و براي اجراء ، پردازه اي را در اختيار دارد. در زمانيکه پردازنده درگير يک پردازه است ، ممکن است وقفه هائي از منابع متفاوت نرم افزاري يا سخت افزاري محقق گردد. در چنين وضعيتي با توجه به اهميت و جايگاه يک وقفه ، پردازنده برخي از آنها را ناديده گرفته و همچنان به فعاليت جاري خود ادامه داده و در برخي موارد با توجه به اهميت وقفه ، فعاليت جاري متوقف و سرويس دهي به وقفه آغاز خواهد شد.
در سيستم هاي عامل " تک - کاره " ، وجود وقفه ها و نحوه مديريت آنها در روند اجراي پردازه ها تاثير و پيچيدگي هاي خاص خود را از بعد مديريتي بدنبال خواهد داشت . در سيستم هاي عامل "چند - کاره " عمليات بمراتب پيچيده تر خواهد بود. در چنين مواردي مي بايست اين اعتقاد بوجود آيد که چندين فعاليت بطور همزمان در حال انجام است . عملا" پردازنده در هر لحظه قادر به انجام يک فعاليت است و بديهي است رسيدن به مرز اعتقادي فوق ( چندين فعاليت بطور همزمان ) مستلزم يک مديريت قوي و طي مراحل پيچيده اي خواهد بود. در چنين حالتي لازم است که پردازنده در مدت زمان يک ثانيه هزاران مرتبه از يک پردازه به پردازه ه ديگر سوئيچ تا امکان استفاده چندين پردازه از پردازنده را فراهم نمايد . در ادامه نحوه انجام عمليات فوق ، تشريح مي گردد :
· يک پردازه بخشي از حافظه RAM را اشغال خواهد کرد
· پس از استفرار بيش از يک پردازه در حافظه ، پردازنده بر اساس يک زمانبندي خاص ، فرصت اجراء را به يکي از پردازه ها خواهد داد.
· پردازنده ، بر اساس تعداد سيکل هاي خاصي پردازه را اجراء خواهد کرد .
· پس ازاتمام تعداد سيکل هاي مربوطه ، پردازنده وضعيت پردازه ( مقاير ريجسترها و ...) را ذخيره و به پردازه اتمام زمان مربوطه را اعلام مي نمايد.
· پردازنده در ادامه اطلاعات ذخيره شده در رابطه با پردازه ديگر را فعال ( ريجسترها و ...) و زمينه اجراي پردازه دوم فراهم مي گردد.
· پس ازاتمام تعداد سيکل هاي مربوطه ، پردازنده وضعيت پردازه ( مقاير ريجسترها و ...) را ذخيره و به پردازه اتمام زمان مربوطه را اعلام و مجددا" پردازه اول جهت اجراء فعال خواهد گرديد.
تمام اطلاعات مورد نياز بمنظور مديريت يک پردازه در ساختمان داده اي خاص با نام PCB)Process Control Block) ، نگهداري مي گردد. پردازنده در زمان سوئيچ بين پردازه ها ، از آخرين وضعيت هر پردازه با استفاده از اطلاعات ذخيره شده در PCB آگاهي پيدا کرده و در ادامه زمينه اجراي پردازه مورد نظر بر اساس تعداد سيکل هاي در نظر گرفته شده فراهم خواهد شد. براي هر پردازه يک PCB ايجاد و اطلاعات زير در آن ذخيره خواهد گرديد :
· يک مشخصه عددي (ID) که نمايانگر پردازه خواهد بود .
· اشاره گري که نشان دهنده آخرين محل اجراي پردازه است
· محتويات رجيستر ها
· وضعيت سوئيچ ها و متغيرهاي مربوطه
· اشاره گره هائي که حد بالا و پايين حافظه مورد نياز پردازه را مشخص خواهد کرد.
· اولويت پردازه
· وضعيت دستگاههاي ورودي و خروجي مورد نياز پردازه
هر زمان که اطلاعات مربوط به پردازه اي تغيير يابد ، ( پردازه از حالت "آماده " تبديل به حالت "اجراء " و يا از حالت " اجراء " به حالت "انتظار" و يا "آماده " سوئيچ نمايد ) اطلاعات ذخيره شده در PCB استفاده و بهنگام خواهند شد.
عمليات جايگزيني پردازها، بدون نظارت و ارتباط مستقيم کاربر انجام و هر پردازه به ميزان کافي از زمان پردازنده براي اتمام عمليات خود استفاده خواهد کرد. در اين راستا ممکن است ، کاربري قصد اجراي تعداد بسيار زيادي از پردازه ها را بسورت همزمان داشته باشد. در چنين مواردي است ، پردازنده خود نيازمند استفاده از چندين سيکل زماني براي ذخيره و بازيابي اطلاعات مربوط به هر يک از پردازه ها خواهد بود .در صورتيکه سيستم عامل با دقت طراحي نشده باشد يا پردازه هاي زيادي فعاليت خود را آغاز کرده باشند ، مدت زمان زيادي از پردازنده صرف انجام عمليات سوئيچينگ بين پردازها شده و عملا" در روند اجراي پردازها اختلال ايجاد مي گردد. وضعيت بوجود آمده فوق را Thrashing مي گويند. در چنين مواردي کاربر مي بايست نسبت به غيرفعال نمودن برخي از پردازه ها اقدام تا سيستم مجددا" در وضعيت طبيعي قرار گيرد.
يکي از روش هائي که طراحان سيستم عامل از آن استفاده تا امکان ( شانس) تحقق Thrashing را کاهش دهند ، کاهش نياز به پردازه هاي جديد براي انجام فعاليت هاي متفاوت است . برخي از سيستم هاي عامل ازيک " پردازه -lite " با نام Thread استفاده مي نمايند. Thread از لحاظ کارآئي همانند يک پردازه معمولي رفتار نموده ولي نيازمند عمليات متفاوت ورودي و خروجي يا ايجاد ساختمان داده PCB مشابه يک پردازه عادي نخواهد بود. يک پردازه ممکن است باعث اجراي چندين Threads يا ساير پردازه هاي ديگر گردد. يک Thread نمي تواند باعث اجراي يک پردازه گردد.
تمام موارد اشاره شده در رابطه با زمانبندي با فرض وجود يک پردازنده مطرح گرديده است . در سيستم هائي که داراي دو يا بيش از دو پردازنده مي باشند ، سيستم عامل حجم عمليات مربوط به هر پردازنده را تنظيم و مناسب ترين روش اجراء براي يک پردازه در نظر گرفته مي شود . سيستم هاي عامل نامتقارن ، از يک پردازنده براي انجام عمليات مربوط به سيستم عامل استفاده و پردازه هاي مربوط به برنامه هاي کاربردي را بين ساير پردازه ها تقسيم مي نمايند. سيستم هاي عامل متقارن ، عمليات مربوط به خود و عمليات مربوط به ساير پردازه ها را بين پردازه هاي موجود تقسيم مي نمايند. در اين راستا سعي مي گردد که توزيع عمليات براي هر يک از پردازه ها بصورت متعادل انجام گردد.
نوشته شده توسط: کهکشان
:: کل بازديدها :: :: بازديد امروز :: :: بازديد ديروز :: :: مطالب قبلي ::
RSS
خانه
شناسنامه
پارسي بلاگ
پست الکترونيک
7515
86
128
:: موضوعات وبلاگ ::
:: درباره من ::

:: لينک به وبلاگ ::
|
:: لينک دوستان من ::
چند سايت مرتبط
:: لوگوي دوستان من ::

:: موسيقي وبلاگ ::
:: اشتراک ::
نام: | |
ايميل: | |
