الفرق بين استدعاء النظام واستدعاء الوظيفة

الفرق بين استدعاء النظام واستدعاء الوظيفة
الفرق بين استدعاء النظام واستدعاء الوظيفة

فيديو: الفرق بين استدعاء النظام واستدعاء الوظيفة

فيديو: الفرق بين استدعاء النظام واستدعاء الوظيفة
فيديو: الفرق بين نظام التشغيل linux و windows | مقارنة بين نظام لينكس و ويندوز 2024, يوليو
Anonim

استدعاء النظام مقابل استدعاء الوظيفة

يقوم المعالج النموذجي بتنفيذ التعليمات واحدًا تلو الآخر. ولكن قد تكون هناك مناسبات يضطر فيها المعالج إلى إيقاف التعليمات الحالية وتنفيذ بعض البرامج أو مقاطع الكود الأخرى (الموجودة في مكان آخر). بعد القيام بذلك ، يعود المعالج إلى التنفيذ الطبيعي ويستمر من حيث توقف. ومن هذه المناسبات استدعاء النظام ومكالمة الوظيفة. استدعاء النظام هو استدعاء لإجراء فرعي مضمن في النظام. استدعاء الوظيفة هو استدعاء لروتين فرعي داخل البرنامج نفسه.

ما هي مكالمة النظام؟

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

ما هو استدعاء الوظيفة؟

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

ما هو الفرق بين استدعاء النظام واستدعاء الوظيفة؟

استدعاء النظام هو استدعاء لروتين فرعي مضمن في النظام ، بينما استدعاء الوظيفة هو استدعاء لروتين فرعي داخل البرنامج. على عكس استدعاءات الوظائف ، تُستخدم استدعاءات النظام عندما يحتاج البرنامج إلى أداء بعض المهام التي لا يمتلك امتيازًا لها. استدعاءات النظام هي نقاط دخول إلى نواة نظام التشغيل وليست مرتبطة بالبرنامج (مثل استدعاءات الوظائف). على عكس مكالمات النظام ، تكون مكالمات الوظائف محمولة. الوقت الزائد لاستدعاء النظام هو أكثر من الحمل لاستدعاء الوظيفة لأنه يجب أن يتم الانتقال بين وضع المستخدم ووضع kernel.يتم تنفيذ استدعاءات النظام في مساحة عنوان kernel ، بينما يتم تنفيذ استدعاءات الوظائف في مساحة عنوان المستخدم.

موصى به: