SISTEM OPERASI KOMPUTER
(SINKRONISASI DAN DEADLOCK)
OLEH
Misnawati 1329041026
PRODI PENDIDIKAN TEKNIK
INFORMATIKA DAN KOMPUTER
JURUSAN PENDIDIKAN TEKNIK
ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MAKASSAR
2015
KATA PENGANTAR
Syukur Alhamdulillah kami panjatkan kehadirat Allah Swt. Atas
nikmat kesehatan, kesempatan, dan motivasi yang telah dianugerahkan kepada
penulis sehingga makalah ini dapat tersusun sebagaimana mestinya. Namun
demikian, penyusunan makalah ini selesai
dengan berbagai hambatan. Namun hambatan tersebut dapat diatasi berkat
petunjukNya.
Penulis menyusun makalah ini dengan tema “Deadlock dan
Sinkronisasi” sebagai wadah untuk menambah ilmu pengetahuan serta pemahaman
mengenai system operasi computer itu
sendiri. Selain itu, penulis juga berharap agar ke depannya ilmu ini dijadikan
sebagai bentuk pembelajaran penting dalam menunjang kehidupan yang semakin
modern.
Kendati demikian, penulis menyadari bahwa penyusunan makalah
ini jauh dari kesempurnaan. Oleh karena itu, penulis mengharapkan kritik dan
saran bagi siapa saja yang membacanya.
Akhir kata, penulis mengucapkan terima kasih.Semoga makalah
ini bermanfaaat bagi pembaca.Aamiin .
Makassar, Januari 2015
Makassar, Januari 2015
DAFTAR ISI
BAB 1
PENDAHULUAN
A.. 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 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.
B. Tujuan dan Manfaat
Tujuan :



Manfaat :



BAB 2
PEMBAHASAN
A. 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 meminta printer, 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.
2. Resource (Sumber Daya)
Ada 2 tipe resource, yaitu :

Resoource
yang dapat dibersihkan dari proses yang menggunakannya tanpa efek yang buruk.
Mudah
diatasi dengan cara realokasi resource dari satu proses ke yang lainnya.

Resoource
yang tidak dapat dibersihkan dari proses yang menggunakannya tanpa menyebabkan
komputer fail.
3. Penyebab Deadlock




Apabila
ada salah satu dari antara 4 syarat diatas yang tidak terpenuhi,maka tidak bisa
disebut dengan Deadlock.
4. Cara Mengatasi Deadlock



Pendekatan yang paling sederhana untuk mengatasi
deadlock 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 :

a. Mutual Exclusion : membuat file spool
untuk resource yang digunakan bersama sama
b. Hold and Wait : memaksa sebuah proses
untuk melepaskan resource yangdimilikinya ketika meminta resource baru
c. Circular Waiting : memberikan
penamaan resource berdasarkan urutan atau level
d. No Preemption : membolehkan adanya
preemption

a. Resource manager menolak proses yang
meminta resource yang berpotensi deadlock
b. Jika ada permintaan resource yang
maksimum digunakan, maka proses tersebut akan dipaksa untuk melepaskan resource
yang sudah dimiliknya.

a. Membiarkan deadlock terjadi lalu
mendeteksinya kemudian melakukan tindakan recovery seperlunya
b. Algoritma yang paling dikenal adalah
algoritma Ostrich
c. Tindakan recovery yang dilakukan
adalah : melakukan preemption, membuat checkpoint untuk rollback lalu membunuh
proses yang prioritasnya kecil.
5. Cara Menghindari Deadlock


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.
Penundaan penjadwalan sebuah proses selama tak terhingga sementara sistem
mengadakan alokasi sumber daya untuk proses yang lain. Penyebabnya adalah prioritas. Cara mengatasinya dengan
“aging” yaitu prioritaas naik dengan bertambahnya waktu.
7. Model Deadlock
Urutan kejadian pengoperasian perangkat I/O adalah :
- meminta / request : meminta palayanan I/O
- memakai / use : memakai perangkat I/O
- melepaskan / release : melepaskan pamakaian perangkat I/O
Model deadlock dua proses dan dua sumber daya deadlock dapat digambarkan sebagai graph.
Misalnya :



![]() |
|||
![]() |
|||
kondisi berikut dapat terjadi :


Skenario yang
menimbulkan deadlock dapat terjadi sebagai berikut :


![]() |
|||
![]() |
|||
Kemudian,


Kejadian ini mengakibatkan deadlock karena sama-sama akan saling menunggu. Graph deadlock ini akan digambarkan
sebagai graph melingkar. Terjadinya deadlock ditandai munculnya / terjadinya
graph melingkar.
![]() |
Karena untuk melanjutkan eksekusi memerlukan kedua sumber daya
sekaligus, maka kedua proses akan saling menunggu sumber daya lain selamanya.
Tak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena
menunggu sumber daya lain yang tak pernah diperolehnya. Kedua proses dalam
kondisi deadlock, tidak dapat membuat
kemajuan apapun. Deadlock tidak hanya
terjadi pada dua proses dan dua sumber daya, deadlock dapat terjadi dengan melibatkan lebih dari dua proses dan
dua sumber daya.
8. Syarat-syarat terjadinya deadlock

Tiap
sumber daya saat itu diberikan pada tepat satu proses / proses meng-klaim
kontrol eksklusif terhadap sumber daya yang dibutuhkannya.

Proses-proses
yang sedang menggenggam sumber daya yang telah dialokasikan untuknya sementara
menunggu sumber daya – sumber daya tambahan yang baru.

Sumber daya – sumber daya yang sebelumnya diberikan tidak
dapat diambil paksa dari proses sampai sumber daya tersebut digunakan sampai
selesai. Sumber daya – sumber daya harus secara eksplisit dilepaskan dari
proses yang menggenggamnya.

Harus terdapat rantai sirkuler / satu lingkaran proses
dari dua proses atau lebih dimana setiap proses memegang satu atau lebih sumber
daya yang diminta oleh proses berikutnya pada lingkaran tersebut, masing-masing
menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.
Ketiga syarat pertama merupakan syarat perlu bagi terjadinya deadlock. Keberadaan deadlock selalu berarti terpenuhi kondisi-kondisi diatas, tidak
mungkin terjadi deadlock bila tidak
ada ketiga kondisi itu. Deadlock
terjadi berarti terdapat ketiga kondisi itu, tetapi adanya ketiga kondisi itu
belum berarti terjadi deadlock.
Deadlock baru benar-benar terjadi bila syarat keempat terpenuhi.
Kondisi keempat merupakan keharusan bagi terjadinya peristiwa deadlock. Bila salah satu dari kondisi
tidak terpenuhi maka deadlock tidak
terjadi.
9. Metode-metode mengatasi deadlock

pengkondisian
sistem agar menghilangkan kemungkinan terjadinya deadlock. Pencegahan merupakan solusi yang bersih dipandang dari
sudut tercegahnya deadlock. Jika
mulainya satu atau lebih proses akan menyebabkan terjadinya deadlock, proses
tersebut tidak akan dimulai sama sekali.



2.
deadlock
avoidance / metode penghindaran
terjadinya deadlock
Menghindarkan
kondisi yang paling mungkin menimbulkan deadlock
agar memperoleh sumber daya lebih baik. Penghindaran bukan berarti
menghilangkan semua kemungkinan terjadinya deadlock.
Jika sistem operasi mengetahui bahwa alokasi sumber daya menimbulkan resiko deadlock, sistem menolak / menghindari
pengaksesan itu. Dengan demikian menghindari terjadinya deadlock. Contohnya dengan menggunakan algoritma Banker yang
diciptakan oleh Dijkstra.
3. deadlock detection and recovery / metode deteksi
dan pemulihan dari deadlock
Deteksi
digunakan pada sistem yang mengijinkan terjadinya deadlock, dengan memeriksa apakah terjadi deadlock dan menentukan proses dan sumber daya yang terlibat deadlock secara presisi. Begitu telah dapat ditentukan, sistem dipulihkan dari deadlock dengan metode pemulihan. Metode
pemulihan dari deadlock sistem sehingga beroperasi kembali, bebas dari
deadlock. Proses yang terlibat deadlock mungkin dapat menyelesaikan eksekusi
dan membebaskan sumber dayanya.
10. Pencegahan deadlock



Saran pencegahan deadlock diatas merupakan cara
meniadakan salah satu dari syarat perlu. Syarat perlu pertama jelas tidak bisa
ditiadakan, kalau tidak menghendaki kekacauan hasil.
Strategi Burung Onta
Strategi ini mengasumsikan kejadian deadlock jarang
terjadi jika dibandingkan dengan kejadian komputer crash. Strategi ini disebut
strategi burung onta karena kabar yang telah tersebar (yang sebenarnya tidak
benar) bahwa burung onta akan menyembunyikan kepalanya ke tanah bila mengetahui
adanya bahaya yang mengancamnya. Sehingga solusi yang dilakukan justru
sebenarnya tak memperdulikan adanya masalah. Stategi ini sebenarnya berarta
adalah sama sekali tidak berusaha mengatasideadlock / tak ada metoda sama
sekali untuk mengatasi masalah deadlock.
11. Penghindaran deadlock
Adalah hanya memberi akses ke permintaan sumber daya yang tidak mungkin
menimbulkan deadlock.
B. SINKRONISASI
1. Pengertian sinkronisasi
Pengertian dari Sinkronisasi
adalah Akses bebarengan untuk berbagi dua bersama dapat mengakibatkan
inkosistensi data. Pemeliharaan konsistensi data memerlukan mekanisme untuk
memastikan eksekusi dari proses kerjasama.
Tujuan dari sinkronisasi
itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena
pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan
jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang
di harapkan.
Manfaat Sinkronisasi




2. Perangkat Sinkronisasi




3. Masalah Klasik Sinkronisasi beserta Solusi
Ada tiga hal yang selalu memjadi masalah pada proses sinkronisasi:



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.
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
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.
Penulis di prioritaskan
Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada
reader yang memulai untuk membaca data.
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 sesuai didapatkan 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.
Solusi Dining – Philosophers Problem ada dua, yakni :
Solusi Waiter
Solusi sederhana ini dilakukan dengan mengadakan seorang waiter
yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah
(dua pasang) garpu sedang dipakai,orang berikutnya yang ingin memakai garpu
harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah
satu garpu telah selesai terpakai.
Solusi Hierarki Resource
Solusi Hirarki Resource: resources (garpu) di meja makan telah diberi
susunan hirarki. Setiap permintaan orang terhadap sebuah garpu harus dilakukan
pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini,
setiap orang dapat mengambil garpu dimanapun diatas meja misalkan setiap garpu
diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat
mengambil garpu dengan nomor yang paling rendah, kemudian mengambil garpu yang
setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus
meletakkan garpu dengan nomor yang lebih tinggi terlebih dahulu, lalu yang
rendah.
Masalah Lain Sinkronisasi


4. Cara mengatasi Sinkronisasi
Kunci untuk mencegah masalah ini dan di situasi yang
lain yang melibatkan shared memori, shared berkas, and shared sumber daya yang
lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses
untuk melakukan proses writing dan reading kepada shared data pada saat yang
sama.
Bagaimana pun setiap kali sebuah proses mengakses
shared memory atau shared berkas atau melakukan sesuatu yang kitis akan
menggiring kepada race conditions. Bagian dari program dimana shared memory
diakses disebut Critical Section atau Critical Region. Walau pun 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 yakni :




Solusi untuk mengatasi masalah
Critical Section, yaitu:



BAB 3
KESIMPULAN
Deadlock adalah keadaan dimana 2
atau lebih proses saling menunggu meminta resources untuk waktu yang tidak
terbatas lamanya.beberapa penyebab
Deadlock yaitu Mutual Exclusion, Hold and Wait, Circular Waiting
dan No Preemptive. Adapun cara untuk mengatasi Deadlock yaitu : Prevention,
Avoidance dan Detection and Recovery.
Sinkronisasi adalah akses bebarengan untuk berbagi dua bersama dapat
mengakibatkan inkosistensi data. Beberapa masalah pada proses sinkronisasi
yaitu Problem Bounded buffer, Problem Reades
and Writer dan Problem Dining Philosophers. Masalah-masalah tersebut
memiliki cara untuk mengatasinya masing-masing.
DAFTAR PUSTAKA
Lulu.
2013. “Sistem Operasi Deadlock dan Sinkronisasi” http://lulufst13.web.unair.ac.id, diakses 11 januari 2015
Foru.
2013. “Sinkronisasi Pada Sistem Operasi” http://siteblogforu.blogspot.com, diakses 11 januari 2015
Dinus.
2013. “Deadllock Pada Sistem Operasi” http://dinus.wordpress.com, diakses 11 januari 2015