التكنولوجيا الأساسية التي تدعم Java Nio و Nodejs
كما نعلم جميعًا ، تمت إضافة بعض الدعم لـ Java Nio و Nio2 إلى الإصدارات الحديثة من Java. في الوقت نفسه ، فإن واحدة من أكثر المزايا التي تم الإشادة بها في مكدس تقنية NodeJS هي IO عالية الأداء. لذا فإن الموضوع الذي سنناقشه اليوم هو التقنيات الأساسية التي تدعم هذه التقنيات.
سؤال واحد لطرحه قبل البدء هو:
لماذا لم تظهر Nodejs و Java Nio2 في وقت سابق؟
الإجابة: أنا شخصياً أعتقد أن تكنولوجيا الدعم الأساسية ليست ناضجة بعد.
إذن ، ماذا تعني التكنولوجيا الأساسية؟ نعم ، أعتقد أن الكثير من الناس قد خمنوا أنها تقنية نظام التشغيل. المفهومان المقترحان في هذه المقالة ، Java Nio2 و Nodejs ، هما جميع تقنيات الدولة أو تقنيات طبقة التطبيق ، وتشغيل تقنيات طبقة التطبيق هذه على OS. في الوقت نفسه ، مع تقدم نظام التشغيل ، فإن نماذج البرمجة التي يمكن دعمها هي أيضًا أكثر ثراءً. يمكن القول أن هاتين التقنيتين تطورت تمامًا لتطبيق أرباح الأسهم التي تقدمها تقدم نظام التشغيل. بشكل عام ، يجب أن تكون التكنولوجيا التي تتمتع أولاً بهذه المكافأة هي C/C ++ ، لأن معظم أحدث التطورات في نظام التشغيل توفر مكالمات النظام ، كما أن C/C ++ هي الأكثر ملاءمة لتطبيق مكالمات النظام هذه ، ولكنها أيضًا هي الأكثر تعقيدًا. من أجل الحصول على نفس الأداء ، يجب أن تتطور المنصات الأخرى باستمرار وحزمها حتى يتمكن المستخدمون من استخدام هذه الأرباح. بمجرد ركود هذا النظام الأساسي والتحديثات ، فقد حان الوقت لتراجع هذا النظام الأساسي. كلما كان التغليف أكثر ملاءمة ، زاد ودية للمستخدم ، وكلما زاد عدد الأشخاص الذين قد يستخدمونه. على الرغم من أن العديد من الأشخاص يمكنهم كتابة التعليمات البرمجية بسرعة استنادًا إلى هذه المنصات ، إلا أنهم لا يفهمون الجوهر في كثير من الأحيان لأنهم لا يفهمون بشكل أساسي دوافع ومبادئ هذه التقنيات. التقنيات التي نناقشها أدناه هي التقنيات الأساسية المتعلقة بهاتين التقنيتين.
بغض النظر عن تصميم نظام التشغيل ، فإن نماذج IO 5 التالية ضرورية.
1. حظر I/O.
2
3. I/O Multiplexing (SELECT ، استطلاع و EPOLL)
4. محرك الإشارة I/O (Sigio)
5. I/O غير متزامن (وظائف Posix AIO_)
1. حظر I/O.
كما هو موضح في الشكل ، فإن ميزة نموذج IO هذا هو أنه من السهل البرنامج وأيضًا أحد أوائل نماذج IO التي تدعمها OS. العيب هو أن نظام استدعاء النظام يحظر تنفيذ مؤشر الترابط الديناميكي للمستخدمين ، مما يؤدي إلى وقت وحدة المعالجة المركزية المهدرة وكفاءة IO المنخفضة.
2
كما هو موضح في الشكل ، فإن تحسين نموذج IO هذا هو أن IO غير محظور ، ولكنه يتطلب استطلاعًا طويلًا ، والذي يضيع أيضًا دورات ساعة وحدة المعالجة المركزية.
3. I/O Multiplexing (SELECT ، استطلاع و EPOLL)
كما هو موضح في الشكل ، فإن نموذج IO هذا هو نموذج IO الأكثر استقرارًا الذي يوفره OS اليوم. تم تصميم معظم التطبيقات الرئيسية على نموذج IO هذا ، مثل NodeJs. ومع ذلك ، غالبًا ما تضيف هذه المنصات طبقة من التغليف إلى هذا النموذج لدعم AIO مباشرة.
4. محرك الإشارة I/O (Sigio)
كما هو موضح في الشكل ، يسجل البيانات أن نموذج IO هذا ليس له مزايا أداء في نموذج المقارنة 3 ونادراً ما يستخدمه المصممون بسبب عدم الاستقرار في دعم النظام.
5. I/O غير متزامن (وظائف Posix AIO_)
كما هو موضح في الشكل ، فإن نموذج IO هذا هو AIO الأكثر مثالية ، ونموذج البرمجة هو أيضًا أبسط ، ولكن هناك عدد قليل جدًا من أنظمة التشغيل التي يمكن أن تدعم النموذج تمامًا. تظهر المعلومات عبر الإنترنت أن Linux يبذل جهودًا في هذا الصدد. بمجرد أن يحرز نظام التشغيل تقدمًا في هذا الجانب ، قد لا يزال هناك حاجة إلى تبسيط إطار البرمجة والمنصة ونموذج البرمجة.
على الرغم من أن هذا النموذج نادراً ما يتم دعمه بواسطة OS ، إلا أنه لا يعني أنه لا يوجد نموذج AIO هذا الآن. قامت العديد من الأطر عمل هذا الجانب ومحاكاة AIO في وضع المستخدم ، مما يتيح للمستخدمين إيلاء المزيد من الاهتمام برمز منطق الأعمال.
6.
متزامن وغير متزامن للتفاعل بين التطبيق والنواة. تتم قراءة البيانات ثم العائد متزامن ، والعائد غير متزامن. الحظر وغير الحظر مخصص للعمليات والمواضيع. ينتظر مؤشر ترابط القراءة أو الكتابة في وضع الحظر ، بدلاً من عرقلة وضع ، يقوم مؤشر ترابط القراءة أو الكتابة بإرجاع قيمة الحالة فورًا.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.