Anda di halaman 1dari 5

MAKALAH

SISTEM OPERASI

DINING PHILOSOPHERS PROBLEM

Nama Anggota :
- Ahmad Arif Pradana (K3518004)
- Daniel Enrique Triosandriawan (K3518020)
- Maryam Fadhillah Naylufarhani H. (K3518040)
- Stefanus Alvian Setiono (K3518056)

Program Studi: Pendidikan Teknik Informarika dan Informatika

FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN


UNIVERSITAS SEBELAS MARET
2018
BAB I
PENDAHULUAN
1.1 Latar Belakang
Sistem operasi merupakan suatu program yang bertindak sebagai interface antara
user dan sistem komputer. Sistem operasi ini harus mampu melakukan pengontrolan
penggunaan resource. Dalam proses perancangan sistem operasi, terdapat suatu landasan
umum yang disebut dengan kongkurensi. Proses-proses disebut kongkuren jika proses-
proses (lebih dari satu proses) berada pada saat yang sama. Keadaan ini disebut dengan
multitasking dari sistem operasi. Proses-proses kongkuren dapat sepenuhnya tak
bergantung dengan lainnya tapi dapat juga saling berinteraksi. Proses-proses yang
berinteraksi memerlukan sinkronisasi agar terkendali dengan baik. Namun, pada proses-
proses kongkuren yang berinteraksi, terdapat beberapa masalah yang harus diselesaikan
seperti deadlock dan sinkronisasi. Salah satu masalah klasik yang dapat menggambarkan
masalah tersebut adalah Dining Philosophers Problem.
1.2 Tujuan
- Mengetahui sejarah Dining Philosophers Problem.
- Mengetahui illustrasi Dining Philosophers Problem.
- Memahami solusi Dining Philosophers Problem.
- Memahami hubungan Dining Philosophers Problem dengan Sistem Operasi.
1.3 Rumusan Masalah
- Bagaimana sejarah Dining Philosophers Problem?
- Bagaimana illustrasi Dining Philosophers Problem?
- Bagaimana solusi penyelesaian Dining Philosophers Problem?
- Bagaimana hubungan Dining Philosophers Problem dengan Sistem Operasi?
BAB II
ISI
2.1 Sejarah
Dining Philosophers Problem pertama kali dikemukakan pada tahun 1965 oleh
Edsger Wybe Dijkstra, seorang Ilmuwan Komputer asal Belanda. 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.
2.2 Hubungan Dining Philosophers Problem
Dalam masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya
memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada di sebuah meja
makan bundar yang ditata sehingga di depan setiap filusuf ada sebuah piring berisi mie dan
di antara dua piring yang bersebelahan terdapat sebuah sumpit.
Pada awalnya, semua filusuf akan berpikir selama waktu yang tidak tentu. Setelah
berpikir lama, filusuf akan merasa lapar. Pada saat lapar, ia berusaha untuk mengambil 2
buah sumpit yang ada di kanan dan di kirinya untuk makan. Dia mengambil sumpitnya satu
per satu. Begitu ia mendapat sebuah sumpit, ia tidak akan melepaskannya. Jika ia hanya
berhasil mengambil kurang dari 2 sumpit, maka ia akan menunggu sampai 2 sumpit
diambil. Begitu dia mendapatkan 2 sumpit, maka dia akan makan mienya untuk sementara
waktu dan kemudian meletakkan kedua sumpitnya. Kedua sumpit ini kemudian dapat
digunakan oleh filusuf-filusuf yang lain.
Posisi meja Filsuf dengan menggunakan semafor. Setiap sumpit mewakili sebuah
semafor. Kemudian, ketika seorang filsuf lapar, maka dia akan mencoba mengambil sumpit
di kiri dan dikananya atau dengan kata lain dia akan menunggu sampai kedua sumpit itu
dapat digunakan. Setelah selesai makan,sumpit diletakan kembali dan sinyal diberikan ke
semafor sehingga filusuf lain yang membutuhkan dapat menggunakan sumpitnya. Dan dia
sendiri kemudian kembali berpikir.
Tujuan dari masalah ini adalah untuk mencari cara sehingga para filusuf tidak akan
pernah mati kelaparan. Hal ini juga merupakan salah satu representasi dari pengalokasian
source komputer yang terbatas dengan beberapa proses sehingga dapat mengakibatkan
deadlock dan starvation.
Salah satu solusi yang mungkin langsung terlihat adalah dengan menggunakan
semafor. Setiap sumpit mewakili sebuah semafor. Kemudian, ketika seorang filusuf lapar,
maka dia akan mencoba mengambil sumpit di kiri dan di kanannya, atau dengan kata lain
dia akan menunggu sampai kedua sumpit tersebut dapat ia gunakan. Setelah selesai makan,
sumpit diletakkan kembali dan sinyal diberikan ke semafor sehingga filusuf lain yang
membutuhkan dapat menggunakan sumpitnya
5 philosophers yang kerjanya hanya makan dan berfikir Tersedia lima piring mie dan lima
sumpit untuk makan dibutuhkan bua buah sumpit
Problem-nya bagaimana cara menulis program agar setiap philosopher dapat berfikir dan
makan tanpa harus saling menunggu ?
Permasalahan dining-philosophers digambarkan pada gambar dibawah ini dimana
terdapat 5 filosof yang akan makan. Di sana disediakan 5 supit. Jika filosof lapar, ia akan
mengambil 2 supit yaitu di tangan kanan dan kiri. Namun adakalanya hanya diambil supit
satu saja. Jika ada filosof yang mengambil 2 supit, maka ada filosof yang harus menunggu
sampai supit tersebut diletakkan. Hal ini dapat diimplementasikan dengan wait dan signal.
2.3 Solusi
2.3.1 Semaphore
Solusi menggunakan semaphores. Setiap filosof picks up the first garpu di
sebelah kiri dan kemudian jalan bercabang di kanan. Setelah folosof selesai makan,
yang diganti adalah 2 garpu di atas meja. Solusi ini, mengarah ke jalan buntu. Jika
seluruh Filosof yang lapar pada saat yang sama, mereka semua duduk, mereka
semua mengambil garpu kiri mereka dan mereka semua mencapai cabang lainnya
yang tidak ada. Tidak pantas di posisi ini, semua filosof kelaparan.
Untuk mengatasi resiko jalan buntu, kita bisa membeli tambahan 5 garpu
(solusi yang lebih sehat!) atau mengajarkan folosof makan spageti hanya dengan
satu garpu. Sebagai pendekatan lain, kami dapat mempertimbangkan,
menambahkan yang hadir hanya memungkinkan folosof empat pada satu waktu ke
dalam ruang makan
Meskipun solusi ini menjamin bahwa tidak ada 2 tetangga yang makan bersama-
sama, namun masih mungkin terjadi deadlock, yaitu jika tiap-tiap filosof lapar dan
mengambil supit kiri, maka semua nilai supit = 0, dan jika kemudian tiap-tiap
filosof akan mengambil supit kanan, maka akan terjadi deadlock.
2.3.2 Monitor
Menunjukkan solusi untuk masalah yang bersantap filosuf menggunakan
vector monitor. Lima kondisi variabel yang ditetapkan, satu kondisi variabel per
fork. Kondisi variabel ini digunakan untuk mengaktifkan filosof untuk menunggu
ketersediaan sebuah garpu. Selain itu, ada sebuah catatan yang Boolean vector
ketersediaan status setiap fork. Monitor terdiri dari 2 prosedur. Get_forks prosedur
yang digunakan oleh filosof untuk meraih garpu di kiri dan kanannya. Fork baik
jika tidak tersedia, maka proses filosof adalah pada antrian yang sesuai kondisi
variabel. filosof lain memungkinkan proses lain untuk memasukkan monitor. The
rilis garpu-prosedur digunakan untuk membuat garpu tersedia. ada beberapa cara
untuk menghindari deadlock, antara lain :
 Mengijinkan paling banyak 5 orang filosof yang duduk bersama-sama pada satu
meja
 Mengijinkan seorang filosof mangambil supit hanya jika kedua supit itu ada
(dengan catatan, bahwa ia harus mengambil pada critical section)
 Menggunakan suatu solusi asimetrik, yaitu filosof pada nomor ganjil
mengambil supit kanan dulu baru supit kiri. Sedangkan filosof yang duduk di
kursi genap mengambil supit kanan dulu baru supit kiri.

E B

D C

Cara pemecahan solusi yang pertama adalah menggunakan semaphore. Filsuf C


dan A akan mengambil sumpit sebelah kiri terlebih dulu, lalu mengambil sumpit sebalah
kanan. Setelah selesai makan sumpit sebelah kanan akan diletakan terlebih dulu dan
dilanjukan sumpit sebelah kiri. Setelah filsuf A dan C selesai makan, lalu dilanjutkan filsuf
B dan E dengan mengambil sumpit dengan pola serupa. Setelah filsuf B dan C selesai
makan, dilanjukan filsuf A dan D untuk makan. Apabila masing-masing filsuf mengambil
satu sumpit maka akan terjadi deadlock. Dimana tidak ada filsuf yang akan makan.

BAB III
PENUTUP
3.1 Kesimpulan
Pada pemrograman konkuren diperlukan beberapa teknik yang dapat menghindari
keadaan deadlock pada saat melakukan pekerjaan yang bersamaan. Jika terjadi deadlock
komputer akan mengalami waktu tunggu yang lama dan kemungkinan dapat menyebabkan
computer tidak bekerja sama sekali. Teknik lock dan release adalah salah satu cara yang
dapat menghindari deadlock dari sistem pemrograman konkuren.

3.2 Daftar Pustaka

Machsar, Yusuf (2012). Paper Dining Philosophers. Diambil kembali dari Yusuf Maschar
web: http://langit-it.blogspot.com/2012/07/dining-philosophers.html
Fadilah, Nur (2013). Makalah Dining Philosopher (Sistem Operasi Komputer). Diambil
kembali dari Nur Fadilah web: http://dhyella.blogspot.com/2013/12/makalah-
dining-philosopher-sistem.html

Anda mungkin juga menyukai