Anda di halaman 1dari 20

MAKALAH

SINKRONISASI DATA DAN DEADLOCK

DISUSUN OLEH :
2004411676 BUDIMAN
2004411398 RIKI PAEWANG
2004411132 NIRMALASARI
1604411296 ARAFATH

PROGRAM STUDI INFORMATIKA


FAKULTAS TEKNIK KOMPUTER
UNIVERSITAS COKROAMINOTO
PALOPO
2022

i
KATA PENGANTAR
Segala puji syukur kami panjatkan kehadirat Allah SWT yang telah
melimpahkan segala rahmat dan karunia-Nya, tidak lupa kami ucapkan banyak
terimakasih kepada Ibu Ruhamah, S.Kom., M.Kom. Selaku dosen Sistem Operasi
Komputer. Sehingga kami dapat menye NBlesaikan Makalah yang berjudul “
SINKRONISASI DATA DAN DEADLOCK “ ini yang merupakan salah satu
syarat untuk memenuhi nilai dari mata kuliah Sistem Operasi.
Dalam makalah ini membahas tentang Sinkronisasi data dan Deadlock, Jika
Makalah ini masih kurang lengkap, kami selaku penyusun telah berusaha sebaik
mungkin untuk menysun makalah ini agar dapat dimengerti dan dipahami dan
kami memerlukan kritik dan saran agar dapat meningkatkan makalah kami.
Semoga Allah SWT selalu memberikan petunjuk kepada kita dalam pembentukan
generasi yang maju. Akhir kata kami ucapkan terima kasih

ii
DAFTAR ISI
SAMPUL..................................................................................................................i
KATA PENGANTAR.............................................................................................ii
DAFTAR ISI..........................................................................................................iii
BAB 1 PENDAHULUAN.......................................................................................1
A. Latar Belakang...............................................................................................1
B. Rumusan Masalah..........................................................................................1
B. Tujuan............................................................................................................2
BAB II PEMBAHASAN.........................................................................................3
A. Sinkroniasi Data............................................................................................3
B. Masalah critical section.................................................................................3
C. Prasyarat Solusi Critical Section...................................................................4
D. Deadlock.....................................................................................................10
E. Karakteristik Deadlock...............................................................................10
F. Metode untuk Menangani Deadlock...........................................................11
G. Pencegahan Deadlock..................................................................................12
BAB III PENUTUP...............................................................................................16
A. Kesimpulan.................................................................................................16
B. Saran............................................................................................................16
DAFTAR PUSTAKA............................................................................................17

iii
BAB 1
PENDAHULUA
N

A. Latar Belakang
Sistem operasi adalah seperangkat program yang mengelola sumber daya
perangkat keras komputer atau hardware, dan menyediakan layanan umum
untuk aplikasi perangkat lunak. Sistem operasi adalah jenis yang paling
penting dari perangkat lunak dalam sistem komputer. Tanpa sistem operasi,
pengguna tidak dapat menjalankan program aplikasi pada komputer mereka,
kecuali program aplikasi booting.
Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan
keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara
antara program aplikasi dan perangkat keras komputer, meskipun kode
aplikasi biasanya dieksekusi langsung oleh perangkat keras dan seringkali
akan menghubungi OS atau terputus oleh itu. Sistem operasi yang ditemukan
pada hampir semua perangkat yang berisi komputer-dari ponsel dan konsol
permainan video untuk superkomputer dan server web.
Sistem Operasi yang ada pada jaman sekarang ini semakin banyak,
canggih dan tentu saja semakin berkembang. Meskipun Sistem Operasi yang
digunakan pada masa sekarang ini kebanyakan menggunakan Windows,
bukan berarti Sistem Operasi yang lain mati ( tidak ada atau punah ). Sebagai
contoh, masih ada Sistem Operasi yaitu Linux. 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.
B. Rumusan Masalah
1. Apa pengertian Singkonisasi Data?
2. Apa masalah critical section?

1
3. Bagaimana sinkronisasi hardware?
4. Bagaimana singkorinasisi software?
5. Apa pengertian Deadlock?
6. Bagaimana karakteristik deadlock?
7. Bagaimana penanganan deadlock?
8. Bagaimana pencegahan deadlock?

B. Tujuan
1. Mengetahui Sinkronisasi dan Deadlock
2. Mengetahui masalah critical section
3. Mengetahui Sinkronisasi Hardware
4. Mengetahui sinkronisasi software
5. Mengetahui semaphore
6. Mengetahui Masalah Masalah Klasik dalam Sinkronisasi
7. Mengetahui deadlock
8. Mengetahui Karakterisktik deadlock
9. Mengetahui Metode Penanganan deadlock
10. Mengetahui pencegahan deadlock

2
BAB II
PEMBAHASAN
A. Sinkroniasi Data

Definisi sinkronisasi adalah suatu proses dimana proses tersebut saling


bersamaan dan saling berbagi data bersama yang mengakibatkan race
condition atau lebih dikenal dengan inkonsistensi data.
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.

Sebab dan Menanggulangi:


Akses - akses yang dilakukan secara bersama-sama ke data yang sama, dapat
menyebabkan data menjadi tidak konsisten
Untuk menjaga agar data tetap konsisten, dibutuhkan mekanisme-mekanisme
untuk memastikan pemintaan ekseskusi dari proses yang bekerja.
Race Condition: Situasi dimana beberapa proses mengakses dan
memanipulasi data secara bersamaan. Nilai terakhir dari data bergantung dari
proses mana yang selesai terakhir
Untuk menghindari Race Condition, proses-proses secara bersamaan harus
disinkronisasikan.

B. Masalah critical section


Critical section adalah segmen kode yang mengakses data yang digunakan
proses secara bersama sama 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.

3
C. Prasyarat Solusi Critical Section
1. Mutual Exclusion. Mutual Exclusion merupakan sebuah jalan yang
menjamin jika sebuah proses sedang menggunakan variabel atau berkas
yang digunakan bersama-sama, proses lain akan dikeluarkan dari
pekerjaan yang sama. Misal proses Pi sedang menjalankan critical
section (dari proses Pi), maka tidak ada proses-proses lain yang dapat
menjalankan critical section dari prosesproses tersebut. Dengan kata lain,
tidak ada dua proses yang berada di critical section pada saat yang
bersamaan.

a. do {

i. entry section
ii. critical section
iii. exit section
iv. remainder section
b. } 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 prosesproses 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).

4
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).
Masalah sinkronisasi Software (perangkat lunak)
Solusi perangkat lunak (Software) Dengan menggunakan algoritma-
alogoritma yang nilai kebenarannya tidak tergantung pada asumsi-asumsi
lain, selain itu setiap proses berjalan pada kecepatan yang bukan nol.
Masalah sinkronisasi hardware (perangkat keras)
Seperti yang telah kita ketahui bahwa, sinkronisasi haruslah mutual
exclusive, atau dengan kata lain, harus ada satu atau sekelompok
instruksi yang tidak dapat diberhentikan pada waktu eksekusi (sifat
mutual exclusive). Jadi, solusi untuk sinkronisasi dengan cara pendekatan
hardware lebih menekankan kepada usaha-usaha untuk membuat suatu
atau sekelompok instruksi menjadi mutual exclusive.
Pendekatan dari sisi Hardware dapat dibagi menjadi dua:
1. Processor Synchronous
2. Memory Synchronous

Processor Synchronous
Central Processing Unit, CPU, mempunyai suatu mekanisme
yang dinamakan interrupt. Di dalam sistim operasi, mekanisme ini
digunakan secara intensif, atau dengan kata lain, banyak konsep-konsep
sistim operasi yang menggunakan mekanisme ini. Sebagai contoh :
system call, process scheduling, dsb.
Berbicara mengenai sinkronisasi berarti kita mengasumsikan
bahwa akan ada 2 atau lebih proses yang sedang berjalan di komputer
secara concurrent, atau dengan kata lain konsep time-shared sudah
diimplementasikan di sistim operasi.

5
Sistim time-shared yang sering diimplementasikan dengan
algoritma RR (Round Robin), memanfaatkan mekanisme interrupt di
CPU. Jadi di dalam RR ada suatu satuan waktu yg dinamakan quantum
yang mana setiap quantum dibatasi oleh satu software interrupt.
Teknisnya, akan ada suatu interrupt - yang biasanya adalah timer
interrupt - yang secara berkala akan menginterrupt sistim. Pada saat
interrupt dilakukan sistim operasi akan segera melakukan proses
pergantian dari proses yang satu ke proses yang lainnya sesuai dengan
algoritma.
Seperti yang telah dikatakan di atas, isu yang ada di sini adalah,
ada satu atau sekelompok instruksi yang tidak dapat diberhentikan
sampai satu atau sekelompok instruksi tersebut selesai.
Adalah sangat jelas bahwa yang membuat suatu instruksi diberhentikan
adalah mekanisme yang di sistim operasi (baca mengenai process
scheduling ). Mekanisme ini sangat bergantung kepada mekanisme
interrupt dari hardware. Jadi, jika kita dapat menon-aktifkan interrupt
pada saat critical section tersebut, maka masalah sinkronisasi dapat
terselesaikan.
Ternyata para designer komputer melihat celah ini, dan sekarang
ini sudah hampir semua komputer yang ada telah mengimplementasi
instruksi mesin yang mana instruksi ini akan menon-aktifkan serfis
interrupt, dan ada instruksi yang lain yang akan mengaktifkan interrupt
tersebut.
Pada baris ke 0, prosesor akan menon-aktifkan interrupt,
instruksi-instruksi selanjutnya tidak akan diganggu oleh interrupt.
Selanjut setelah keluar dari critical section, pada baris 3, prosesor akan
mengaktifkan kembali interrupt sehingga mekanisme scheduling di sistim
operasi dapat berjalan kembali.

Bila kita melihat dari yang di atas, terlihat bahwa dengan


mekanisme ini saja sudah cukup mengatasi isu yang ada. Tetapi ternyata
mekanisme ini tidak terlalu berhasil di dalam lingkungan multiprocessor.
Jikalau kita menon-aktifkan interrupt, maka yang dinon-aktifkan hanya
satu prosesor, hal ini dapat mengakibatkan hal - hal yang tidak
diinginkan.

6
Memory Synchronous

Dilihat dari nama mekanismenya, maka kita sudah dapat


memprediksi bahwa mekanisme ini akan menggunakan jasa memori.
Memang hal tersebut benar, mekanisme memory synchronous memakai
suatu nilai yang disimpan di memori, dan jikalau suatu proses berhasil
mengubah nilai ini, maka proses ini akan meneruskan ke instruksi
selanjutnya, jika tidak, maka proses ini akan berusaha terus untuk dapat
mengubahnya.

Jika dilihat dari paragraf di atas, mekanisme ini lebih cocok


dikategorikan sebagai pendekatan dari software. Tetapi, jika kita
perhatikan lebih lanjut, ternyata mekanisme ini memerlukan jasa
hardware. Syarat yang harus dipenuhi agar mekanisme ini dapat berjalan
adalah perlunya hardware mempunyai kemampuan untuk membuat suatu
instruksi dijalankan secara atomic. Pengertian dari instruksi atomic
adalah satu atau sekelompok instruksi yang tidak dapat diberhentikan
sampai instruksi tsb selesai. Detil mengenai hal ini akan dibicarakan di
bagian - bagian selanjutnya.

Method testAndSet haruslah bersifat atomic , sehingga method ini


dianggap sebagai satu instruksi mesin. Perhatikan pada baris 56 dimana
method ini dipakai. Pada baris ini proses berusaha untuk mengubah nilai
dari variable reference lock. Jikalau ia tidak berhasil maka akan terus
mencoba, tapi jika berhasil maka proses akan masuk ke bagian kritis dan
setelah ini proses akan mengubah nilai dari lock sehingga memberikan
kemungkinan proses lain untuk masuk.

Janganlah bingung dengan lock, boolean [], yang terkesan aneh.


Hal ini bukanlah bagian dari sinkronisasi tetapi hanyalah suatu bagian
dari konsep pass-by-reference dan pass-by-value dari Javatm, untuk lebih
lanjut mengenai konsep ini dapat dibaca buku - buku programming
javatm. Satu catatan di sini adalah, contoh ini hanyalah sebuah ilustrasi
dan tidak dapat dicompile dan dijalankan, karena Javatm konsep atomic
instruction di Javatm bersifat transparan dari sisi programmer (akan
dijelaskan pada bagian-bagian selanjutnya).

Keunggulan dari memory synchronous adalah pada lingkungan


multiprocessor, semua processor akan terkena dampak ini. Jadi semua
proses yang berada di processor, yang ingin mengakses critical section,
meskipun berada di processor yang berbeda - beda, akan berusaha untuk
mengubah nilai yang dimaksud. Sehingga semua processor akan
tersinkronisasi.

7
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.

Semaphore mempunyai dua sifat, yaitu:

Semaphore dapat diinisialisasi dengan nilai non-negatif.


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, tak dapat diinterupsi sebelaum
diselesaikan.Emnurunkan nilai, memeriksa nilai, menempatkan proses
pada antrian dan memblocked sebagai instruksi tunggal. Sejak dimulai,
tak ada proses alain yang dapat mengakses semaphore sampai operasi
selesai atau diblocked.

● Operasi up

Operasi Up menakkan nilai semaphore. Jika satu proses atau lebih


diblocked pada semaphore itu tak 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 penelesaian mutual exclusion mempunyai bagan
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.

8
Masalah Masalah Klasik Dalam Sinkronisasi

Problem Klasik pada Sinkronisasi Ada tiga hal yang selalu


menjadi masalah pada proses sinkronisasi:

1. Problem Bounded buffer


2. Problem Reades and Writer
3. Problem Dining Philosophers

Problem Bounded buffer

Bounded buffer merupakan suatu struktur data yang mampu


untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika
diperlukan . Jika dianalogikan bounded buffer ini akan mirip dengan
sebuah tumpukan piring. Kita menaruh piring dan menaruh lagi sebuah
piring, ketika ingin mengambil piring maka tumpukan yang paling atas
yang akan terambil.Jadi piring terakhir yang dimasukan akan pertama
kali diambil.

Solusi Bounded – Buffer : Solusi Shared Memory untuk


Bounded–Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu
waktu tertentu.

Problem Reades and Writer

Problem lain yang terkenal adalah readers-writer problem yang


memodelkan proses yang mengakses database. Sebagai contoh sebuah
sistem pemesanan sebuah perusahaan penerbangan, dimana banyak
proses berkompetisi berharap untuk membaca (read) dan menulis (write).
Hal ini dapat diterima bahwa banyak proses membaca database pada saat
yang sama, tetapi jika suatu proses sedang menulis database, tidak boleh
ada proses lain yang mengakses database tersebut, termasuk membaca
database tersebut.

Solusi Readers and Writers Problem,Pembaca di prioritaskan


Reader tidak akan menunggu reader(s) lain yang sedang membaca,
walaupun ada writer yang sedang menunggu. Dengan katalain, 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.,Kedua jenis proses mempunyai prioritas yang sama. Tidak ada
prioritas khusus yang diberikan kepada kedua jenis proses.

9
Problem Dining Philosophers

Pada tahun 1965, Djikstra menyelesaikan sebuah masalah


sinkronisasi yang beliau sebut dengan dining philisophers problem.
Dining philosophers dapat diuraikan sebagai berikut: Lima orang filosuf
duduk mengelilingi sebuah meja bundar. Masing-masing filosof
mempunyai sepiring spageti. Spageti-spageti tersebut sangat licin dan
membutuhkan dua garpu untuk memakannya. Diantara sepiring spageti
terdapat satu garpu. Kehidupan para filosof terdiri dari dua periode, yaitu
makan atau berpikir. Ketika seorang filosof lapar, dia berusaha untuk
mendapatkan garpu kiri dan garpu kanan sekaligus. Jika sukses dalam
mengambil dua garpu, filosof tersebut makan untuk sementara waktu,
kemudian meletakkan kedua garpu dan melanjutkan berpikir. Pertanyaan
kuncinya adalah, dapatkah anda menulis program untuk masing-masing
filosof yang melakukan apa yang harus mereka lakukan dan tidak pernah
mengalami kebuntuan. Prosedur take-fork menunggu sampai garpu-garpu
yang sesuai didapatkan dan kemudian menggunakannya. Sayangnya dari
solusi ini ternyata salah. Seharusnya lima orang filosof mengambil garpu
kirinya secara bersamaan. Tidak akan mungkin mereka mengambil garpu
kanan mereka, dan akan terjadi deadlock.

D. Deadlock
Deadlock secara harfiah adalah kebuntuan, Di dalam sistem operasi
berarti suatu kondisi di mana sekumpulan proses tidak dapat berjalan kembali
atau tidak adanya komunikasi antar proses. Definisi lainnya yaitu sekumpulan
proses yang terblok yang tiap proses tersebut memegang sumber daya dan
menunggu untuk mendapatkan sumber daya yang dipegang oleh proses di
dalam kumpulan tersebut.
Penyebab utama terjadinya deadlock adalah terbatasnya sumber daya
yang akan digunakan oleh proses-proses. Tiap proses berkompetisi untuk
memperebutkan sumber daya yang ada. Jadi deadlock berhubungan erat
dengan tersedianya sumber daya dari computer.
E. Karakteristik Deadlock
Menurut Coffman(1971) ada empat kondisi yang dapat menyebabkan
terjadinya deadloock. Keempat kondisi tersebut tidak dapat berdiri sendiri,
saling mendukung.
Mutual Eksklusif: hanya ada satu proses yang bisa menggunakan sumber
daya tersebut. Jika ada proses lain yang meminta sumber daya tersebut, maka

1
proses itu harus menunggu sampai sumber daya dilepaskan.
Memegang dan Menunggu: proses yang meminta sumber daya sudah
memegang sumber daya lainnya(meminta sumber daya tambahan).
Tidak ada Preemption: sumber daya yang sudah dialokasikan untuk sebuah
proses tidak bisa diminta oleh proses lain. Sumber daya hanya bisa dilepaskan
secara sukarela atau setelah proses tersebut selesai menggunakannya.
Circular Wait(menunggu berputar): kondisi seperti rantai yaitu saling
menunggu smber daya yang dipakai oleh proses yang menunggu sumber daya
tersebut.

F. Metode untuk Menangani Deadlock


Pada prinsipnya kita dapat menangani deadlock dengan beberapa cara:
Menggunakan protokol untuk pencegahan atau penghindaran deadlock,
memastikan bahwa sistem tidak akan memasuki kondisi deadlock.
Kita bisa mendeteksi terjadinya deadlock lalu memperbaiki.
Kita juga bisa mengabaikan deadlock, hal ini dilakukan pada sistem operasi
berbasis UNIX.
Untuk memastikan sistem tidak memasuki deadlock, sistem dapat
menggunakan pencegahan deadlock atau penghindaran deadlock.
Penghindaran deadlock membutuhkan informasi tentang sumber daya yang
mana yang akan suatu proses meminta dan berapa lama akan digunakan.
Dengan informasi tersebut dapat diputuskan apakah suatu proses harus
menunggu atau tidak. Hal ini disebabkan oleh keberadaan sumber daya,
apakah ia sedang digunakan oleh proses lain atau tidak. Jika sebuah sistem
tidak memastikan deadlock akan terjadi, dan juga tidak didukung dengan
pendeteksian deadlock serta pencegahannya, maka kita akan sampai pada
kondisi deadlock yang dapat berpengaruh terhadap performance system
karena sumber daya tidak dapat digunakan oleh proses sehingga proses-
proses yang lain juga terganggu. Akhirnya sistem akan berhenti dan harus
direstart.

1
G. Pencegahan Deadlock
Pencegahannya sebagai berikut:
Masalah Mutual Eksklusif, Kondisi ini tidak dapat dilarang, jika
aksesnya perlu bersifat spesial untuk satu proses,maka hal ini harus didukung
oleh kemampuan sistem operasi. Jadi diusahakan agar tidak menggunakan
kondisi spesial tersebut sehingga sedapat mungkin deadlock dapat dihindari.
Masalah Kondisi Menunggu dan Memegang Penanggulangan deadlock,
dari kondisi ini lebih baik dan menjanjikan, asalkan kita dapat memegang
sumber daya untuk menunggu sumber daya lain, kita dapat mencegah
deadlock. Caranya ialah dengan meminta semua sumber daya yang ia
butuhkan sebelum proses berjalan. Tetapi masalahnya sebagian proses tidak
mengetahui keperluannya sebelum ia berjalan. Jadi untuk mengatasi hal ini,
kita dapat menggunakan algoritma bankir. Sistem operasi atau sebuah
protokol mengatur hal ini. Hasil yang dapat terjadi adalah sumber daya lebih
harus dispesifikasikan dan kelaparan sumber daya, atau proses yang
membutuhkan sumber daya yang banyak harus menunggu sekian lama untuk
mendapatkan sumber daya yang ia butuhkan.
Masalah tidak preemption, Hal ketiga ialah jangan sampai ada
preemption pada sumberv daya yang telah dialokasikan. Untuk memastikan
hal ini, kita dapat menggunakan protocol. Jadi jika sebuah proses meminta
sumber daya yang tidak dapat ia penuhi saat itu juga, maka proses mengalami
preempted. Dengan kata lain ada sumber daya dilepaskan dan diberikan ke
proses yang menunggu, dan proses itu akan menunggu sampai kebutuhan
sumber dayanya dipenuhi. Cara lain yaitu dengan mengecek apakah sumber
daya yang dicari proses tersedia atau tidak. Jika ada maka langsung
dialokasikan tetapi jika tidak maka kita cek apakah ada proses lain yang
sedang menunggu sumber daya juga. Jika ya maka kita ambil sumber daya
dari proses yang sedang menunggu tersebut dan memberikan kepada proses
yang meminta sumber daya tersebut. Jika tidak tersedia juga maka proses
tersebut harus menunggu. Dalam menunggu beberapa dari sumber dayanya
dapat saja dipreempted jika ada proses yang memintanya. Cara ini efektif
untuk proses yang menyimpan dalam memory atau register.

1
Masalah lingkaran tunggu, Masalah ini dapat ditangani oleh sebuah
protocol yang menjaga agar sebuah proses tidak membuat lingkaran sikus
yang dapat mengakibatkan deadlock dengan cara memberikan penomoran
kepada sumber daya, dan bila suatu proses meminta sumber daya lagi maka ia
hanya dapat meminta sumber daya yang nomornya lebih tinggi dari yang ia
minta sebelumnya.
Penghindaran Deadlock
Algoritma Bankir Menurut Djikstra(1965) algoritma penjadwalan dapat
menghindari deadlock dan algoritma penjadwalan tersebut dikenal dengan
algoritma bankir. Algoritma ini dapat digambarkan, ada seorang bankir yang
akan meminjamkan kepada peminjam-peminjamnya. Setiap peminjam
memberikan batas pinjaman maksimum. Tentu saja bankir tahu bahwa
peminjam tidak akan meminjam dana maksimum secara langsung melainkan
bertahap. Bankir memprioritaskan kepada peminjam yang meminjam dana
lebih banyak, sedangkan yang lain disuruh menunggu hingga peminjam yang
lebih besar mengembalikan dananya, baru setelah itu ia meminjamkan kepada
peminjam yang lain. Jadi algoritma bankir disini mempertimbangkan apakah
permintaan proses sesuai dengan jumlah sumber daya yang ada dan sekaligus
memperkirakan jumlah sumber daya yang mungkin diminta lagi. Jangan
sampai ketika ada proses yang meminta sumber daya tetapi sumber dayanya
habis atau tidak ada lagi jika tidak maka akan terjadi deadlock.
Secara umum algoritma bankir dibagi menjadi 4 struktur data:
1. Tersedia: jumlah sumber daya yang tersedia
2. Alokasi: jumlah sumber daya yang dialokasikan untuk setiap proses.
3. Maksimum: jumlah permintaan sumber daya oleh proses
4. Kebutuhan: maksimum-alokasi(sisa sumber daya yang dibutuhkan oleh
proses setelah dikurangi dengan yang dialokasikan)
Pemulihan Deadlock
1. Terminasi Proses Abort semua proses yang deadlock Metode ini akan
mematahkan deadlock cycle, tetapi bisa saja proses-proses yang deadlock
telah dikomputasi dalam waktu yang lama dan hasil-hasil komputasi
parsial harus dibuang, sehingga ada kemungkinan harus dikomputasi

1
ulang. Abort satu proses pada satu waktu sampai deadlock tereliminir.
Metode ini sangat mungkin mendatangkan overhead, setelah setiap
proses di-abort, algoritma pendeteksian deadlock harus diminta kembali
untuk menentukan apakah masih ada proses-proses yang deadlock. Jika
terminasi parsial digunakan, kita harus menentukan proses-proses
deadlock yang mana yang harus diterminasi. Penentuan ini pada dasarnya
berkaitan dengan ekonomi. Kita harus abort proses-proses yang
terminasinya minimum cost. Sayangnya, minimum cost tidak ditentukan
satu hal. Banyak faktor yang mempengaruhi pemilihan proses,
mencakup:
Apa prioritas dari proses
a. Berapa lama proses telah mengkomputasi dan berapa lama lagi
proses akan mengkomputasi sebelum menyelesaikan tugasnya
b. Berapa banyak dan apa tipe dari sumber daya yang digunakan oleh
proses
c. Berapa sumber daya lagi yang dibutuhkan proses supaya selesai
Berapa banyak proses yang perlu diterminasi Apakah proses
interactive atau batch
Preempt Sumber Daya
Mengeliminasi deadlock menggunakan preempt sumber daya
berarti kita berturut-turut preempt beberapa sumber daya dari suatu
proses dan memberikan sumber daya ini ke proses lain sampai deadlock
cycle patah.
Pada preempt sumber daya terdapat :
Memilih korban
Seperti pada terminasi proses, kita harus menentukan sumber
daya dan proses mana yang akan dipreempt dengan minimum cost.
Faktor cost mencakup parameter-parameter seperti jumlah dari sumber
daya yang ditahan proses-proses yang deadlock dan jumlah waktu dari
proses yang telah digunakan selama eksekusinya.

1
Rollback
Jika kita preempt sebuah sumber daya dari sebuah proses, proses
tidak dapat berlanjut dengan eksekusi normal karena proses kehilangan
beberapa sumber daya yang diperlukan. Kita harus rollback proses ke
beberapa safe state dan restart dari state tersebut. Secara umum, sulit
untuk menentukan safe state. Solusi termudah adalah dengan total
rollback, abort proses, dan restart.
Starvation
Dalam sebuah sistem di mana pemilihan korban berdasar primer
pada faktor cost, dapat terjadi suatu proses tidak pernah menyelesaikan
tugasnya karena suatu sumber daya selalu di-preempt pada prose yang
sama. Kita harus memastikan bahwa sebuah proses dapat dipilih sebagai
korban hanya dengan batasan waktu tertentu. Solusi pada umumnya
adalah dengan menambahkan jumlah rollback ke dalam faktor cost.

1
BAB III
PENUTUP
A. Kesimpulan

Sinkronisasi adalah akses bebarengan untuk berbagi dua bersama dapat


mengakibatkan inkosistensi data. Pemeliharaan konsistensi data memerlukan
mekanisme untuk memastikan eksekusi dari proses kerjasama.
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.
Deadlock adalah keadaan dimana 2 atau lebih proses saling menunggu
meminta resources untuk waktu yang tidak terbatas lamanya. Analoginya
seperti pada kondisi jalan raya dimana terjadi kemacetan parah. Deadlock
adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh 2
proses. Sinkronisasi dan Deadlock dapat ditanggulangi dengan cara cara
tertentu dan dapat dicegah dalam proses proses tertentu.
B. Saran
Terima kasih sudah membaca makalah yang sudah kami buat, mohon
maaf atas kesalahan dan kekurangan makalah kami. Kami membutuhkan
kriktik dan saran agar makalah yang kami akan buat nanti bisa lebih baik lagi.

1
DAFTAR PUSTAKA
http://arifmauu.blogspot.co.id/2016/11/sinkronisasi-deadlock-pada-sistem.html.
http://www.erllang.ga/teknik-informatika/makalah-sinkronisasi-data-dan
deadlock.html
https://aanazar.wordpress.com/2012/12/26/makalah-sinkronisasi-dan-deadlock/
http://opensource.telkomspeedy.com/repo/abba/v06/Kuliah/SistemOperasi/2003/
9/produk/SistemOperasi/c43.html

Anda mungkin juga menyukai