Saturday, June 20, 2015

Manajemen I/O






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