MASALAH KLASIK SINKRONISASI
Sinkronisasi merupakan suatu proses secara bersama sama dan saling berbagi data bersama dapat mengakibatkan race condition atau inkosistensi data.
Masalah pada Sinkronisasi terdapat dari masalah lainnya, seperti masalah Race Condition dan Critical Section.
Pengertian Race Condition
Race Condition merupakan suatu kondisi dimana dua atau lebih proses mengakses sumber daya secara bersama sama.
Cara Menghindari Race Condition
Jika suatu proses sedang menjalankan Critical Section, maka proses lain tidak bisa masuk kedalam Critical Section tersebut.
Pengertian Critical Section
Critical Section merupakan suatu kode segmen dari proses-proses yang memungkinkan terjadinya Race Condition.
Beberapa kode dalam Critical Section sebagai berikut.
Entry Section : kode yang difungsikan untuk masuk ke dalam critical section
Critical Section : di mana kode ini hanya ada dalam satu proses yang dapat dieksekusi pada satu waktu.
Exit Section: akhir dari critical section, dan mengizinkan proses lain.
Remainder Section : kode istirahat setelah masuk ke proses critical section.
Solusi Critical Section adalah:
Mutual Exclusion : Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.)
Terjadinya Kemajuan (Progress) : Jika tidak ada proses yang sedang dieksekusi dalam critical section dan ada beberapa proses yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bias ditunda.
Adanya batas waktu tunggu (bounded waiting) : Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum permintaan itu diterima.
Critical Section dalam kernel adalah:
Interupsi merupakan pusat pada sistem operasi, yang menyediakan cara efisien bagi sistem operasi untuk berinteraksi terhadap lingkungannya. Pemrograman berbasis interupsi secara langsung didukung hampir dengan seluruh CPU modern.
Page fault merupakan exception untuk permintaan alokasi page ke memori. Dalam konteks memori maya, page fault sering disingkat fault.
Kernel code memanggil fungsi penjadwalan sendiri.
Critical Section mempunyai beberapa kode :
Entry Section : kode yang digunakan untuk masuk ke dalam critical section
Critical Section : Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu.
Exit Section: akhir dari critical section, mengizinkan proses lain.
Remainder Section : kode istirahat setelah masuk ke critical section
Masalah Klasik Sinkronisasi
1. Bounded – Buffer Problem
Bounded buffer merupakan sebuah penampung atau struktur data yang mampu untuk menyimpan sementara beberapa data dalam kapasitas yang terbatas dan mengeluarkannya kembali ketika diperlukan. Contoh permasalahan bounded-buffer adalah masalah produsen-konsumen : produsen menaruh data pada buffer. Jika buffer tersebut sudah terisi penuh, maka produsen tidak melakukan apa-apa dan menunggu sampai konsumen mengambil data dari buffer. Jika buffer tersebut kosong, maka konsumen tidak melakukan apa-apa dan menunggu sampai buffer tersebut diisi oleh produsen. Masalah yang timbul yaitu jika hanya satu proses yang boleh memasuki critical section, jadi pada satu waktu buffer hanya bisa diakses oleh satu produsen atau satu konsumen. Solusi dalam Bounded Buffer problem dapat menggunakan perangkat sinkronisasi semaphore untuk mensinkronisasi proses produsen dan konsumen.
2. Readers and Writers problem
Readers dan writers problem adalah problem yang memodelkan beberapa proses yang mengakses database yang sama dalam satu waktu sehingga dapat menyebabkan korupsi data. Data dapat berupa buffer, objek, atau file dari suatu program. Terdapat thread yang membaca dan thread yang menulis. Thread yang membaca disebut reader, sedangkan yang menulis disebut writer. Contoh permasalahan readers and writers adalah sebuah reader sedang membaca objek, kemudian sebuah writer menulis ulang objek data tersebut maka reader akan membaca data yang tidak akurat, karena ada kemungkinan data yang terbaca adalah setengah data lama dan setengah data baru. Solusi pada permasalahan ini adalah:
-Jika terdapat satu proses menulis (mengubah) basis data, proses lain tidak boleh mengakses basis data, baik membaca atau menulis. Pada masalah ini, writers memiliki prioritas yang lebih tinggi dari pada readers. Jika ada writer yang sedang menunggu, maka tidak boleh ada reader lain yang bekerja. Writer akan memblok semua proses reading oleh readers dan melakukan proses writing. Ketika proses writing selesai, maka proses reading dapat dilanjutkan kembali oleh reader.
-Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca. Writer akan ditunda pengerjaannya.
3. Dining - Philosophers Problem
Dining Philosophers Problem yang ditulis dan diselesaikan oleh Djikstra dapat diilustrasikan sebagai berikut, terdapat lima orang filsuf yang sedang duduk mengelilingi sebuah meja. Terdapat lima mangkuk mie di depan masing-masing filsuf dan satu sumpit di antara masing-masing filsuf. Para filsuf menghabiskan waktu dengan berpikir (ketika kenyang) dan makan (ketika lapar). Ketika lapar, filsuf akan mengambil dua buah sumpit (di tangan kiri dan tangan kanan) dan makan. Namun adakalanya, hanya diambil satu sumpit saja. Jika ada filsuf yang mengambil dua buah sumpit, maka dua filsuf di samping filsuf yang sedang makan harus menunggu sampai sumpit ditaruh kembali. Hal ini dapat diimplementasikan dengan wait dan signal. Permasalahannya adalah pada waktu yang sama, kelima filsuf tersebut dalam keadaan lapar, dan masing-masing mengambil sumpit yang ada di sebelah kanannya. Pada saat kelima filsuf tersebut ingin mengambil sumpit yang di sebelah kiri, sumpit tersebut telah digunakan oleh filsuf lainnya. Setiap filsuf saling menunggu filsuf lain untuk melepaskan sumpit, maka terjadilah deadlock. Solusi Dining – Philosophers Problem ada dua, yakni :
a.Solusi Waiter
Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai, filsuf berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.
b.Solusi Hierarki Resource
Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan filsuf terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap filsuf dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, satu filsuf hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, filsuf itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.
Contoh Kasus Dining – Philosophers Problem
Pada sebuah computer tentunya terdapat aplikasi-aplikasi yang dapat memudahkan kita untuk melakukan suatu pekerjaan. Namun disamping kemudahan yang diberikan, terdapat ancaman negative yang dapat aplikasi-aplikasi itu berikan pada computer kita jika kita tidak menggunakannya dengan benar. Suatu contoh ketika kita mengerjakan suatu tugas. Kita membuka dan menjalankan beberapa aplikasi secara bersamaan. Aplikasi yang kita gunakan misalnya ms. Word (membuka 6 file word sebagai sumber tugas), winamp untuk memainkan lagu, firefox untuk browsing internet, pidgin untuk sesekali chating, sementara itu aplikasi start up yang berjalan juga banyak dan RAM yang tersedia tidak begitu besar sehingga hal ini akan membuat computer menjalankan aplikasi itu terus-menerus jika kita tidak mematikannya. Hal ini akan membuat computer berjalan semakin lambat dan memungkinkan terjadinya starvation atau deadlock dalam beberapa waktu kemudian.
Video penjelasannya bisa di cek disini :
Referensi :
https://www.gurupendidikan.co.id/pengertian-sinkronisasi-sistem-operasi-lengkap/
http://lydia-wijaya-fst13.web.unair.ac.id/artikel_detail-115860-Sistem%20Operasi-Masalah%20Klasik%20Sinkronisasi.html
https://www.gurupendidikan.co.id/pengertian-sinkronisasi-sistem-operasi-lengkap/
http://lydia-wijaya-fst13.web.unair.ac.id/artikel_detail-115860-Sistem%20Operasi-Masalah%20Klasik%20Sinkronisasi.html
Komentar
Posting Komentar