Bagikan melalui


Contoh Permintaan I/O - Gambaran Umum

Gambar berikut menunjukkan gambaran umum tentang apa yang terjadi ketika subsistem membuka objek file yang mewakili file data atas nama aplikasi.

diagram yang mengilustrasikan pembukaan objek file.

  1. Subsistem memanggil layanan sistem I/O untuk membuka file bernama.

  2. Manajer I/O memanggil manajer objek untuk mencari file dengan nama tertentu dan untuk membantu menyelesaikan setiap tautan simbolis pada objek file. Ini juga memanggil monitor referensi keamanan untuk memeriksa apakah subsistem memiliki hak akses yang benar untuk membuka objek file tersebut.

  3. Jika volume belum dipasang, manajer I/O menangguhkan permintaan terbuka untuk sementara dan memanggil satu atau beberapa sistem file sampai salah satunya mengenali objek file sebagai sesuatu yang telah disimpan di salah satu perangkat penyimpanan massal yang digunakan sistem file. Ketika sistem file telah memasang volume, manajer I/O melanjutkan permintaan.

  4. Manajer I/O mengalokasikan memori untuk dan menginisialisasi IRP untuk permintaan terbuka. Untuk pengemudi, membuka setara dengan permintaan untuk "membuat".

  5. Manajer I/O memanggil driver sistem file dan meneruskan IRP kepadanya. Driver sistem file mengakses lokasi tumpukan I/O-nya di IRP untuk menentukan operasi apa yang harus dilakukannya, memeriksa parameter, menentukan apakah file yang diminta berada dalam cache, dan, jika tidak, mengatur lokasi tumpukan I/O driver berikutnya yang lebih rendah di IRP.

  6. Kedua driver memproses IRP dan menyelesaikan operasi I/O yang diminta, memanggil rutinitas dukungan mode kernel yang disediakan oleh manajer I/O dan oleh komponen sistem lainnya (tidak ditunjukkan pada angka sebelumnya).

  7. Driver mengembalikan IRP ke manajer I/O dengan blok status I/O yang ditetapkan dalam IRP untuk menunjukkan apakah operasi yang diminta berhasil atau mengapa gagal.

  8. Manajer I/O mendapatkan status I/O dari IRP, sehingga dapat mengembalikan informasi status melalui subsistem yang dilindungi ke pemanggil asli.

  9. Manajer I/O membebaskan IRP yang telah selesai.

  10. Manajer I/O mengembalikan handle untuk objek file ke subsistem jika operasi buka berhasil. Jika ada kesalahan, maka akan mengembalikan status yang sesuai ke subsistem.

Setelah subsistem berhasil membuka objek file yang mewakili file data, perangkat, atau volume, subsistem menggunakan handel yang dikembalikan untuk mengidentifikasi objek file dalam permintaan berikutnya untuk operasi I/O perangkat (biasanya membaca, menulis, atau permintaan kontrol I/O perangkat). Untuk membuat permintaan seperti itu, subsistem memanggil layanan sistem I/O. Manajer I/O merutekan permintaan ini sebagai IRP yang mengirimkan ke driver yang sesuai.