Artikel
Deadlock
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.
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.
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.
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.
Empat kondisi tersebut adalah:
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.
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.
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.
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.
Penanganan Deadlock
4 cara untuk menangani keadaan deadlock,
yaitu:
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.
2.
Penghindaran.
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.
Untuk memastikan sistem tidak memasuki deadlock, sistem
dapat menggunakan pencegahan deadlock atau penghindaran deadlock. Penghindaran
deadlock membutuhkan informasi tentang sumber daya yang mana yang akan suatu
proses meminta dan berapa lama akan digunakan. Dengan informasi tersebut dapat
diputuskan apakah suatu proses harus menunggu atau tidak. Hal ini disebabkan
oleh keberadaan sumber daya, apakah ia sedang digunakan oleh proses lain atau
tidak. Jika sebuah sistem tidak memastikan deadlock akan terjadi, dan
juga tidak didukung dengan pendeteksian deadlock serta pencegahannya, maka kita
akan sampai pada kondisi deadlock yang dapat berpengaruh terhadap performance
system karena sumber daya tidak dapat digunakan oleh proses sehingga
proses-proses yang lain juga terganggu. Akhirnya sistem akan berhenti dan harus
direstart.
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.
Algoritma Deadlock-Avoidance
Algoritma “deadlock-avoidance” secara dinamik
akan memeriksa alokasi resource apakah dapat mengarah ke status (keadaan) tidak
aman (misalkan terjadi circulair wait condition)
3.
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.
April tanggal 23/jam16.19
Nama = Ndaru Mardi Pranggono
Nim =11.1.00042
REFERENSI
1.http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/2005/114/23/OS/bab-buku.txt
1.http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/2005/114/23/OS/bab-buku.txt
3.http://fazza01.wordpress.com/2009/04/11/tugas-pertemuan-5/
MUTUAL EXCLUSION
A. Definisi
Beberapa proses terkadang membutuhkan sumber daya yang sama pada saat bersamaan. Sumber daya seperti ini disebut sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/section. Hanya satu program pada saat yang diijinkan masuk critical region. Kondisi yang tidak dapat diprediksi hasilnya, bergantung pada proses-proses berjalan yang sedang bersaing disebut Kondisi Pacu (Race Condition). Kondisi pacu harus dihilangkan agar hasil-hasil proses dapat diprediksi dan tidak bergantung pada jalanya proses-proses tersebut.
Sistem operasi hanya menyediakan layanan (berupa system call) untuk mencegah proses masuk critical section yang sedang dimasuki proses lain. Pemrogram harus menspesifikasikan bagian-bagian critical region sehingga sistem operasi akan menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk critical region yang sedang dipakai proses lain. inilah yang dimaksud dengan mutual exclusion. Mutual Exclusion adalah suatu cara yang menjamin jika ada sebuah proses yang menggunakan variabel atau berkas yang sama (digunakan juga oleh proses lain), maka proses lain akan dikeluarkan dari pekerjaan yang sama.
Kriteria penyelesaian Mutual Exclusion :
A. Definisi
Beberapa proses terkadang membutuhkan sumber daya yang sama pada saat bersamaan. Sumber daya seperti ini disebut sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/section. Hanya satu program pada saat yang diijinkan masuk critical region. Kondisi yang tidak dapat diprediksi hasilnya, bergantung pada proses-proses berjalan yang sedang bersaing disebut Kondisi Pacu (Race Condition). Kondisi pacu harus dihilangkan agar hasil-hasil proses dapat diprediksi dan tidak bergantung pada jalanya proses-proses tersebut.
Sistem operasi hanya menyediakan layanan (berupa system call) untuk mencegah proses masuk critical section yang sedang dimasuki proses lain. Pemrogram harus menspesifikasikan bagian-bagian critical region sehingga sistem operasi akan menjaganya dengan suatu mekanisme untuk mencegah proses lain masuk critical region yang sedang dipakai proses lain. inilah yang dimaksud dengan mutual exclusion. Mutual Exclusion adalah suatu cara yang menjamin jika ada sebuah proses yang menggunakan variabel atau berkas yang sama (digunakan juga oleh proses lain), maka proses lain akan dikeluarkan dari pekerjaan yang sama.
Kriteria penyelesaian Mutual Exclusion :
Mutual Exclusion harus dijamin.Ü
Hanya satu proses pada satu saat yang diizinkan masuk Critical Section/Region.Ü
Proses yang berada di noncritical section, dilarang memblok proses-proses yang ingin masuk critical section.Ü
Harus dijamin proses yang ingin masuk critical section tidakÜ menunggu lama hingga waktu tak terhingga, agar tidak terjadi deadlock atau starvation.
Ketika ada proses di critical section maka proses yang ingin masukÜ critical section harus diijinkan segera masuk tanpa waktu tunda.
Tidak ada asumsi mengenai kecepatan relative proses atau jumlah proses yang ada.
Hanya satu proses pada satu saat yang diizinkan masuk Critical Section/Region.Ü
Proses yang berada di noncritical section, dilarang memblok proses-proses yang ingin masuk critical section.Ü
Harus dijamin proses yang ingin masuk critical section tidakÜ menunggu lama hingga waktu tak terhingga, agar tidak terjadi deadlock atau starvation.
Ketika ada proses di critical section maka proses yang ingin masukÜ critical section harus diijinkan segera masuk tanpa waktu tunda.
Tidak ada asumsi mengenai kecepatan relative proses atau jumlah proses yang ada.
2. Critical Section
Beberapa proses memiliki
suatu segmen kode dimana jika segmen itu dieksekusi, maka proses-proses itu
dapat saling mengubah variabel, mengupdate suatu tabel, menulis ke suatu file,
dan lain sebagainya, dan hal ini dapat membawa proses tersebut ke dalam bahaya
race condition. Segmen kode yang seperti inilah yang disebut Critical Section.
Sedangkan race
condition sendiri adalah kondisi dimana ada
beberapa proses yang memanipulasi suatu data secara kongkuren, sehingga data
tersebut tidak sinkron lagi. Nilai akhirnya akan tergantung pada proses mana
yang terakhir dieksekusi. Maka dibutuhkan sinkronisasi.
3. Sumber Daya
Yang dimaksud dengan sumber
daya pada sistem komputer adalah semua komponen yang memberikan fungsi
(manfaat) atau dengan pengertian lain adalah semua yang terdapat atau terhubung
ke sistem komputer yang dapat untuk memindahkan, menyimpan, dan memproses data,
serta untuk mengendalikan fungsi-fungsi tersebut. Sumber daya pada sistem
komputer,
antara lain :
a. Sumber daya fisik
Contoh dari sumber daya fisik diantaranya
keyboard, bar-code reader, mouse, joystick, lightpen, track-ball, touchscreen,
pointing devices, floppy disk drive, hard-disk, tape drive, optical disk, CD
ROM drive, CRT, LCD, printer, modem, ethernet card, PCMCIA, RAM, cache memory,
register, kamera, sound card, radio, digitizer, scanner, plotter, dan
sebagainya.
b. Sumber daya abstrak
Terdiri dari :
Ø Data, misalnya :Semaphore untuk pengendalian
sinkronisasi prosesproses, PCB (Process Control Block) untuk mencatat dan
mengendalikan proses, tabel segmen, tabel page, i-node, FAT, file dan
sebagainya.
Ø Program yang berupa kumpulan instruksi yang
dapat dijalankan oleh system komputer, yang dapat berupa utilitas dan program
aplikasi pengolahan data tertentu.
Nama =Ryan Asnan
NIM =11.1.00048
Proses yang berada di
critical section harus menunggu dalam waktu yang berhingga dan proses yang
berada didalam critical section pun harus dalam jangka waktu yang berhingga
pula
Jelas sekali hal ini harus
terjadi pada manajemen proses disebuah operating system, karena hal ini untuk
menghindari deadlock. Deadlock sendiri merupakan kondisi terparah karena banyak
proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara
benar. Hal ini dapat terjadi jika waktu tunggu proses diluar critical section
tidak jelas maka proses tersebut akan masuk kapan saja kedalam critical
section, entah itu kosong atau masih ada proses didalam critical section. Jika
dalam critical sectionnya masih ada proses maka kasus tersebut telah melanggar
mutual exclusion. Sebaliknya jika waktu proses tidak berhingga atau tidak jelas
maka tidak jelas pula kapan critical section kosong, maka proses yang diluar
akan selamanya menunggu dan akan terjadi deadlock.
Proses-Proses (Masuk) Ke Daerah Critical
Section Tidak Boleh Saling
Memblok
Jika proses-proses saling
memblok ketika akan masuk ke critical section maka akan terjadi pula deadlock.
Ini salah satu penyebab lain deadlock. Karena jika proses-proses saling memblok
maka selamanya proses-proses tersebut tidak akan masuk ke critical section,
oleh karena itu akan terjadi deadlock atau buntu dan proses-proses yang telah
berjalan tidak akan selesai dengan sempurna.
Ketika
Tidak Ada Proses Di Critical Section Maka Proses Yang Ingin
Masuk Ke Critical Section Harus Diijinkan
Tanpa Waktu Tunda
Fungsi seperti itu mutlak
harus ada dalam system operasi. Hal ini berfungsi untuk mencegah adanya deadlock.
Ketika critical section kosong maka proses selanjutnya harus masuk dan
menyelesaikan prosesnya sampai selesai. Jika tidak berarti tidak ada kejelasan
waktu tunggu atau tidak ada kejelasanan waktu proses dan hal ini akan
menyebabkan deadlock.
Metode-metode
dan Algoritma untuk Menjamin Mutual Exclusion
a. Disabling interrupt / mematikan interupsi
Dengan cara mematikan
interupsi yang masuk pada saat proses sedang berada pada critical section-nya.
Cara ini kadang cukup berguna untuk kernel tetapi tidak untuk user. Dan cara
inipun tidak terlalu baik untuk CPU yang jumlahnya lebih dari satu, dimana
disable interrupt hanya mengenai CPU yang sedang menjalankan proses itu dan
tidak berpengaruh terhadap CPU lain
b. Lock variable
Setiap proses yang akan mengakses
ke critical section-nya harus meng-cek lock variable. Jika 0 berarti proses
dapat memasuki critical section-nya dan jika 1 maka proses harus menunggu
sampai lock variable = 0. Kelemahannya adalah 2 proses masih dapat memasuki
critical section-nya pada saat yang bersamaan. Sewaktu satu proses meng-cek
lock variable = 0, pada saat akan men-set 1 ada interupsi untuk melaksanakan
proses lain yang juga ingin memasuki critical sectionnya, maka akan terjadi
race condition.
c. Strict alternation
Dengan mengamati variable
turn untuk menentukan siapa yang akan memasuki critical section-nya bukanlah
ide yang baik jika proses lebih lambat dari yang lain.
d. Peterson’s Solution
Proses tidak akan
diteruskan sampai while terpenuhi, bila interested[other] = TRUE, maka proses
akan menunggu sampai FALSE. Kelemahannya : jika proses memanggil
enter_region-nya secara hampir bersamaan, yang disimpan di turn adalah data
yang ditulis terakhir.
e. Test and Set Lock Instruction / Instruksi
TSL
Dengan bantuan hardware, menentukan siapa
yang berhak memasuki critical_region (section).
NAMA
= Lingga Ian Pratama
NIM
=
10.1.00015
http://godaizone.blogspot.com/2010/12/mutual-exclusion.html
Definisi dari Proses, Thread, Race
Condition,Sinkronisasi, Starvation,Monitor, dan Semaphore!
Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah
lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan.
Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan
oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s
register. Suatu proses umumnya juga termasuk process stack, yang berisikan data
temporer (seperti parameter metoda, address yang kembali, dan variabel lokal)
dan sebuah data section, yang berisikan variabel global.
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded
mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian
sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari
arsitektur multiprosesor. User level thread adalah thread yang tampak oleh
programmer dan tidak diketahui oleh kernel. User level thread secara tipikal
dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung
dan dikelola oleh kernel sistem operasi. Secara umum, user level thread lebih
cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada tiga
perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.
- Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread.
- Model one to one: memetakan setiap user thread ke dalam satu kernel thread. Berakhir.
- Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Race Condition adalah situasi di mana beberapa proses mengakses dan
memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama
tersebut tergantung pada proses yang terakhir selesai. Unutk mencegah race
condition, proses-proses yang berjalan besamaan haus di disinkronisasi.
Sinkronisasi adalah Komunikasi antara proses yang membutuhkan place by calls untuk mengirim
dan menerima data primitive. Terdapat rancangan yang berbeda-beda dalam
implementasi setiap primitive. Pengiriman pesan mungkin dapat diblok (blocking)
atau tidak dapat dibloking (nonblocking) – juga dikenal dengan nama sinkron
atau asinkron.
Starvation adalah suatu proses meninggalkan critical section dan lebih dari satu proses
menunggu (waiting).Beberapa proses dapat ditolak aksenya dalam waktu tak
terbatas.
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.
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:
- Semaphore dapat diinisialisasi dengan nilai non-negatif.
- Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.
Nama = Yandi Saputro
Nim =
10.1.00026
Metode-metode Penjamin
Mutual Exclusion
1. Metode Naif
Sebenarnya metode ini tidak menyelesaikan mutual exclusion, karena masih terdapat scenario proses yang membuat situasi kacau. Metode ini sering disebut metode variable lock sederhana.
Ketika proses hendak masuk critical section, proses lebih dulu memeriksa variable lock dengan ketentuan :
Jika variable lock bernilai 0, proses mengeset variable lock menjadi 1 dan segera masuk critical section.Ø
Jika variable lock bernilai 1, proses menunggu sampai nilai variabel lock menjadi 0.Ø
Metode untuk situasi tertentu
Metode ini sering disebut metode bergantian secara ketat yang mengasumsikan proses-proses yang hendak masuk critical section secara bergantian terus menerus. Proses memeriksa terus menerus sehingga kondisi siap untuk diproses. Kondisi ini tidak dapat ditentukan lamanya waktu sehingga menyia-nyiakan waktu pemroses. Suatu saat kondisi akan crash ketika ada proses yang harus segera masuk sementara ada proses lain yang masih berjalan.
3. Metode Busy Waiting
a. Metode Penyelesaian Dekker
Algoritma Dekker mempunyai property-property berikut :
1. Metode Naif
Sebenarnya metode ini tidak menyelesaikan mutual exclusion, karena masih terdapat scenario proses yang membuat situasi kacau. Metode ini sering disebut metode variable lock sederhana.
Ketika proses hendak masuk critical section, proses lebih dulu memeriksa variable lock dengan ketentuan :
Jika variable lock bernilai 0, proses mengeset variable lock menjadi 1 dan segera masuk critical section.Ø
Jika variable lock bernilai 1, proses menunggu sampai nilai variabel lock menjadi 0.Ø
Metode untuk situasi tertentu
Metode ini sering disebut metode bergantian secara ketat yang mengasumsikan proses-proses yang hendak masuk critical section secara bergantian terus menerus. Proses memeriksa terus menerus sehingga kondisi siap untuk diproses. Kondisi ini tidak dapat ditentukan lamanya waktu sehingga menyia-nyiakan waktu pemroses. Suatu saat kondisi akan crash ketika ada proses yang harus segera masuk sementara ada proses lain yang masih berjalan.
3. Metode Busy Waiting
a. Metode Penyelesaian Dekker
Algoritma Dekker mempunyai property-property berikut :
Tidak memerlukan
instruksi-instruksi perangkat keras khusus.
Proses yang beroperasi di luar critical section tidak dapat mencegah proses lain memasuki critical section.
Proses yang ingin masuk critical section akan segera masuk bila dimungkinkan.
b. Metode Penyelesaian Peterson
Sebelum masuk critical section, proses memanggil enter_critical_section, namun sebelumnya proses memeriksa sampai kondisi aman. Terjadi busy waiting, setelah selesai proses menandai pekerjaan dan mengijinkan proses lain masuk.
Keadaan awal tidak ada proses di critical section. Proses 0 akan masuk critical section. Proses menandai elemen arraynya dan mengeset turn ke 0. Proses memeriksa kondisi, dan prosedur enter_critical_section dilaksanakan. Jika kemudian, proses 1 akan masuk, proses akan menunggu sampai interest(0) menjadi FALSE. Kondisi ini hanya terjadi jika proses 0 mengeset elemen itu dan keluar dari critical section.
c. Metode Pematian Interupsi
Proses mematikan interupsi ke pemroses dan segera masuk ke critical section. Proses kembali mengaktifkan interupsi segera setelah meninggalkan critical section. Metode ini mengakibatkan :
Pemroses tidak dapat beralih ke proses lain karena interupsi clock dimatikan sehingga penjadual pun tidak dieksekusi. Karena penjadual tidak beroperasi maka tidak terjadi alih proses.
Proses dapat memakai memori bersama tanpa takut terinvensi proses lain karena memang tidak ada proses lain yang dieksekusi saat itu.
Kelemahan utama :
Bila proses yang mematikan interupsi mengalami gangguan maka proses tidak akan pernah menghidupkan interupsi kembali. Kejadian ini mengakibatkan kematian seluruh system. Jika terdapat dua pemroses atau lebih, mematikan interupsi hanyaü berpengaruh pada pemroses yang sedang mengeksekusi intruksi itu. Proses lain masih dapat memasuki critical section.
d. Metode Test and Set Lock (TSL)
Metode ini membaca isi memori ke register dan kemudian menyimpan nilai bukan 0 ke alamat memori. Pemroses yang mengeksekusi instruksi tsl mengunci bus memori, mencegah pemroses lain mengkases memori.
e. Metode Exchange (XCHG)
Metode ini menggunakan instruksi exchange (xchg). Instruksi xchg menukarkan dua isi memori.
f. Metode Instruksi Mesin
Keunggulan :
Proses yang beroperasi di luar critical section tidak dapat mencegah proses lain memasuki critical section.
Proses yang ingin masuk critical section akan segera masuk bila dimungkinkan.
b. Metode Penyelesaian Peterson
Sebelum masuk critical section, proses memanggil enter_critical_section, namun sebelumnya proses memeriksa sampai kondisi aman. Terjadi busy waiting, setelah selesai proses menandai pekerjaan dan mengijinkan proses lain masuk.
Keadaan awal tidak ada proses di critical section. Proses 0 akan masuk critical section. Proses menandai elemen arraynya dan mengeset turn ke 0. Proses memeriksa kondisi, dan prosedur enter_critical_section dilaksanakan. Jika kemudian, proses 1 akan masuk, proses akan menunggu sampai interest(0) menjadi FALSE. Kondisi ini hanya terjadi jika proses 0 mengeset elemen itu dan keluar dari critical section.
c. Metode Pematian Interupsi
Proses mematikan interupsi ke pemroses dan segera masuk ke critical section. Proses kembali mengaktifkan interupsi segera setelah meninggalkan critical section. Metode ini mengakibatkan :
Pemroses tidak dapat beralih ke proses lain karena interupsi clock dimatikan sehingga penjadual pun tidak dieksekusi. Karena penjadual tidak beroperasi maka tidak terjadi alih proses.
Proses dapat memakai memori bersama tanpa takut terinvensi proses lain karena memang tidak ada proses lain yang dieksekusi saat itu.
Kelemahan utama :
Bila proses yang mematikan interupsi mengalami gangguan maka proses tidak akan pernah menghidupkan interupsi kembali. Kejadian ini mengakibatkan kematian seluruh system. Jika terdapat dua pemroses atau lebih, mematikan interupsi hanyaü berpengaruh pada pemroses yang sedang mengeksekusi intruksi itu. Proses lain masih dapat memasuki critical section.
d. Metode Test and Set Lock (TSL)
Metode ini membaca isi memori ke register dan kemudian menyimpan nilai bukan 0 ke alamat memori. Pemroses yang mengeksekusi instruksi tsl mengunci bus memori, mencegah pemroses lain mengkases memori.
e. Metode Exchange (XCHG)
Metode ini menggunakan instruksi exchange (xchg). Instruksi xchg menukarkan dua isi memori.
f. Metode Instruksi Mesin
Keunggulan :
Sederhana dan mudah diverifikasiü
Dapat diterapkan ke sembarang jumlah prosesü
Dapat digunakan untuk mendukung banyak critical regionü
Kelemahan :
Merupakan metode dengan busy waiting, sangat tidak efisien.ü
Adanya busy waiting memungkinkan terjadi deadlock dan starvation.ü
Metode Penyelesaian Level Tinggi (Metode Semapore)
Dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Proses berhenti sampai proses memperoleh penanda tertentu. Variabel khusus untuk penandaan ini disebut semaphore. Semaphore mempunyai dua property :
a. Semaphore dapat diinisialisasi dengan nilai bukan negative.
b. Ada dua operasi terhadap semaphore yaitu Operasi Up dan Operasi Down.
Operasi Down
Operasi ini menurunkan nilai semaphore. Jika nilai semaphore menjadi bukan positif maka proses yang mengeksekusinya diblok. Operasi Down adalah atomic (atomic action), tidak dapat diinterupsi sebelum selesai. Menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblok sebagai instruksi tunggal. Tidak ada proses lain yang dapat diakses sampai proses selesai.
Operasi Up
Operasi ini menaikkan nilai semaphore. Jika satu proses atau lebih telah diblok pada suatu semaphore tidak dapat menyelesaikan operasi down maka salah satu dipilih oleh system dan dibolehkan menyelesaikan operasi downnya. Operasi Up menaikan nilai semaphore, memindahkan dari antrian dan menempatkan satu proses ke senarai ready tidak dapat diinterupsi.
Sebelum masuk critical section, proses melakukan down. Bila berhasil maka proses masuk critical section. Bila tidak berhasil maka proses diblok pada semaphore. Proses yang diblok dapat melanjutkan jika proses yang berada di critical section keluar dan melakukan operasi up dan menjadikan proses yang diblok menjadi ready dan berlanjut hingga operasi downnya berhasil.
C. Implementasi Semaphore
1. Pematian Interupsi
Sistem operasi mematikan interupsi selagi memeriksa semaphore, memperbarui, dan menjadikan proses diblok. Karena semua aksi hanya memerlukan beberapa instruksi, pematian interupsi tidak merugikan.
2. Instruksi tsl
Pada banyak pemroses, tiap semaphore dilindungi variable lock dan instruksi tsl agar menjamin hanya satu pemroses yang saat itu memanipulasi semaphore
Dapat diterapkan ke sembarang jumlah prosesü
Dapat digunakan untuk mendukung banyak critical regionü
Kelemahan :
Merupakan metode dengan busy waiting, sangat tidak efisien.ü
Adanya busy waiting memungkinkan terjadi deadlock dan starvation.ü
Metode Penyelesaian Level Tinggi (Metode Semapore)
Dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Proses berhenti sampai proses memperoleh penanda tertentu. Variabel khusus untuk penandaan ini disebut semaphore. Semaphore mempunyai dua property :
a. Semaphore dapat diinisialisasi dengan nilai bukan negative.
b. Ada dua operasi terhadap semaphore yaitu Operasi Up dan Operasi Down.
Operasi Down
Operasi ini menurunkan nilai semaphore. Jika nilai semaphore menjadi bukan positif maka proses yang mengeksekusinya diblok. Operasi Down adalah atomic (atomic action), tidak dapat diinterupsi sebelum selesai. Menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblok sebagai instruksi tunggal. Tidak ada proses lain yang dapat diakses sampai proses selesai.
Operasi Up
Operasi ini menaikkan nilai semaphore. Jika satu proses atau lebih telah diblok pada suatu semaphore tidak dapat menyelesaikan operasi down maka salah satu dipilih oleh system dan dibolehkan menyelesaikan operasi downnya. Operasi Up menaikan nilai semaphore, memindahkan dari antrian dan menempatkan satu proses ke senarai ready tidak dapat diinterupsi.
Sebelum masuk critical section, proses melakukan down. Bila berhasil maka proses masuk critical section. Bila tidak berhasil maka proses diblok pada semaphore. Proses yang diblok dapat melanjutkan jika proses yang berada di critical section keluar dan melakukan operasi up dan menjadikan proses yang diblok menjadi ready dan berlanjut hingga operasi downnya berhasil.
C. Implementasi Semaphore
1. Pematian Interupsi
Sistem operasi mematikan interupsi selagi memeriksa semaphore, memperbarui, dan menjadikan proses diblok. Karena semua aksi hanya memerlukan beberapa instruksi, pematian interupsi tidak merugikan.
2. Instruksi tsl
Pada banyak pemroses, tiap semaphore dilindungi variable lock dan instruksi tsl agar menjamin hanya satu pemroses yang saat itu memanipulasi semaphore
NAMA =Alan Alfianto Prasetyo
NIM =
11.1.00001
SUMBER : http://godaizone.blogspot.com/2010/12/mutual-exclusion.html
Tidak ada komentar:
Posting Komentar