Aplikasi Antarmuka I/O

7.2.1. Aplikasi Antarmuka I/O

Bagian ini akan membahas bagaimana teknik dan struktur antarmuka yang memungkinkan I/O diperlakukan secara seragam. Salah satu contohnya adalah ketika suatu aplikasi ingin membuka data yang ada dalam suatu disk tanpa mengetahui jenis disk apa yang akan diaksesnya. Untuk mempermudah pengaksesan, sistem operasi melakukan standarisasi pengaksesan pada perangkat I/O. Pendekatan inilah yang dinamakan aplikasi antarmuka I/O .

Seperti layaknya permasalahan dari software-engineering yang rumit lainnya, aplikasi antarmuka I/O melibatkan abstraksi, enkapsulasi, dan software layering. Abstraksi dilakukan dengan membagi-bagi detail perangkat-perangkat I/O ke dalam kelas-kelas yang lebih umum. Dengan adanya kelas-kelas yang umum ini, maka akan lebih mudah bagi fungsi-fungsi standar (antarmuka) untuk mengaksesnya. Selanjutnya, keberadaan device driver pada masing-masing peralatan I/O akan berfungsi meng-enkapsulasi perbedaan-perbedaan yang ada dari setiap anggota kelas-kelas yang umum tadi.

Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan perbedaan-perbedaan yang ada pada pengendali perangkat dari subsistem I/O yang terdapat dalam kernel. Dengan demikian, subsistem I/O dapat bersifat mandiri dari perangkat keras. Hal ini sangat menguntungkan dari segi pengembangan perangkat keras, karena tidak perlu menunggu vendor sistem operasi untuk mengeluarkan support code untuk perangkat-perangkat keras baru yang akan dikeluarkan oleh para vendor perangkat keras tersebut.

Gambar 7-3. Struktur Kernel

Gambar ini diadaptasi dari [Silberschatz2002, halaman 467].

Sayangnya untuk manufaktur perangkat keras, masing-masing sistem operasi memiliki standarnya sendiri untuk device driver antarmukanya. Karakteristik dari perangkat-perangkat tersebut sangat bervariasi, beberapa yang dapat membedakannya adalah dari segi:

1. Character-stream atau block: Sebuah stream karakter memindahkan per satu bytes, sedangkan blok memindahkan sekumpulan bytes dalam 1 unit.

2. Sequential atau Random-access: Sebuah perangkat yang sekuensial memindahkan data dalam susunan yang sudah pasti seperti yang ditentukan oleh perangkat, sedangkan pengguna akses random dapat meminta perangkat untuk mencari ke seluruh lokasi penyimpanan data yang tersedia.

3. Synchronous atau asynchronous: perangkat yang synchronous menampilkan data-data transfer dengan waktu reaksi yang dapat diduga, sedangkan perangkat yang asynchronous menampilkan waktu reaksi yang tidak dapat diduga.

4. Sharable atau dedicated: perangkat yang dapat dibagi dapat digunakan secara bersamaan oleh beberapa prosesor atau thread, sedangkan perangkat yang dedicatedtidak dapat.

5. Speed of operation: Rentangan kecepatan perangkat dari beberapa bytes per detik sampai beberapa gigabytes per detik.

6. Read-write, read only, atau write only: Beberapa perangkat memungkinkan baik input-output dua arah, tapi beberapa lainnya hanya menunjang data satu arah.

Pada umumnya sistem operasi juga memiliki sebuah "escape" atau "pintu belakang" yang secara terbuka mengirim perintah yang arbitrary dari sebuah aplikasi ke device driver. Dalam UNIX, ada ioctl() yang memungkinkan aplikasi mengakses seluruh fungsi yang tersedia di device driver tanpa perlu membuat sebuah sistem call yang baru.

ioctl() ini mempunyai tiga argumen, yang pertama adalah sebuah pendeskripsi berkas yang menghubungkan aplikasi ke driver dengan menunjuk perangkat keras yang diatur oleh driver tersebut. Kedua, adalah sebuah integer yang memilih satu perintah yang terimplementasi di dalam driver. Ketiga, sebuah pointer ke struktur data arbitrary di memori, yang memungkinkan aplikasi dan driver berkomunikasi dengan data dan mengendalikan informasi data.

Peralatan Blok dan Karakter

Peralatan blok diharapkan dapat memenuhi kebutuhan akses pada berbagai macam disk drive dan juga peralatan blok lainnya, memenuhi/mengerti perintah baca, tulis dan juga perintah pencarian data pada peralatan yang memiliki sifat random-access.

Keyboard adalah salah satu contoh alat yang dapat mengakses stream-karakter. System call dasar dari antarmuka ini dapat membuat sebuah aplikasi mengerti tentang bagaimana cara untuk mengambil dan menuliskan sebuah karakter. Kemudian pada pengembangan lanjutannya, kita dapat membuat library yang dapat mengakses data/pesan baris demi baris.

Peralatan Jaringan

Karena adanya perbedaan dalam kinerja dan pengalamatan dari jaringan I/O, maka biasanya sistem operasi memiliki antarmuka I/O yang berbeda dari baca, tulis dan pencarian pada disk. Salah satu yang banyak digunakan pada sistem operasi adalah socket interface.

Socket berfungsi untuk menghubungkan komputer ke jaringan. System call pada socket interface dapat memudahkan suatu aplikasi untuk membuat local socket, dan menghubungkannya ke remote socket. Dengan menghubungkan komputer ke socket, maka komunikasi antar komputer dapat dilakukan.

Jam dan Timer

Adanya jam dan timer pada perangkat keras komputer, setidaknya memiliki tiga fungsi, memberi informasi waktu saat ini, memberi informasi lamanya waktu sebuah proses, sebagai trigger untuk suatu operasi pada suatu waktu. Fungsi-fungsi ini sering digunakan oleh sistem operasi. Sayangnya, system call untuk pemanggilan fungsi ini tidak distandarisasi antar sistem operasi.

Perangkat keras yang mengukur waktu dan melakukan operasi trigger dinamakan programmable interval timer. Dia dapat diatur untuk menunggu waktu tertentu dan kemudian melakukan interupsi. Contoh penerapannya ada pada scheduler, dimana dia akan melakukan interupsi yang akan memberhentikan suatu proses pada akhir dari bagian waktunya.

Sistem operasi dapat mendukung lebih dari banyak timer request daripada banyaknya jumlah timer hardware. Dengan kondisi seperti ini, maka kernel atau device driver mengatur daftar dari interupsi dengan urutan yang pertama kali datang akan dilayani terlebih dahulu.

Blocking dan Nonblocking I/O

Ketika suatu aplikasi menggunakan sebuah blocking system call, eksekusi aplikasi itu akan dihentikan sementara lalu dipindahkan ke wait queue. Setelah system call tersebut selesai, aplikasi tersebut dikembalikan ke run queue , sehingga pengeksekusiannya akan dilanjutkan. Physical action dari peralatan I/O biasanya bersifat asynchronous . Akan tetapi, banyak sistem operasi yang bersifat blocking, hal ini terjadi karena blocking application lebih mudah dimengerti dari pada nonblocking application.

Dokumen yang terkait

ANALISIS EFISIENSI PEMASARAN DAN PENDAPATAN USAHATANI ANGGUR (Studi Kasus di Kecamatan Wonoasih Kotamadya Probolinggo)

52 472 17

Studi Kualitas Air Sungai Konto Kabupaten Malang Berdasarkan Keanekaragaman Makroinvertebrata Sebagai Sumber Belajar Biologi

23 176 28

ANALISIS KOMPARATIF PENDAPATAN DAN EFISIENSI ANTARA BERAS POLES MEDIUM DENGAN BERAS POLES SUPER DI UD. PUTRA TEMU REJEKI (Studi Kasus di Desa Belung Kecamatan Poncokusumo Kabupaten Malang)

23 307 16

PENILAIAN MASYARAKAT TENTANG FILM LASKAR PELANGI Studi Pada Penonton Film Laskar Pelangi Di Studio 21 Malang Town Squere

17 165 2

Analisis Sistem Pengendalian Mutu dan Perencanaan Penugasan Audit pada Kantor Akuntan Publik. (Suatu Studi Kasus pada Kantor Akuntan Publik Jamaludin, Aria, Sukimto dan Rekan)

136 695 18

DOMESTIFIKASI PEREMPUAN DALAM IKLAN Studi Semiotika pada Iklan "Mama Suka", "Mama Lemon", dan "BuKrim"

133 700 21

PEMAKNAAN MAHASISWA TENTANG DAKWAH USTADZ FELIX SIAUW MELALUI TWITTER ( Studi Resepsi Pada Mahasiswa Jurusan Tarbiyah Universitas Muhammadiyah Malang Angkatan 2011)

59 326 21

STRATEGI KOMUNIKASI POLITIK PARTAI POLITIK PADA PEMILIHAN KEPALA DAERAH TAHUN 2012 DI KOTA BATU (Studi Kasus Tim Pemenangan Pemilu Eddy Rumpoko-Punjul Santoso)

119 459 25

STRATEGI PUBLIC RELATIONS DALAM MENANGANI KELUHAN PELANGGAN SPEEDY ( Studi Pada Public Relations PT Telkom Madiun)

32 284 52

FAKTOR-FAKTOR PENYEBAB ORANG TUA MENIKAHKAN ANAK PEREMPUANYA PADA USIA DINI ( Studi Deskriptif di Desa Tempurejo, Kecamatan Tempurejo, Kabupaten Jember)

12 105 72