13-Manajemen Perangkat IO
13-Manajemen Perangkat IO
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
Terdapatdua 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 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
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-
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