Dalam sistem komputer manajemen i/o sangat diperlukan karena i/o adalah
sarana user untuk bisa berkomunikasi dengan komputer. Contoh perangkat
i/o seperti keyboard, mice, audio controllers, video controllers, disk
drives, networking ports, dll. Manajemen i/o pun diperlukan agar user
dapat langsung menggunakan perangkat i/o tanpa harus menginialisasi
terlebih dahulu. Oleh karena itu, dalam setiap system operasi selalu
terdapat i/o manager.
I/O
HARDWARE
Piranti I/O (Device)
Piranti-piranti I/O yang terkoneksi ke
komputer memiliki karakterisitk khas sesuai dengan fungsi dan teknologi yang
digunakannya. Piranti I/O dapat berupa komponen elektris maupun mekanik. Contoh
piranti I/O seperti monitor, keyboard, mouse, printer, scanner dan lain-lain.
Device Controller (Adapter)
Supaya piranti-piranti I/O dapat
dikontrol dan berkomunikasi dengan sistem komputer, maka harus ada device
controller yang berfungsi sebagai antarmuka antara piranti I/O dengan sistem
internal komputer. Device controller ini merupakan sirkuit digital yang
berfungsi mengontrol kerja komponen mekanik ataupun elektris lainnya dari
piranti I/O.
Bus I/O
Bus I/O terdiri atas bus data, alamat
dan kontrol yang berfungsi menghubungkan device controller dengan elemen
internal komputer seperti processor dan memory. Selain itu terdapat juga bus
I/O lanjutan atau ekspansi seperti bus parallel, serial, PS2 yang digunakan
untuk berkomunikasi dengan piranti I/O yang bersifat mudah dipindah-pindahkan
dan umumnya terletak di luar kotak komputer.
TEKNIK
I/O
Programmed I/O atau SPooling
·
Processor bertanggung jawab atas pemeriksaan selesainya transfer data yang
dilakukan oleh device controller.
·
Jika data sudah siap, maka processor juga bertanggung jawab atas pemindahan
data dari dan ke memory utama.
Kebanyakan
pemakaian piranti I/O bersifat eksklusif, yaitu hanya dapat melayani satu tugas
pada suatu waktu.
Mekanisme
spooling pada sistem multiprogramming:
·
Setiap proses
akan tetap mengirim data ke piranti I/O sehingga prosesnya sendiri tidak dalam
status blocked. Tapi karena piranti I/O sibuk, maka kernel I/O akan menampung
dulu dan menempatkan dalam antrian.
·
Sekalipun
program aplikasi yang mengirim data output telah selesai, data yang di-spooling
oleh kernel I/O tidak akan hilang.
Interrupt - Driven I/O
·
Procesor hanya bertanggung jawab atas pemindahan data ke atau dari memory
utama (hanya memberikan instruksi transfer data).
·
Device controller yang akan memberikan sinyal interupsi jika data sudah
tersedia untuk disalinkan ke memory utama.
DMA (Direct Memory Access)
·
Processor dibebaskan dari pengontrolan transfer data I/O.
·
Sebagai gantinya, diperlukan tambahan perangkat keras DMA controller yang
memiliki kendali atas bus internal dan jalur ke memory utama.
Pada saat CPU ingin membaca/tulis, CPU
mengirimkan perintah ke modul DMA yang berisi :
1.
Read/Write yang diminta
2.
Alamat perangkat I/O yang dilibatkan
3.
Lokasi awal blok memori data
4.
Jumlah data yang akan ditransfer.
5.
CPU melanjutkan pekerjaan lainnya
6.
DMA controller memindahkan seluruh data, word per word secara langsung
ke/dari memori tanpa harus melalui CPU.
7.
Setelah selesai, DMA controller mengirimkan signal interrupt ke CPU
8.
CPU hanya dilibatkan pada awal dan akhir pemindahan saja.
Konfigurasi pada DMA
1. Konfigurasi I
·
Hanya menggunakan single bus
·
DMA dan modul I/O terpisah
·
Setiap transfer harus mengakses bus 2 kali
2. Konfigurasi II
·
Hanya menggunakan single bus
·
DMA controller dan modul I/O terintegrasi
·
Satu DMA controller dapat mengangani lebih dari 1 modu I/O
·
Setiap transfer hanya perlu mengakses bus satu kali saja
3. Konfigurasi III
·
Digunakan bus I/O secara terpisah
·
Semua modul I/O cukup dilayani dengan sebuah DMA
·
Setiap transfer hanya perlu mengakses bus satu kali saja
I/O
SOFTWARE
Kernel I/O subsystems.
Kernel menyediakan banyak service yang berhubungan dengan
I/O. Pada bagian ini, kita akan mendeskripsikan beberapa service yang
disediakan oleh kernel I/O subsystem, dan kita akan membahas bagaimana caranya
membuat infrastruktur hardware dan device-driver. Service yang akan kita bahas
adalah I/O scheduling, buffering, caching, pooling, reservasi device, error
handling.
Interupsi Handler
Interupsi adalah suatu peristiwa yang
menyebabkan eksekusi satu program ditunda dan program lain yang dieksekusi.
Interrupt adalah sinyal dari peralatan luar dan permintaan dari program untuk
melaksanakan suatu tugas khusus. Jika interrupt terjadi, maka program
dihentikan dahulu untuk menjalankan rutin interrupt .Ketika program
yang sedang berjalan tadi dihentikan, prosesor menyimpan nilai register yang
berisi alamat program ke stack, dan mulai menjalankan rutin interupt.
Jenis Interupt :
·
Interupt Software
Interupt yang disebabkan
oleh software yang sering disebut dengan system call.
·
Interupt Hardware
Interupt yang disebabkan
oleh adanya akses pada perangkat keras seperti penekanan tombol keyboard atau
menggerakkan mouse
Device Driver
Setiap device driver menangani satu tipe
peralatan. Device driver bertugas menerima permintaan abstrak perangkat
lunak device independent di atasnya dan melakukan layanan sesuai permintaan
itu.
Mekanisme kerja device
driver :
·
Menerjemahkan perintah-perintah abstrak menjadi perintah-perintah konkret.
·
Begitu telah dapat ditentukan perintah-perintah yang harus diberikan ke
pengendali, device driver mulai menulis ke register-register pengendali
peralatan.
·
Setelah operasi selesai dilakukan peralatan,device driver memeriksa
kesalahan-kesalahanyang terjadi.
·
Jika semua berjalan baik, device drive rmelewatkan data ke perangkat lunak
device independent.
·
Device melaporkan informasi status sebagai pelaporan kesalahan ke pemanggil.
Pustaka I/O aplikasi
Mengimplementasikan pustaka pengaksesan
I/O atau API (Application Programming Interface) bagi aplikasi untuk melakukan
operasi I/O. Memudahkan user karena pengaksesan ke berbagai macam piranti I/O dengan menggunakan
operasi yang sama.
By: IOS
RITA
NUR’AENI 14523001
RIZQA
AZ ZAHRA 14523018
DEBI
PUSPITA DAMAYANTI 14523021
MIKE
RUSTIA PUTRI 14523054
NURUL
FATIKAH MUCHLIS 14523293
No comments:
Post a Comment