windows - I/O ميناء إنجاز مزايا وعيوب



network-programming io (3)

لماذا يقول كثير من الناس I / O ميناء الانتهاء هو سريع ونموذج لطيف؟
ما هي مزايا وعيوب ميناء الإنجاز / الإخراج؟

أريد أن أعرف بعض النقاط التي تجعل أسرع إوكب من نموذج آخر.

إذا كان يمكنك تفسير ذلك مقارنة نماذج أخرى (حدد، إيبول، التقليدية موضوع متعددة / عملية)، سيكون من الأفضل.

https://src-bin.com


Answer #1

باستخدام إوكب، يمكننا التغلب على مشكلة "ترابط واحد لكل عميل". ومن المعروف أن الأداء ينخفض ​​بشكل كبير إذا لم يتم تشغيل البرنامج على آلة حقيقية متعددة المعالجات. المواضيع هي موارد النظام التي ليست غير محدودة ولا رخيصة.

يوفر إوكب وسيلة لديك عدد قليل (I / O عامل) المواضيع التعامل مع متعددة العملاء الإدخال / الإخراج "إلى حد ما". يتم تعليق المواضيع، ولا تستخدم دورات وحدة المعالجة المركزية حتى يكون هناك شيء للقيام به.

كما يمكنك قراءة بعض المعلومات في هذا الكتاب الجميل http://www.amazon.com/Windows-System-Programming-Johnson-Hart/dp/0321256190


Answer #2

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

عادة ما يمكن أن تنتظر سلسلة ترابط واحد على عدد كبير من إكمال I / O في حين تناول القليل جدا من الموارد عندما I / O لم عاد.

نماذج غير المتزامنة الأخرى التي لا تقوم على منافذ إتمام الإدخال / الإخراج عادة ما تستخدم تجمع ترابط ويتوقف الانتظار مؤشرات الإدخال / الإخراج، وبالتالي استخدام المزيد من موارد النظام.

الجانب الآخر هو أن منافذ إنجاز I / O تتطلب عادة دعم الأجهزة، وبالتالي فهي لا تنطبق بشكل عام على جميع السيناريوهات غير المتزامنة.


Answer #3

وفقا لتجربتي عيوب I / O ميناء الانتهاء يمكن أن يكون شاشة زرقاء من الموت مع بعض المحولات التسلسلية رس-232 بسبب البق في السائقين.