Sistem Operasi - Perangkat Keras I / O
Salah satu tugas penting Sistem Operasi adalah mengelola berbagai perangkat I / O termasuk mouse, keyboard, panel sentuh, drive disk, adaptor layar, perangkat USB, layar yang dipetakan bit, LED, Konverter analog-ke-digital, On / sakelar mati, koneksi jaringan, audio I / O, printer dll.
Sistem I / O diperlukan untuk mengambil permintaan I / O aplikasi dan mengirimkannya ke perangkat fisik, kemudian mengambil respons apa pun yang kembali dari perangkat dan mengirimkannya ke aplikasi. Perangkat I / O dapat dibagi menjadi dua kategori -
Block devices- Perangkat blok adalah perangkat yang berkomunikasi dengan pengemudi dengan mengirimkan seluruh blok data. Misalnya, Hard disk, kamera USB, Disk-On-Key, dll.
Character devices- Perangkat karakter adalah perangkat yang berkomunikasi dengan pengemudi dengan mengirim dan menerima karakter tunggal (byte, oktet). Misalnya, port serial, port paralel, kartu suara, dll
Pengontrol Perangkat
Driver perangkat adalah modul perangkat lunak yang dapat dipasang ke OS untuk menangani perangkat tertentu. Sistem Operasi membutuhkan bantuan dari driver perangkat untuk menangani semua perangkat I / O.
Pengontrol Perangkat berfungsi seperti antarmuka antara perangkat dan driver perangkat. Unit I / O (Keyboard, mouse, printer, dll.) Biasanya terdiri dari komponen mekanis dan komponen elektronik di mana komponen elektronik disebut pengontrol perangkat.
Selalu ada pengontrol perangkat dan driver perangkat untuk setiap perangkat untuk berkomunikasi dengan Sistem Operasi. Pengontrol perangkat mungkin dapat menangani beberapa perangkat. Sebagai antarmuka, tugas utamanya adalah mengubah aliran bit serial menjadi blok byte, melakukan koreksi kesalahan seperlunya.
Setiap perangkat yang terhubung ke komputer dihubungkan dengan steker dan soket, dan soket terhubung ke pengontrol perangkat. Berikut adalah model untuk menghubungkan CPU, memori, pengontrol, dan perangkat I / O di mana CPU dan pengontrol perangkat semuanya menggunakan bus umum untuk komunikasi.
I / O sinkron vs asinkron
Synchronous I/O - Dalam skema ini, eksekusi CPU menunggu sementara I / O berlanjut
Asynchronous I/O - I / O berjalan bersamaan dengan eksekusi CPU
Komunikasi ke Perangkat I / O
CPU harus memiliki cara untuk menyampaikan informasi ke dan dari perangkat I / O. Ada tiga pendekatan yang tersedia untuk berkomunikasi dengan CPU dan Perangkat.
- I / O Instruksi Khusus
- I / O yang dipetakan memori
- Akses memori langsung (DMA)
I / O Instruksi Khusus
Ini menggunakan instruksi CPU yang secara khusus dibuat untuk mengontrol perangkat I / O. Instruksi ini biasanya memungkinkan data dikirim ke perangkat I / O atau dibaca dari perangkat I / O.
I / O yang dipetakan memori
Saat menggunakan I / O yang dipetakan memori, ruang alamat yang sama digunakan bersama oleh memori dan perangkat I / O. Perangkat terhubung langsung ke lokasi memori utama tertentu sehingga perangkat I / O dapat mentransfer blok data ke / dari memori tanpa melalui CPU.
Saat menggunakan IO yang dipetakan memori, OS mengalokasikan buffer dalam memori dan memberi tahu perangkat I / O untuk menggunakan buffer tersebut guna mengirim data ke CPU. Perangkat I / O beroperasi secara tidak sinkron dengan CPU, mengganggu CPU setelah selesai.
Keuntungan dari metode ini adalah bahwa setiap instruksi yang dapat mengakses memori dapat digunakan untuk memanipulasi perangkat I / O. Memory mapped IO digunakan untuk sebagian besar perangkat I / O berkecepatan tinggi seperti disk, antarmuka komunikasi.
Akses Memori Langsung (DMA)
Perangkat lambat seperti keyboard akan menghasilkan interupsi ke CPU utama setelah setiap byte ditransfer. Jika perangkat cepat seperti disk menghasilkan interupsi untuk setiap byte, sistem operasi akan menghabiskan sebagian besar waktunya menangani interupsi ini. Jadi komputer biasa menggunakan perangkat keras akses memori langsung (DMA) untuk mengurangi overhead ini.
Direct Memory Access (DMA) berarti CPU memberikan otoritas modul I / O untuk membaca dari atau menulis ke memori tanpa keterlibatan. Modul DMA sendiri mengontrol pertukaran data antara memori utama dan perangkat I / O. CPU hanya terlibat di awal dan akhir transfer dan hanya terputus setelah seluruh blok ditransfer.
Direct Memory Access memerlukan perangkat keras khusus yang disebut pengontrol DMA (DMAC) yang mengelola transfer data dan mengatur akses ke bus sistem. Pengontrol diprogram dengan penunjuk sumber dan tujuan (tempat membaca / menulis data), penghitung untuk melacak jumlah byte yang ditransfer, dan pengaturan, yang mencakup I / O dan jenis memori, interupsi dan status untuk siklus CPU.
Sistem operasi menggunakan perangkat keras DMA sebagai berikut -
Langkah | Deskripsi |
---|---|
1 | Driver perangkat diperintahkan untuk mentransfer data disk ke alamat buffer X. |
2 | Driver perangkat kemudian menginstruksikan pengontrol disk untuk mentransfer data ke buffer. |
3 | Pengontrol disk memulai transfer DMA. |
4 | Pengontrol disk mengirimkan setiap byte ke pengontrol DMA. |
5 | Pengontrol DMA mentransfer byte ke buffer, meningkatkan alamat memori, mengurangi penghitung C hingga C menjadi nol. |
6 | Ketika C menjadi nol, DMA menginterupsi CPU untuk menyelesaikan transfer sinyal. |
Polling vs Interupsi I / O
Komputer harus memiliki cara untuk mendeteksi kedatangan semua jenis input. Ada dua cara agar hal ini terjadi, yang dikenal sebagaipolling dan interrupts. Kedua teknik ini memungkinkan prosesor untuk menangani peristiwa yang dapat terjadi kapan saja dan yang tidak terkait dengan proses yang sedang berjalan.
Polling I / O
Polling adalah cara termudah bagi perangkat I / O untuk berkomunikasi dengan prosesor. Proses pemeriksaan status perangkat secara berkala untuk melihat apakah sudah waktunya untuk operasi I / O berikutnya, disebut polling. Perangkat I / O hanya menempatkan informasi dalam daftar Status, dan prosesor harus datang dan mendapatkan informasi tersebut.
Seringkali, perangkat tidak memerlukan perhatian dan ketika seseorang melakukannya harus menunggu sampai diinterogasi berikutnya oleh program polling. Ini adalah metode yang tidak efisien dan banyak waktu prosesor yang terbuang percuma untuk jajak pendapat yang tidak perlu.
Bandingkan metode ini dengan seorang guru yang terus bertanya kepada setiap siswa di kelas, satu demi satu, jika mereka membutuhkan bantuan. Jelas metode yang lebih efisien bagi siswa untuk memberi tahu guru kapan pun mereka membutuhkan bantuan.
Menginterupsi I / O
Skema alternatif untuk menangani I / O adalah metode yang digerakkan oleh interupsi. Interupsi adalah sinyal ke mikroprosesor dari perangkat yang membutuhkan perhatian.
Pengontrol perangkat menempatkan sinyal interupsi pada bus ketika membutuhkan perhatian CPU ketika CPU menerima interupsi, Ini menyimpan statusnya saat ini dan memanggil penangan interupsi yang sesuai menggunakan vektor interupsi (alamat rutinitas OS untuk menangani berbagai peristiwa). Ketika perangkat yang mengganggu telah ditangani, CPU melanjutkan tugas aslinya seolah-olah tidak pernah terputus.