19 Oktober 2019

Buffer Adalah Bagian Memori Yang Berguna Untuk Media Penyimpanan Sementara


Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua perangkat atau antara perangkat dan aplikasi. Agar buffer menjadi efektif, ukuran buffer dan algoritma memindahkan data pada buffer perlu menjadi pertimbangan utama desainer buffer. Buffer adalah tempat penyimpanan yang sentral, keberadaan buffer tidak begitu banyak mempercepat kecepatan suatu proses. Istilah buffer digunakan baik dalam pemrograman dan perangkat keras. Dalam pemrograman, kata buffering memiliki arti tentang kebutuhan untuk menyaringkan data dari tempat tujuan akhir sehingga dapat di-edit atau diproses sebelum dipindahkan ke file, atau basis data. Buffer Data merupakan bagian dari memori pada perangkat komputer yang berfungsi menyediakan tempat sementara untuk data sebelum diproses. Fungsi penting lainnya adalah untuk membantu meminimalkan potensi kerusakan data pada saat diproses. Buffer adalah area data yang digunakan bersama oleh perangkat keras atau proses program yang beroperasi pada kecepatan yang berbeda atau dengan serangkaian prioritas yang berbeda. Dengan adanya buffer, dapat membantu suatu sistem yang kerepotan menggarap permintaan para pengguna. Dalam konteks tersebut buffer membantu menyusun urutan permintaan proses yang dilakukan.

Buffering dilakukan untuk tiga buah alasan. Alasan pertama adalah untuk memperbaiki kesalahan yang terjadi karena perbedaan kecepatan antara pengirim dan penerima dari sebuah stream data. Sebagai contoh, sebuah berkas diterima melalui modem dan ditujukan ke media penyimpanan di hard disk. Kecepatan modem tersebut 1/1000 dari kecepatan hard disk. Buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem. Ketika keseluruhan data di buffer sudah sampai, buffer tersebut disimpan ke disk dengan operasi tunggal. Alasan kedua buffering adalah untuk menyesuaikan perangkat-perangkat yang mempunyai perbedaan dalam ukuran transfer data. Hal ini umum terjadi pada jaringan komputer, buffer dipakai secara luas untuk fragmentasi dan pengaturan kembali pesan-pesan yang diterima. Pada pengirim, sebuah pesan yang besar dipecah-pecah menjadi paket-paket kecil. Paket-paket tersebut dikirim melalui jaringan, dan penerima menyimpan mereka di dalam buffer untuk disusun kembali. Alasan ketiga buffering adalah untuk mendukung copy semantics untuk aplikasi I/O. Jika ada sebuah aplikasi yang mempunyai buffer data yang ingin disimpan ke disk, aplikasi tersebut akan memanggil sistem penyimpanan, menyediakan pointer ke buffer, dan sebuah integer untuk menunjukkan ukuran bytes yang ingin disimpan. Dengan copy semantics, keutuhan data yang ingin disimpan sama dengan data ketika aplikasi ini memanggil sistem untuk menyimpan.

Peneliti komputer telah lama membahas keunggulan teoretis frame buffer, tetapi tidak dapat menghasilkan mesin dengan memori yang cukup dengan biaya yang ekonomis. Pada tahun 1947 komputer Manchester Baby menggunakan tabung Williams yang dibuat Williams-Kilburn untuk menyimpan 1024 bit pada memori CRT (cathode-ray tube ) dan ditampilkan pada CRT kedua. Pada 1974 Evans & Sutherland merilis frame buffer komersial pertama. Kemudian Institut Teknologi New York menciptakan sistem warna 24-bit pertama dengan menggunakan konsep frame buffer Evans & Sutherland. Pada tahun 1975 perusahaan Inggris bernama Quantel memproduksi frame buffer berwarna komersial pertama, produk tersebut diberi nama Quantel DFS 3000. Produk itu pertama kali digunakan dalam liputan TV Olimpiade Montreal pada tahun 1976. Hampir semua komputer dengan kemampuan grafis menggunakan frame buffer untuk menghasilkan sinyal video. Frame buffers menjadi populer di workstation sepanjang tahun 1980. SGI, Sun Microsystems, HP, DEC dan IBM merilis frame buffer untuk komputer workstation. Frame buffer tersebut biasanya memiliki kualitas jauh lebih baik daripada yang dapat ditemukan di sebagian besar PC. Frame buffer juga umum digunakan pada televisi, printer, pemodelan komputer dan grafik 3D.

Cache adalah daerah memori yang berisi salinan data. Akses ke sebuah salinan di cache lebih efisien daripada akses ke data yang asli. Buffer adalah daerah memori yang berguna untuk menyimpan data sementara ketika data tersebut dikirimkan antara dua perangkat atau antara sebuah perangkat dan sebuah aplikasi. Perbedaan buffer dan cache adalah buffer berisi salinan informasi data sementara, sedangkan cache berisi salinan data pada ruang penyimpanan yang dapat di-akses dengan cepat. Kadang-kadang sebuah memori dapat menjalankan fungsi buffer dan cache secara bersamaan. Sebagai contoh, sistem operasi menggunakan memori utama untuk menyimpan data yang ada di dalam disk. Buffer-buffer ini juga digunakan sebagai cache untuk meningkatkan efisiensi M/K. Spool adalah buffer yang berisi keluaran untuk sebuah perangkat, contohnya adalah pada perangkat printer. Walaupun printer hanya dapat melayani satu pekerjaan pada satu waktu, beberapa aplikasi mungkin ingin mencetak secara bersamaan tanpa tercampur. Sistem operasi menyelesaikan masalah ini dengan cara mengelola semua keluaran tersebut. Masing-masing keluaran aplikasi di-spool ke disk yang terpisah. Ketika sebuah aplikasi selesai mencetak, sistem spooling melanjutkan ke antrean berikutnya. Beberapa perangkat seperti tape drives dan printer tidak dapat mengumpulkan permintaan M/K dari banyak aplikasi secara bersamaan. Solusi-nya adalah dengan menggunakan akses perangkat secara bersamaan dengan menyediakan fasilitas spooling.

Buffering merupakan teknis yang berfungsi dalam permintaan I/O. Dalam sebuah lingkungan multiprogramming, terdapat sebuah variasi dari aktivitas I/O dan sebuah variasi dari proses aktivitas untuk layanan, buffering merupakan pool yang dapat meningkatkan efisiensi sistem operasi dan kinerja proses individual. Caching dan buffering adalah dua fungsi yang berbeda, tetapi terkadang sebuah daerah memori dapat digunakan untuk keduanya. sebagai contoh, untuk menghemat copy semantics dan membuat penjadwalan I/O menjadi lebih efisien, sistem operasi menggunakan buffer pada memori utama untuk menyimpan data. Buffer ini juga digunakan sebagai cache untuk meningkatkan efisiensi I/O untuk berkas yang digunakan secara bersama-sama oleh beberapa aplikasi, atau yang sedang dibaca dan ditulis secara berulang-ulang. Ketika kernel menerima sebuah permintaan berkas I/O, kernel tersebut mengakses buffer cache untuk melihat apakah daerah memori tersebut sudah tersedia dalam memori utama. Jika sudah tersedia, sebuah physical disk I/O dapat dihindari atau bahkan tidak dipakai. Disk penyimpanan juga terakumulasi ke dalam buffer cache selama beberapa detik, jadi transfer data yang besar akan dikumpulkan untuk jadwal penyimpanan lebih efisien.

Sebagai bagian dari proses, buffer data dapat melakukan dua tugas utama pada satu waktu. Tugas pertama adalah menyimpan data ke tempat penyimpanan sementara dari memori sekaligus sebagai persiapan atas respons permintaan pengguna. Paket data yang dikirimkan melalui jaringan tidak selalu sampai di tujuan dengan urutan paket data yang sama dengan ketika paket data tersebut dikirimkan oleh komputer pengirim. Paket-paket data yang datang secara tidak urut di tampung terlebih dahulu pada buffer, kemudian paket data yang dapat memenuhi persyaratan disatukan kembali dan diproses ke lapisan jaringan selanjutnya. Setelah sekumpulan paket data tersebut keluar dari buffer, paket data tersebut langsung dihapus sehingga dapat digunakan untuk menampung paket data selanjutnya. Tugas kedua buffer adalah membaca data dengan protokol yang telah ditentukan agar proses aliran data informasi dapat berlangsung teratur dan benar. Ketika paket data sampai pada buffer, data tersebut dibaca sehingga buffer dapat menentukan urutan dan keutuhan paket data yang diterima. Paket data yang diterima tidak selalu sesuai dengan aturan atau protokol yang telah ditentukan. Pada saat terjadi kesalahan buffer mengirimkan informasi ke lapisan jaringan yang lebih tinggi agar paket data tersebut dapat diperbaiki. Cara tersebut berhasil digunakan sebagai cara untuk mengirimkan dan menerima paket data melalui suatu jaringan.