MASALAH KLASIK SINKRONISASI

 



Pengertian :

adalah suatu proses secara bersama sama dan saling berbagi data bersama dapat mengakibatkan race condition atau inkosistensi data.

Manfaat Sinkronisasi:

sebagai penyimpanan data sementara dan non sementara agar dapat mempermudah pekerjaan. Masalah pada Sinkronisasi terdapat dari masalah lainnya, seperti Masalah Race Condition dan Critical Section.

Masalah Klasik Sinkronisasi

Bounded Buffer (Producer-Consumer)

·        Proses berbagi sebuah buffer antara produsen (meletakkan informasi ke buffer) dankonsumen (mengambil informasi dari buffer). Terdiri atas m buah produsen dan n buahkonsumen. Masalah timbul ketika produsen ingin menaruh barang yang baru tetapi buffer penuh.

 

·        Solusinya adalah membiarkan produsen istirahat (sleep) dan akan dibangunkan ketikakonsumen telah mengambil satu/lebih barang dari buffer. Jika konsumen inginmengambil barang dari buffer saat buffer kosong, maka konsumen istirahat (sleep)sampai produsen menaruh barang ke buffer dan membangunkan (wake up) consumer.

 

 

·        Solusi lainnya: buat variabel count untuk mengetahui jumlah barang di buffer. Jumlahmaksimum barang di buffer adalah N. Produser mengecek apakah nilai count samadengan nilai N. Jika benar maka produsen akan istirahat ( sleep), tetapi jika nilai tidaksama, produsen akan terus menambah barang dan menaikkan nilai count.

 

 

 

Readers and Writers

·        Problem yang memodelkan proses akses database. Banyak proses berkompetisi untukmembaca (read ) dan menulis (write). Banyak proses membaca database pada saat yangsama dibolehkan, tetapi jika ada  proses menulis database, tidak boleh ada proses lainyang mengakses database termasuk membaca database.

 

·        Solusi: misalkan reader datang dan diproses database. Saat reader diproses dan writermenunggu dibelakangnya, dan ada reader lain di belakang writer, maka reader laindibelakang writer itu justru yang akan diterima dengan segera. Sehingga tidak adasatupun reader yang menunggu baru writer boleh diproses. Selama paling tidak ada satureader yang aktif, maka reader berikutnya jika baru datang akan diterima, segera sesuaikedatangan mereka. Konsekuensinya, writer tidak akan pernah mendapatkankesempatan di database.

 

 

·        Solusi tersebut belum optimal. Sangat tidak efisien jika reader lainnya langsungmelakukan reading sebelum writers melaksanakan proses writing-nya. Jika kasus initerjadi berulang kali, writer akan mengalami starvation (kelaparan/kekuranganresource). Oleh karena itu, writer harus segera melakukan prosesnya apabila sudah ditambah di queue. Syarat baru yang dihasilkan yaitu “setiap writer yang telah masuk kedalam queue, tidak boleh dibiarkan menunggu lebih lama dari yang di butuhkan”.Syarat ini biasa disebut sebagai ‘Writer’s Preference’.

 

·        Jadi, terdapat dua variasi solusi pada masalah ini, yaitu :

1. Seorang reader tidak perlu menunggu reader lain untuk selesai hanya karena adawriter menunggu (reader memiliki prioritas lebih tinggi dibanding dengan writer).

2. Jika ada writer yang sedang menunggu, maka tidak boleh ada reader lain yang bekerja (writer memiliki prioritas yang lebih tinggi).

 

Dining Philosopher

·        Pada tahun 1965, Djikstra menyelesaikan sebuah masalah sinkronisasi yang dapatdiuraikan sebagai berikut: Lima orang filosof duduk mengelilingi meja bundar, masing-masing mempunyai sepiring sphagetti. Sphagetti tersebut sangat licin danmembutuhkan dua sumpit untuk memakannya. Diantara sepiring spageti terdapat satusumpit.


·        Kehidupan para filosof hanya makan atau berpikir. Ketika seorang filosof lapar, dia berusaha mendapatkan 2 sumpit (sumpit kiri dan sumpit kanan sekaligus). Jika berhasil,filosof makan sementara waktu, setelah selesai, ia meletakkan kedua sumpit danmelanjutkan berpikir.

 

·        Dilanjutkan dengan prosedur take-fork yaitu menunggu sumpit yang sesuai barudiambil. Sayangnya dari solusi ini ternyata salah. Lima orang filosof mengambil sumpitkirinya bersamaan. Ketika lima orang tersebut mengambil sumpit kanan mereka, makayang terjadi adalah deadlock.

 

 

·        Masalah bisa dipecahkan ketika filosof mengambil sumpit kiri, periksa apakah sumpitkanan bisa diambil. Jika sumpit kanan tidak mungkin diambil, filosof itu meletakkankembali sumpit kirinya, menunggu beberapa saat, lalu mengulangi proses yang sama.Usulan tersebut juga salah. Semua filosof dapat memulai hal tersebut secara bersamaan,mengambil sumpit kiri, melihat sumpit kanan mereka yang tidak mungkin untukdiambil, meletakkan kembali sumpit kiri mereka, menunggu, mengambil sumpit kirimereka lagi secara bersamaan, dst. Situasi ini menyebabkan program terus berjalansecara tidak terbatas tetapi tidak ada perubahan/kemajuan yang dihasilkan (starvation).

 

 

·        Beberapa perbaikan yang dapat dilakukan adalah:

1.      Max 4 filosof secara bersamaan duduk di meja makan

2.      Filosof mengambil sumpit jika kedua sumpit tersedia

3.      Penyelesaian asimetris: Filosof ganjil mengambil sumpit di kirinya barukemudian yang kanan, sementara filosof genap dengan cara sebaliknya.

 

·        Solusi :

1.      Array state dengan 3 kondisi.

2.      Kondisi: makan (eating), think (berpikir), dan lapar (hungry)

3.      Dengan kondisi demikian, jika filosof = 1, maka LEFT = 2, dan RIGHT = 3.

 

untuk prosedur seperti ini, maka array dari semaphore hungry dapat ditahan jikaLEFT atau RIGHTnya sedang eating.

The Sleeping Barber Problem

·        Barber shop terdiri dari satu orang tukang cukur, 1 buah kursi untuk cukur rambut,dan n kursi tempat tunggu antrian. Ketika tidak ada pelanggan, atau tidak ada yangsedang mengantri di kursi tunggu, maka tukang cukur akan tidur dikursi cukur.



Ketika pelanggan datang, maka pelanggan akan membangunkan tukang cukur yangsedang tertidur (sleeping barber)

 

1.    Barber :

·        Ketika customer menunggu, letakkan satu customer tsb ke kursi, lalu potongrambutnya

·        Jika sudah selesai, letakkan satu customer berikutnya

·        Jika tidak ada customer, barber tidur, sampai ada cutomer yang dating

 

2.    Customer :

·        Jika ada customer sedang potong rambut, tunggu barber, di kursi tunggu

·        Jika kursi tunggu penuh, tinggalkan toko

 

3.    Solusi untuk permasalahan ini ialah dengan menggunakan 3 buah semaphore :

·        Customer (tidak termasuk yg dikursi cukur)

·        Barber  (0 dan 1)

·        Mutex (mutual exclusion) dan menggunakan 1 variable waiting 

 


sc:

Sistem%20Operasi/OS%20SINKRONISASI%20H6%20%20(1).pdf

https://www.academia.edu/27579645/Masalah_Klasik_Sinkronisasi_di_Sistem_Operasi


Comments

Popular posts from this blog

RECOVERY DATA

VGA