Buffering adalah melembutkan
lonjakan-lonjakan kebutuhan pengaksesan I/O, sehingga meningkatkan
efisiensi dan kinerja sistem operasi.
Terdapat beragam cara buffering, antar lain :
A . Single buffering.
Merupakan teknik paling
sederhana. Ketika proses memberi perintah untuk perangkat I/O, sistem
operasi menyediakan buffer memori utama sistem untuk operasi.Untuk
perangkat berorientasi blok.Transfer masukan dibuat ke buffer sistem.
Ketika transfer selesai, proses memindahkan blok ke ruang pemakai dan
segera meminta blok lain. Teknik ini disebut reading ahead atau
anticipated input. Teknik ini dilakukan dengan harapan blok akan segera
diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku. Hanya di
akhir pemrosesan maka blok yang dibaca tidak diperlukan.
Keunggulan :
Pendekatan in umumnya meningkatkan kecepatan dibanding tanpa buffering. Proses pemakai dapat memproses blok data sementara blok berikutnya sedang dibaca. Sistem operasi dapat menswap keluar proses karena operasi masukan berada di memori sistem bukan memori proses pemakai.
Pendekatan in umumnya meningkatkan kecepatan dibanding tanpa buffering. Proses pemakai dapat memproses blok data sementara blok berikutnya sedang dibaca. Sistem operasi dapat menswap keluar proses karena operasi masukan berada di memori sistem bukan memori proses pemakai.
Kelemahan :
- Merumitkan sistem operasi karena harus mencatat pemberian buffer-buffer sistem ke proses pemakai.
- Logika swapping juga dipengaruhi. Jika operasi I/O melibatkan disk
Untuk swapping, maka membuat
antrian penulisan ke disk yang sama yang digunakan untuk swap out
proses. Untuk menswap proses dan melepas memori utama tidak dapat
dimulai sampai operasi I/O selesai, dimana waktu swapping ke disk tidak
bagus untuk dilaksanaka Buffering keluaran serupa buffering masukan.
Ketika data transmisi, data lebih dulu dikopi dari ruang pemakai ke
buffer sistem. Proses pengirim menjadi bebas untuk melanjutkan eksekusi
berikutnya atau di swap ke disk Jika perlu. Untuk perangkat berorientasi
aliran karakter.
Single buffering dapat diterapkan dengan dua mode, yaitu :
Mode line at a time.
Cocok untuk terminal mode
gulung (scroll terminal atau dumb terminal). Masukan pemakai adalah satu
baris per waktu dengan enter menandai akhir baris. Keluaran terminal
juga serupa, yaitu satu baris per waktu. Contoh mode ini adalah printer.
Buffer digunakan untuk menyimpan satu baris tunggal. Proses pemakai
ditunda selama masukan, menunggu kedatangan satu baris seluruhnya. Untuk
keluaran, proses pemakai menempatkan satu baris keluaran pada buffer
dan melanjutkan pemrosesan. Proses tidak perlu suspend kecuali bila
baris kedua dikirim sebelum buffer dikosongkan.
Mode byte at a time.
Operasi ini cocok untuk terminal mode form, dimana tiap ketikan adalah penting dan untuk peripheral lain seperti sensor dan pengendali.
Operasi ini cocok untuk terminal mode form, dimana tiap ketikan adalah penting dan untuk peripheral lain seperti sensor dan pengendali.
B. Double buffering.
Peningkatan dapat dibuat dengan dua
buffer sistem.Proses dapat ditransfer ke/dari satu buffer sementara
sistem operasi mengosongkan (atau mengisi) buffer lain. Teknik ini
disebut double buffering atau buffer swapping. Double buffering menjamin
proses tidak menunggu operasi I/O. Peningkatan ini harus dibayar dengan
peningkatan kompleksitas. Untuk berorientasi aliran karakter, double
buffering mempunyai 2 mode alternatif, yaitu :
Mode line at a time.
Proses pemakai tidak perlu ditunda untuk I/O kecuali proses secepatnya mengosongkan buffer ganda.
Mode byte at a time.
Buffer ganda tidak memberi keunggulan berarti atas buffer tunggal.
Double buffering mengikuti model producer-consumer.
Double buffering mengikuti model producer-consumer.
C. Circular buffering.
Seharusnya melembutkan aliran data
antara perangkat I/O dan proses. Jika kinerja proses tertentu menjadi
fokus kita, maka kita ingin agar operasi I/O mengikuti proses. Double
buffering tidak mencukupi jika proses melakukan operasi I/O yang
berturutan dengan cepat. Masalah sering dapat dihindari denga
menggunakan lebih dari dua buffer. Ketika lebih dari dua buffer yang
digunakan, kumpulan buffer itu sendiri diacu sebagai circulat buffer.
Tiap bufferindividu adalah satu unit di circular buffer.
Post a Comment