DISUSUN OLEH :
2004411676 BUDIMAN
2004411398 RIKI PAEWANG
2004411132 NIRMALASARI
1604411296 ARAFATH
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
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.
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.
6
Memory Synchronous
7
Semaphore
● Operasi down
● Operasi up
8
Masalah Masalah Klasik Dalam Sinkronisasi
9
Problem Dining Philosophers
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.
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
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