BAB XI Manajemen Prinsip Dasar Input Output

Download Report

Transcript BAB XI Manajemen Prinsip Dasar Input Output

BAB XI
Manajemen Prinsip Dasar Input Output
Nama
NIM
Semester
:
:
:
Akhmad Defriani
065110369
4 (empat)
11.1 PRINSIP-PRINSIP DASAR PERANGKAT
INPUT OUTPUT
Manajemen dan pengolahan I/O merupakan suatu aspek perancangan sistem
operasi yang terluas disebakan karena sangat banyaknya macam perangkat dan
banyaknya aplikasi dari perangkat masukan tersebut.
Pada sistem komputer,procesesor dan memori berhubungan dengan berbagai
alat yang dihubungkan ke Procesesor.Berbagai alat tersebut memerlukan juga
pengolahan dan pengolahan demikian melalui sistem operasi.
• Dalam hal ini prosesor dijadikan tempat acuan input dan output karena :
Input berati masuk menuju prosesor atau menuju alat yang sedang dikelola
oleh prosesor.
Output artinya keluar dari prosesor atau dari alat yang sedang dikelola oleh
prosesor.
• Selain itu prosesor juga harus dapat mengendalikan alat pheriperal antara
lain sebagai berikut :
Bagian pertama adalah pengaturan sumber daya keras (device controller)
Bagian kedua adalah pengaturan sumber daya lunak (data transfer protocol)
•
1.
2.
3.
4.
5.
Ada lima macam protokol data :
Protokol transfer data bertata olah
Protokol transfer data serta bertata olah dengan interupsi
Protokol transfer data dengan akses memori langsung
Protokol transfer data dengan pelaksanaan alat
Protokol transfer data bebas alat
 Alat pheriperal I/O terdiri atas dua bagian :
1. Mekanika adalah alat pheripheral itu sendiri,Maka bagian elektronika
yang mengatur kerja alat mekanika itu,dinamakan penggerak alat (device
controler).
2. Elektronika adalah sejumlah alat,penggerak alat berbentuk rangkaian
elektronika.Beberapa pengendali perangkat dapat menangani dua atau
lebih perangkat I/O yang sama.
Terdapat berbagai macam antar muka antara perangkat dengan
pengendalinya,antara lain: ANSI,IEE,atau ISO .Selain itu ,ada pula IDE
(Integrated Drive Electronics) .
Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses
cukup tinggi yang digunakan untuk menyimpan data dan instruksi yang sedang
diproses. Memori ini bersifat sementara, biasanya digunakan untuk menyimpan
data saat di olah ataupun data untuk pengolahan selanjutnya.
• Port I/O terdiri atas empat register yaitu:
1. Register Status,Register ini berisi bit-bit yang menandakan apakah perintah
M/K sempurna dilaksanakan pada perangkat.
2. Register Control,Merupakan register yang ditulis oleh CPU untuk memulai
perintah atau untuk mengganti modus perangkat.
3. Register Data in,Register ini merupakan yang dibaca CPU sebagai input data.
4. Register Data out ,Bit ini didalamnya merupakan bit yang ditulis oleh CPU
sebagai output data.
• Manajemen perangkat I/O mempunyai beragam fungsi ,diantaranya;
Mengirimkan perintah ke perangkat I/O agar menyediakan layanan
Menangani kesalahan pada perangkat I/O
Menangani interupsi pada perangkat I/O
Menyediakan Interface pemakai
Gambar 11.1
11.2 Perangkat Keras I/O
Terdapat
beberapa jenis
seperti perangkat penyimpanan (disk,tape)
transmission device (network card,modem), dan human-interface
device (screen,keyboard,mouse).
 Perangkat I/O dapat dibagi menjadi 2 kategori,yaitu:
1. Perangkat Blok adalah perangkat yang menyimpan informasi dalam bentuk
blok-blok berukuran tertentu dan setiap blok memiliki alamat masing-masing.
Umumnya ukuran blok adalah 512 byte sampai 32.768 byte.
contoh perangkat blok adalah disk.
2. Perangkat karakter adalah perangkat yang mengirim atau menerima
sebarisan karakter,tanpa menghiraukan struktur blok.Printer,network
interface, dan perangkat yang bukan disk termasuk didalamnya.
 Beberapa konsep yang umum digunakan :
Port adalah koneksi yang digunakan oleh device untuk berkomunikasi dengan
mesin.
Bus adalah Koneksi yang menghubungkan beberapa device menggunakan kabelkabel.
Controller adalah alat elektronik yang berfungsi untuk mengoperasikan
port,bus,dan device
11.2.1 Polling
Polling adalah ketika host mengalami looping yaitu membaca status
register secara terus menerus sampai status busy di-clear atau dengan
kata lain host dalam keadan sibuk dan sedang menunggu antrian. pada
dasarnya polling dapat dikatakan efisien ,tetapi polling tidak menjadi
efisien ketika setelah berulang-berulang melakukan looping,hanya
menetukan sedikit device yang siap menservice karena CPU prosseing
yang tersisa belum selesai.
11.3 Interupsi
Interupsi adalah kejadian-kejadian asinkron yang biasanya dipicu
oleh perangkat-perangkat eksternal yang memerlukan perhatian.
11.3.1 Mekanisme Dasar Interupsi
Ketika CPU mendeteksi bahwa sebuah controler telah
mengirimkan sebuah sinyal ke interrupt
request line
(membangkitkan sebuah interupsi),CPU kemudian menjawab
interupsi tersebut (juga disebut menangkap interupsi) dengan
menyimpan informasi mengenai state terkini CPU-contohnya nilai
intruksi pointer,dan memanggil interupt handler agar handler
tersebut dapat melayani controller atau alat yang mengirim
interupsi tersebut.
11.3.2 fitur tambahan pada komputer modern
Fitur-fitur ini antara lain adalah kemampuan mengahambat interupt handling
selama prosesi berada dalam critical state,efisiensi penanganan interupsi
sehingga tidak perlu dilakukan polling untuk mencari device yang
mengirimkan interupsi ,dan fitur yang lain adalah adaanya sebuah konsep
multilevel interupsi sedemikian rupa sehingga terdapat prioritas dalam
penanganan interupsi(diimplementasikan dengan interupt priority level
sistem).
11.3.3 Interupt request line
Pada piranti CPU terdapat kabel yang disebut Interupt Request
line.Kebanyakan CPU memiliki 2 macam interupt request line yaitu:
1. Nonmaskabel interupt
2. Maskabel interupt
11.3.4 Interupt vector dan interupt chaining
Pada kebanyakan arsitektur komputer yang ada sekarang ini ,alamat ini
biasanya berupa sekumpulan bilangan yang menyatakan offset pada sebuah
tabel disebut Interupt Vektor.Tabel ini menyimpan alamat-alamat interupt
handler spesifik didalam memori.Keuntungan dari pemakaian vektor adalah
untuk mengurangi kebutuhan akan sebuah interupt handler yang harus
mencari semua kemungkinan sumber interupsi untuk menentukan pengirim
interupsi.
11.3.5 Penyebab Interupsi
Interupsi dapat dapat disebabkan oleh berbagai
hal,antara lain execption,page fault ,interupsi yang
dikirmkan oleh device controllers, dan system
call.Exception adalah suatu kondisi dimana terjadi
sesuatu dari sebuah operasi didapat hasil tertentu
yang dianggap khusus sehingga harus mendapat
perhatian lebih,contohnya pembagian dengan 0
(nol),pengaksesan alamat memori yang dibatasi atau
bahkan tidak valid,dan lain-lain.System call adalah
sebuah fungsi pada aplikasi (perangkat lunak) yang
dapat mengeksekusi instruksi khusus
berupa
software interupt atau trap.
11.4 DMA (Direct Memory Access)
DMA adalah sebuah prosesor khusus (special purpose prossesor) yang
berguna untuk menghindari pembebanan CPU utama oleh program I/O
(PIO).
11.4.1 Transfer DMA
•
1.
2.
3.
•
1.
2.
Untuk memulai sebuah transfer DMA ,host akan menuliskan sebuah DMA
comman block yang berisi pointer yang menunjuk ke sumber transfer,pointer
yang menunjuk ke tujuan/destinasi transfer,dan jumlah byte yang ditransfer
,ke memori.
Tiga langkah dalam transfer DMA :
Prossesor menyiapkan DMA transfer dengan menyediakan data-data dari
device,operasi yang akan ditampilkan,alamat memori yang menunjukan sumber
dan tujuan data,dan banyaknya byte yang ditransfer.
DMA controller memulai operasi(menyiapkan bus,menyediakan alamat,menulis
dan membaca data), sampai seluruh blok sudah ditransfer.
DMA controller menginterupsi prossesor,yang selanjutnya akan tindakan
berikutnya.
DMA mempunyai 2 metode dalam mentranfer data :
Metode yang pertama adalah metode yang sangat baku dan simple yang
disebut HALT,atau Burst Mode DMA.
Metode yang kedua mengikut sertakan DMA controller untuk memegang
control atas sistem bus untuk jangka waktu yang lebih pendek pada periode
dimana mikroprosesor sibuk dengan operasi internal dan tidak membutuhkan
akses ke sistem BUS.Metode ini disebut CYCLE STEALING MODE.
Gambar 11.5 DMA TRANSFER
•
1.
2.
3.
4.
5.
6.
Pada gambar diatas bisa dijelaskan secara detail bagaimna tranfer DMA
dilakukan.
Device driver memberitahu untuk mentranfer data dari disk ke buffer
dengan alamat X.
Device driver memberitahu disk controller untuk mentransfer C byte dari
disk ke buffer dengan alamat X.
Disk controller menginisialisasikan DMA transfer.
Disk controller mengirim beberapa byte ke DMA controller.
DMA controller mengtransfer byte ke buffer X,meningkatkan alamat
memori dan menurunya C sampai C = 0.
Ketika C=0,DMA interrupts CPU dengan memberitahu bahwa tranfer tela
dilakukan.
Gambar 11.6 Interleaving
11.4.3 Cara mengimplementasikan DMA
Dalam pelaksanaanya beberapa komputer menggunakan memori fisik
untuk proses DMA,sedangkan jenis komputer lain menggunakan
DVMA(Dirrect Virtual Memory Address) yang merupakan alamat
memori virtual menjadi alamat memori fisik.Keuntungan dari DVMA
adalah dapat mendukung transfer antara dua memory mapped device
tanpa intervensi CPU.
11.5 INTERFACE APLIKASI I/O
Interface aplikasi I/O melibatkan abstraksi,enkapsulasi dan
software layering.Adanya device driver pada masin-masing peralatan
I/O berfungsi untuk enkapsulasi perbedaan-perbedaan yang ada dari
masing-masing anggota kelas –kelas yang umum tadi.
Tujuan dari adanya lapisan device driver ini adalah untuk
menyembunyikan perbedaan-perbedaan Yng ada pada device
controller dari subsistem I/O pada kernel.
11.5.1 Peralatan Block dan Karakter
Peralatan block diharapkan dapat memenuhi kebutuhan akses pada
berbagai macam disk drive dan juga block lainya.
Keyboard adalah salah satu contoh alat yang dapat mengakases stream
karakter.System call dasar inteface ini dapat membuat sebuah aplikasi
mengerti tentang bagaimana cara mengambil dan menuliskan sebuah
karakter.
11.5.2 Peralatan Jaringan
Karena adanya perbedaan dalam kinerja dan pengalamatan dari jaringan
I/O , maka biasanya sistem operasi memiliki interface I/O yang
berbeda dari baca,tulis dan pencarian pada disk.Dan salah satu yang
banyak digunakan adalah interface socket .
Socket berfungsi untuk menghubungkan komputer ke jaringan.System
call pada socket interface dapat memudahkan suatu aplikasi untuk
membuat local socket dan menghubungkanya ke remote socket.
11.5.3 Jam Timer
Adanya jam dan timer pada suatu hard ware komputer ,stidaknya
memiliki 3 fungsi:
1. Memberi informasi waktu saat ini
2. Memberi informasi lamanya sebuah proses
3. Sebagai trigger untuk suatu operasi pada suatu waktu
Contoh penerapanya ada pada schduler ,yang akan melakukan interupsi
yang akan memberikan suatu proses akhir dari bagian waktunya.
11.5.4 Blocking dan Nonblocking
Ketika suatu aplikasi menggunakan sebuah blocking system call,eksekusi
aplikasi itu akan diberhentikan untuk sementara.Aplikasi tersebut akan
dipindahakan ke wait queue.
11.6 Kernel I/O Subsystem
kernel merupakan komponen inti dari Sistem Operasi yang berjalan
dalam perangkat tersebut. Kernel bertugas untuk mengatur
pembagian sumber daya sistem; komunikasi antara komponen
hardware dan software.Kernel menghubungkan antara software
aplikasi dan hardware komputer.
Ia menyediakan abstraction layer pada level terendah untuk
resource resource seperti memori, prosesor dan perangkat I/O di
mana suatu software aplikasi harus mengontrol resource-resource
tersebut agar dapat berfungsi. Kernel mampu menyediakan
fasilitas seperti ini bagi proses-proses aplikasi.
Gambar 11.7 Kernel I/O subsystem
11.6.1 I/O Schduling
Untuk menjadwalkan sebuah set permintaan I/Okita harus
menentukan urutan yang bagus untuk mengeksekusi permintaan
tersebut. Scheduling dapat meningkatkan kemampuan sistem secara
keseluruhan ,dapat membagi device secara rata diantara prosesproses,dan dapat mengurangi waktu tunggu rata-rata untuk
menyelesaiakan I/O .
Satu cara untuk meningkatkan efisiensi I/O subsistem dari sebuah
komputer adalah dengan mengatur sebuah komputer adalah dengan
mengatur operasi I/O.
11.6.2Buffering
Buffer adalah area memori yang menyimpan data ketika mereka
sedang dipindahkan antara 2 device atau antara device dan aplikasi.
 Ada 3 alasan untuk melakukan Buffering
1. Untuk menyesuaikan dengan kesalahan yang terjadi karena
perbedaan kecepatan antara produsen dengan konsumen dari sebuah
stream data.
contoh :sebuah file yang sedang diterima oleh melalui modem dan
ditunjukkan ke media penyimpanan dihard disk.Buffer dibuat
didalam memori utama untuk mengumpulkan jumlah byte yang
diterima modem,Ketika keseluruhan data buffer tersebut dapat
ditulis ke disk dengan operasi tunggal.
Gambar 11.8
2. Alasan kedua dari buffering adalah untuk menyesuaikan devicedevice yang mempunyai perbedaan dalam ukuran transfer data.
Hal ini sangat umum terjadi pada jaringan komputer,dimana buffer
dipakai secara luas untuk fragmentasi dan pengaturan kembalikembali pesan yang diterima.
3. Alasan ketiga buffering adalah untuk mendukung copy semantics
untuk a[likasi I/O.Sebauh contoh jika ada sebuah aplikasi yang
mempunyai buffer data yang ingin dituliskan kedisk,aplikasi
tersebut akan memanggil sistem penulisan menyediakan pointer ke
buffer,dan sebuah integer untuk menunujukan ukuranbytes yang
ingin ditulis.Sebuah cara sederhana agar sistem operasi menjamin
copy semantics adalah membiarakn sistem penulisan untuk
mengkopi data aplikasi ke dalam buffer kernel sebelum
mengembalikan kontrol kepada aplikasi.
Perbedaan tidak
menggunakan buffer , satu buffer,dua buffer dan
banyak buffer terletak dari kecepatan trasfer dan siklus antrian.
Tanpa buffer
:
jumlah
waktu
setiap
block
:T+C
Input
: tidak bisa membaca proses block sebelumnya.
Output
: Proses tidak bisa melakukan komputasi sampai yang antri
untuk output selesai.
 Satu buffer : Dengan menggunakan buffer,sistem operasi bisa
membaca ahead,pada sistem sat buffer dibagi menjadi dua
bagian :
 Singel buffer
untuk input : Waktu mulai menggunakan
sistem operasi bisa membaca ahead
 Jika T>C proses menantikan ‘buffer’ untuk diisi
 Jika T<C sistem operasi menantikan “buffer’ untuk
dibebaskan.
 Singel buffer untuk output : Menggunakan aplikasi tidak
perlu untuk menggunakan sampai akhir proses ouput
 Jika T>C proses menantikan “buffer” untuk membebaskan
 Jika T<C sistem operasi menantikan “buffer’ untuk di’isi
 Dua Buffer
Menggunakan dua buffer untuk melayani proses user,keuntungan dengan
menggunakan dua buffer adalah,data dari proses bisa ditransfer dari satu
buffer ke buffer yang lain sementara sistem perasi kosong atau buffer
terisi.
 Circular Buffer
Buffer memiliki kecepatan yang berbeda,lebih dari dua buffer
mungkin saja bisa digunakan.
11.6.3 Cashing
Sebuah cache adalah daerah memori yang cepat yang berisikan data
kopian.Akses sebuah kopian yang di-cached lebih efisien daripada
akses ke data asli.
Sebagai contoh ,instruksi-instruksi
dari proses yang sedang
dijalankan disimpan kedalam disk ,dan tercached didalam memory
physical,dsn kemudian dicopy lagi ke dalam cache secondary dan
prymary dari CPU.
11.6.4 Spooling dan Reservansi Device
Sebuah spool adalah sebuah buffer yang menyimpan output untuk
sebuah device printer ,seperti printer,yang tidak dapat menerima
interleaved data streams.Walaupun printer hanya dapat melayani
satu pekerjaan pada waktu yang sama,Beberapa aplikasi dapat
meminta printer untuk mencetak ,tanpa harus mendapatkan output
mereka tercetak secara bercampur.salah satu cara untuk mengatasi
masalah ini adalah spooling. Dan cara yang lain adalah dengan
membagi koordinasi untuk multiple concurrent .
11.6.6 Kernel Data Structure
Kernel membutuhkan informasi state tentang penggunaan komponen
I/O.Kernel menggunakan banyak struktur yang mirip untuk melacak
koneksi jaringan ,komunikasi karakter device ,dan aktivitas I/O
lainya. Kernel menjaga status informasi dari komponen I/O termasuk
open file tables, koneksi network, status character device.
Banyak struktur data yang kompleks untuk track buffer, alokasi
memori, dan blok kotor. Penggunaan metode object-oriented
methods dan message passing untuk implementasi I/O.
UNIX menyediakan akses sistem file untuk beberapa entity,seperti
file user,raw device dan alamat proses.Walaupun tiap entity ini
didukung sebuah operasi baca ,semantiknya berbeda untuk tiap
entity.Misal untuk membaca file user ,kernel perlu memeriksa buffer
cache sebelum memutuskan apakah akan melaksanakan I/O disk.
11.7 Penanganan Permintaan I/O
Sistem operasi yang modern mendapatkan fleksibilitas yang
signifikan dari tahap-tahapan
tabel lookup di jalur diantara
permintaan dan physical device controler.Kita dapat mengenalkan
device dan driver baru ke komputer tanpa harus meng compile ulang
kernelnya.
Unix sistem V mempunyai mekanisme yang menarik,yang disebut
streams,yang membolehkan aplikasi untuk mengassemble pipeline dari
kode driver secara dinamis.
Sebuah Stream adalah sebuah koneksi full duplex antara sebuah
device driver dan sebuah proser user level.
Stream terdiri atas :
 Sebuah stream head yang merupakan antarmuka dengan user
process.
 Sebuah driver end yang mengontrol device
 Dan nol atau lebih stream modules diantara mereka.
1.
2.
3.
4.
5.
Berikut dideskripsikan sebuah lifecycle yang tipikal dari sebuah
permintaan pembacaan blok :
Sebuah proses mengeluarkan sebuah blocking read system call ke
sebuah file deskriptor dari berkas yang telah dibuka sebelumnya.
Kode sistem call di kernel mengecek parameter untuk
kebenaran,Dalam kasus input jika data telah siap di buffer cache
,data akan dikembalikan ke proses dan permintaan I/O diselesaiakan.
Jika data tidak berada dalam buffer cache ,sebuah phisycal I/O
akan bekerja,sehingga proses akan dikeluarkan dari antrian jalan(run
queue) dan diletakakan diantrian tunggu(wait queue) untuk alat,dan
permintaan I/O dijadwalkan.
Device driver mengalokasikan ruang buffer pada kernel untuk
menerima data dan menjadwalkan I/O.Pada akhirnya ,driver
mengirim perintah ke device controller dengan menulis ke register
device control.
Device controller menoperasikan peranti keras device untuk
melakukan transfer data.
6. Driver dapat menerima status dan data ,atau dapat menyiapkan
transfer DMA ke memori Kernel.
7. Interupt handler yang sesuai menerima interupsi melalui tabel
vektor
interupsi,menyimpan
sejumlah
data
yang
dibutuhkan,menandai device dan kembali dari interupsi.
8. Kernel mentransfer data atau mengembalikan kode ke ruang alamat
dari proses permintaan dan memindahkan proses dari antrian
tunggu kembali ke antrian siap.
9. Kernel mentransfer data atau mengembalikan kode ke ruang
alamat dari proses permintaan dan memindahkan proses dari
antrian tunggu kembali ke antrian siap.
10. Proses tidak diblok ketika dipindahkan ke antrian siap.Ketika
penjadwal (scheduler) mengembalikan proses ke CPU,proses
meneruskan eksekusi pada penyelesaian dari system call.
11.8 Kinerja I/O
Kinerja I/O memberikan pengaruh sangat besar dalam sebuah
sistem komputer.Oleh karena itu,diperlukan cara meningkatkan
kinerja dari I/O.
11.8.1 Pengaruh I/O pada kinerja
I/O sangat berpengaruh pada kinerja sebuah sistem komputer.Hal ini
dikarenakan I/O sangat menyita CPU dalam pengeksekusian device
driver dan penjadwalan proses,demikian sehingga alih konteks yang
dihasilkan membebani CPU dan cache perangkat keras.Selain itu,I/O
juga memenuhi bus memori saat meng-copy data antara controller dan
physical memori,seta buffer pada kernel dan aplication space
data.Karena besarnya pengaruh I/O pada kinerja komputer inilah
maka bidang pengembangan arsitektur komputer sangat
memperhatikan masalah-masalah yang telah disebutkan di atas.
11.8.2 Cara meningkatkan Efisiensi I/O
Berikut ini cara-cara untuk meningkatkan efisiensi I/O:
1. Menurunkan jumlah alih konteks.
2. Mengurangi jumlah pengkopian data ke memori ketika sedang
dikirimkan antara device dan aplikasi.
3. Mengurangi frekuensi interupsi,dengan menggunakan ukuran
transfer yang besar ,smart controller,dan polling.
4. Meningkatkan concurrency dengan controller stsu channel yang
mendukung DMA.
5. Memindahkan kegiatan processing ke perangkat keras,sehingga
operasi pada device controller dapat berlangsung bersamaan dengan
CPU.
6. Menyeimbang antara kinerja CPU,Memory Subsystem,bus dan I/O.
11.8.3 Impelementasi Fungsi I/O
Pada dasarnya kita mengimplementasikan algoritma I/O pada level
apliakasi.Hal ini dikarenakan kode aplikasi sangat fleksibel ,dan bugs
aplikasi tidak mudah menyebabkan sebuah sistem crash.Lebih lanjut
,dengan mengembangkan kode pada level aplikasi,kita akan
menghindari kebutuhan untuk reboot atau reload device driver
setiap kali kita mengubah kode.Implementasi pada level apikasi juga
bisa sangat tidak efisien.Tetapi karena overhead dari alih konteks
dan karena aplikasi tidak bisa mengambil keuntungan dari struktur
data kernel internal dan funsionalitas dari kernel (misalnya,efisiensi
dari kernel messanging,threading dan locking).
Contohnya adalah, Raid controller pada perangkat keras tidak akan
menyediakan sebuah efek pad kernel untuk mempengaruhi urutan
lokasi dari individividual block reads dan write,meskipun kernel
tersebut mempunyai informasi yang spesial mengenai workload yang
dapat mengaktifkan kernel untuk meningkatkan kinerja I/O.
Sekian
DAN
TERIMA KASIH