kata pengantar - file · web view1. theresia lulu i. k081310113003. ... gambar 3....

31
Deadlock dan Sinkronisasi Oleh ; 1. Theresia Lulu I. K 081310113003 PROGRAM STUDI D3 – SISTEM INFORMASI DEPARTEMEN MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS AIRLANGGA 1

Upload: hoangcong

Post on 06-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 2: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 3: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 4: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

Daftar Gambar

Gambar 1. Ilustrasi Deadlock 1..............................................................................................................8

Gambar 2. Ilusutrasi Deadlock 2............................................................................................................8

Gambar 3. Ilustrasi Unsafe dan Safe State...........................................................................................11

4

Page 5: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 6: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 7: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 8: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 9: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 10: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

• 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

Page 11: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 12: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 13: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

• 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

Page 14: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 15: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 16: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 17: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

• 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

Page 18: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 19: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 20: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

20

Page 21: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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

Page 22: Kata Pengantar -    file · Web view1. Theresia Lulu I. K081310113003. ... Gambar 3. Ilustrasi Unsafe dan Safe State11. BAB I. PENDAHULUAN. 1.1 Latar Belakang

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