Salam Anak Nias "Ya'ahowu..!"

Selamat Datang di Blog Sederhanaku ini.

Kamis, 29 November 2012

Pengertian Buffer dan Kegunaannya

Buffer adalah sebuah daerah memori yang menyimpan data ketika data tersebut ditransfer antara dua perangkat atau antara sebuah perangkat dan sebuah aplikasi.

Buffering digunakan karena tiga alasan, antara lain:

  1. Untuk mengatasi perbedaan kecepataan antara produsen dan konsumen dari sebuah aliran data .  Sebagai contoh, sebuah berkas diterima melalui sebuah modem dan disimpan ke harddisk. Kita tahu bahwa modem itu ribuan kali lebih lambat daripada harddisk. Sehingga sebuah buffer dibuat pada memori utama untuk menampung jumlah byte yang diterima dari modem. Ketika semua data sudah sampai di buffer, buffer dapat ditulis ke disk dengan operasi tunggal. Karena penulisan ke disk tidak terjadi seketika dan modem masih membutuhkan ruang untuk menyimpan data tambahan yang masuk maka digunakanlah dua buffer. Setelah modem mengisi buffer pertama, penulisan ke disk dilakukan. Modem kemudian mulai mengisi buffer kedua sementara buffer pertama ditulis ke disk. Pada saat modem sudah mengisi buffer kedua, penulisan disk dari buffer pertama seharusnya sudah selesai sehingga modem dapat menggunakan kembali buffer pertama ketika buffer kedua melakukan penulisan ke disk. Metode ini disebut double buffering.
  2. Untuk menyesuaikan antara perangkat-perangkat yang mempunyai perbedaan ukuran transfer data .  Perbedaan ukuran transfer data ini sangat umum terjadi pada jaringan komputer dimana buffer digunakan secara luas untuk fragmentasi dan pengaturan kembali pesan-pesan. Pada bagian pengiriman, pesan yang ukurannya besar akan dipecah-pecah menjadi paket-paket kecil (fragmentasi). Paket-paket ini dikirim melalui jaringan, di ruang penerimaan, paket-paket kecil tadi diletakkan dalam buffer untuk disatukan kembali.
  3. Untuk mendukung copy semantic pada aplikasi M/K .  Sebuah contoh akan menjelaskan arti dari copy semantic. Misalkan sebuah aplikasi mempunyai buffer data yang ingin dituliskan ke disk. Aplikasi tersebut akan memanggil system call write, lalu menyediakan sebuah pointer ke buffer dan sebuah bilangan bulat (integer) yang menspesifikasikan jumlah byte yang ditulis. Setelah system call tersebut selesai, apa yang terjadi jika aplikasi mengubah isi buffer? Dengan copy semantic, versi data yang ditulis ke disk sama dengan versi data pada saat aplikasi memanggil system call write , tidak tergantung dengan perubahan apapun yang ada pada buffer. Cara sederhana sistem operasi dapat menjamin copy semantic adalah untuk system call write dengan menyalin data aplikasi ke buffer kernel sebelum mengembalikan kontrol ke aplikasi. Penulisan ke disk dilakukan dari buffer kernel sehingga perubahan yang terjadi pada buffer aplikasi tidak mempunyai efek apapun. Menyalin data antara buffer kernel dan buffer aplikasi adalah hal yang umum dalam sistem operasi, kecuali overhead yang ada pada clean semantic. Efek yang sama dapat diperoleh dengan hasil yang lebih efisien dengan penggunaan yang cermat pada pemetaan memori virtual dan perlindungan halaman copy-on-write.

0 komentar: