Manajemen Perangkat IO Edi Sugiarto S Kom 1








































- Slides: 40
Manajemen Perangkat I/O Edi Sugiarto, S. Kom 1
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 2
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. 3
4
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 5
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. 6
Perangkat Berorientasi Aliran Karakter �Merupakan perangkat yang mengantarkan atau menerima aliran karakter tanpa peduli membentuk struktur blok �Contoh : terminal, line printer, interface jaringan, dsb. 7
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. 8
�Perangkat untuk Komunikasi ◦ Perangkat yang cocok untuk komunikasi dengan perangkat jarak jauh. ◦ Contoh : Modem 9
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). 10
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. 11
�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 12
�Pengendalian ◦ 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 13
�Pembacaan / Penulisan ◦ 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. 14
15
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 16
◦ 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. 17
18
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 19
�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. 20
� 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 21
Skema I/O dengan DMA 22
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. 23
◦ I/O Controller menjadi proses terpisah ◦ I/O Controller memiliki memori lokal 24
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. 25
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 26
�Penamaan Naming). yang seragam (Uniform ◦ Nama file atau perangkat adalah sebuah string atau integer, sehingga tidak tergantung pada perangkat sama sekali �Penanganan Handling) Kesalahan (Error ◦ Tujuan yang ingin dicapai adalah bagaimana menangani kesalahan, teruma kesalahan baca yang ditemui pada operasi I/O 27
�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. 28
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 29
�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. 30
�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. 31
◦ 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. 32
�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 33
�Memberi ukuran blok perangkat agar bersifat device independent �Melakukan buffering �Alokasi penyimpanan pada blok-device �Alokasi dan pelepasan dedicated-device �Pelaporan kesalahan 34
�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 35
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 36
�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 37
◦ Kelemahan �Teknik ini merumitkan sistem operasi karena harus mencatat pemberian buffer-buffer sistem ke masing proses pemakai. 38
�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. 39
�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. 40