You are on page 1of 11

PENGENALAN KONTROL INPUT/OUTPUT

DEFINISI DAN PERSYARATAN KONTROL I/O

Sebuah sistem kontrol I/O bertujuan untuk memberikan bantuan


kepada user untuk memungkinkan mereka mengakses berkas,
tanpa memperhatikan detail dari karakteristik dan waktu penyimpanan.
Kontrol I/O menyangkut manajemen berkas dan p e r a la ta n
manajemen yang merupakan bagian dari sistem operasi.

Tugas dari sistem kontrol I/O adalah:


 Memelihara direktori dari berkas dan lokasi informasi.
 Menentukan jalan (pathway) bagi aliran data antara main memory
dan alat penyimpanan sekunder.
 Mengkoordinasi komunikasi antara CPU dan alat penyimpanan
sekunder.
 Menyiapkan berkas penggunaan input atau output
 Mengatur berkas, bila pengunaan input atau output telah selesai.

DIREKTORI BERKAS DAN KONTROL INFORMASI

Sebelum berkas dapat diakses oleh sebuah program, sistem operasi


harus mengetahui pada alat penyimpanan sekunder yang mana
berkas tersebut berada.

Gambar 1. Struktur Direktori Berkas

Pengenalan Kontrol I/O Halaman 1


Direktori yang diperlihatkan pada gambar 1. tersebut adalah untuk
satu unit (mis. disk pack atau tape reel) dari penyimpanan
sekunder.

Labelnya berisi identifikasi informasi, akses kontrol informasi, dan


sebuah pointer yang menunjuk ke isi tabel, yang berisi kontrol blok
untuk setiap berkas pada unit tersebut.

Sebuah kontrol blok berisi informasi tentang nama berkas,


a tr ib u tn y a ( s e p e r ti p a n ja n g r e c o r d , u k u r a n b lo k , organisasi
berkas) dan batasannya pada media penyimpanan. Sebuah kontrol
blok menunjukkan awal dari berkas yang bersangkutan. Jadi
bila sebuah berkas dicari, isi tabel dari unit yang dimaksud diperiksa
untuk menemukan berkas pada media penyimpanan.

KONTROL PERALATAN

Aktifitas I/O terutama mencakup perpindahan data antara main


memory dengan alat penyimpanan sekunder atau alat I/O, seperti
printer, terminal, dan card reader/punch. Operasi I/O memerlukan
d u k u n g a n k o n tr o l a la t s e c a r a te r in c i.

Contoh:
Misalkan direktori berkas sudah diberitahu lokasi berkas yang
diminta pada alat penyimpanan sekunder atau peralatan I/O sudah
ditentukan. Supaya dapat menulis (Write) pada alat tersebut atau
membaca (Read) dari alat tersebut.

Maka:
Jalur (pathway) antara memori utama dan peralatan harus sudah
ditentukan dan juga harus ditentukan komponen-komponen yang
dibutuhkan dari jalur tersebut (termasuk peralatan yang dituju) dan
s ia p u n tu k d ig u n a k a n .

CHANNEL

Pada kebanyakan sistem komputer, CPU tidak dibebani menangani


tugas yang berhubungan dengan I/O.
Tetapi tanggung jawab untuk kontrol peralatan diserahkan pada
prosesor I/O, yang dikenal sebagai saluran I/O (I/O channel).

Pengenalan Kontrol I/O Halaman 2


Saluran I/O itu sendiri merupakan prosesor yang sudah di program.
Program-program yang di execute ini disebut channel program.
Channel program ini menentukan operasi, yang diperlukan untuk
akses peralatan dan mengontrol jalur data (data pathway).

Gambar 2. Komponen Sistem Komputer dalam I/O Processing

Saluran I/O ini diperintah oleh sistem operasi dan kemudian oleh
CPU. Saluran I/O ini tidak mengendalikan alat penyimpanan secara
langsung. Tetapi saluran I/O ini menetapkan satu atau lebih unit
alat pengontrol. Susunan ini penting untuk menyederhanakan
channel program.

Sebelum opersi I/O dapat dimulai, jalur antara memori utama dengan
p e r a la ta n h a r u s s u d a h d ite n tu k a n . J ik a s a lu r a n , u n it p e n g o n tr o l, a ta u
peralatan yang dituju sedang sibuk, maka kontruksi dari pathway
harus menunggu. Untuk menghindari menunggu, sistem komputer
dilengkapi dengan beberapa saluran dan unit pengontrol.

MACAM-MACAM CHANNEL

 Selector Channel

Dapat mengatur aliran data antara memori utama dengan sebuah


p e r a la ta n p a d a s a a t te r s e b u t. Karena saluran merupakan
prosesor-prosesor yang cepat, maka saluran selektor biasanya
hanya menggunakan peralatan I/O dengan kecepatan tinggi, seperti
disk. Penggunaan peralatan dengan kecepatan rendah, misal card
reader.

Pengenalan Kontrol I/O Halaman 3


 Multiplexor Channel

Dapat mengatur aliran data antara memori utama dengan beberapa


perlatan. Saluran multiplexor lebih efektif bila menggunakan
peralatan dengan kecepatan rendah, dibandingkan dengan selector
channel. Dengan saluran multiplexor, beberapa peralatan dapat
diaktifkan secara serentak, tetapi saluran harus melengkapi saluran
program untuk satu peralatan sebelum memulai dengan saluran
p r o g r a m la in .

 Block Multiplexor Channel

Mengatur aliran data ke berbagai peralatan. Block Multiplexor Channel


dapat mengeksekusi satu intruksi dari saluran program untuk satu
peralatan, kemudian dapat mengalihkan intruksi-intruksi dari saluran
program itu ke peralatan yang lain.

MACAM-MACAM DEVICE

Dedicated Device
Digunakan untuk pengaksesan oleh satu orang pada setiap saat.
Contoh: Terminal

Shared Device
Digunakan untuk pengaksesan o le h banyak pemakai secara
bersamaan.
Contoh: Disk

Aktifitas I/O untuk shared device adalah sangat kompleks dibanding


aktifitas I/O pada dedicated device. Dua fungsi yang sangat
penting dari shared device adalah alokasi tempat dan pemberian
a k s e s y a n g te p a t.

Jenis ketiga dari peralatan adalah suatu unit dimana pemakai


mengiginkan pemakaian secara bersama, tetapi sesungguhnya tidak
cocok digunakan untuk penggunaan concurrent.

Pengenalan Kontrol I/O Halaman 4


Contoh:

Berbagai program ditujukan ke printer secara bersamaan. Sistem


pengontrol I/O menggunakan peralatan virtual untuk mengalamatkan
jenis peralatan yang dibutuhkan. Program tersebut menulis ke alat
pencetak (printer), tetapi sesungguhnya di tulis ke disk dahulu.
Setelah berkas output diakhiri oleh program, berkas tersebut
masuk dalalm antrian, kemudian ditulis seluruhnya ke printer.

Peralatan virtual I/O ini disebut spooling.


Maksud dari sistem spooling adalah untuk memberikan pemakaian
peralatan secara bersamaan. Hampir semua komputer multi user
menggunakan spooling.

AKTIFITAS SALURAN

Tujuan dari saluran I/O adalah sebagai perantara antara CPU-main


memory dengan unit pengontrol penyimpan. CPU berkomunikasi
dengan saluran melalui beberapa perintah yang sederhana.

Beberapa saluran akan memberi perintah:

 Test I/O, untuk menentukan apakah jalur (pathway) yang menuju


p e r a la ta n s e d a n g s ib u k .
 Start I/O, pada peralatan tertentu.
 Halt I/O, pada peralatan tertentu.

Saluran biasanya berkomunikasi dengan CPU melalui cara interupsi.


Interupsi akan terjadi, jika keadaan error terdeteksi, misalnya
instruksi CPU yang salah atau jika aktifitas I/O telah diakhiri.

Jika interupsi terjadi, kontrol akan bercabang melalui rutin


pengendali interupsi (interrupt-handler routine), dimana kontrol akan
menentukan penyebab dari interupsi, melakukan kegiatan yang
tepat, kemudian mengembalikan kontrol pada pemanggil (caller).

PROSES PEMBACAAN

Jika sebuah program membutuhkan READ dari suatu berkas,


maka langkah-langkah berikut, yang tampak pada gambar 3 akan
te r ja d i.

Pengenalan Kontrol I/O Halaman 5


Gambar 3. Urutan kejadian dalam proses file READ

Langkah-langkah tersebut adalah:

1. Program mengeluarkan sebuah READ, yang menginterupsi


pengontrol I/O.
2. Pengontrol I/O membuat sebuah saluran program pada memori
utama.
3. Saluran program dibaca dan di eksekusi oleh pemanggil saluran.
4. Sinyal yang tepat akan di transmisikan ke pemanggil unit
k o n tr o l.
5. Sinyal ini diterjemahkan oleh unit kontrol dan digunakan untuk
mengontrol peralatan operasi untuk membaca data yang diminta.
6. Data yang diminta akan mengalir dari peralatan sepanjang jalur
(pathway) ke daerah penampung berkas (file buffer area) dalam
ruang memori utama.
7. Interupsi yang dikeluarkan oleh saluran, digunakan untuk
meneruskan sinyal pada waktu eksekusi program.
8. Kontrol kembali ke program.

CATATAN:

Data dibaca kedalam buffer, dimana buffer ini merupakan suatu


tempat pada memori utama yang disediakan untuk menampung data.
Jika buffer penuh, program akan segera menggunakan data tersebut.

Rangkaian sekilas dari peristiwa yang terjadi, yaitu ketika sebuah


program meminta WRITE pada sebuah berkas, akses I/O akan
digiatkan. Peristiwa ini harus terjadi untuk setiap intruksi READ dan
WRITE yang ditujukan pada peralatan.

BLOCKING RECORD
Pengenalan Kontrol I/O Halaman 6
Teknik yang sering digunakan untuk mengurangi peralatan program
akses adalah block record, sedemikian rupa, sehingga beberapa
record akan dibaca/ditulis dalam suatu akses tunggal pada peralatan.
Jika ada n record per blok, maka hanya setiap READ ke n yang akan
diakses oleh suatu program pada suatu peralatan. Biasanya intruksi
READ diubah menjadi intruksi GET oleh sistem kontrol I/O.
Kemudian suatu channel program menerjemahkan instruksi GET
keperalatan READ. Jika buffer kosong, mengakibatkan buffer akan
d iis i.

Gambar 4. Peralatan Akses dengan Block Record

MANAJEMEN BUFFER

 Single Buffering

Gambar 5. Struktur Buffer dengan satu buffer file

Pada gambar 5. menunjukkan struktur data dari buffer dalam bentuk


y a n g s e d e r h a n a , y a n g te r d ir i d a r i s a tu r e c o r d p e r - b lo c k d a n s a tu
buffer per berkas, dimana buffer ini berfungsi mengisikan
permintaan dari sebuah program. Struktur buffer ini berisi sebuah
pointer pada alamat awal dan channel program untuk berkas.

Struktur dasar dari channel program untuk mengisi buffer adalah:

Pengenalan Kontrol I/O Halaman 7


 Tunggu intruksi READ dari program
 Memberitahukan intruksi start I/O ke unit kontrol
 Tunggu hingga buffer dikosongkan
 Memberitahukan interupsi pada program, sehingga dapat mulai
membaca dari buffer.

Masalah yang timbul disini adalah pemakai program menggangur


pada saat menunggu buffer diisi.

 Anticipatory Buffering

Pendekatan lain yang dapat menghilangkan beberapa hal yang


mungkin untuk menunggu CPU adalah dengan menggunakan
Anticipatory Buffering.

Dengan anticipatory buffering, sistem kontrol I/O akan berusaha


mendahulukan kebutuhan program akan data. Diusahakan agar
buffer selalu penuh. Channel selalu menguji flag ini. Jika buffer
mendekati kosong, karena pemakai program telah membaca isinya,
maka flag itu akan di-reset dan channel program akan meng-
initates pengisian kembali buffer.

Struktur dasar channel program untuk mengisi sebuah buffer dengan


anticipatory buffer diperlihatkan pada gambar 6.

Gambar 6. Struktur buffer dengan satu buffer per file

lo o p : If fu ll- fla g = 1 g o to lo o p
ISSUE START - I/O Command to control unit
wait while buffer is being filled
fu ll- fla g := 1
g o to lo o p
Rutin pelengkap untuk mengosongkan buffer kedalam tempat kerja
record program selalu diperlukan. Rutin pengisian dan pengosongan

Pengenalan Kontrol I/O Halaman 8


buffer selalu berpasangan: salah satu dari pasangan tersebut
merepresentasikan sebuah PRODUCER, sedangkan pasangan yang
lain bertindak sebagai CONSUMER.

Untuk berkas input, producer adalah channel program dan consumer


adalah pemakai program.
Untuk berkas output, producer adalah pemakai program dan
consumer adalah channel program.

Rutin consumer yang mendampingi rutin producer di atas adalah:

wait : If full-flag = 0 go to wait


read the buffer contents into the record work area
fu ll- fla g := 0
go to wait

Keadaan awal, full-flag = 0, mengakibatkan channel program mengisi


b u ffe r .

 Double Buffering

Untuk mengurangi kemungkinan dari program menunggu, maka


double buffer dapat digunakan. Dua dari tempat buffer yang ada,
hanya satu yang ditetapkan untuk berkas.

Ide dasar dari double buffering adalah jika consumer mengosongkan


salah satu buffer, maka producer dapat mengisikan kedalam buffer
yang lain, pada saat buffer pertama sudah kosong, maka buffer yang
kedua harus dalam keadaan penuh. Kemudian consumer dapat
mengkosongkan buffer yang kedua, pada saat producer mengisi
buffer yang pertama, demikian seterusnya.

Struktur buffer untuk double buffering terdiri dari sebuah pointer yang
menunjuk ke buffer berikutnya.

Pengenalan Kontrol I/O Halaman 9


Gambar 7. Struktur buffer untuk dua buffer

 Three Buffers

Gambar 8. Three Chained Buffer

p fill : yang menunjukkan buffer berikutnya akan diisi atau sedang


d iis i
pempty : yang menunjukkan buffer berikutnya akan dikosongkan
a ta u
s e d a n g d ik o s o n g k a n .

Keadaan ini dapat dilihat sebagai berikut:

Buffer 1 penuh
Buffer 2 sedang diisi
Buffer 3 sedang dikosongkan, record ke m di dalam buffer akan
dibaca kedalam tempat kerja record berikutnya.
Buffer berikutnya yang akan kosong adalah buffer 1
Buffer berikutnya yang akan di isi adalah buffer 3

Pada pendekatan ini dianggap jika suatu buffer kosong, producer


akan bergerak mengisinya.

Pengenalan Kontrol I/O Halaman 10


Contoh:

Jika setelah buffer 3 diisi pada keadaan di atas, consumer tetap


akan mengosongkan buffer 1, kemudian producer mengisi buffer 2.
Selanjutnya consumer akan menunggu.

Jika producer secara konsisten mengisi buffer pada kecepatan yang


le b ih r e n d a h d ib a n d in g k e c e p a ta n pada saat consumer
mengosongkannya, maka consumer akan menunggu.

Keuntungan menggunakan lebih dari satu buffer adalah


kemampuannya untuk saling melengkapi operasi pengisian dan
pengosongan, dengan demikian mengurangi waktu tunggu.

Pengenalan Kontrol I/O Halaman 11

You might also like