Manajemen Perangkat I/O Edi Sugiarto, S.Kom
Pendahuluan Pengelolaan perangkat masukan/keluaran merupakan aspek perancangan sistem operasi yang terluas. Hal ini disebabkan sangat beragamnya perangkat dan begitu banyaknya aplikasi dari perangkat tersebut. Manajemen perangkat I/O memiliki beragam fungsi, diantaranya : Mengirim perintah ke perangkat I/O agar menyediakan layanan. Menangani interupsi perangkat I/O Menangani kesalah perangkat I/O Menyediakan interface ke pemakai
Organisasi I/O Secara fisik organisasi sitem I/O pada komputer dapat dibedakan : Peranti I/O (device) Piranti yang terkoneksi komputer Device Controller (adapter) Merupakan sirkuit digital yang berfungsi mengontrol kerja komponen mekanik ataupun elektris. Bus I/O Terdiri atas bus data, alamat dan kendali yang berfungsi menghubungkan device controller dengan elemen internal komputer.
Klasifikasi Perangkat I/O Perangkat I/O dapat di kelompokkan dengan beragam kriteria antaralain : Berdasarkan sifat aliran datanya Perangkat berorientasi blok Perangkat berorientasi aliran karakter Berdasarkan sasaran komunikasi Perangkat yang terbaca oleh manusia Perangkat yang terbaca oleh mesin Untuk komunikasi
Perangkat Berorientasi Blok Perangkat berorientasi blok menyimpan informasi dan menukar informasi sebagai blok berukuran tetap. Ciri perangkat ini adalah memungkinkan membaca atau menulis blok-blok secara independen yakni : dapat membaca atau menulis sembarang blok tanpa melewati blok lain. Contoh : disk, tape, CD-ROM, dsb.
Perangkat Berorientasi Aliran Karakter Merupakan perangkat yang mengantarkan atau menerima aliran karakter tanpa peduli membentuk struktur blok Contoh : terminal, line printer, interface jaringan, dsb.
Perangkat I/O Berdasarkan Sasaran Komunikasi Perangkat yang terbaca oleh manusia Perangkat yang cocok untuk komunikasi dengan manusia Contoh : VDT (Video Display Terminal) terdiri dari monitor, keyboard, mouse, dsb. Perangkat yang terbaca oleh mesin Perangkat yang cocok untuk komunikasi dengan perangkat elektronik Contoh : disk dan tape, sensor, controller.
Perangkat untuk Komunikasi Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh. Contoh : Modem
Teknik Pemrograman Perangkat I/O Terdapat tiga teknik pemrograman perangkat I/O berdasarkan mekanisme hubungan pemroses dengan pengendali perangkat I/O yaitu : Masukan/Keluaran terpogram (programmed I/O) atau Polling System. Masukan/Keluaran dikendalikan Interupsi (Interupt driven I/O) Dengan DMA (Direct Memory Access).
Masukan/Keluaran terpogram Ketika perangkat masukan/keluaran menangani permintaan, perangkat men-set bit status di register status perangkat. Perangkat tidak dapat memberitahu ke pemroses saat tugas telah selesai dilakukan. Perangkat harus selalu memeriksa register status perangkat secara periodik dan melakukan tindakan berdasarkan status yang dibaca.
Driver harus berisi kumpulan interuksi di tiga kategori yaitu ; Perangkat lunak pengendali perangkat (driver) harus mentransfer data ke/dari pengendali. Driver mengeksekusi perintah yang berkomunikasi dengan penendali (adapter) di perangkat dan menunggui hingga operasi yang dilakukan perangkat selesai. Driver harus berisi kumpulan interuksi di tiga kategori yaitu ; Pengendali Pengujian pembacaan
Pengendalian Pengujian Instruksi pengendalian untuk mengaktifkan perangkat eksternal dan memberitahu yang perlu dilakukan Contoh : tape magnetik diinstruksikan untuk kembali ke posisi awal, ke record selanjutnya, dsb Pengujian Instruksi pengujian untuk memeriksa kondisi status berkaitan dengan perangkat I/O
Pembacaan / Penulisan Kelemahan Instruksi membaca/menulis untuk transfer data antara register pemroses dan perangkat eksternal. Kelemahan Cara ini tidak efisien karena banyak pemborosan waktu pemroses untuk menunggu waktu kejadian perangkat keras.
Masukan/Keluaran dituntun Interupsi Masalah utama masukan/keluaran terprogram adalah pemroses diboroskan untuk menunggu dan menjagai seluruh operasi masukan/keluaran. Teknik masukan/keluaran dituntun interupsi mempunyai mekanisme kerja sbb : Pemroses memberikan intruksi ke I/O device dan melanjutkan kerja lain. I/O device akan melakukan interupsi meminta layanan berikutnya saat perangkat telah siap bertukar data dengan proses
Saat menerima interupsi perangkat keras, pemroses segera mengeksekusi transfer data. Keunggulan Pemroses tidak disibukan menunggui dan menjagai seluruh operasi perangkat masukan/keluaran untuk memeriksa status perangkat. Kinerjanya lebih baik daripada masukan/keluaran terprogram.
DMA (Direct Memory Access) Perangkat masukan/keluaran dikendalikan interupsi lebih efisien dibanding perangkat masukan/keluaran terprogram Namun perangkat masukan/keluaran dikendalikan interupsi masih memerlukan intervensi aktif pemroses untuk transfer data antara memori dan buffer perangkat I/O Pemroses masih disibukkan oleh operasi transfer data
Kelemahan pemrograman masukan/keluaran dikendalikan interupsi memiliki dua kelemahan : Rate transfer masukan/keluaran dibatasi kecepatan menguji dan melayani operasi perangkat Pemroses terikat erat dalam mengelola transfer masukan/keluaran. Sejumlah intruksi harus dieksekusi untk tiap transfer masukan/keluaran.
DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan perangkat I/O. DMA ialah sebuah prosesor khusus yang berguna untuk menghindari pembebanan CPU utama oleh program I/O
Skema I/O dengan DMA
Evolusi Fungsi Perangkat I/O Sistem komputer telah mengalami evolusi peningkatan kompleksitas. Evolusi sangat tampak pada fungsi-fungsi masukan/keluaran sbb [STA-95]: Pemroses mengendalikan perangkat I/O secara langsung Perangkat dilengkapi I/O Controller Perangkat dilengkapi fasilitas Interupsi I/O controller mengendalikan memori secara langsung melalui DMA.
I/O Controller menjadi proses terpisah I/O Controller memiliki memori lokal
Prinsip Manajemen Perangkat I/O Terdapat dua sasaran perancangan manajemen perangkat I/O yaitu : Efisiensi Menghindari bootleneck Generalitas Memisahkan keragaman perangkat berdasarkan sudut pandang tertentu.
Masalah pada perancangan manajemen I/O : Masalah pada perancangan manajemen I/O antaralain : Penamaan yang seragam (Uniform Naming) Penanganan kesalahan (Error Handler) Transfer sinkron vs asinkron Sharable vs dedicated
Penamaan yang seragam (Uniform Naming). Nama file atau perangkat adalah sebuah string atau integer, sehingga tidak tergantung pada perangkat sama sekali Penanganan Kesalahan (Error Handling) Tujuan yang ingin dicapai adalah bagaimana menangani kesalahan, teruma kesalahan baca yang ditemui pada operasi I/O
Transfer Sinkron vs Asinkron Kebanyakan I/O adalah asinkron. Pemroses mulai transfer dan mengabaikan untuk memulai tugas lain sampai interupsi tiba. Sharable vs Dedicated Beberapa perangkat dapat dipakai bersama namun beberapa hanya dapat dipakai satu pengguna dalam satu waktu. Contoh Sharable : disk, dedicated : printer.
Hirarki Manajemen Perangkat I/O Manajemen perangkat I/O tersusun dalam hirarki sbb : Interupt Handler Device Driver Perangkat Lunak Device Independent Perangkat Lunak level pemakai
Interrupt Handler Interrupt harus disembunyikan agar tidak terlihat oleh rutin pada lapisan berikutnya Device driver di blok saat perintah masukan/keluaran diberikan dan menunggu interupsi Ketika interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver keluar dari state blocked.
Device Driver Semua kode bergantung perangkat ditempatkan di device driver Masing-masing device driver menangani satu tipe atau kelas perangkat. Device driver bertugas menerima permintaan abstrak perangkat lunak device independent di atasnya dan melakukan layanan sesuai permintaan itu.
Mekanisme kerja device driver Menterjemahkan perintah Menulis ke register pengendali perangkat Memeriksa status kesalahan yang terjadi, setelah operasi selesai dilakukan Jika berjalan baik device driver melewatkan data ke perangkat lunak device independent Device driver melaporkan statusnya ke pemanggil.
Perangkat Lunak Device Independent Fungsi utama perangkat lunak lapisan ini adalah membentuk fungsi-fungsi masukan/keluaran yang berlaku untuk semua perangkat dan menyediakan antarmuka yang seragam ke perangkat lunak tingkat pemakai. Fungsi yang dilakukan antaralain : Interface seragam untuk seluruh device driver Penamaan perangkat Proteksi perangkat
Memberi ukuran blok perangkat agar bersifat device independent Melakukan buffering Alokasi penyimpanan pada blok-device Alokasi dan pelepasan dedicated-device Pelaporan kesalahan
Perangkat Lunak Level pemakai Kebanyakan perangkat lunak I/O terdapat di sistem operasi Satu bagian kecil berisi pustaka yang ditautkan di program pemakai dan berjalan di luar kernel System call masukan/keluaran umumnya dibuat sebagai prosedur pustaka. Tidak semua perangkat lunak I/O level pemakai berupa prosedur pustaka. Contoh : spooler
Buffering Masukan/Keluaran Buffering adalah menampung sementara data operasi I/O, baik operasi baca ataupun tulis di memori utama. Buffering meningkatkan efisiensi sistem operasi dan kinerja proses Terdapat beragam cara buffering antaralain : Single buffering Double buffering Circular buffering
Single Buffering Ketika proses memberi perintah untuk masukan/keluaran, sistem operasi menyediakan buffer memori utama milik sistem operasi untuk operasi. Keunggulan Meningkatkan kecepatan dibanding tanpa buffering. Proses pemakai dapat mengelola blok, sementara blok berikutnya sedang dibaca
Kelemahan Teknik ini merumitkan sistem operasi karena harus mencatat pemberian buffer-buffer sistem ke masing-masing proses pemakai.
Double Buffering Peningkatan dapat dibuat dengan menyediakan dua buffer sistem. Proses dapat melakukan transfer ke/dari satu buffer sementara sistem operasi mengosongkan buffer lain Teknik ini disebut double buffer atau buffer swapping Double buffering menjamin proses tidak menungu operasi masukan/keluaran.
Circular Buffering Double buffering tidak mencukupi jika proses melakukan operasi masukan/keluaran berurutan secara cepat Masalah ini dapat diindari dengan menggunakan lebih dari dua buffer Ketika lebih dari dua buffer digunakan, kumpulan buffer tsb disebut Circular buffer.