DOSEN PEMBIMBING
Muh. Rizal Samad, S.Pd., M.Pd.
DISUSUN OLEH :
Zulkarnain ( 1729342002 )
Wahyuddin ( 1729342008 )
Galang Saputra Haladi ( 1729342011 )
Ayu Lestari ( 1729342020 )
Muh. Fahmi ( 1729342022 )
Puji syukur kami panjatkan kehadirat Tuhan Yang MahaEsa atas rahmat,
karunia, serta taufik dan hidayah-Nya lah kami dapat menyelesaikan makalah ini
sebatas kemampuan kami. Dan kami juga sangat berterimakasih kepada Dosen
mata kuliah yang telah memberikan tugas ini kepada kami.
Kami berharap tugas ini dapat berguna untuk menambah pengetahuan kita
mengenai “Sinkronisasi dan Deadlock”. Kami menyadari atas kekurangan yang
terdapat didalam tugas ini. Demikian itu, kami sangat berharap adanya kritik, saran
dan usulan demi perbaikan kedepannya, mengingat tidak ada sesuatu yang
sempurna tanpa kritik yang membangun.
Kelompok II
Daftar Isi
Pendahuluan
Latar belakang
Dalam Sistem Operasi, banyak hal yang harus dipahami. Bukan sekedar
memahami bagaimana menginstall aplikasi, menghapus virus, memberikan
proteksi virus bagi laptop maupun komputer. Bukan sekedar itu saja. Didalam Mata
Kuliah Sistem Operasi ini, diajarkan mengenai manajemen memory, CPU,
beberapa Algoritma seperti FCFS ( First Come First Served ), Round Robin, SJF,
dan lain sebagainya. Sistem operasi mempunyai penjadwalan yang sistematis
mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data,
dan sumber daya lainnya.
Tujuan
PEMBAHASAN
A. Sinkronisasi
1. Pengertian Sinkronisasi
2. Tujuan Sinkronisasi
3. Perangkat Sinkronisasi
a. Instruksi Test and Set. Instruksi Atomik yang dapat digunakan untuk
menangani masalah critical section
b. Semaphore sebuah variabel yang hanya dapat diakses oleh dua buah operasi
standard yaitu increment dan decrement. Dua buah jenis Semaphore yaitu
Binary Semaphore dan Counting Semaphore. Semaphore berfungsi untuk
menangani Critical Section, Alokasi Resource, Sinkronisasi Antar Proses
c. Monitor digunakan untuk menangani masalah yang muncul karena
pemakainan semaphore. Monitor menjamin Mutual Exclusion. Untuk
menangani masalah sinkronisasi yang lebih rumit monitor menyediakan
condition variable
d. JVM ( Java Virtual Machine )mengimplementasikan monitor. Monitor JVM
bekerja dengn object locking dan method – method wait() serta notify().
Monitor JVM dapat diunakan dengan keyword synchronized.
a. Race Condition
Race condition adalah suatu kondisi dimana dua atau lebih proses mengakses
shared memory/sumber daya pada saat yang bersamaan dan hasil akhir dari data
tersebut tergantung dari proses mana yang terakhir selesai dieksekusi sehingga hasil
akhirnya terkadang tidak sesuai dengan yang dikehendaki. Kunci untuk mencegah
masalah ini dan di situasi yang lain yang melibatkan memori bersama, berkas
bersama, dan sumber daya lain yang digunakan secara bersama-sama adalah
menemukan beberapa jalan untuk mencegah lebih dari satu proses melakukan
proses tulis dan baca kepada data yang sama pada saat yang sama.
Dengan kata lain, kita membutuhkan mutual exclusion, sebuah jalan yang
menjamin jika sebuah proses sedang menggunakan variabel atau berkas yang
digunakan bersama-sama, proses lain akan dikeluarkan dari pekerjaan yang sama.
Cara untuk menghindari race condition adalah kita harus dapat menjamin bahwa
jika suatu proses sedang menjalankan critical section, maka proses lain tidak boleh
masuk ke dalam critical section tersebut.
b. Critical Section
Critical section adalah segmen kode yang mengakses data yang digunakan proses
secara bersamasama yang dapat membawa proses itu ke bahaya race condition.
Biasanya sebuah proses sibuk melakukan perhitungan internal dan hal-hal lainnya
tanpa ada bahaya yang menuju ke race condition pada sebagian besar waktu. Akan
tetapi, biasanya setiap proses memiliki segmen kode dimana proses itu dapat
mengubah variabel, meng-update suatu tabel, menulis ke suatu file, dan lain-
lainnya, yang dapat membawa proses itu ke bahaya race condition.
do {
entry section
critical section
exit section
remainder section
} while (1);
Setiap proses harus meminta izin untuk memasuki critical sectionnya. Bagian
dari kode yang mengimplementasikan izin ini disebut entry section. Akhir dari
critical section itu disebut exit section. Bagian kode selanjutnya disebut remainder
section. Dari kode di atas, dapat kita lihat bahwa untuk bisa memasuki critical
section sebuah proses harus melalui entry section.
2. Terjadi kemajuan (progress).
Jika tidak ada proses yang sedang menjalankan critical section-nya dan jika
terdapat lebih dari satu proses lain yang ingin masuk ke critical section, maka hanya
proses-proses yang tidak sedang menjalankan remainder section-nya yang dapat
berpartisipasi dalam memutuskan siapa yang berikutnya yang akan masuk ke
critical section, dan pemilihan siapa yang berhak masuk ke critical section ini tidak
dapat ditunda secara tak terbatas (sehingga tidak terjadi deadlock).
Ada batas waktu tunggu (bounded waiting). Jika seandainya ada proses yang
sedang menjalankan critical section, maka terdapat batasan waktu berapa lama
suatu proses lain harus menunggu giliran untuk mengakses critical section. Dengan
adanya batas waktu tunggu akan menjamin proses dapat mengakses ke critical
section (tidak mengalami starvation: proses seolah-olah berhenti, menunggu
request akses ke critical section diperbolehkan).
B. Deadlock
Deadlock yang mungkin dapat terjadi pada suatu proses disebabkan proses
itu menunggu suatu kejadian tertentu yang tidak akan pernah terjadi. Dua atau lebih
proses dikatakan berada dalam kondisi deadlock, bila setiap proses yang ada
menunggu suatu kejadian yang hanya dapat dilakukan oleh proses lain dalam
himpunan tersebut. Terdapat kaitan antara overhead dari mekanisme koreksi dan
manfaat dari koreksi deadlock itu sendiri. Pada beberapa kasus, overhead atau
ongkos yang harus dibayar untuk membuat sistem bebas deadlock menjadi hal yang
terlalu mahal dibandingkan jika mengabaikannya. Sementara pada kasus lain,
seperti pada real-time process control, mengizinkan deadlock akan membuat sistem
menjadi kacau dan membuat sistem tersebut tidak berguna.
1. Model Deadlock
6. Mendeteksi Deadlock
a. Terminasi Proses
Untuk memperbaiki deadlock dengan terminasi proses, dapat diguankan
salah satu dari dua metode di bawah ini :
PENUTUP
Kesimpulan
a. Mutual Exclusion
b. Hold and wait
c. Circular wait
d. No preemption
Daftar Pustaka
Maulana, arif. “Sinkronisasi dan Deadlock Pada Sistem Operasi”. 9 september 2018
http://arifmauu.blogspot.com/2016/11/sinkronisasi-deadlock-pada-sistem.html.
Sandes, Tri Mueri. “Makalah Sinkronisasi Pada Sistem Operasi”. 9 September 2018
https://guruinformatika.blogspot.com/2015/04/makalah-sinkronisasi-pada-sistem-
operasi.html