Anda di halaman 1dari 5

1.

1 Pengertian Buffering
Buffer atau Buffering merupakan bagian memory yang di cadangkan di mana data secara
sementara di pertahankan menunggu kesempatan untuk melengkapi proses transfer dari device
penyimpanan atau ke lokasi memori.
Buffer adalah data area yang secara bersama di hubungkan oleh perangkat keras atau
pemrosesan program yang beroperasi dengan kecepatan yang berbeda atau dengan prioritas
yang berbeda. Buffer memungkinkan setiap perangkat atau proses beroperasi tanpa masing-
masing bergantung dengan yang lain.
Data Buffering berfungsi sebagai penampung data sementara baik dari CPU/memori maupun
dari device.
Melakukan buffer agar kecepatan device sangat beragam.
Contoh prosedurnya:
o Data dari CPU : langsung ditaruh di buffer, diberikan ke device sesuai dengan
kecepatan/daya serap device
o Data dari device : dikumpulkan dulu di buffer, setelah periode tertentu baru dikirimkan
ke CPU

1.2 Tujuan Buffering


Tujuan dari dilakukannya Buffering adalah :
 Untuk men-cope dengan kesalahan yang terjadi karena perbedaan kecepatan antara
produsen dengan konsumen dari sebuah stream data. Sebagai contoh, sebuah file
sedang diterima melalui modem dan ditujukan ke media penyimpanan di hard disk.
Kecepatan modem tersebut kira-kira hanyalah 1/1000 daripada hard disk. Jadi buffer
dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari
modem. Ketika keseluruhan data di buffer sudah sampai, buffer tersebut dapat ditulis
ke disk dengan operasi tunggal. Karena penulisan disk tidak terjadi dengan instan dan
modem masih memerlukan tempat untuk menyimpan data yang berdatangan, maka
dipakai 2 buah buffer. Setelah modem memenuhi buffer pertama, akan terjadi request
untuk menulis di disk. Modem kemudian mulai memenuhi buffer kedua sementara
buffer pertama dipakai untuk penulisan ke disk. Pada saat modem sudah memenuhi
buffer kedua, penulisan ke disk dari buffer pertama seharusnya sudah selesai, jadi
modem akan berganti kembali memenuhi buffer pertama dan buffer kedua dipakai
untuk menulis. Metode double buffering ini membuat pasangan ganda antara produsen
dan konsumen sekaligus mengurangi kebutuhan waktu di antara mereka.

 Untuk menyesuaikan device-device yang mempunyai perbedaan dalam ukuran transfer


data. Hal ini sangat umum terjadi pada jaringan komputer, dimana buffer dipakai secara
luas untuk fragmentasi dan pengaturan kembali pesan-pesan yang diterima. Pada
bagian pengirim, sebuah pesan yang besar akan dipecah ke paket-paket kecil. Paket-
paket tersebut dikirim melalui jaringan, dan penerima akan meletakkan mereka di
dalam buffer untuk disusun kembali.
 Untuk mendukung copy semantics untuk aplikasi I/O. Sebuah contoh akan
menjelaskan apa arti dari copy semantics. Jika ada sebuah aplikasi yang mempunyai
buffer data yang ingin dituliskan ke disk. Aplikasi tersebut akan memanggil sistem
penulisan, menyediakan pointer ke buffer, dan sebuah integer untuk menunjukkan
ukuran bytes yang ingin ditulis. Setelah pemanggilan tersebut, apakah yang akan
terjadi jika aplikasi tersebut merubah isi dari buffer, dengan copy semantics, keutuhan
data yang ingin ditulis sama dengan data waktu aplikasi ini memanggil sistem untuk
menulis, tidak tergantung dengan perubahan yang terjadi pada buffer. Sebuah cara
sederhana untuk sistem operasi untuk menjamin copy semantics adalah membiarkan
sistem penulisan untuk mengkopi data aplikasi ke dalam buffer kernel sebelum
mengembalikan kontrol kepada aplikasi. Jadi penulisan ke disk dilakukan pada buffer
kernel, sehingga perubahan yang terjadi pada buffer aplikasi tidak akan membawa
dampak apa-apa. Mengcopy data antara buffer kernel data aplikasi merupakan sesuatu
yang umum pada sistem operasi, kecuali overhead yang terjadi karena operasi ini
karena clean semantics. Kita dapat memperoleh efek yang sama yang lebih efisien
dengan memanfaatkan virtual-memori mapping dan proteksi copy-on-wire dengan
pintar.

1.3 Jenis – jenis Buffering


 Single Buffering
Model single-buffered menulis pixels secara langsung ke dalam memori framebuffer
yang aktif hasil parsial kemudian terlihat ini adalah terutama nyata ketika berusaha
untuk membuat animasimerupakan 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 ini 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 :

o Merumitkan sistem operasi karena harus mencatat pemberian buffer-buffer sistem


ke proses pemakai.
o 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 :

o 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.

o 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.

 Double Buffering
Teknik untuk menggambar grafik yang menunjukkan tidak ada (atau kurang) merobek
,meliuk dan artefak lainnya. 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.Peningkatanini harus dibayar
dengan peningkatan kompleksitas.
Double buffering mempunyai 2 mode alternatif, yaitu :

o Mode line at a time.


Proses pemakai tidak perlu ditunda untuk I/O kecuali proses secepatnya
mengosongkan buffer ganda.

o Mode byte at a time.


Buffer ganda tidak memberi keunggulan berarti atas buffer tunggal. Double buffering
mengikuti model producer-consumer.

 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.
1.4 Utilitas dari Buffering
Buffering merupakan teknis mulus yang berfungsi dalam permintaan I/O. Namun, dalam
jumlah buffering yang akan memungkinkan sebuah device I/O untuk tetap dalam bentuk
sebuah prses yang tak hingga ketika permintaan rata-rata dari proses lebih besar daripada
device I/O dapat dilayani. Namun, dalam sebuah lingkungan multiprogramming, ketika
terdapat sebuah variasi dari aktivitas I/O dan sebuah variasi dari proses aktivitas untuk
layanan, buffering merupakan satu pool yang dapat meningkatakan efisiensi sistem operasi
dan kinerja proses individual.

Anda mungkin juga menyukai