English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
التكنولوجيا الأساسية لدعم Java NIO وNodeJS
众所周知، في إصدارات Java الأخيرة، تم إضافة بعض الدعم لنموذج Java NIO وNIO2، وبينما يُعد من أبرز مزايا سلسلة التقنيات NodeJS هو أداء I/O العالي، فإننا اليوم نود مناقشة التكنولوجيا الأساسية التي تدعم هذه التقنيات.
قبل البدء، يجب أن نطرح سؤالًا واحدًا:
لماذا لم يظهر NodeJS وJava NIO2 في وقت أبكر؟
الإجابة:أعتقد أن التكنولوجيا الداعمة الأساسية لم تكن ناضجة بعد.
إذن، ماذا يعني التكنولوجيا الأساسية؟ صحيح، أعتقد أن الكثير من الناس قد خمّنوا، وهي تكنولوجيا النظام التشغيل. يقترح هذا المقال كلا من Java NIO2 وNodeJS كتقنيات مستخدمة أو تقنيات الطبقة التطبيقية، وتلك التقنيات الطبقية تعمل على النظام التشغيل، وفي الوقت نفسه، مع تقدم النظام التشغيل، أصبحت نماذج البرمجة التي يمكن دعمها أكثر تنوعًا. يمكن القول بأن هاتين التكنولوجيتين قد تطورت كرد على الفوائد التي يقدمها تطور النظام التشغيل. عادةً، التكنولوجيا التي تستفيد أولاً من هذه الفوائد هي C\C++، لأن أحدث التطورات التي يقدمها النظام التشغيل هي استدعاءات النظام، ويعد C\C++ أكثر مرونة في استخدام هذه الاستدعاءات، لكنه أيضًا أكثر تعقيدًا. يجب على المنصات الأخرى الحصول على نفس الأداء أن تطور وتقوم بتغليف باستمرار، لجعل المستخدمين يستفيدون من هذه الفوائد، وإذا توقفت المنصة عن التحديث، فإن ذلك يعني أن المنصة قد بدأت في الانحسار. كلما كان التغليف أكثر سهولة، كان ذلك أكثر ودية للمستخدمين، مما يعني أن هناك المزيد من المستخدمين. على الرغم من أن الكثير من الناس يمكنهم كتابة أكواد تعتمد على هذه المنصات بسرعة، إلا أنهم غالبًا ما لا يفهمون جوهر هذه التقنيات، لأن الأساس هو عدم فهم الحوافز والأسس لهذه التقنيات. نحن نناقش هذه التقنيات فيما يلي هي تقنيات أساسية مرتبطة بهاتين التقنيتين.
في أي تصميم نظام تشغيل، هذه الخمس نماذج I/O هي ضرورية لا غنى عنها.
1. I/O المُحظور
2. I/O غير المُحظور
3. multiplexing I/O (select, poll وepoll)
4. I/O المدفوع بالأشارات (SIGIO)
5. I/O المسبق غير المتزامن (وظائف POSIX aio_)
1. I/O المُحظور
如图所示، من مزايا هذا نموذج I/O هو بساطة البرمجة، وهو أيضًا واحد من أوائل نماذج I/O التي يدعمها النظام التشغيل، لكن عيبه هو أن الاستدعاءات النظامية تعرقل تنفيذ ديناميكي لسلسلة البرمجة المستخدم، مما يؤدي إلى إهدار وقت المعالج CPU، وتبطيء كفاءة I/O.
2. I/O غير المُحظور
如图所示، هذا نموذج I/O المعدل هو I/O غير المُحظور، لكنه يتطلب poll طويل، مما يؤدي إلى إهدار دورات معالجة المعالج CPU.
3. multiplexing I/O (select, poll وepoll)
كما يظهر في الشكل، هذا نموذج IO هو أكثر نموذج IO استقرارًا يقدمه نظام التشغيل، حيث تقوم معظم التطبيقات الشائعة ببناء هذه النماذج، مثل NodeJS، ولكن هذه المنصات تضيف غالبًا طبقة غطاء لتقديم دعم مباشر لأIO المسبق غير المتزامن.
4. I/O المدفوع بالأشارات (SIGIO)
كما يظهر في الشكل، يُذكر أن هذا نموذج IO لا يملك ميزة أداء مقارنة بالنموذج 3، كما أن دعم النظام يُعتبر غير مستقر، لذا يتم استخدامه بشكل نادر من قبل المطورين.
5. I/O المسبق غير المتزامن (وظائف POSIX aio_)
كما يظهر في الشكل، هذا نموذج IO هو AIO الأمثل، ونموذج البرمجة هو الأبسط، ولكن يوجد قليل من نظام التشغيل الذي يدعم هذا النموذج، حيث تشير المعلومات عبر الإنترنت إلى أن Linux يعمل على هذا الجانب، وسيتمكن النظام التشغيل من تحقيق تقدم في هذا الجانب، حيث سيكون من الضروري تبسيط إطارات البرمجة، والمنصات، ونموذج البرمجة.
بالرغم من أن هذا النموذج نادرًا ما يتم دعمه من قبل نظام التشغيل، ولكن هذا لا يعني أن لا يوجد نموذج AIO الآن، حيث قام العديد من الإطارات العمل بذلك العمل، حيث تم استنساخ AIO في مستوى المستخدم، مما يسمح للمستخدمين بتخصيص المزيد من الاهتمام للكود ال逻辑ي الخاص بالعمليات.
6. التنسيق والتنسيق المسبق، الحجب والتحرر
التنسيق والتنسيق المسبق هو في سياق تفاعل تطبيق النواة. العودة بعد قراءة البيانات هو التنسيق، والعودة فورًا هي التنسيق المسبق. الحجب والتحرر هو في سياق عملية أو نواة، حيث ينتظر الحجب قراءة أو كتابة النواة حتى تنتهي، بينما يرجع التحرر فورًا بوضع حالة.
هذا هو نهاية محتوى هذا المقال، نأمل أن يكون قد ساعدكم في التعلم، ونأمل أن تدعموا تعليمات النطق بشكل أكبر.
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع المالك الأصلي بحقوق الملكية، تم جمع المحتوى من قبل المستخدمين عبر الإنترنت الذين قدموه بشكل تلقائي، ويتمتع هذا الموقع بعدم امتلاك حقوق الملكية، ولا يتم التعديل بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية مرتبطة. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فلا تتردد في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' ب '@'). يرجى تقديم الأدلة ذات الصلة، وسيتم حذف المحتوى المزعوم فور التحقق منه.