Jumat, 22 Juni 2012

MANAJEMEN PERANGKAT INPUT/OUTPUT



  PRINSIP-PRINSIP PERANGKAT LUNAK I/O

Pengelolaan perangkat I/O merupakan aspek perancangan sistem operasi yang
terluas karena beragamnya peralatan dan begitu banyaknya aplikasi dari peralatanperalatan
itu.
Manajemen I/O mempunyai fungsi, di antaranya:
- Mengirim perintah ke perangkat I/O agar menyediakan layanan.
- Menangani interupsi peralatan I/O
- Menangani kesalahan pada peralatan I/O
- Memberi interface ke pemakai.
Berdasarkan sasaran
komunikasi, klasifikasi perangkat I/O dibagi menjadi:
a. Peralatan yang terbaca oleh manusia (Human Readable Machine)
Yaitu, peralatan yang
cocok untuk komunikasi dengan user. Contohnya, Video
Display Terminal (VDT) yang terdiri dari layar,
keyboard, dan mouse.
b. Peralatan yang terbaca oleh mesin (Machine Readable Machine)
Yaitu peralatan yang cocok untuk komunikasi dengan peralatan elektronik.
Contohnya disk dan tape, sensor, controller.
c. Komunikasi
Yaitu, peralatan yang cocok untuk komunikasi dengan peralatan-peralatan jarak
jauh. Contohnya modem.
Terdapat perbedaan-perbedaan besar antarkelas peralatan tersebut. Bahkan untuk
satu kelas saja terdapat berbedaan sangat besar. Perbedaan-perbedaan pokok antara
lain mengenai:
- Data rate
- Aplikasi
- Kompleksitas pengendalian
- Unit yang ditransfer
- Representasi data
- Kondisi-kondisi kesalahan

Keberagaman yang sangat besar pada peralatan I/O membuat pendekatan seragam dan
konsisten terhadap I/O baik dari pandangan sistem operasi maupun proses sangat sulit
diperoleh.
Klasifikasi lain yang dapat dilakukan terhadap peralatan I/O adalah berdasarkan unit
transfer yang dilakukan perangkat I/O, yaitu sbb:
1. Perangkat berorientasi blok (block-oriented devices)
Peralatan mentransfer dari dan ke peralatan dengan satuan transfer adalah
satu blok (sekumpulan karakter) yant telah ditentukan.
2. Perangkat berorientasi aliran karakter (character-oriented devices)
Peralatan mentransfer dari dan ke peralatan berupa aliran karakter.
B. Teknik Pengoperasian Perangkat I/O.
Teknik Pengoperasian Perangkat I/O meliputi:
a. Perangkat I/O terprogram (programmed I/O)
Merupakan perangkat I/O
komputer yang dikontrol oleh program. Contohnya,
perintah mesin in, out, move.
Perangkat I/O terprogram tidak sesuai, untuk pengalihan data dengan kecepatan tinggi
karena dua alasan yaitu:
1. Memerlukan overhead (ongkos) yang tinggi, karena beberapa perintah program
harus dieksekusi untuk setiap kata data yang dialihkan antara peralatan
eksternal dengan
memori utama.
2. Banyak peralatan periferal kecepatan tinggi memiliki mode operasi sinkron,
yaitu pengalihan data dikontrol oleh clock frekuensi tetap, tidak tergantung
CPU.
b. Perangkat berkendalikan interupsi (Interrupt I/O)
Interupsi lebih dari sebuah mekanisme sederhana untuk mengkoordinasi
pengalihan I/O. Konsep interupsi berguna di dalam sistem operasi dan pada
banyak aplikasi kontrol di mana pemrosesan rutin tertentu harus diatur dengan
seksama, relatif peristiwa-peristiwa eksternal.
c. DMA (Direct Memory Address)
Merupakan suatu pendekatan alternatif yang digunakan
sebagai unit
pengaturan khusus yang disediakan untuk memungkinkan pengalihan blok data
secara langsung antara peralatan eksternal dan memori utama tanpa intervensi
terus menerus oleh CPU.
Evolusi telah terjadi pada sistem komputer. Evolusi antara lain terjadi
peningkatan kompleksitas dan kecanggihan komponen-komponen sistem
komputer. Evolusi sangat tampak pada fungsi-fungsi I/O, yaitu sbb:
1. pemroses secara langsung mengendalikan peralatan I/O. Teknik ini masih
dilakukan sampai saat ini, yaitu untuk peralatan sederhana yang
dikendalikan mikroprosesor untuk menjadi intelligent device.
2. Peralatan dilengkapi pengendali I/O (I/O controller). Pemroses masih
menggunakan I/O terprogram tanpa interupsi. Pada
tahap ini, pemroses tak
perlu memperhatikan rincian-rincian spesifik interface peralatan.
3. Tahap ini
sama dengan tahap 2 ditambah fasilitas interupsi. Pemroses tidak
perlu menghabiskan waktu untuk menunggu selesainya operasi I/O. Teknik
ini meningkatkan efisiensi pemroses.
4. Pengendali I/O diberi kendali memori langsung lewat DMA. Pengendali dapat
memindahkan blok data ke atau dari memori tanpa
melibatkan pemroses
kecuali di awal dan akhir transfer.
5. Pengendali I/O ditingkatkan menjadi pemroses yang terpisah dengan
instruksi-instruksi khusus yang ditujukan untuk operasi I/O. Pemroses pusat
mengendalikan/memerintahkan pemroses I/O untuk mengeksekusi program
I/O yang terdapat di memori utama.
Pemroses I/O mengambil dan mengeksekusi instruksi-instruksi ini tanpa
intervensi pemroses utama (pusat). Dengan teknik ini dimungkinkan
pemroses pusat menspesifikasikan barisan aktivitas I/O dan hanya
diinterupsi ketika seluruh barisan telah diselesaikan.
6. Pengendali I/O mempunyai memori lokal yang menjadi miliknya dan
komputer juga memiliki memori sendiri. Dengan arsitektur ini, sekumpulan
besar peralatan I/O dapat dikendalikan dengan keterlibatan pemroses
pusat yang minimum.
Arsitektur ini digunakan untuk pengendalian komunikasi dengan terminalterminal
interaksi. Pemroses I/O mengambil alih kebanyakan tugas yang
melibatkan pengendalian terminal.
Evolusi berlangsung terus, jalur yang dilalui oleh evolusi adalah agar fungsifungsi
I/O dapat dilakukan lebih banyak dan lebih banyak lagi tanpa
keterlibatan pemroses pusat. Pemroses pusat yang tidak disibukkan dengan
tugas-tugas yang berhubungan dengan I/O akan meningkatkan kinerja sistem.
Tahap 5 & 6 merupakan tahap perubahan utama, yaitu konsep pengendali I/O
mampu mengeksekusi program sendiri.

C. Prinsip-Prinsip Perangkat I/O
Terdapat dua sasaran perancangan perangkat I/O, yaitu:
a. Efisiensi
Merupakan aspek penting karena operasi I/O karena sering menjadi operasi
yang menimbulkan bottleneck pada sistem komputer/komputasi.
b. Generalitas (Device-independence)
Selain berkaitan dengan simplisitas dan bebas dari kesalahan diharapkan
juga menangani
semua gerak peralatan secara beragam. Pernyataan ini
diterapkan dari cara proses-proses memandang peralatan I/O dan cara
sistem operasi mengelola peralatan-peralatan dan operasi-operasi I/O.
Perangkat lunak diorganisasikan sebagai satu barisan lapisan. Lapisan-lapisan
lebih bawah berurusan menyembunyikan kepelikan-kepelikan perangkat
keras. Untuk untuk lapisan-lapisan lebih atas berurusan memberikan
interface yang bagus, bersih, nyaman dan seragam ke pemakai.

Masalah-masalah penting yang terdapat dan harus diselesaikan pada
perancangan manajemen I/O adalah:
1. Penamaan yang seragam (uniform naming)
Nama berkas atau peralatan adalah string atau integer, tidak tergantung
pada peralatan sama sekali.
2. Penanganan kesalahan (error handling)
Umumnya penanganan kesalahan ditangani sedekat mungkin dengan
perangkat keras.
3. Transfer sinkron vs asinkron
Kebanyakan fisik I/O adalah asinkron. Pemroses mulai transfer dan
mengabaikannya untuk melakukan kerja lain sampai interupsi tiba. Programprogram
pemakai sangat lebih mudah ditulis jika operasi-operasi I/O
berorientasi blok. Setelah perintah read, program kemudian secara otomatis
ditunda sampai data tersedia di buffer.
4. Shareable vs dedicated
Beberapa peralatan dapat dipakai bersama seperti disk, tapi ada juga
peralatan yang harus hanya satu pemakai yang dibolehkan memakainya pada
satu saat. Contohnya peralata yang harus dedicated misalnya printer.

D. Hirarki Pengelolaan Perangkat I/O
1. Interrupt Handler
Interupsi adalah suatu peristiwa yang menyebabkan eksekusi satu program
ditundan dan program lain yang dieksekusi. Interrupt adalah sinyal dair
peralatan luar dau permintaan dari program untuk melaksanakan suatu tugas
khusus. Jika interrupt terjadi, maka program dihentikan dahulu untuk
menjalankan rutin interrupt. Ketika program yang sedang berjalan tadi
dihentikan, prosesor menyimpan nilai register yang berisi alamat program ke
stack, dan mulei menjalankan rutin interrupt.
Secara garis besar, kita mengenal dua macam interupsi terhadap prosesor,
yatu interupsi secara langsung dan interupsi melalui polling. Sekalipun
caranya berbeda, akibat dari kedua cara interupsi tersebut sama.
Cara interupsi secara langsung: penghentian prosesor untuk suatu proses
dapat berasal dari berbagai sumber daya di dalam sistem komputer, karena
sumber daya tertentu pada sistem komputer tersebut menginterupsi kerja
prosesor. Karena cara terjadinya interupsi adalah secara langsung dari
sumber daya, maka kita menamakan cara interupsi ini sebagai interupsi
langsung. Banyak interupsi terhadap prosesor di dalam sistem komputer
termasuk ke dalam jenis interupsi langsung.
Cara interupsi polling: selain komputer menunggu sampai diinterupsi oleh
sumber daya komputer, kita mengenal pula cara interupsi sebaliknya. Pada
cara interupsi ini, prakarsa penghentian kerja prosesor berasal dari prosesor
atau melalui prosesor tsb. Dalam hal ini, secara berkala prosesor akan
bertanya (poll) kepada sejumlah sumber daya. Apakah ada di antara mereka
yang akan memeerlukan prosesor? Jika ada, maka prosesor akan
menghentikan kegiatan semulanya, serta mengalihkan kerjanya ke sumber
daya tersebut. Perbedaan antara interupsi langsung dengan interupsi polling
terletak pada cara mengemukakan interupsi tersebut.
Jenis-Jenis Interupsi
Dilihat dari cara kerja prosesor, tidak semua interupsi itu sama pentingnya
bagi proses yang sedang dilaksanakan oleh kerja prosesor tsb. Kalau sampai
interupsi yang kurang penting ikut menginterupsi kerja prosesor, maka
pelaksanaan proses itu akan menjadi lama. Karena itu biasanya SO membagi
interupsi ke dalam dua jenis, yaitu:
a. Software, yaitu interrupt yang disebabkan oleh software, sering disebut
dengan system call.
b. Hardware
Terjadi karena adanya akse pada perangkat keras, seperti penekanan tombol
keyboard atau menggerakkan mouse.
Selain untuk mengendalikan pengalihan I/O, beberapa kegunaan interupsi
juga antara lain:
1. Pemulihan kesalahan
Komputer menggunakan bermacam-macam teknik untuk memastikan
bahwa semua komponen perangkat keras beroperasi semestinya. Jika
kesalahan terjadi, perangkat keras kontrol mendeteksi kesalahan dan
memberi tahu CPU dengan mengajukan interupsi.
2. Debugging
Penggunaan penting lain dari interupsi adalah sebagai penolong dalam
debugging program. Debugger menggunakan interupsi untuk menyediakan
dua fasilitas penting, yaitu:
- Trace
- Break point.
3. Komunikasi Antarprogram
Perintah interupsi perangkat lunak digunakan oleh sistem operasi
untuk berkomunikasi dengan dan mengontrol eksekusi program lain.
2. Device Driver
Setiap device driver menangani satu tipe peralatan. Device driver bertugas
menerima permintaan abstrak perangkat lunak device independent di atasnya
dan melakukan layanan sesuai permintaan itu.
Mekanisme kerja device driver
- Menerjemahkan perintah-perintah abstrak menjadi perintah-perintah
konkret.
- Begitu telah dapat ditentukan perintah-perintah yang harus diberikan ke
pengendali, device driver mulai menulis ke register-register pengendali
peralatan.
- Setelah operasi selesai dilakukan peralatan, device driver memeriksa
kesalahan-kesalahan yang terjadi.
- Jika semua berjalan baik, device driver melewatkan data ke perangkat
lunak device independent.
- Device melaporkan informasi status sebagai pelaporan kesalahan ke
pemanggil.

3. Perangkat Lunak Sistem Operasi Device Independent
Fungsi utama perangkat lunak tingkat ini adalah membentuk fungsi-fungsi I/O
yang berlaku untuk semua peralatan dan memberi interface seragam ke
perangkat lunak tingkat pemakai.
Fungsi-fungsi yang biasa dilakukan antara lain:
- Interface seragam untuk seluruh driver-driver
- Penamaan peralatan
- Proteksi peralatan
- Memberi ukuran blok peralatan agar bersifat device independent
- Melakukan buffering
- Alokasi penyimpanan pada block devices
- Alokasi pelepasan dedicated devices
- Pelaporan kesalahan
4. Buffering I/O
Buffering merupakan teknik untuk melembutkan lonjakan-lonjakan
kebutuhan pengaksesan I/O secara langsung. Buffering adalah cara untuk
meningkatkan efisiensi sistem operasi dan kinerja proses-proses. Terdapat
beragam cara buffering, antara lain:
a. Single Buffering
Teknik ini merupakan buffering paling sederhana. Ketika proses
pemakai memberikan perintah I/O, sistem operasi menyediakan buffer
bagian memori utama sistem untuk operasi.
Untuk peralatan berorientasi blok, transfer masukan dibuat ke buffer sistem.
Ketika transfer selesai, proses memeindahkan blok ke ruang pemakai dan
segera meminta blok lain. Teknik ini disebut reading ahead atau
anticipated input.
Teknik ini dilakukan dengan harapan bahwa blok tersebut akan segera
diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku. Hanya akhir
barisan pemrosesan maka blok yang dibaca tidak diperlukan.
Pendekatan ini umumnya meningkatkan kecepatan dibanding tanpa
buffering.
b. Double buffering
Peningkatan atas single buffering dapat dibuat dengan mempunyai
dua buffer sistem untuk operasi. Proses dapat transfer ke (atau dari) satu
buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain.
Double buffering menjamin proses tidak akan menunggu operasi I/O.
Peningkatan atas single buffering diperoleh, namun harus dibayar dengan
kompleksitas yang meningkat.

Tidak ada komentar:

Posting Komentar

Widget SMS Gratis
JNE:

Pages - Menu

Translate

About Me

Foto saya
Belajar disebuah perguruan tinggi Di Yogyakarta

Pengikut

POS:
TIKI:

Popular posts