kata pengantar - file · web view1. theresia lulu i. k081310113003. ... gambar 3....
Post on 06-Feb-2018
217 Views
Preview:
TRANSCRIPT
Deadlock dan Sinkronisasi
Oleh ;
1. Theresia Lulu I. K 081310113003
PROGRAM STUDI D3 – SISTEM INFORMASI
DEPARTEMEN MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS AIRLANGGA
SURABAYA
2014
1
Kata Pengantar
Puji syukur saya panjatkan ke hadirat Tuhan Yang Maha Esa. Karena atas rahmat, berkat, bimbingan serta perlindungan–Nya, saya dapat menyelesaikan Laporan Teori Sistem Operasi.
Terimakasih kepada Dosen Pembimbing penulis, yaitu Badrus Zaman, S.Kom., M.Cs. yang telah memberikan Materi mengenai deadlock, sinkronisasi, dan lain sebagainya.
Di dalam pembuatan laporan ini, tidak luput dari bantuan dan dukungan orang – orang di sekitar saya. Oleh karena itu penulis berterima kasih kepada :
1. Tuhan Yang Maha Esa2. Kedua orang tua yang selalu memberikan restu3. Teman–teman D3 Sistem Informasi angkatan 2013 yang telah membantu penulis.
Saya menyadari bahwa di dalam pembuatan laporan ini terdapat kesalahan, olehkarena itu saya membutuhan kritik dan saran yang membangun agar penulis bisa menulis lebih baik lagi.
Surabaya, 21 Mei 2014
Penulis
2
Daftar Isi
Kata Pengantar......................................................................................................................................2
BAB I......................................................................................................................................................5
PENDAHULUAN.................................................................................................................................5
1.1 Latar Belakang.........................................................................................................................5
1.2 Tujuan dan Manfaat................................................................................................................6
BAB II.....................................................................................................................................................7
MATERI..............................................................................................................................................7
2.1 Deadlock..................................................................................................................................7
1. Pengertian Deadlock..............................................................................................................7
2. Ilustrasi Deadlock..................................................................................................................8
3. Penyebab Deadlock...............................................................................................................8
4. Cara Mengatasi Deadlock......................................................................................................8
Strategi Ostrich............................................................................................................................9
5. Cara Menghindari Deadlock.................................................................................................10
6. Deadlock di Linux.................................................................................................................11
2.2 Sinkronisasi............................................................................................................................12
1. Pengertian Sinkronisasi........................................................................................................12
2. Manfaat Sinkronisasi............................................................................................................12
3. Perangkat Sinkronisasi.........................................................................................................12
4. Masalah Klasik Sinkronisasi beserta Solusi...........................................................................13
5. Masalah Lain dalam Sinkronisasi..........................................................................................16
6. Semaphore...........................................................................................................................17
7. Monitors..............................................................................................................................18
BAB III..................................................................................................................................................20
KESIMPULAN DAN SARAN...............................................................................................................20
5.1 Kesimpulan............................................................................................................................20
BAB IV..................................................................................................................................................21
DAFTAR PUSTAKA............................................................................................................................21
3
Daftar Gambar
Gambar 1. Ilustrasi Deadlock 1..............................................................................................................8
Gambar 2. Ilusutrasi Deadlock 2............................................................................................................8
Gambar 3. Ilustrasi Unsafe dan Safe State...........................................................................................11
4
BAB I
PENDAHULUAN
1.1 Latar Belakang
Sistem operasi (bahasa Inggris: operating system ; OS) 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 sistem 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.
Permasalahan yang ada di dalam Sistem Operasi ada banyak sekali. Permasalahan
yang ditimbulkan pun bergantung pada memory, cara pengoperasian, dan lain sebagainya.
Akan tetapi, permasalahan yang akan dibahas disini adalah mengenai Deadlock dan
Sinkronisasi. Mengapa hanya pemaparan Deadlock dan Sinkronisasi saja ? Karena
5
mengetahui penyebab, penting, solusi, macam problem dan lain – lain dari Deadlock dan
Sinkronisasi sangat berguna. Sehingga apabila terjadi sebuah masalah atau problem di Sistem
Operasi, dapat segera ditangani dengan cara yang tepat.
1.2 Tujuan dan Manfaat
Tujuan :
- Agar mengetahui apakah yang dimaksud dengan Deadlock dan Sinkronisasi.
- Agar mengetahui macam – macam Deadlock dan Sinkronisasi
- Agar mengetahui bagaimana cara yang tepat apabila ada permasalahan Deadlock dan
Sinkronisasi
Manfaat :
- Mengetahui Deadlock dan Sinkronisasi kemudian membagi informasi mengenai hal tersebut
kepada khalayak umum.
- Mengetahui macam Deadlock dan Sinkronisasi
- Karena sudah mengetahui macam Deadlock dan Sinkronisasi, apabila terjadi masalah atau
problem klasik maupun problem yang lain, bisa menanganinya dengan tepat.
6
BAB II
MATERI
2.1 Deadlock
1. Pengertian Deadlock
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. Misalkan pada suatu
komputer terdapat dua buah program, sebuah tape drive dan sebuah printer. Program
A mengontrol tape drive, sementara program B mengontrol printer. Setelah beberapa
saat, program A memintaprinter, tapi printer masih digunakan. Berikutnya, B
meminta tape drive, sedangkan A masih mengontrol tape drive. Dua program tersebut
memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain.
Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain
memberikan sumber dayanya, tetapi tidak ada yang mengalah. Kondisi inilah yang
disebut Deadlock atau pada beberapa buku disebut Deadly Embrace
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.
7
2. Ilustrasi Deadlock
3. Penyebab Deadlock
1. Mutual Exclusion : Suatu kondisi dimana setiap sumber daya diberikan tepat pada satu
proses pada suatu waktu.
2. Hold and Wait : Kondisi yang menyatakan proses-proses yang sedang memakai suatu
sumber daya dapat meminta sumber daya yang lain.
3. Circular Waiting : Kondisi yang menyatakan bahwa adanya rantai saling meminta sumber
daya yang dimiliki oleh suatu proses oleh proses lainnya.
4. No Preemptive : Kondisi dimana suatu sumber daya yang sedang berada pada suatu
proses tidak dapat diambil secara paksa dari proses tersebut,sampai proses itu
melepaskannya.
Apabila ada salah satu dari antara 4 syarat diatas yang tidak terpenuhi,maka tidak bisa
disebut dengan Deadlock.
4. Cara Mengatasi Deadlock
Strategi untuk menghadapi deadlock dapat dibagi menjadi tiga pendekatan, yaitu:
i. Mengabaikan adanya deadlock.
ii. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode
Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi.
8
Gambar 1. Ilustrasi Deadlock 1
Gambar 2. Ilusutrasi Deadlock 2
Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, tetapi
menghentikan setiap proses yang kemungkinan mencapai deadlock.
iii. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode
yang saling mendukung, yaitu:
o Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.
o Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan
pada proses yang memintanya.
Dari penjabaran pendekatan diatas, terdapat empat metode untuk
mengatasi deadlock yang akan terjadi, yaitu:
Strategi Ostrich
Pendekatan yang paling sederhana adalah dengan menggunakan strategi burung
unta: masukkan kepala dalam pasir dan seolah-olah tidak pernah ada masalah sama
sekali. Beragam pendapat muncul berkaitan dengan strategi ini. Menurut para ahli
Matematika, cara ini sama sekali tidak dapat diterima dan semua
keadaan deadlock harus ditangani. Sementara menurut para ahli Teknik, jika
komputer lebih sering mengalami kerusakkan disebabkan oleh
kegagalan hardware, error pada kompilator atau bugs pada sistem operasi. Maka
ongkos yang dibayar untuk melakukan penanganan deadlock sangatlah besar dan
lebih baik mengabaikan keadaan deadlock tersebut. Metode ini diterapkan pada
sistem operasi UNIX dan MINIX.
Cara Lain untuk mengatasi Deadlock :
Prevention : memastikan paling sedikit satu penyebab Deadlock tidak berlaku
Avoidance : sistem menolak request terhadap resource yang berpotensi
deadlock, Algoritma Banker
Detection and Recovery : membiarkan Deadlock terjadi, lalu mendeteksinya,
kemudian melakukan recovery, Algoritma Ostrich
Untuk Prevention
9
• Mutual Exclusion : membuat file spool untuk resource yang digunakan
bersama sama
• Hold and Wait : memaksa sebuah proses untuk melepaskan resource yang
dimilikinya ketika meminta resource baru
• Circular Waiting : memberikan penamaan resource berdasarkan urutan atau
level
• No Preemption : membolehkan adanya preemption
Untuk Avoidance
• Resource manager menolak proses yang meminta resource yang berpotensi
deadlock
• Jika ada permintaan resource yang maksimum digunakan, maka proses
tersebut akan dipaksa untuk melepaskan resource yang sudah dimiliknya.
Untuk Detection and Recovery
• Membiarkan deadlock terjadi lalu mendeteksinya kemudian melakukan
tindakan recovery seperlunya
• Algoritma yang paling dikenal adalah algoritma Ostrich
• Tindakan recovery yang dilakukan adalah : melakukan preemption, membuat
checkpoint untuk rollback lalu membunuh proses yang prioritasnya kecil.
5. Cara Menghindari Deadlock
Kondisi Aman ( Safe State ) : Suatu keadaan dapat dinyatakan sebagai safe
state jika tidak terjadi deadlock dan terdapat cara untuk memenuhi semua
permintaan sumber daya yang ditunda tanpa menghasilkan deadlock. Dengan cara
mengikuti urutan tertentu.
10
Kondisi Tak Aman (Unsafe state) : Suatu state dinyatakan sebagai unsafe state
jika tidak terdapat cara untuk memenuhi semua permintaaan yang saat ini ditunda
dengan menjalankan proses-proses dengan suatu urutan
6. Deadlock di Linux
• Linux dengan kernel versi 2.4 mengalami deadlock pada sistem dengan
prosesor lebih dari 2 unit
• Deadlock ini pada umumnya terjadi bila akses melalui Ethernet dilakukan,
terutama bila melakukan teaming pada jaringan. Proses akan terblock dan
saling menunggu resource Ethernet tersebut bebas.
• Beberapa kasus deadlock juga terjadi ketika OS Linux dijalankan dari kondisi
sleep, proses yang mengakses USB device akan mengalami deadlock
• Hal ini disebabkan fungsi scheduler pada kernel yang digunakan tidak
menyimpan state sebelum sleep, sehingga ketika kernel dijalankan kembali,
Proses-proses yang mengakses USB device tersebut menunggu giliran
mengakses, sementara scheduler belum menjadwalkan masing-masing proses.
11
Gambar 3. Ilustrasi Unsafe dan Safe State
2.2 Sinkronisasi
1. Pengertian Sinkronisasi
Akses bebarengan untuk berbagi dua bersama dapat mengakibatkan inkosistensi
data. Pemeliharaan konsistensi data memerlukan mekanisme untuk memastikan
eksekusi dari proses kerjasama.
2. Manfaat Sinkronisasi
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.
3. Perangkat Sinkronisasi
• Instruksi Test and Set. Instruksi Atomik yang dapat digunakan untuk menangani
masalah critical section
• 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
• 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
12
• JVM mengimplementasikan monitor. Monitor JVM bekerja dengn object locking dan
method – method wait() serta notify(). Monitor JVM dapat diunakan dengan keyword
synchronized.
4. Masalah Klasik Sinkronisasi beserta Solusi
Ada tiga hal yang selalu memjadi masalah pada proses sinkronisasi:
- Problem Bounded buffer.
- Problem Reades and Writer.
- Problem Dining Philosophers.
Problem Readers-Writers
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
a. 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.
b. Penulis di prioritaskan
13
Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang
memulai untuk membaca data.
c. Kedua jenis proses mempunyai prioritas yang sama.
Tidak ada prioritas khusus yang diberikan kepada kedua jenis proses
Problem Dining Philosopers
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 sesuaididapatkan
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.
Kita dapat memodifikasi program sehingga setelah mengambil garpu kiri,
program memeriksa apakah garpu kanan meungkinkan untuk diambil. Jika garpu
kanan tidak mungkin diambil, filosof tersebut meletakkan kembali garpu kirinya,
menunggu untuk beberapa waktu, kemudia mengulangi proses yang sama. Usulan
tersebut juga salah, walau pun dengan alasan yang berbeda. Dengan sedikit nasib
buruk, semua filosof dapat memulai algoritma secara bersamaan, mengambil garpu
kiri mereka, melihat garpu kanan mereka yang tidak mungkin untuk diambil,
meletakkan kembali garpu kiri mereka, menunggu, mengambil garpu kiri mereka lagi
secara bersamaan, dan begitu seterusnya. Situasi seperti ini dimana semua program
terus berjalan secara tidak terbatas tetapi tidak ada perubahan/kemajuan yang
14
dihasilkan disebut starvation. Sekarang anda dapat berpikir "jika filosof dapat saja
menunggu sebuah waktu acak sebagai pengganti waktu yang sama setelah tidak dapat
mengambil garpu kiri dan kanan, kesempatan bahwa segala sesuatau akan berlanjut
dalam kemandegan untuk beberapa jam adalah sangat kecil." Pemikiran seperti itu
adalah benar,tapi beberapa aplikasi mengirimkan sebuah solusi yang selalu bekerja
dan tidak ada kesalahan tidak seperti hsk nomor acak yang selalu berubah. Sebelum
mulai mengambil garpu, seorang filosof melakukan DOWN di mutex. Setelah
menggantikan garpu dia harus melakukan UP di mutex. Dari segi teori, solusi ini
cukup memadai. Dari segi praktek, solusi ini tetap memiliki masalah. Hanya ada satu
filosof yang dapat makan spageti dalam berbagai kesempatan. Dengan lima buah
garpu, seharusnya kita bisa menyaksikan dua orang filosof makan spageti pada saat
bersamaan.
Solusi Dining – Philosophers Problem ada dua, yakni :
a. Solusi Waiter
Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan seorang waiter
yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah
(dua pasang) sumpit sedang dipakai,orang berikutnya yang ingin memakai sumpit
harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu
sumpit telah selesai terpakai.
b. Solusi Hierarki Resource
Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi susunan
hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada
susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap
orang dapat mengambil sumpit dimanapun diatas meja misalkan setiap sumpit diberi
nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil
sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang
setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus
meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.
15
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.
5. Masalah Lain dalam Sinkronisasi
Masalah pada Sistem Operasi Sinkronisasi bisa terdapat dari masalah lainnya
seperti Masalah Race Condition & Critical Section.
- Arti dari Race Conditon adalah situasi di mana beberapa proses mengakses dan
memanipulasi data bersama pada saat besamaan.
Solusi untuk Race Condition
Bagian dari program dimana shared memory diakses disebut Critical
Section atau Critical Region. Walaupun 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:
16
• Tidak ada dua proses secara bersamaan masuk ke dalam critical section.
• Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
• Tidak ada proses yang berjalan di luar critical secion.
• Tidak ada proses yang menunggu selamanya untuk masuk critical section.
- Arti dari masalah Critical Section adalah sebuah segmen kode di mana sebuah proses
yang mana sumber daya bersama diakses
Kode Critical Section :
• 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.
• Exit Section: akhir dari critical section, mengizinkan proses lain.
• Reminder Section : kode istirahat setelah masuk ke critical section
Solusi untuk Critical Section
• Mutual exclution : Jika proses pi sedang mengeksekusi critical section-nya maka
tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.
• 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.
6. Semaphore
Jika kita ingin dapat melakukan proses tulis lebih rumit kita membutuhkan sebuah
bahasa untuk melakukannya. Kita akhirnya medefinisikan semaphore yang kita
17
asumsikan sebagai sebuah operasi atomik. 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:
i. Semaphore dapat diinisialisasi dengan nilai non-negatif.
ii. 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.
18
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 tak dapat
mengakses struktur data internal dalam monitor secara langsung. Hanya lewat
prosedur-prosedur yang dideklarasikan minitor untuk mengakses struktur internal.
Properti-properti monitor adalah sebagai berikut:
i. Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur
dalam monitor dan tidak oleh prosedur di luar monitor.
ii. Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator
harus mengimplementasi ini(mutual exclusion).
iii. Terdapat cara agar proses yang tidak dapat berlangsung di-blocked.
Menambahkan variabel-variabel kondisi, dengan dua operasi, yaitu Wait dan
Signal.
iv. Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer menemui
buffer penuh) menyebabkan proses pemanggil diblocked dan mengizinkan
proses lain masuk monitor.
v. Signal: Proses membangunkan partner-nya yang sedang diblocked dengan
signal pada variabel kondisi yang sedang ditunggu partnernya.
vi. Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan
menunda proses lain.
vii. 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, maka monitor menyediakan fasilitas mutual
exclusion dalam mengakses sumber daya itu.
19
20
BAB III
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Problem yang dialami baik Deadlock dan Sinkronisasi sangat beragam. Cara
menyelesaikannya pun juga banyak. Akan tetapi kita harus pintar dan jeli mengenai apa
cara yang paling tepat untuk mengatasi Deadlock dan Sinkronisasi tersebut. Apabila
ada permasalahan dan bisa digunakan dengan cara yang tidak tepat, efek dari cara
tersebut aka timbul di akhir.
21
BAB IV
DAFTAR PUSTAKA
http://nugan88.wordpress.com/2011/10/03/deadlock-pada-sistem-operasi/
http://ikc.dinus.ac.id/umum/ibam/ibam-os-html/i32.html
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch17s07.html
http://siteblogforu.blogspot.com/2013/06/sinkronisasi-pada-sistem-operasi.html
http://ivanhanif47.blogspot.com/2013/10/proses-sinkronisasi-pada-sistem-operasi.html
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/bahan/bahan-bab4.pdf
http://fahrur-rosii.blogspot.com/2013/11/proses-sinkronisasi-sistem-operasi.html
http://ikc.dinus.ac.id/umum/ibam/ibam-os-html/i3.html
http://id.wikipedia.org/wiki/Sistem_operasi
22
top related