Sabtu, 10 Desember 2016

Ulasan1




Pada Ulasan ini saya Agung Ahmad K dan teman saya R.PB Prameshwara akan mengulas video yang berjudul “CppCon 2015: Niall Douglas “Racing The File System"” yang di unggah oleh CppCon dengan https://www.youtube.com/watch?v=uhRWMGBjlO8&app=desktop sebagai link tautannya dengan durasi 1 jam 44 detik. Video ini dipresentasikan oleh Niall Douglas mengenai File System Race.
Terdapat 2 tipe race, yaitu data race dan race condition. Keduanya sangat berhubungan karena data race memanggil race condition dan race conditionlah yang menyebabkan data race. Terdapat perbedaan utama dari keduanya yaitu, Dalam diagnosa data race dapat dilakukan otomasi clang thread sanitiser dan valgrind helgrind sementara dalam race condition dibutuhkan programmer dengan pengalaman dan skill yang cukup tinggi dalam melakukan diagnosa karena tidak terdapat cara pasti.
Filing system races sangat penting karena kebanyakan programmer menganggap file system bersifat statis dan terdapat banyak celah dalam file security. Terdapat 4 contoh filing system race. Yang pertama adalah concurrent i/o dimana thread 1 mengalami ketidakcocokan pada x dan y karena ada proses overwrite data posisi pada thread 2. Yang kedua adalah concurrent path changes dimana thread 1 mengalami ketidakcocokan pada file 1 dan file 2 karena proses rename yang terjadi di thread 2. Yang ketiga adalah deleting a directory tree dimana algoritma yang berjalan pada POSIX tidak berjalan untuk Windows sehingga dibutuhkan algoritma baru. Yang terakhir adalah time of check to time of use (TOCTTOU) dimana terjadi bypassing terhadap security pada proses writing terhadap file.
Pada pattern design pertama yaitu pilih relative path dibanding absolute paths. Berikutnya design pattern kedua adalah hindari path yang menggunakan direct-by-fd operations. Pada  pattern yang ketiga kombinasikan relative path syscall dengan inodechekingPattern selanjutnya adalah atomic renaming. Atomic renaming merupakan design pattern yang cukup terkenal yang diperuntukan untuk menghindari reader-writer visibility races. Sedangkan pattern terakhir adalah locking, yang berguna untuk mengkontrol filesystem.
Di pattern kelima ini,  terdapat 4 tipe locking dalam filesystem yang diurutkan berdasarkan performanya. Yang pertama, Exclusive lock files (paling mudah, paling portable), yang kedua byte range locks (mudah di windows dan linux, tapi sulit untuk non-linux POSIX), yang ketiga yaitu atomic append + extend deallocation, sedangkan yang terakhir adalah ordering guarantees.
Video ini membahas beberapa cara dimana system races dapat tercampur dan pattern seperti apa untuk mencegah gagalnya operasi tersebut. Lalu pengenalan Boost library AFIO yang dapat membantu para application developer. Dalam presentasinya selain pembicaraannya yang cukup jelas, kita juga dapat mengunduh presentasi yang di tampilkan di video tersebut sehinnga informasi yang didapat bisa maksimal.
GitHub Account penulis ulasan ini adalah agungak dan pbprameshwara. URL  ulasan ini adalah http://os162fasilkom.blogspot.co.id/2016/12/ulasan1.html dan URL konten youtube ulasan ini adalah https://www.youtube.com/watch?v=uhRWMGBjlO8  dan berdurasi 1 jam 44 detik. Submisi pertama dilakukan pada tanggal 10 Desember 2016 dan submisi revisi terakhir tanggal 10 Desember 2016.

Tidak ada komentar:

Posting Komentar