Manajemen Perangkat I/O

advertisement
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 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 masingmasing 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
Download