Pengertian Buffering [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

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 masingmasing 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. Paketpaket 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.