دعوات النظام السريعة مقابل البطيئة: كيف توقظ الإشارات دعوات النظام المحجوبة

2025-06-03

تتناول هذه المقالة الفروق الأساسية بين دعوات النظام السريعة والبطيئة في أنظمة التشغيل. تعود دعوات النظام السريعة (مثل `getpid()`) على الفور، بينما قد تُحجب دعوات النظام البطيئة (مثل `read()`) في انتظار أحداث خارجية. تركز المقالة على كيفية مقاطعة الإشارات لدعوات النظام البطيئة المحجوبة، مع توضيح ذلك من خلال أمثلة برمجية حول كيفية التعامل مع أخطاء `EINTR` واستخدام علم `SA_RESTART`. كما تستكشف المقالة الفروق الدقيقة في إدخال/إخراج القرص وكيفية تعامل النواة مع أنواع مختلفة من دعوات النظام، مع مقارنة نقاط القوة والضعف للعديد من نماذج إدخال/إخراج (إدخال/إخراج الحجب، إدخال/إخراج غير الحجب، تعدد إدخال/إخراج، إدخال/إخراج مدفوع بالإشارات، إدخال/إخراج غير متزامن، و I/O Uring).