P01NT
0x0 01/07

البنية الأساسية لأنظمة التشغيل

مدخل السلسلة: ما نظام التشغيل عبر تعريفات كامبريدج وISO وMerriam-Webster، ومهامه الأساسية وفق Tanenbaum، ثم بنية Von Neumann من المعالج ووحدتَيه إلى الذاكرة الرئيسية والإدخال/الإخراج والناقل، ودورة التنفيذ بخطواتها الخمس.

· 6 دقائق قراءة · 1145 كلمة
المحتويات

بسم الله الرحمن الرحيم.

السلام عليكم ورحمة الله وبركاته. أريد اليوم أن أحدثكم عن البنية الهيكلية لأنظمة التشغيل بشكل عام، وسأحاول تغطية النقاط التالية:

  1. البنية المعمارية الخاصة بـ Von Neumann.
  2. المهام الأساسية لنظام التشغيل (OS Central Tasks).

لنبدأ على بركة الله.

ما هو نظام التشغيل؟ (What Is an Operating System?)

نظام التشغيل بين المستخدم والعتاد

كل شخص منا في هذا العصر الغني بالحداثة والتقنية قد تعامل مع نظام تشغيل بشكل أو بآخر، وكل منا يسمع المصطلح «أنظمة التشغيل (Operating Systems) أو OS». ولكن!

ما هو نظام التشغيل في الواقع؟ كيف يعمل؟ وكيف وصلنا إلى أنظمة التشغيل الحالية؟

في الواقع، إذا سألت أحد العوام — أو حتى بعض الطلاب التقنيين — عن معنى «نظام التشغيل» فقد لا يتمكن من إعطائك وصفاً توضيحياً، بل إن بعضهم قد يكتفي بتعداد أمثلة بعينها مثل Windows وLinux وغيرهما. لذلك لنبدأ أولاً بالتعريف، وقبل أن أقدم وصفاً من عندي، لنلقي نظرة على كيف عرفت المؤسسات الأكاديمية والدولية نظام التشغيل.

في عام 2009 ورد في معجم كامبريدج (Cambridge Dictionary) تعريف نظام التشغيل بأنه:

مجموعة البرامج التي يستخدمها الكمبيوتر لتشغيل وتخزين الملفات والتواصل مع الأجهزة وأجهزة الكمبيوتر الأخرى.

وتطور التعريف في عام 2011 في المعجم نفسه إلى:

برنامج يتحكم في طريقة عمل الكمبيوتر، ويسمح للتطبيقات (برامج لأغراض معينة) بالعمل عليه.

ثم في عام 2013 ورد تعريف آخر مفاده:

مجموعة من البرامج تتحكم في طريقة عمل نظام الكمبيوتر، وخاصة كيفية استخدام ذاكرته وكيفية عمل البرامج المختلفة معاً.

كما أصدرت المنظمة الدولية للتوحيد القياسي (ISO) تعريفاً لنظام التشغيل عام 2015 حيث قالت:

البرمجيات التي تتحكم في تنفيذ البرامج، والتي قد توفر خدمات مثل تخصيص الموارد، والجدولة، والتحكم في المدخلات والمخرجات، وإدارة البيانات.

وستجد أيضاً أن موسوعة Merriam-Webster أوردت تعريفها الخاص حيث قالت:

برنامج يتحكم في تشغيل الكمبيوتر ويوجه معالجة البرامج (مثل تخصيص مساحة تخزين في الذاكرة والتحكم في وظائف الإدخال والإخراج).

من خلال كل هذه التعريفات يمكنك أن تجد ما اتفقوا عليه؛ ستلاحظ كلمات مفتاحية (Keywords) مشتركة تتيح لك تحديد المهام الأساسية لنظام التشغيل، ونستخلص منها التالي:

أن نظام التشغيل يمثل للكمبيوتر مثَل الجهاز الدوري في جسم الإنسان: فإذا نظرت إلى الجسد تجد الجهاز الدوري يربط جميع الأطراف والأركان وخبايا الجسم؛ فيصل القلب والرئتين والكبد والطحال والمخ وكل الأعضاء مع بعضها، ويتم نقل الغذاء وإدارة موارد الجسم من خلاله. والمثل ينطبق على نظام التشغيل فهو الجهاز الدوري للحاسب:

تشبيه الجهاز الدوري شكل (1): نظام التشغيل بمثابة الجهاز الدوري للحاسب

المهام الأساسية لنظام التشغيل (OS Central Tasks)

نستنتج من هذه التعريفات أيضاً الوظائف الأساسية لنظام التشغيل، مثل:

  • تنظيم إدارة البرامج (Organizing Program Management).
  • توفير واجهة مستخدم (User Interface).
  • إدارة الموارد (Managing Resources).
  • مراقبة النظام (Monitoring the System).
  • ضمان أمان النظام (Ensuring System Security) — وظيفة صارت شبه كليشيه، ولكنها صحيحة.

ويقول العالم Andrew S. Tanenbaum في كتابه الشهير Modern Operating Systems (Tanenbaum & Bos, 2015):

“The central tasks of an operating system are ’to provide user programs with a better, simpler, cleaner, model of the computer and to handle managing [hardware] resources’.” (p. 28)

أي أن المهام الأساسية لنظام التشغيل هي: «تزويد برامج المستخدم بنموذج أفضل وأبسط وأنظف للكمبيوتر، والتعامل مع إدارة موارد العتاد».

جدير بالذكر أن هذا العالم أستاذ علوم حاسوب في جامعة فريه (Vrije Universiteit) بأمستردام بهولندا، وقد اشتهر بنظام التشغيل MINIX — وهو نظام حر ومفتوح المصدر موجه للأغراض التعليمية — وهو مؤلف لعدة كتب تعد مراجع أساسية في مجالها (طبقاً لموسوعة ويكيبيديا):

Andrew S. Tanenbaum شكل (2): Andrew S. Tanenbaum

والآن بعد أن وضعنا هذه التعاريف والأوصاف في الاعتبار، لننتقل خطوة إلى الأمام ونتكلم عن البنية الأساسية لأنظمة الكمبيوتر من الجانب المادي (Hardware) — وهو جانب لا أُبرع فيه، ولكن «مِكْرَه أخاك لا بطل».

الهيكل الأساسي لأنظمة الكمبيوتر (The Basic Structure of Computer Systems)

إذا أردنا أن نتحدث عن هذا الهيكل فيجدر بنا أن نبدأ بأهم قطعة عتاد في الحاسب ألا وهي وحدة المعالجة المركزية CPU (Central Processing Unit).

المعالج هو العقل المفكر لجهاز الحاسب، شأنه شأن المخ في رأس الإنسان.

المعالج يعد آلة منفصلة بحد ذاتها لما فيه من تعقيدات؛ فهو آلة داخل آلة «Machine Inside a Machine». ومعلومة لك عزيز القارئ: الخبراء التقنيون عادة ما يطلقون لفظ Machine على أي جهاز حاسب حتى لو كانت الأجهزة الحديثة تفتقر أحياناً إلى جانب ميكانيكي، ويُطلق الأمر نفسه على أنظمة التشغيل الافتراضية — نتحدث هنا عن ما يسمى بالـ Virtualization.

بنية فون نيومان (Von Neumann Architecture)

ما يفعله المعالج باختصار أنه يجلب التعليمات (Fetch) من الذاكرة (Memory)، ثم يفك تشفيرها (Decode)، ثم ينفذها (Execute)، ثم يعيد الدورة كاملة بشكل مستمر طوال الوقت حتى يتم إطفاء الجهاز. هذه الدورة نسميها «دورة فون نيومان» (Von Neumann Cycle)، ولاحقاً اعتُمدت كبنية هيكلية أساسية للحواسيب وسُميت على اسم صاحبها Von Neumann Architecture.

وفون نيومان عالم هنغاري أمريكي. وحتى اليوم جميع الحواسيب — مكتبية كانت أم لوحية أم هواتف ذكية — تستخدم البنية الهيكلية نفسها (Von Neumann Architecture)، إلا أنه جرى تطويرها بالطبع مع الوقت، ولكن هذا هو الأساس:

بنية فون نيومان شكل (3): بنية فون نيومان

المعالج (CPU)

المعالج هو العقل المفكر للحاسب الآلي والقلب النابض لهذه البنية. يتكون من وحدتين رئيسيتين: الأولى وحدة التحكم Control Unit، والثانية وحدة المنطق الحسابية Arithmetic Logic Unit.

• وحدة التحكم (Control Unit): هي الوحدة المسؤولة عن تنفيذ البرامج — أي عمل Execution — وكذلك تحميل التعليمات Instructions من الذاكرة الرئيسية (Main Memory) إلى المعالج. كما تقوم بفك هذه التعليمات (Decode) وتنسق تنفيذها.

• وحدة المنطق الحسابية (ALU): وحدة تتولى العمليات الحسابية والمنطقية — كجمع الأرقام مثلاً — ومن ثم تخزين النتائج في المسجلات Registers داخل الـ CPU دون الحاجة للرجوع إلى الذاكرة الرئيسية. بمعنى آخر: العملية تكون سريعة جداً لأنها تتخطى مرحلة الذاكرة الرئيسية تماماً.

الذاكرة الرئيسية (Main Memory)

خلايا الذاكرة شكل (4): خلايا الذاكرة الرئيسية وعناوينها

الغرض الأساسي من الذاكرة الرئيسية هو الوصول العشوائي، ولذلك سميت بـ RAM أي Random Access Memory. بمعنى آخر: يستطيع المعالج الوصول إلى أي مكان فيها بشكل لحظي — أي أنه يصل إلى أي معلومة في أي مكان وفي أي لحظة — ولهذا تُحمَّل عليه البرامج أثناء التشغيل لسرعته.

جدير بالذكر أن الذاكرة مكونة من خلايا Cells كما في الصورة، وكل خلية تحمل قيمة واحدة: 0 أو 1، ولكل خلية عنوان يميز موقعها داخل الذاكرة.

الإدخال والإخراج (Input/Output)

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

نظام الاتصالات (Communication System)

هو النظام الذي يربط مكونات بنية فون نيومان جميعاً، وذلك عن طريق الـ Bus.

ملخص دورة التنفيذ

والآن بعد أن انتهينا من شرح بنية فون نيومان، سنلخص هذه البنية في أسطر معدودة:

  1. Fetch Instructions: يقوم المعالج بجلب التعليمات من الذاكرة الرئيسية. لهذا الغرض يرسل محتوى عداد البرنامج (Program Counter – PC) عبر خط العناوين (Address Bus) — وهو الذي يحمل عنوان التعليمة التالية المراد جلبها — ثم تعيد الذاكرة التعليمة المطلوبة عبر خط البيانات (Data Bus).
  2. Decode Instructions: يفسر المعالج التعليمة المجلوبة لتحديد نوع العملية المطلوبة والمعاملات التي ستنطبق عليها.
  3. Fetch Operand: يحمّل المعالج المعاملات التي ستطبق عليها التعليمة.
  4. Execute Instruction: ينفذ المعالج العملية الحسابية أو المنطقية، ثم يتقدم إلى التعليمة التالية باستخدام عداد البرنامج PC.
  5. Store Result: بعد إنهاء العملية تُخزن النتائج إما في الذاكرة الرئيسية أو في المسجلات Registers بشكل مؤقت.

إن أحسنت فمن الله، وإن أسأت فمن نفسي والشيطان.

اذكرونا من صالح الدعاء.