BAB I
PENDAHULUAN
1. Latar
Belakang
Pada
zaman sekarang ini telah terjadi banyak perkembangan pada berbagai macam bidang
teknologi, seperti halnya komputer yang memiliki sebuah atau beberapa buah
sistem operasi. Pada dasarnya sistem operasi memiliki peranan yang sangat
penting dalam proses-proses yang terjadi di dalam komputer ,baik itu hubungan
PC dengan prangkat input/output, PC dengan user. Pada sistem operasi terdapat
beberapa masalah yang ditemukan antara lain seperti Mutual Exclusion, Deadlock,StarVation,
Sinkronisasi. Mutual Exclusion adalah jaminan hanya satu proses yang
mengaksessumber daya pada satu interval tertentu. Proses disebut deadlock jika
prose menunggu suatu kejadian yang tak pernah terjadi. Proses dikatakan
mengalami starvation jika prosesproses itu menunggu alokasi sumber daya sampai
tak berhingga. sementara prosesproses laindapat memperoleh alokasi sumber daya.
2. Rumusan Masalah
Apakah yang dimaksud
Mutual Exclusion?
Apakah yang dimaksud
Deadlock?
3. Tujuan
Mengetahui apa itu
Mutual Exclusion.
Mengetahui apa itu
deadlock.
BAB
II
PEMBAHASAN
Deadlock dan Mutual Exclusion
Sebenarnya
mutual Exclusion sendiri merupakan salahsatu bagian dari pembahasan Deadlock,
tepatnya Mutual Exclusion adalah salah satu dari empat kriteria penyebab
terjadinya Deadlock. Selain Mutual Exclusion ada juga Hold and Wait, No
Preemption, dan Circular Wait dan suatu kondisi di katakan Deadlock adalah
apabila ke-empat karakteristik itu terpenuhi. Langsung saja ke pembahasan awal
mengenai Deadlock.
1.
Deadlock
1.1
Pengertian deadlock
Deadlock
adalah keadaan dimana dua program 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.
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.
1.2
Karakteristik deadlock
Karakteristik-karakteristik
ini harus dipenuhi keempatnya untuk terjadi deadlock. Namun, perlu diperhatikan
bahwa hubungan kausatif antara empat karakteristik ini dengan terjadinya
deadlock adalah implikasi. Deadlock mungkin terjadi apabila keempat
karakteristik terpenuhi.
Empat
kondisi tersebut adalah:
1.2.1 Mutual exclusion
Kondisi
yang pertama adalah mutual exclusion yaitu proses memiliki hak milik pribadi
terhadap sumber daya yang sedang digunakannya. Jadi, hanya ada satu proses yang
menggunakan suatu sumber daya. Proses lain yang juga ingin menggunakannya harus
menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai
menggunakannya. Suatu proses hanya dapat menggunakan secara langsung sumber
daya yang tersedia secara bebas.
1.2.2 Hold and wait
Kondisi
yang kedua adalah hold and wait yaitu beberapa proses saling menunggu sambil
menahan sumber daya yang dimilikinya. Suatu proses yang memiliki minimal satu
buah sumber daya melakukan request lagi terhadap sumber daya. Akan tetapi,
sumber daya yang dimintanya sedang dimiliki oleh proses yang lain. Pada saat
yang sama, kemungkinan adanya proses lain yang juga mengalami hal serupa dengan
proses pertama cukup besar terjadi. Akibatnya, proses-proses tersebut hanya
bisa saling menunggu sampai sumber daya yang dimintanya dilepaskan. Sambil
menunggu, sumber daya yang telah dimilikinya pun tidak akan dilepas. Semua
proses itu pada akhirnya saling menunggu dan menahan sumber daya miliknya.
1.2.3 No preemption
Kondisi
yang selanjutnya adalah no preemption yaitu sebuah sumber daya hanya dapat
dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai
menggunakannya. Proses yang menginginkan sumber daya tersebut harus menunggu
sampai sumber daya tersedia, tanpa bisa merebutnya dari proses yang
memilikinya.
1.2.4 Circular wait
Kondisi
yang terakhir adalah circular wait yaitu kondisi membentuk siklus yang berisi
proses-proses yang saling membutuhkan. Proses pertama membutuhkan sumber daya
yang dimiliki proses kedua, proses kedua membutuhkan sumber daya milik proses
ketiga, dan seterusnya sampai proses ke n-1 yang membutuhkan sumber daya milik proses
ke n. Terakhir, proses ke n membutuhkan sumber daya milik proses yang pertama.
Yang terjadi adalah proses-proses tersebut akan selamanya menunggu.
1.3
Penanganan Deadlock
4 cara untuk menangani
keadaan deadlock, yaitu:
1.3.1 Pengabaian
Maksud
dari pengabaian di sini adalah sistem mengabaikan terjadinya deadlock dan
pura-pura tidak tahu kalau deadlock terjadi. Dalam penanganan dengan cara ini
dikenal istilah ostrich algorithm. Pelaksanaan algoritma ini adalah sistem
tidak mendeteksi adanya deadlock dan secara otomatis mematikan proses atau
program yang mengalami deadlock. Kebanyakan sistem operasi yang ada
mengadaptasi cara ini untuk menangani keadaan deadlock. Cara penanganan dengan
mengabaikan deadlock banyak dipilih karena kasus deadlock tersebut jarang
terjadi dan relatif rumit dan kompleks untuk diselesaikan. Sehingga biasanya
hanya diabaikan oleh sistem untuk kemudian diselesaikan masalahnya oleh user
dengan cara melakukan terminasi dengan Ctrl+Alt+Del atau melakukan restart
terhadap komputer.
1.3.2 Pencegahan
Penanganan
ini dengan cara mencegah terjadinya salah satu karakteristik deadlock.
Penanganan ini dilaksanakan pada saat deadlock belum terjadi pada sistem.
Intinya memastikan agar sistem tidak akan pernah berada pada kondisi deadlock.
Akan dibahas secara lebih mendalam pada bagian selanjutnya.
1.3.3 Penghindaran
Menghindari
keadaan deadlock. Bagian yang perlu diperhatikan oleh pembaca adalah bahwa
antara pencegahan dan penghindaran adalah dua hal yang berbeda. Pencegahan
lebih kepada mencegah salah satu dari empat karakteristik deadlock terjadi,
sehingga deadlock pun tidak terjadi. Sedangkan penghindaran adalah memprediksi
apakah tindakan yang diambil sistem, dalam kaitannya dengan permintaan proses
akan sumber daya, dapat mengakibatkan terjadi deadlock. Akan dibahas secara
lebih mendalam pada bagian selanjutnya.
1.3.4 Pendeteksian dan
Pemulihan
Pada
sistem yang sedang berada pada kondisi deadlock, tindakan yang harus diambil
adalah tindakan yang bersifat represif. Tindakan tersebut adalah dengan
mendeteksi adanya deadlock, kemudian memulihkan kembali sistem. Proses
pendeteksian akan menghasilkan informasi apakah sistem sedang deadlock atau
tidak serta proses mana yang mengalami deadlock. Akan dibahas secara lebih
mendalam pada bagian selanjutnya.
1.4
Pencegahan Deadlock
Pencegahan
deadlock dapat dilakukan dengan cara mencegah salah satu dari empat
karakteristik terjadinya deadlock. Berikut ini akan dibahas satu per satu cara
pencegahan terhadap empat karakteristik tersebut.
1.4.1 Mutual Exclusion
Kondisi
mutual exclusion pada sumber daya adalah sesuatu yang wajar terjadi, yaitu pada
sumber daya yang tidak dapat dibagi (non-sharable). Sedangkan pada sumber daya
yang bisa dibagi tidak ada istilah mutual exclusive. Jadi, pencegahan kondisi
yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak
dapat dibagi.
1.4.2 Hold and Wait
Untuk
kondisi yang kedua, sistem perlu memastikan bahwa setiap kali proses meminta
sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses
meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan
eksekusi, sehingga tidak perlu menunggu.
1.4.3 No Preemption
Pencegahan
kondisi ini dengan cara membolehkan terjadinya preemption. Maksudnya bila ada
proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber daya
tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted. Sumber
daya yang dimiliki proses tadi akan diberikan pada proses lain yang membutuhkan
dan sedang menunggu. Proses akan mengulang kembali eksekusinya setelah
mendapatkan semua sumber daya yang dibutuhkannya, termasuk sumber daya yang
dimintanya terakhir.
1.4.4 Circular Wait
Kondisi
‘lingkaran’ ini dapat ‘diputus’ dengan jalan menentukan total kebutuhan
terhadap semua tipe sumber daya yang ada. Selain itu, digunakan pula mekanisme
enumerasi terhadap tipe-tipe sumber daya yang ada. Setiap proses yang akan
meminta sumber daya harus meminta sumber daya dengan urutan yang menaik.
Misalkan sumber daya printer memiliki nomor 1 sedangkan CD-ROM memiliki nomor
3. Proses boleh melakukan permintaan terhadap printer dan kemudian CD-ROM,
namun tidak boleh sebaliknya.
1.5
Penghindaran Deadlock
Penghindaran
terhadap deadlock adalah cara penanganan yang selanjutnya. Inti dari
penghindaran adalah jangan sembarangan membolehkan proses untuk memulai atau
meminta lagi. Maksudnya jangan pernah memulai suatu proses apabila nantinya
akan menuju ke keadaan deadlock. Kedua, jangan memberikan kesempatan pada
proses untuk meminta sumber daya tambahan jika penambahan tersebut akan membawa
sistem pada keadaan deadlock. Tidak mungkin akan terjadi deadlock apabila
sebelum terjadi sudah kita hindari.
Langkah
lain untuk menghindari adalah dengan cara tiap proses memberitahu jumlah
kebutuhan maksimum untuk setiap tipe sumber daya yang ada. Selanjutnya terdapat
deadlock-avoidance algorithm yang secara rutin memeriksa state dari sistem
untuk memastikan tidak adanya kondisi circular wait serta sistem berada pada
kondisi safe state. Safe state adalah suatu kondisi dimana semua proses
mendapatkan sumber daya yang dimintanya dengan sumber daya yang tersedia.
Apabila tidak bisa langsung, ia harus menunggu selama waktu tertentu, kemudian
mendapatkan sumber daya yang diinginkan, melakukan eksekusi, dan terakhir
melepas kembali sumber daya tersebut. Terdapat dua jenis algoritma penghindaran
yaitu resource-allocation graph untuk single instances resources serta banker’s
algorithm untuk multiple instances resources.Dalam banker’s algorithm, terdapat
beberapa struktur data yang digunakan, yaitu:
Available
. Jumlah sumber daya yang tersedia.Max . Jumlah sumber daya maksimum yang
diminta oleh tiap proses.Allocation . Jumlah sumber daya yang sedang dimiliki
oleh tiap proses.Need . Sisa sumber daya yang masih dibutuhkan oleh proses,
didapat dari max- allocation.Kemudian terdapat safety algorithm untuk
menentukan apakah sistem berada pada safe state atau tidak.
1.6
Pendeteksian Deadlock
Pada
dasarnya kejadian deadlock sangatlah jarang terjadi. Apabila kondisi tersebut
terjadi, masing-masing sistem operasi mempunyai mekanisme penanganan yang
berbeda. Ada sistem operasi yang ketika terdapat kondisi deadlock dapat
langsung mendeteksinya. Namun, ada pula sistem operasi yang bahkan tidak
menyadari kalau dirinya sedang mengalami deadlock. Untuk sistem operasi yang
dapat mendeteksi deadlock, digunakan algoritma pendeteksi. Secara lebih
mendalam, pendeteksian kondisi deadlock adalah cara penanganan deadlock yang
dilaksanakan apabila sistem telah berada pada kondisi deadlock. Sistem akan
mendeteksi proses mana saja yang terlibat dalam kondisi deadlock. Setelah
diketahui proses mana saja yang mengalami kondisi deadlock, maka diadakan
mekanisme untuk memulihkan sistem dan menjadikan sistem berjalan kembali dengan
normal.
Mekanisme
pendeteksian adalah dengan menggunakan detection algorithm yang akan
memberitahu sistem mengenai proses mana saja yang terkena deadlock. Setelah
diketahui proses mana saja yang terlibat dalam deadlock, selanjutnya adalah
dengan menjalankan mekanisme pemulihan sistem yang akan dibahas pada bagian
selanjutnya. Berikut ini adalah algoritma pendeteksian deadlock.
1.7
Pemulihan Deadlock
Pemulihan
kondisi sistem terkait dengan pendeteksian terhadap deadlock. Apabila menurut
algoritma pendeteksian deadlock sistem berada pada keadaan deadlock, maka harus
segera dilakukan mekanisme pemulihan sistem. Berbahaya apabila sistem tidak
segera dipulihkan dari deadlock, karena sistem dapat mengalami penurunan
performance dan akhirnya terhenti.
Cara-cara
yang ditempuh untuk memulihkan sistem dari deadlock adalah sebagai berikut:
1.Terminasi proses
Pemulihan
sistem dapat dilakukan dengan cara melalukan terminasi terhadap semua proses
yang terlibat dalam deadlock. Dapat pula dilakukan terminasi terhadap proses
yang terlibat dalam deadlock secara satu per satu sampai ‘lingkaran setan’ atau
circular wait hilang. Seperti diketahui bahwa circular wait adalah salah satu
karakteristik terjadinya deadlock dan merupakan kesatuan dengan tiga
karakteristik yang lain. Untuk itu, dengan menghilangkan kondisi circular wait
dapat memulihkan sistem dari deadlock.Dalam melakukan terminasi terhadap proses
yang deadlock, terdapat beberapa faktor yang menentukan proses mana yang akan
diterminasi. Faktor pertama adalah prioritas dari proses-proses yang terlibat
deadlock. Faktor kedua adalah berapa lama waktu yang dibutuhkan untuk eksekusi
dan waktu proses menunggu sumber daya. Faktor ketiga adalah berapa banyak
sumber daya yang telah dihabiskan dan yang masih dibutuhkan. Terakhir, faktor
utilitas dari proses pun menjadi pertimbangan sistem untuk melakukan terminasi
pada suatu proses.
2.
Rollback and Restart
Dalam
memulihkan keadaan sistem yang deadlock, dapat dilakukan dengan cara sistem
melakukan preempt terhadap sebuah proses dan kembali ke state yang aman. Pada
keadaan safe state tersebut, proses masih berjalan dengan normal, sehingga
sistem dapat memulai proses dari posisi aman tersebut. Untuk menentukan pada
saat apa proses akan rollback, tentunya ada faktor yang menentukan. Diusahakan
untuk meminimalisasi kerugian yang timbul akibat memilih suatu proses menjadi
korban. Harus pula dihindari keadaan dimana proses yang sama selalu menjadi
korban, sehingga proses tersebut tidak akan pernah sukses menjalankan eksekusi.
2.
Mutual Exclusion
2.1 Pengertian Mutual
Exclusion
Mutual
Exclusion Adalah jaminan hanya satu proses yang mengakses sumber daya pada
suatu interval waktu tertentu. Proses
proses yang lain dilarang mengerjakan hal yang sama. Bagian program yang sedang
mengakses memori atau sumber daya yang dipakai bersama disebut Critical
Section/Region. Mutual Exclusion merupakan jaminan untuk mengatasi kondisi pacu
agar tidak boleh 2 proses atau lebih memasuki Critical Section secara
bersamaan.
Kesuksesan
proses – proses kongkuren memerlukan pendefinisian Critical Section dan memaksakan
Mutual Exclusion di antara proses-proses kongkuren yang sedang berjalan.
Pemaksaan Mutual Exclusion merupakan landasan pemrosesan kongkuren. Tiga
kondisi untuk menentukan mutual Exclusion diantaranya :
1.
Tidak ada dua proses yang pada saat bersamaan berada di critical region.
2.
Tidak ada proses yang berjalan diluar critical region yang bisa menghambat
proses lain
3. Tidak ada proses
yang tidak bisa masuk ke critical region.
Mutual
Eexclution ini sendiri merupakan kondisi dimana terdapat sumber daya yang tidak
dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk
drive). Kondisi demikian disebut sumber daya kritis, dan bagian program yang
menggunakan sumber daya kritis disebut critical region/section. Hanya satu
program pada satu saat yang diijinkan masuk ke critical region. Pemogram tidak
dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini,
karena maksud program tidak dapat diketahui oleh sistem operasi. Hanya saja,
sistem operasi menyediakan layanan (system call) yang bertujuan untuk mencegah
proses lain masuk ke critical section yang sedang digunakan proses tertentu.
Fasilitas atau kemampuan menyediakan dukungan mutual exclusion harus memenuhi
kriteria sebagai berikut :
Mutual
exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya sendiri.
Di sini terjadi proses tunggal.
Proses
yang berada di noncritical section, dilarang mem-blocked prosesproses lain yang
ingin masuk critical section. Hal ini bisa terjadi startvation.
Harus
dijamin bahwa proses yang ingin masuk critical section tidak menunggu selama
waktu yang tak terhingga. Ini bisa mengakibatkan masalah deadlock dan antrian
proses bertambah panjang.
Contoh
Mutual Exclusion yang mungkin sering anda temui dalam kehidupan sehari hari ,
yaitu printer :
Sumberdaya
printer ini hanya bisa diakses atau kita gunakan 1 proses saja, tidak bisa kita
pergunakan secara bersamaan, oleh karena itu sumber daya ini disebut dengan
sumberdaya kritis.
2.2
Mencegah Mutual Exclusion
Mutual
exclusion benar-benar tak dapat dihindari. Hal ini dikarenakan tidak ada sumber
daya yang dapat digunakan bersama-sama, jadi sistem harus membawa sumber daya
yang tidak dapat digunakan bersama-sama.
2.3
Metode Penyelesaian Masalah Mutual Exclusion
Ada beberapa
metode penyelesaian masalah mutual exclusion, antara lain :
1. Sinkronisasi
2.
Semaphore.
BAB III
PENUTUP
1. Kesimpulan
Sebenarnya
mutual Exclusion sendiri merupakan salahsatu bagian dari pembahasan Deadlock,
tepatnya Mutual Exclusion adalah salah satu dari empat kriteria penyebab
terjadinya Deadlock. Selain Mutual Exclusion ada juga Hold and Wait, No
Preemption, dan Circular Wait dan suatu kondisi di katakan Deadlock adalah
apabila ke-empat karakteristik itu terpenuhi. Langsung saja ke pembahasan awal
mengenai Deadlock.
DAFTAR PUSTAKA
Watch: “Leicester v Everton: YouTube
BalasHapusA video to free youtube to mp3 watch and an update on the whole of Leicester's football matches. Leicester v Everton: YouTube; Leicester v Everton. Football