ما هي وظائف نظام التشغيل؟

ما هي وظائف نظام التشغيل

وظائف نظام التشغيل


يؤدي نظام التشغيل الكثير من الوظائف التي تجعل استخدام الحاسوب ممكناً بالنسبة للإنسان؛ نظراً لأن لغة الحاسوب لا تشبه لغة البشر والتعامل معها يحتاج إلى لغة برمجية تقوم بدور الوسيط بين المستخدم وبين الحاسب بمكوناته المختلفة.

وينفذ نظام التشغيل البرامج والتطبيقات المختلفة ويقوم بعمليات الإدخال والإخراج مثل التعامل مع لوحة المفاتيح والشاشة والصوت، ويصحح الأخطاء البرمجية التي تحصل أثناء تنفيذ مختلف العمليات والبرمجيات، ويعالج ملفات النظام الخاصة، وينظم استخدام مكونات الحاسوب.

ومن أجل تسهيل مهمة تشغيل الحاسب أنشئت نظم التشغيل التي تقوم بدور هام في التحكم في سير البيانات والأوامر بين البرامج التطبيقية وأجزاء الحاسب، وتكون وسيطاً بين المستخدم والحاسب، فـ المستخدم لا يفهم لغة الحاسب، والحاسب لا يفهم لغة الإنسان.


تتلخص وظائف نظام التشغيل بشكل عام إلى الأصناف الست التالية:
  1. إدارة المعالج Processor Management.
  2. إدارة الذاكرة والتخزين Memory  and Storage Management.
  3. إدارة المكونات المادية Device Management.
  4. التحكم في واجهة التطبيقات Application Interface.

فلننظر الآن إلى العمليات التي يقوم بها نظام التشغيل لأداء كل من تلك الوظائف.

1. إدارة المعالج

وحدة البرنامج الأساسية التي يتعامل معها نظام التشغيل لجدولة تنفيذ العمل من قبل المعالج تكون إما عملية (process)، وإما جزء من برنامج (thread)، حسب نظام التشغيل.

التطبيق الذي تستخدمه مثل (Microsoft Word) هو بالفعل عملية، لكن قد يُشغل عدد من العمليات الأخرى لتنفيذ مهام أخرى. وقد تجد عدد من العمليات تعمل بدون ما تعلم.

إذاً ‏قلب إدارة المعالج تقتصر على أمرين:
  1. ‎التأكد من أن كل عملية و تطبيق تتلقى زمن كافي من وقت المعالج للعمل بشكل سليم.
  2. استعمال اكبر عدد ممكن من عمليات المعالج.

تقوم العملية بتنفيذ بعض التعليمات، و يمكن التحكم فيه من خلال المستخدم أو تطبيق آخر أو نظام التشغيل.

كيف يحدث هذا؟
  1. تشغل العملية حجماً من الذاكرة RAM كما يستعمل جزء من سجلات و طوابير بداخل مساحة ذاكرة المعالج و نظام التشغيل.
  2. إذا كانت العمليتان تعملان، يخصص برنامج التشغيل لواحد منهما وقت للتنفيذ.
  3. بعد مرور فترة، يضع نظام التشغيل نسخة من السجلات و الطوابير المستعملة من قبل العملية و يلاحظ متى تتوقف العملية من التنفيذ.
  4. تحميل السجلات و الطوابير المستعملة من العملية الثانية و السماح له بالتنفيذ.
  5. عند النهاية، يضع نظام التشغيل نسخة من السجلات و الطوابير من العملية الثانية و يحمل العملية الأولى.

جميع المعلومات المستخدمة في متابعة العملية تحفظ في حزم بيانات تسمى حزمة مراقبة البيانات (Process Control Block) كل هذا يحدث بدون تدخل المستخدم.
كل ما تم شرحه حتى الآن كان حول استعمال معالج واحد. في حالة استخدام أكثر من معالج فيجب على نظام التشغيل تقسيم الحمل لموازنة الطلب لبرنامج ما.

ويوجد نوعان من أنظمة التشغيل التي تستعمل أكثر من معالج:
  1. (تناظري/ Symmetric) : توزع الأحمال على جميع المعالجات بالتوازي.
  2. (غير تناظري/ Asymmetric): يستعمل معالج خاص لنظام التشغيل و باقي المعالجات للتطبيقات.

- إدارة الذاكرة والتخزين

توجد وظيفتان يجب على نظام التشغيل تلبيتها عند إدارة الذاكرة:
  1. ‎يجب توفير ذاكرة كافية لكل عملية عند التنفيذ، ولا يمكن استخدام مساحة الذاكرة نفسها لعملية أخرى أو العكس.
  2. يجب استخدام جميع أنواع الذاكرة المتاحة في النظام بطريقة صحيحة و ذلك لتنفيذ البرنامج على الوجه الأمثل.

يتطلب على نظام التشغيل كأول مهمة تحديد حدود الذاكرة المتاحة لكل تطبيق أو عملية.

فلننظر مثال لنظام وهمي بذاكرة RAM ‏ 1 ميجابايت. أن النظام مصمم للذهاب إلى أعلى عنوان في الذاكرة أثناء عملية بداية التشغيل. ولنفرض أن نظام التشغيل يحتاج إلى 300 كيلوبايت لكي يعمل.

يذهب نظام التشغيل الآن إلى أسفل الذاكرة لتحميل بقية البرامج، ثم يبدأ بتحميل المشغلات للتحكم في مختلف المكونات الخارجية. ولنفترض أن هذه البرامج أخذت 300 كيلوبايت من الذاكرة، في النهاية يبقى 500 كيلوبايت للتطبيقات.

عند بدء تحميل التطبيقات في الذاكرة، تحمل على شكل مجموعات يحدد حجمها نظام التشغيل، إذا كان حجم المجموعة 2 كيلوبايت؛ إذن أي برنامج يحمل في الذاكرة يصبح حجمه في الذاكرة مضاعف لـ 2 كيلوبايت.

السؤال الآن ما العمل عندما تمتلئ 500 كيلوبايت المتبقية من الذاكرة RAM؟

في هذه الحالة يضاف إلى الذاكرة الأصلية ذاكرة وهمية متواجدة بالقرص الصلب. تسمى هذه العملية بإدارة الذاكرة الوهمية (Virtual Memory Management) .

استخدام القرص الصلب كذاكرة وهمية هي أحد أنواع الذاكرة المستعملة في نظام التشغيل و تعتبر الأبطأ بالمقارنة مع الأنواع الأخرى.

في هذه الحالة يجب على نظام التشغيل عمل الآتي:
  1. موازنة الاحتياجات لمختلف البرامج بين مختلف أنواع الذاكرة.
  2. نقل البيانات على شكل مجموعات تسمى صفحات pages ما بين الذاكرة المتاحة.

3. إدارة المكونات المادية

الربط بين نظام التشغيل وجميع المكونات المادية ما عدا اللوحة الرئيسية يمر على برنامج خاص يسمى المشغل Driver، وظيفة المشغل هي المترجم بين الإشارات الكهربائية و برنامج نظام التشغيل والتطبيقات، ويعطي نظام التشغيل الأولوية للمشغلات.

المشغلات هي جزء منفصل عن نظام التشغيل لأن برنامج المشغل يُحدث باستمرار من دون الحاجة إلى تغيير نظام التشغيل.

إدارة المكونات المادية تنحصر في إدارة الطوابير (queues) والسجلات (buffers)، وهو مكان تخزين خاص للبيانات التي تأتي من المكونات المادية (مثال: لوحة المفاتيح، الفأرة، الطابعة.. إلخ).

4. واجهة التطبيقات

كما تتيح المشغلات طريقة لجعل التطبيقات تستخدم المكونات المادية بدون معرفة طريقة عمل ذلك المكون المادي فإن واجهة تطبيقات البرامج أو ما يسمى بـ (Application program interface "APIs") تتيح للمبرمجين استخدام برامج نظام التشغيل بدون الحاجة إلى تتبع تفاصيل العملية في المعالج.

مثال: مبرمج يريد كتابة تطبيق لتخزين بيانات من جهاز قياس على ملف "المستخدم هو الذي يحدد اسم ملف"، يوفر نظام التشغيل برنامج  function تسمى بـ Make File لإنشاء الملفات.

عند كتابة البرنامج على المبرمج إدراج سطر يشبه: MakeFile [1, %Name, 2 

هذا الملف يخبر الأمر نظام التشغيل بإنشاء ملف يتم اختيار اسمه من طرف المستخدم (Name%).

ما وظيفة نظام التشغيل في هذه الحالة؟
  1. ‎يرسل استعلام إلى القرص للحصول على مكان أول مساحة متاحة.
  2. ينشئ في نظام الملفات مكان البداية و النهاية للملف (اسم الملف، نوع الملف، إذا كان الملف أرشيف أو لا، أسماء المستخدمين الذين لديهم الصلاحية لفتح الملف، تاريخ و وقت إنشاء الملف).
  3. ‎يكتب معلومات في بداية الملف لمعرفة الملف و يحدد نوع الوصول الممكنة و إدراج معلومات أخرى لربط الملف بتطبيق معين.

كل ما فعله المبرمج هو كتابة كود لـ API وأعطى ثقته لنظام التشغيل لتنفيذ الباقي.

# شاهد أيضاً:






حجم الخط
+
16
-
تباعد السطور
+
2
-