alam pso

15
MAKALAH PENGANTAR SISTEM OPERASI Tentang : Dining Philosopher Disusun Oleh : MUH NUR ALAMSYAH(D42114513) TEKNIK INNFORMATIKA FAKULTAS TEKNIK UNIVERSITAS HASANUDDIN

Transcript of alam pso

Page 1: alam pso

MAKALAH PENGANTAR SISTEM OPERASI

Tentang : Dining Philosopher

Disusun Oleh :

MUH NUR ALAMSYAH(D42114513)

TEKNIK INNFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS HASANUDDIN

Page 2: alam pso

KATA PENGATAR

Puji syukur saya haturkan atas kehadirat Allah SWT, karena dengan rahmat dan karunia-

Nya sehingga saya masih diberi kesempatan dan kekuatan sehingga dapat menyelesaikan

makalah yang berjudul “Dining Philoshoper”.

Dalam penyusunan makalah ini, penulis memperoleh banyak informasi dan masukan dari

berbagai pihak, Oleh karena itu penulis mengucapkan terima kasih yang sebesar-besarnya

kepada dosen pembimbing dan teman-teman yang telah memberikan dukungan dalam

menyelesaikan makalah ini.

Penulis menyadari bahwa dalam penulisan makalah ini masih terdapat banyak

kekurangan, yang mungkin disebabkan oleh kekeliruan dari penulis itu sendiri, Oleh sebab itu

penulis sangat mengharapkan kritik dan saran yang membangun agar makalah ini dapat lebih

baik lagi. Dan semoga dengan selesainya makalah ini dapat bermanfaat bagi pembaca dan

teman-teman yang merupakan pelopor dan pembangkit teknologi informasi dan komputer di

negeri ini. Amin.

Makassar, 28 Oktober 2015

Muh Nur Alamsyah

Page 3: alam pso

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.

Dining Philosophers Problem dapat diilustrasikan sebagai berikut, terdapat lima

orang filsuf yang akan makan. Di meja disediakan lima buah sumpit. Jika filsuf lapar betul,

maka ia akan mengambil dua buah sumpit, yaitu di tangan kanan dan kiri. Namun

adakalanya hanya diambil sumpit satu saja. Jika ada filsuf yang mengambil dua buah

sumpit, maka ada filsuf yang harus menunggu sampai sumpit tersebut ditaruh kembali. Di

dalam problema ini ada kemungkinan terjadi deadlock, yaitu suatu kondisi dimana dua

proses atau lebih tidak dapat meneruskan eksekusinya.

Untuk menyelesaikan masalah tersebut, dengan cara mensimulasikan proses kerja

dari problem tersebut sehingga dapat mencegah masalah deadlock.

Page 4: alam pso

1.2 Rumusan Masalah

Berdasarkan latar belakang dari makalah ini, maka dapat ditentukan rumusan

masalahnya adalah sebagai berikut :

1. Apa pengertian dari dining philosopher ?

2. Bagaimana proses dining philosopher ?

3. Bagaimana proses dining philosopher jika terjadi deadlock ?

1.3 Tujuan Masalah

Adapun Tujuan dari pembuatan makalah ini adalah :

1. Mengetahui pengertian dari dining philosopher .

2. Mengetahui proses dining philosopher .

3. Mengetahui mengapa terjadi deadlock pada kasus dining philosopher .

Page 5: alam pso

BAB II

PEMBAHASAN

2.1 Pengertian Dining Philosopher

Dining Philosophers Problem merupakan salah satu masalah klasik dalam

sinkronisasi. Dining Philosohers Problem dapat diilustrasikan sebagai berikut, terdapat lima

orang filsuf yang sedang duduk mengelilingi sebuah meja. Terdapat lima mangkuk mie di

depan masing-masing filsuf dan satu sumpit di antara masing-masing filsuf. Para filsuf

menghabiskan waktu dengan berpikir (ketika kenyang) dan makan (ketika lapar). Ketika

lapar, filsuf akan mengambil dua buah sumpit (di tangan kiri dan tangan kanan) dan makan.

Namun adakalanya, hanya diambil satu sumpit saja. Jika ada filsuf yang mengambil dua

buah sumpit, maka dua filsuf di samping filsuf yang sedang makan harus menunggu sampai

sumpit ditaruh kembali. Hal ini dapat diimplementasikan dengan wait dan signal.

Meskipun solusi ini menjamin bahwa tidak ada 2 tetangga yang makan bersama-

sama, namun masih mungkin terjadi deadlock, yaitu jika tiap-tiap filsuf lapar dan

mengambil sumpit kiri, maka semua nilai sumpit=0, dan kemudian tiap-tiap filsuf akan

mengambil sumpit kanan, maka akan terjadi deadlock.

2.2 Proses Dining Philosopher

Dalam proses perancangan perangkat lunak simulasi ini, dapat diambil beberapa asumsi,

yaitu:

1.      Hanya terdapat 5 (lima) orang filsuf dalam proses simulasi.

2.      Masing-masing filsuf memiliki kondisi sebagai berikut:

a.       Kenyang.

Filsuf akan berada dalam kondisi kenyang sesaat setelah makan.

b.      Lapar.

Beberapa saat setelah makan, filsuf akan merasa lapar.

c.       Mati.

Beberapa saat setelah merasa lapar dan apabila filsuf belum juga mendapatkan sumpit,

maka filsuf akan mati.

3.      Aksi yang dapat dilakukan oleh masing-masing filsuf, yaitu:

Page 6: alam pso

a.       Berpikir.

Filsuf akan berpikir apabila filsuf berada dalam kondisi kenyang.

b.      Cari Sumpit.

Filsuf akan mencari dan mengambil sumpit di kedua tangannya apabila filsuf berada

dalam kondisi lapar.

c.       Makan

Apabila filsuf mendapatkan dua sumpit di kedua tangannya, maka filsuf akan makan

hingga kenyang. Setelah kenyang, filsuf kembali berpikir.

4.      Di dalam perangkat lunak, kondisi filsuf di atas dirancang secara matematis menjadi

waktu-A dan waktu-B.

a.       Waktu-A, yaitu waktu yang diperlukan untuk mengubah kondisi filsuf dari kenyang

menjadi lapar (dalam sekon).

b.      Waktu-B, yaitu waktu yang diperlukan untuk mengubah kondisi filsuf dari lapar

menjadi mati (dalam sekon).

c.       Masa Hidup, yaitu masa hidup filsuf pada saat itu (dalam sekon). Maksimum masa

hidup adalah sebesar nilai waktu-A + waktu-B. Masa hidup filsuf akan bertambah ketika

filsuf sedang makan dan akan senantiasa berkurang di luar aksi itu.

Ketiga komponen ini menjadi ukuran matematis kondisi filsuf di dalam perangkat

lunak. Misalnya, seorang filsuf memiliki waktu-A = 10 sekon, waktu-B = 8 sekon dan

masa hidup = 12 sekon. Karena masa hidup filsuf adalah 12 sekon atau lebih besar 4

sekon daripada waktu-B, maka dapat dihitung bahwa 4 sekon kemudian, filsuf akan

mulai merasa lapar dan mulai mencari sumpit. Bila filsuf mendapatkan dua sumpit di

kedua tangannya, maka filsuf akan mulai memakan mie yang ada di depannya. Ketika

sedang makan, masa hidup filsuf akan bertambah kembali. Filsuf tidak akan berhenti

makan hingga filsuf berada dalam kondisi kenyang atau masa hidupnya mencapai nilai

maksimum yaitu 18 sekon (waktu-A + waktu-B). Setelah itu, filsuf akan berpikir dalam

10 sekon berikutnya, sebelum merasa lapar dan mencari sumpit lagi. Apabila filsuf

merasa lapar dan tidak mendapatkan sumpit dalam waktu 8 sekon (waktu-B), maka masa

hidup filsuf akan menjadi nol dan filsuf akan mati. Untuk mendapatkan sumpit, filsuf

Page 7: alam pso

harus menunggu apabila sumpit sedang dipakai oleh filsuf di sampingnya. Dalam kondisi

itu, masa hidup filsuf akan terus berkurang.

Untuk dapat lebih memahami proses yang terjadi, perhatikan contoh illustrasi berikut ini. Misalkan properti 5 orang filsuf dalam simulasi adalah sebagai berikut:

Tabel Properti Filsuf

Waktu-A (sekon) Waktu-B (sekon)Kondisi Awal

(sekon)

Filsuf-1 7 10 15

Filsuf-2 5 4 4

Filsuf-3 6 11 14

Filsuf-4 5 13 11

Filsuf-5 6 12 18

  Dari tabel dapat diketahui kondisi masing-masing filsuf, yaitu filsuf-1 berada dalam

kondisi kenyang karena kondisi awal 15 sekon berada di atas waktu-B yang hanya 10 sekon

(filsuf-1 akan merasa lapar dan mencari sumpit 5 sekon kemudian). Filsuf-2 berada dalam

kondisi lapar karena kondisi awal 4 sekon = waktu-B, filsuf-3 berada dalam kondisi

kenyang, filsuf-4 berada dalam kondisi lapar dan filsuf-5 berada dalam kondisi kenyang.

Kondisi awal problema dining philosophers dapat digambarkan dengan illustrasi

sebagai berikut:

Pada saat t = 1 sekon, filsuf-1, filsuf-3 dan filsuf-5 kenyang dan sedang berpikir,

sedangkan filsuf-2 dan filsuf-4 lapar dan mendapatkan sumpit di tangan kiri. Pada saat t = 2

sekon, filsuf-2 dan filsuf-4 mendapatkan 2 sumpit dan mulai makan, sedangkan filsuf-1,

filsuf-3 dan filsuf-5 masih kenyang dan sedang berpikir. Pada saat t = 3 sekon, filsuf-3

merasa lapar (karena masa hidup filsuf-3 saat ini = waktu-B yaitu 11 sekon) dan mulai

mencari sumpit, tetapi tidak mendapatkan sumpit karena sumpit di sebelah kiri digunakan

oleh filsuf-4 dan sumpit di sebelah kanan digunakan oleh filsuf-2.

Pada saat t = 5 sekon, filsuf-1 merasa lapar (karena masa hidup filsuf-1 saat ini =

waktu-B yaitu 10 sekon) dan mencari sumpit. Filsuf-1 mendapatkan sumpit di tangan kanan.

Page 8: alam pso

Pada saat t = 6 sekon, filsuf-5 merasa lapar (karena masa hidup filsuf-5 saat ini = waktu-B

yaitu 12 sekon) dan mencari sumpit. Filsuf-5 tidak mendapatkan sumpit. Pada saat t = 9

sekon, filsuf-2 kenyang (karena masa hidupnya sudah mencapai nilai maksimum, yaitu 9

sekon = waktu-A + waktu-B) dan mulai berpikir. Filsuf-3 mendapatkan sumpit di tangan

kanan. Pada saat t = 10 sekon, filsuf-1 mendapatkan 2 sumpit dan mulai makan. Pada saat t

= 11 sekon, filsuf-4 kenyang dan mulai berpikir. Filsuf-5 mendapatkan sumpit di tangan

kanan. Pada saat t = 12 sekon, filsuf-3 mendapatkan 2 sumpit dan mulai makan.

Proses simulasi akan berlanjut sesuai dengan prosedur. Simulasi hanya akan berhenti

apabila terjadi kondisi deadlock. Kondisi deadlock dalam simulasi dining philosophers

problem terjadi apabila pada satu saat, semua filsuf merasa lapar secara bersamaan dan

semua filsuf mengambil sumpit di tangan kiri. Pada saat filsuf akan mengambil sumpit di

tangan kanan, maka terjadilah kondisi deadlock, karena semua filsuf akan saling menunggu

sumpit di sebelah kanannya (kondisi yang tidak akan pernah terjadi).

2.3 Deadlock pada dining philosopher

Properti Filsuf untuk Kasus Deadlock

Waktu-A (sekon) Waktu-B (sekon)Kondisi Awal

(sekon)

Filsuf-1 17 12 27

Filsuf-2 5 3 2

Filsuf-3 15 10 25

Filsuf-4 6 5 5

Filsuf-5 20 5 20

  Pada saat t = 1 sekon, filsuf-2 dan filsuf-4 lapar dan mendapatkan sumpit di tangan

kiri, sedangkan filsuf-1, filsuf-3 dan filsuf-5 kenyang dan sedang berpikir. Pada saat t = 2

sekon, filsuf-2 dan filsuf-4 mendapat 2 sumpit dan mulai makan. Pada saat t = 10 sekon,

filsuf-2 dan filsuf-4 kenyang dan mulai berpikir. Pada saat t = 15 sekon, semua filsuf secara

bersamaan lapar dan mengambil sumpit di tangan kiri. Pada saat ini, telah terjadi kondisi

Page 9: alam pso

deadlock, karena semua filsuf yang sedang mengenggam sumpit di tangan kiri menunggu

sumpit di sebelah kanan. Semua filsuf akan saling menunggu.

Dengan input properti filsuf dan kondisi awal yang sama, kondisi deadlock yang

terjadi dapat dihindari dengan memilih satu dari tiga solusi berikut:

1.      Solusi-A, yaitu mengizinkan paling banyak 4 orang filsuf yang duduk bersama-sama

pada satu meja. Tidak akan terjadi kondisi deadlock apabila terdapat kurang dari 4 orang

filsuf yang duduk bersama-sama mengelilingi meja dengan 5 tempat duduk (satu filsuf

dianggap mati).

2.      Solusi-B, yaitu mengizinkan seorang filsuf mengambil sumpit hanya jika kedua sumpit

itu ada. Apabila semua filsuf lapar secara bersamaan, maka hanya 2 orang filsuf yang dapat

makan, karena filsuf mengambil 2 sumpit pada saat yang bersamaan.

3.      Solusi-C, yaitu solusi asimetrik. Filsuf pada nomor ganjil mengambil sumpit kiri dulu

baru sumpit kanan, sedangkan filsuf pada nomor genap mengambil sumpit kanan dulu baru

sumpit kiri. Apabila semua filsuf lapar secara bersamaan, cara pengambilan dengan solusi

asimetrik akan mencegah semua filsuf mengambil sumpit kiri secara bersamaan, sehingga

kondisi deadlock dapat dihindari.

Page 10: alam pso

BAB III

PENUTUP

3.1 Kesimpulan

Algoritma yang dibangun ternyata efektif karena memberikan solusi setelah di

implementasikan ke bentuk program di mana kondisi deadlock dan starvation tidak

terjadi. Algoritma tersebut tidak melakukan pelanggaran pada critical section,

Dining philosophers merupakan masalah yang timbul disebabkan kurangnya sumber

daya yang dimiliki setiap proses. Untuk mengatasi masalah critical section yang di

hadapi dining philosophers dapat digunakan berbagai solusi software. Namun

masalah yang akan timbul dengan solusi software biasa adalah solusi software tidak

mampu menangani masalah yang lebih berat dari critical section. Sedangkan solusi

software dengan menggunakan Semaphores mampu menanganinya, terbukti dari

software yang penulis buat dengan menggunakan semaphore dapat mengatasi

masalah sinkronisasi dining philosophers, proses dining philosophers berjalan

dengan benar juga dapat menghidari kondisi deadlock dan starvation yang menjadi

masalah utama pada sinkronisari dining philosophers.

3.2  SARAN

Dalam sistem operasi, ada proses yang di sebut dengan proses sinkronisasi, proses

ini sangat erat kaitanya dengan proses penjadwalan dan pengeksekusian suatu

perintah. Walaupun degan kompleksitas yang sangat rumit tetapi dalam komunikasi

antar proses masih terdapat beberapa masalah yang didapati. Masalah tersebut harus

kita tahu darimana dan bagaimana cara kita dapat meminimalisir atau bahkan

menghilangkan masalah tersebut.

Page 11: alam pso

DAFTAR PUSTAKA

http://suriani94.blogspot.co.id/2014/08/tugas-sistem-operasi.html diakses pada tanggal 27 oktober 2015 pukul 03:00 wita

http://dhyella.blogspot.co.id/2013/12/makalah-dining-philosopher-sistem.html diakses pada tanggal 27 oktober 2015 pukul 03:15 wita

http://iblog-belajar-adrianah.blogspot.co.id/2014/08/makalahdining-philosophers-problem.html diakses pada tangggal 27 oktober 2015 pukul 03:30