SINKRONISASI PROSES
Disusun Oleh :
NIM : 062030701684
Kelas : 3CE
i
KATA PENGANTAR
Puji syukur kehadirat ALLAH SWT yang telah memberikan rahmat dan hidayah-
Nya. Dengan rahmat dan hidayah-Nya, Alhamdulillah makalah ini dapat terselesaikan
dangan tepat waktu. Makalah ini saya buat untuk memenuhi tugas dari mata kuliah Sistem
Operasi.
Terima kasih juga kepada Bapak dosen Pembimbing Sistem Operasi yang telah
memberi kami arahan untuk menyelesaikan tugas pembuatan makalah ini.
Saya berharap kepada semua pihak dengan segala kritik dan saran yang bersifat
membangun, sangat kami harapkan untuk dimasa yang akan datang agar bisa
menyempurnakan makalah ini, sebab makalah ini masih banyak kekurangannya.
Penulis
Ersa Monica Sari
ii
DAFTAR ISI
KATA PENGANTAR............................................................................................................................i
DAFTAR ISI...........................................................................................................................................ii
BAB I PENDAHULUAN........................................................................................................................1
BAB II PEMBAHASAN.........................................................................................................................2
PENUTUP.............................................................................................................................................13
3.1 Kesimpulan............................................................................................................................13
DAFTARPUSTAKA……………………………………………………………………………………………………………………….14
iii
BAB I
PENDAHULUAN
1.3 TUJUAN
1. Mengetahui apa itu Sinkronisasi.
2. Mengetahui tujuan Sinkronisasi.
3. Mengetahui Masalah dalam Sinkronisasi dan solusinya.
1
BAB II
PEMBAHASAN
Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi
data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan
jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di
harapkan.
1. Race Condition
2
memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut
tergantung pada proses yang terakhir selesai.
2. Critical Section
Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared
memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa
jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading
kepada shared data pada saat yang sama. Dengan kata lain kita memutuhkan mutual
exclusion, sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared
berkas, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena
proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya.
Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama
antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita
butuh 4 kondisi agar menghasilkan solusi yang baik:
3
Tidak ada dua proses secara bersamaan masuk ke dalam citical section.
Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses
lain.
Tidak ada proses yang menunggu selamamya untuk masuk critical section.
Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya
bersama diakses. Terdiri dari:
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
Mutual exclution
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.
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.
4
Cara-cara memecahkan masalah
b. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j, maka Pi dilayani
duluan, lainnya Pj dilayani duluan (if i< j, then Pi is served first; else Pj is served
first).
c. Skema penomoran selalu menghasilkan angka –angka yang disebutkan satu per
satu, yaitu 1,2,3,3,3,3,4,5….
5. Semaphore
Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua
proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana.
Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda
tertentu itu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur
penanda yang cocok untuk kebutuhan itu. Variabel khusus untuk penanda ini disebut
semaphore.
b. Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang
disampaikan Djikstra adalah operasi P dan V.
Operasi Down
Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif
maka proses yang mengeksekusinya diblocked. Operasi Down adalah atomic, tidak
5
dapat diinterupsi sebelum diselesaikan. Menurunkan nilai, memeriksa nilai,
menempatkan proses pada antrian dan memblocked sebagai instruksi tunggal.
Sejak dimulai, tidak ada proses lain yang dapat mengakses semaphore sampai
operasi selesai atau diblocked.
Operasi Up
Operasi Up menaikkan nilai semaphore. Jika satu proses atau lebih diblocked pada
semaphore itu tidak dapat menyelesaikan operasi Down, maka salah satu dipilih
oleh
system dan menyelesaikan operasi Down-nya. Urutan proses yang dipilih tidak ditentukan
oleh Djikstra, dapat dipilih secara acak. Adanya semaphore mempermudah persoalan mutual
exclusion. Skema penyelesaian mutual exclusion mempunyai bagian sebagai berikut:
Sebelum masuk critical section, proses melakukan Down. Bila berhasil maka
proses masuk ke critical section. Bila tidak berhasil maka proses di-blocked atas
semaphore itu. Proses yang diblocked akan dapat melanjutkan kembali bila proses
yang ada di critical section keluar dan melakukan opersai up sehingga menjadikan
proses yang diblocked ready dan melanjutkan sehingga opersi Down-nya berhasil.
Ada tiga hal yang selalu menjadi masalah pada proses sinkronisasi:
Solusi Shared Memory untuk Bounded – Buffer, mengijinkan (n-1) items di dalam
buffer untuk suatu waktu tertentu
6
Readers and Writers Problem adalah problem yang memodelkan proses yang
mengakses database. Masalah ini timbul ketika ada dua proses atau lebih berbagi
data yang sama. Data yang dimaksud disini bisa berbentuk buffer, file atau objek dari
suatu program.
Pembaca di Prioritaskan
Reader tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada
writer yang sedang menunggu. Dengan kata lain, 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.
Penulis di Prioritaskan
Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada
reader yang memulai untuk membaca data.sehingga Kedua Jenis Punya
Prioritas yang Sama yaitu tidak ada prioritas khusus yang diberikan kepada
kedua jenis proses.
7
7. Monitors
Solusi sinkronisasi ini dikemukakan oleh Hoare pada tahun 1974. Monitor adalah
kumpulan prosedur, variabel dan struktur data di satu modul atau paket khusus. Proses
dapat memanggil prosedur-prosedur kapan pun diinginkan. Tapi proses tidak dapat
mengakses struktur data internal dalam monitor secara langsung. Hanya lewat prosedur-
prosedur yang dideklarasikan minitor untuk mengakses struktur internal.
a. Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur dalam monitor
dan tidak oleh prosedur di luar monitor.
b. Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus
mengimplementasi ini(mutual exclusion).
c. Terdapat cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan
variabel- variabel kondisi, dengan dua operasi, yaitu Wait dan Signal.
d. Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer menemui buffer
penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk
monitor.
e. Signal: Proses membangunkan partner-nya yang sedang diblocked dengan signal pada
variabel kondisi yang sedang ditunggu partnernya.
f. Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda
proses lain.
g. Versi Brinch Hansen: Setelah melakukan signal, proses segera keluar dari monitor.
Dengan memaksakan disiplin hanya satu proses pada satu saat yang berjalan pada monitor,
monitor menyediakan fasilitas mutual exclusion. Variabel-variabel data dalam monitor
hanya dapat diakses oleh satu proses pada satu saat. Struktur data bersama dapat dilindungi
dengan menempatkannya dalam monitor. Jika data pada monitor merepresentasikan
sumber daya,
8
Contoh Kasus Bounded – Buffer pada sinkronisasi
Pada bagian ini akan dicontohkan suatu produser konsumer. produser akan
menghasilkan suatu barang dan konsumer akan mengkonsumsi barang yang
dihasilkan oleh produser. produser dan konsumer ini akan mengakses bounded buffer
yang sama. produser setelah menghasilkan suatu barang dia akan menaruh barang itu
di bounded buffer sebaliknya konsumer ketika membutuhkan suatu barang, dia akan
mengambilkannya dari bounded buffer.
9
Contoh Kasus semaphores sinkronisasi
Keterangan:
· Mula-mula nilai s = 1, proses A, B, D, dan C berada dalam status ready; proses A dieksekusi,
nilai s berkurang menjadi 0
· Proses A selesai masuk status ready; proses B dieksekusi s menjadi -1 proses B di-
blok masuk antrian
· Proses D dieksekusi
· semSignal s menjadi 0 proses B dibebaskan dari antrian; proses D selesai masuk status
ready (mulai) lagi Urutan eksekusi: A, B, D
· Proses C dieksekusi s menjadi -1 C di-blok masuk antrian; hal yang sama
terjadi pula untuk proses A dan B diblok masuk antrian s menjadi -3
· Proses D dieksekusi lagi
10
· semSignal s menjadi -2 proses C dibebaskan Urutan eksekusi: A, B, D, C, A, B, D, C, D,
A, D, B, D, C, D, A, D, …
11
Penyelesaian Masalah Monitor dapat dianalogikan sebagai sebuah bangunan dengan tiga
buah ruangan yaitu satu buah ruangan kontrol, satu buah ruang-tunggu-masuk, satu buah
ruang-tunggu-dalam. Ketika suatu thread memasuki monitor, ia memasuki ruang-tunggu-
masuk (enter). Ketika gilirannya tiba, thread memasuki ruang kontrol (acquire), di sini thread
menyelesaikan tugasnya dengan shared resource yang berada di ruang kontrol (owning).
Jika tugas thread tersebut belum selesai tetapialokasi waktu untuknya sudah habis atau thread
tersebut menunggu pekerjaan thread lain selesai, thread melepaskan kendali atas monitor
(release) dan dipindahkan ke ruang-tunggu-dalam (waiting queue). Ketika gilirannya tiba
kembali, thread memasuki ruang kontrol lagi (acquire). Jika tugasnya selesai, ia keluar dari
monitor (release and exit)
12
PENUTUP
3.1 KESIMPULAN
Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang
bersamaan. Tujuan utama sinkronisasi adalah menghindari terjadinya inkonsistensi data
karena pengaksesan oleh beberapa proses yang berbeda (mutual exclusion) serta untuk
mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan lancar dan
terhindar dari deadlock atau starvation.
13
DAFTAR PUSTAKA
Watrianthos, R., & Purnama, I. (2018). Buku Ajar Sistem Operasi. Uwais
operasi.html
14