واضح آرشیو وب فارسی:همشهری: چطور سيستم عامل كار ميكند؟
![](http://www.hamshahrionline.ir/images/upload/news/posa/8704/symmetric2-19-5.jpg)
نرمافزار- همشهري آنلاين - رشيد عسگري:
اگر حتي يك بار هم با كامپيوتر كار كردخ باشيد، يا اسم «ويندوز» را شنيدهايد يا نام «سيستم عامل». كامپيوتر شما يا داراي ويندوز است و يا اگر ساخت شركت مكينتاش است با سيستم OS X كار ميكند.
بعضي از كامپيوترهاي سرور نيز از سيستم «لينوكس» و يا «يونيكس» استفاده ميكنند.
در حقيقت سيستم عامل اولين نرم افزار كاربردي نصب شده روي كامپيوتر شماست. شايد برايتان جالب باشد كه بدانيد بسياري از دستگاههاي ديجيتالي اطرافتان داراي سيستم عامل هستند. از گوشي تلفن همراه گرفته تا «آيپود» و نقطه دسترسي بيسيم (Wireless Access Point) منزل يا محل كارتان.
ولي فر مايكروويو منزلتان داراي سيستم عامل نيست. در حقيقت نيازي به سيستم عامل ندارد چون تمامي تنظيمات و كاركرد آن در چند خط برنامه خلاصه شده است و در يك حافظه كوچك ذخيره شده. گوشيهاي تلفن همراه آنقدر پيشرفته شدهاند كه اينروزها سيستم عامل اكثر تلفنهاي همراه پيشرفته تر و پيچيده تر از سيستم عاملهاي كامپيوترهاي 20سال گذشته است.
نياز دستگاههاي ديجيتالي و مخصوصاً كامپيوتر به سيستم عامل از آنجا شروع ميشود كه با استفاده از سيستم عامل ميتوان كار اجزاي سخت افزاري آنها را مديريت كرد. و يا حتي اجزاي سخت افزاري آنها را تحت سيستم عامل كنترل كرد. اين امر براي يك كامپيوتر شامل اضافه كردن برنامهها و تغيير در ساختار خود سيستم عامل است. وقتي برنامهاي را روي كامپيوتر خود نصب ميكنيد، قطعات كامپيوترتان تحت فرمان آن برنامه در ميآيند. براي مثال وقتي با يك برنامه اجراي موسيقي كار ميكنيد، كارت صداي كامپيوترتان با برنامه پخش موسيقي همكاري ميكند و يك آهنگ يا فايل صوتي را از طريق بلندگوي كامپيوترتان پخش ميكند. اين ارتباط بين نرم افزار و سخت افزار توسط سيستم عامل انجام ميشود. اين تنها قسمتي از كار سيستم عامل است. تا اينجا با اهميت كار سيستم عامل پي برديد. بياييد به درون سيستم عامل نگاهي بيندازيم تا كاركرد آن را بهتر درك كنيم.
در ابتدايي ترين نگاه اساس و بنيان كار سيستم عامل مديريت سخت افزار است. از مديريت سخت افزارهايي مثل كارت گرافيك و كارت صدا گرفته تا مديريت ذخيره اطلاعات روي حافظهها و هارد ديسك. همچنين سيستم عامل اطلاعات را براي پردازش به سمت پردازشگر هدايت ميكند. اين امر شامل قسمتي ديگر نيز هست. اگر هزاران برنامه مختلف روي كامپيوترتان نصب كنيد و يا اگر چندين سخت افزار جديد به كامپيوترتان اضافه كنيد، سيستم عامل بدون تغيير ظاهري باقي ميماند. يكي از هدفهاي سازندگان سيستمهاي عامل همين است. اينكه سيستم عامل خود را انعطاف پذير و سازگار با سيستمهاي ديگر بسازند.
از انواع مختلف سيستم عامل ميتوان به چند سيستم زير اشاره كرد:
• Real-Time Operating System: در دستگاههاي صنعتي كاربرد دارد. دستگاههايي مثل CNC كه براي انجام تراش قطعات صنعتي به نوعي برنامه نويسي نياز دارد. اين نوع سيستمها توانايي تغيير بسيار كمي دارند و هر بار كه كاري توسط دستگاه انجام ميشود آن را در زمان معين و ثابتي انجام ميدهد.
• Single-User ,Single-Task: همان طور كه از نام آن پيداست فقط براي كار توسط يك كاربر در يك زمان است. سيستم عامل Palm نمونه مناسبي براي اين سيستم است.
• Single-User ,MultiTasking: اين همان سيستم عاملي است كه در كامپيوتر از آن استفاده ميشود و به يك كاربر اجازه اجراي چندين برنامه را ميدهد.سيستم عاملهاي ويندوز و مكينتاش از اين نوع هستند.
• Multi User: اين نوع سيستم به چندين كاربر توانايي استفاده همزمان و دسترسي به برنامههاي مختلف را در يك زمان ثابت ميدهد. سيستم عامل «يونيكس» و سيستم عاملهاي ابركامپيوترها مانند MVS از اين قبيل هستند.
در اينجا كمي سخت است كه بين سيستم عاملهاي شبكه و سيستم عاملهاي MultiUser تفاوت قايل شد. سيستم عاملي مثل ويندوز 2000 در حقيقت مانند باقي ويندوزها يك سيستم عامل SingleUser است و تفاوت آن با سيستم عاملهاي MultiUser اين است كه تنظيمات شبكه و اطلاعات كاربران شبكه فقط به صورت يك برنامه روي آن اجرا ميشود و كاربران ديگر شبكه توسط سيستم عامل ويندوز 2000روي شبكه قرار ميگيرند و باقي كاركرد آنها توسط سيستم عامل كامپيوتر خودشان انجام ميگيرد.
وقتي كامپيوترتان را روشن ميكنيد، برنامهاي به نام ( POST(Power-On Self Test از روي ROM اجرا ميشود. اين برنامه كوچك، تمام قطعات كامپيوتر را چك ميكند. ابتدا پردازشگر و بعد RAM و BIOS [چطور حافظه كامپيوتر كار ميكند؟]. سپس برنامه ديگري از ROM اجرا ميشود كه هارد ديسك شما را فعال ميسازد و به دنبال اولين قسمت سيستم عامل يعني BootstrapLoader ميگردد. Bootstrap سيستم عامل را به ترتيب اجرا ميكند تا جايي كه كنترل كامپيوتر را به آن ميسپارد.
پيش از اين گفتيم كه مديريت و هدايت پردازشهاي كامپيوتر توسط سيستم عامل انجام ميشود. مديريت پردازش شامل تقسيم بندي و اولويت دهي به پردازشها است. نرم افزاري كه سيستم عامل براي اينكار از آن استفاده ميكند به نام Process يا Thread معروف است.
در حقيقت سيستم عامل كار برنامهها را به صورت پردازش در ميآورد و آنها را به پردازشگر ميفرستد. مشكلي كه در اينجا با آن روبرو ميشويم اين است كه پردازشگر فقط توانايي انجام يك پردازش در يك لحظه را دارد. براي اينكه كار سيستم MultiTask يا چند كاره به نظر برسد، پردازشگر بايد چندين بار در هر لحظه به چندين پردازش مخ تلف بپردازد. بياييد به اين عمليات به صورت نزديكتري نگاه كنيم.
فرض كنيد دو برنامه داريم كه هر كدام پردازشهاي خود را به پردازشگر ميفرستد. ابتدا برنامهاي كه اولويت بيشتري دارد پردازش ميشود. پردازش اول كامل نميشود و پردازشگر اطلاعات برنامه اول را تا جايي كه پردازش شده، ضبط ميكند. سپس نوبت به برنامه دوم ميرسد. همين اتفاق براي برنامه دوم ميافتد. سپس پردازشگر از همانجايي كه برنامه اول متوقف شده شروع به پردازش ميكند. و بعد نوبت به تمام كردن پردازش دوم ميرسد. اين اطلاعات پردازشها در قسمتي از RAM به نام Process Control Block ذخيره ميشود. اين اطلاعات شامل شماره مخصوصي است كه به هر پردازش داده ميشود. اولويت پردازش، محلي كه پردازش درآنجا متوقف شده، تعداد فايلهايي كه توسط پردازشها باز شده و اطلاعات سخت افزارهاي خروجي/ ورودي كه توسط پردازش مورد استفاده قرار گرفتهاند، نيز در اين اطلاعات وجود دارد.
هر پردازشي با توجه به اولويت و مرحلهاي كه در آن قرار دارد يك وضعيت (Status) دريافت ميكند. براي مثال پردازشي كه براي اجرا شدن نياز به دستور كاربر دارد، تا زماني كه اين دستور براي مثال توسط فشاردادن دكمه صفحه كليد وارد نشود، اين پردازش به صورت غير فعال و در حالت انتظار (Pending) قرار ميگيرد و در اين حالت پردازشگر را مشغول نميسازد.
عمليات تغيير وضعيت پردازشها و جابجايي بين آنها نيز بخشي از ظرفيت پردازشگر را اشغال ميكند. اگر سيستم عامل در انجام اين عمليات داراي خطا باشد، بجاي كنترل كردن درست پردازشها و هدايت آنها به سمت پردازشگر تمام ظرفيت پردازشگر را براي جابجا كردن پردازشها صرف ميكند. اين كار سرعت كامپيوتر را به شدت كاهش ميدهد. اين مشكل به Thrashing معروف است.
توضيحاتي كه تا اينجا داده شد براي سيستم هايي است كه با يك پردازشگر كار ميكند. سيستم عاملهاي Asymmetric(نا متقارن) كارهاي مخصوص به خود را توسط يك پردازشگر انجام ميدهند و پردازشهاي ديگر را با پردازشگرهاي ديگر تقسيم ميكنند. پردازشگرهاي Symmetric(متقارن) تمام پردازشها و حتي پردازشهاي داخلي خود را با تمام پردازشگرها تقسيم ميكنند.
وظيفه بعدي سيستم عامل مديريت حافظه كامپيوتر است. براي توضيح اين كار بياييد به يك مثال توجه كنيم.
كامپيوتري را فرض كنيد كه داراي يك گيگابايت (1000مگابايت) RAM است و سيستم عامل براي شروع نياز به 300مگابايت RAM و سخت افزارها و گرداننده هاي آنها(Driver) نيز نياز به 200مگابايت ازRAM دارند. در اينجا سيستم 500مگابايت RAM براي اجراي برنامهها و انجام پردازشها دارد. اطلاعات در RAM در حجمهاي مختلف بستهبندي ميشوند. اين حجم بستگي به تنظيمات سيستم دارد. اگر اين مقدار 2كيلوبايت باشد تمام بستههايي كه به RAM منتقل ميشوند 2كيلوبايت خواهند بود. هر كدام از بستهها نيز با 4 يا 8 بايت در ابتدا و انتهاي آنها بسته ميشود. اين ابتدا و انتها به شناسايي بستهها كمك ميكند. با اطمينان حاصل كردن از اين امر، سوال بعدي اين است كه وقتي كه اين 1گيگابايت RAM تمام شد، سيستم چگونه كار خواهد كرد؟
ارتقاء RAM اكثر كامپيوترها امكان پذير است ولي اگر به مثال بالا كه تقريباً واقعي و كاربردي است توجه كنيد، متوجه ميشويد كه اگر كامپيوتر شما فقط به اين ترتيب كار كند، براي اجرا هر برنامه نياز به يك RAM اضافي داريد. ولي در حقيقت كامپيوتر به نحوي ديگر كار ميكند. در هر لحظه پردازشگر تنها به يك نقطه از RAM دسترسي پيدا ميكند و بعضي از اطلاعات وقتي كه براي يك بار مورد استفاده قرار ميگيرند، براي مدت زيادي بدون استفاده باقي ميمانند. با انتقال اين اطلاعات به هارد ديسك، ميتوان فضاي RAM را براي فعاليتهاي مهم تر خالي كرد. اين تكنيك جابجا كردن اطلاعات از RAM به هارد ديسك Virtual Memory Management ناميده ميشود.
هارد ديسك تنها يكي از انواع حافظههاست كه توسط سيستم عامل مديريت ميشود. دسته بندي اين حافظهها به ترتيب سرعت به صورت زير است:
• High-Speed Cache: اين نوع حافظه داراي ارتباط مستقيم با پردازشگر است و به پردازشگر در دسترسي به اطلاعات كمك ميكند. [چطورCache كار ميكند؟]
• Main Memory: كه همان RAM است. [چطورRAM كار ميكند؟]
• Secondary Memory: اين نوع حافظه كه معمولترين نوع آن حافظه دائمي يا همان هارد ديسك است، تحت مديريت حافظه سيستم عامل به صورت Virtual RAM در ميآيد.
سيستم عامل مسئوليت ايجاد توازن بين اين حافظهها كه همان منابع كامپيوتر هستند را دارد.
ارتباط بين سخت افزار كامپيوتر و سيستم عامل توسط برنامهاي به نام «گرداننده» (Driver) كنترل ميشود. وظيفه اين برنامه ترجمه سيگنالهاي الكتريكي به برنامههاي نرم افزاري و برعكس است. اين برنامه نيز مانند ساير برنامهها كار ميكند ولي تنها وقتي فعال ميشود كه سخت افزار مربوط مورد استفاده قرار گيرد و در غير اين صورت در حالت انتظار(Pending) ميماند.
گرداننده معمولاً جدا از سيستم عامل كار ميكنند. به اين دليل كه با تغيير در ساختار سخت افزار، نيازي به تغيير سيستم عامل نباشد.
مديريت سخت افزار ورودي و خروجي به معني مديريت كردن سرعت بارگذاري اطلاعات از سخت افزار بر روي پردازشگر است. اين امر شامل مديريت اين بارگذاري به ترتيبي است كه پردازشگر توانايي پردازش اطلاعات اين سخت افزار به طور منظمي را داشته باشد.
تا اينجا متوجه شديد كه كار سيستم عامل مديريت تمامي منابع كامپيوتر است. منابع كامپيوتر شامل چرخههاي پردازش (Cycle) و حافظهها و تمامي سخت افزار است. هر قدر هم كه منابع كامپيوترتان پيشرفته و گسترده باشد، بدون داشتن سيستم عامل مناسب نميتوانيد از هيچ كدام آنها بهرهمند شويد.
تاريخ درج: 19 مرداد 1387 ساعت 19:55 تاريخ تاييد: 20 مرداد 1387 ساعت 14:59 تاريخ به روز رساني: 20 مرداد 1387 ساعت 15:29
يکشنبه 20 مرداد 1387
این صفحه را در گوگل محبوب کنید
[ارسال شده از: همشهری]
[تعداد بازديد از اين مطلب: 412]