Bagikan melalui


Mendukung I/O Asinkron

Manajer I/O menyediakan dukungan I/O asinkron sehingga pemrakarsa permintaan I/O (biasanya aplikasi di mode pengguna tetapi kadang-kadang driver lain) dapat terus berjalan, daripada menunggu permintaan I/O-nya selesai. Dukungan I/O asinkron meningkatkan throughput sistem keseluruhan dan performa kode apa pun yang membuat permintaan I/O.

Dengan dukungan I/O asinkron, driver mode kernel tidak selalu memproses permintaan I/O dalam urutan yang sama di mana mereka dikirim ke manajer I/O. Manajer I/O, atau driver tingkat lebih tinggi, dapat menyusun ulang permintaan I/O saat diterima. Driver dapat membagi permintaan transfer data besar menjadi permintaan transfer yang lebih kecil. Selain itu, driver dapat menggabungkan pemrosesan permintaan I/O, terutama dalam platform multiprosesor simetris, sebagaimana disebutkan dalam Multiprocessor-Safe.

Selain itu, pemrosesan permintaan I/O individu oleh driver mode kernel belum tentu diserialisasikan. Artinya, driver tidak selalu memproses setiap IRP hingga selesai sebelum mulai memproses permintaan I/O masuk berikutnya.

Ketika driver menerima IRP, driver merespons dengan melakukan pemrosesan khusus IRP sebanyak mungkin. Jika driver mendukung pemrosesan IRP asinkron, driver dapat mengirim IRP ke driver berikutnya, jika perlu, dan mulai memproses IRP berikutnya tanpa menunggu yang pertama selesai. Driver dapat mendaftarkan "rutinitas penyelesaian," yang dipanggil manajer I/O ketika driver lain telah selesai memproses IRP. Driver memberikan nilai status dalam blok status I/O IRP, yang dapat diakses driver lain untuk menentukan status permintaan I/O.

Driver dapat mempertahankan informasi status tentang operasi I/O mereka saat ini di bagian khusus dari objek perangkat mereka, yang disebut ekstensi perangkat.

Untuk informasi selengkapnya, lihat Menangani IRP dan Teknik Input/Output.