Soal latihan :
1. Pada proses kongkuren yang berinteraksi yang mempunyai beberapa masalah
yang harus diselesaikan, yaitu :
- Mutual excusion
- Deadlock
- Starvation
- Sinkronisasi
2. Kongurensi merupakan landasan umum perancangan sistem operasi. apa yang
anda ketahui tentang proses yang konguren. jelaskan!
3. Terdapat dua prosees yaitu proses 1 dan proses 2 (P1 dan P2) dan dua
sumber daya yaitu sumber daya 1 dan sumber daya 2 (R1 dan R2) proses 1 (P1) dan
proses 2 (P2) harus mengakses kedua sumber daya. kondisi tersebut dapat terjadi
deadlock, jelaskan!
4. Terdapat tiga buah proses P1,P2 dan P3. memrlukan pengaksesan sumber
daya tidak merata. Jelaskan bagaimana starvision itu terjadi.
Jawab !
1. - 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.
Pemaksaan adanya mutual eclusion
menimbulkan dua maslah, yaitu:
- Deadlock.
- Deadlock.
- Startvation.
Kriteria penyelesaian mutual exclusion:
1. Mutual
exclusion harus dijamin, hanya satu proses pada saat yang
diijinkan masuk ke critical section.
diijinkan masuk ke critical section.
2. Prosesyang
berada di noncritical section, dilarang memblocked proses lain yang ingin
masuk critical section.
3. Harus
dijamin proses yang ingin masuk critical section tidak menunggu
selama waktu yang tak berhingga.
selama waktu yang tak berhingga.
4. Ketika
tidak ada proses pada critical section maka proses yang ingin
masuk critical section harus diijinkan masuk tanpa tertunda.
masuk critical section harus diijinkan masuk tanpa tertunda.
5. Tidak
ada asumsi mengenai kecepatan relative proses atau jumlah
proses yang ada.
proses yang ada.
- Deadlock adalah suatu kondisi dimana dua
proses atau lebih saling menunggu proses yang lain untuk
melepaskan resource yang sedang dipakai. Karena beberapa proses itu
saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut. Deadlock adalah
masalah yang biasa terjadi ketika banyak proses yang membagi
sebuah resource yang hanya boleh dirubah oleh satu proses saja dalam
satu waktu.
Di kehidupan
nyata, deadlock dapat digambarkan dalam gambar berikut.Pada gambar
diatas, deadlock dianalogikan sebagai dua antrian mobil yang akan
menyeberangi jembatan. Dalam kasus diatas, antrian di sebelah kiri menunggu
antrian kanan untuk mengosongkan jembatan (resource), begitu juga dengan
antrian kanan. Akhirnya tidak terjadi kemajuan dalam kerja dua antrian
tersebut.Misal ada proses A mempunyai resource X, proses B
mempunyai resource Y.
Kemudian kedua proses ini dijalankan
bersama, proses A memerlukan resource Y dan proses B
memerlukan resource X, tetapi kedua proses tidak akan
memberikan resource yang dimiliki sebelum proses dirinya sendiri
selesai dilakukan. Sehingga akan terjadi tunggu-menunggu.
- Starvation adalah kondisi yang biasanya
terjadi setelah deadlock. Proses yang
kekurangan resource (karena terjadi deadlock) tidak akan pernah
mendapat resource yang dibutuhkan sehingga
mengalami starvation (kelaparan).
Namun, starvation juga bisa
terjadi tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem
sehingga terjadi ketimpangan dalam pembagian resouce. Satu proses selalu
mendapat resource, sedangkan proses yang lain tidak pernah mendapatkannya.
Ilustrasi starvation tanpa deadlock di dunia nyata dapat
dilihat di bawah ini.Pada gambar diatas, pada antrian kanan
terjadi starvation karena resource (jembatan) selalu dipakai oleh
antrian kiri, dan antrian kanan tidak mendapatkan giliran
- Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat
yang bersamaan. Tujuan utama sinkronisasi adalah menghindari terjadinya
inkonsistensi data karena pengaksesan oleh beberapa proses yang berbeda (mutual
exclusion) serta untuk mengatur urutan jalannya proses-proses sehingga dapat
berjalan dengan lancar dan terhindar
dari deadlock atau starvation.
2. Konkurensi merupakan landasan umum perancangan sistem operasi.
Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.
Dikatakan sebagai landasan umum perancangan sistem operasi karena dalam
menciptakan suatu sistem operasi, sistem operasi tersebut umumnya harus bisa
menjalankan beberapa proses (lebih dari satu proses) pada saat yang bersamaan.
3. Terdapat dua proses P1 dan P2
- Dua
sumber kritis R1 dan R2
- Proses
P1 dan P2 harus mengakses kedua sumber daya itu (R1 dan R2).
- R1
diberikan pada P1 sedang R2 diberikan pada P2.
- Karena
untuk melanjutkan eksekusi memerlukan dua sumber daya sekaligus maka proses
akan saling menunggu sumber daya lain selamanya.
Syarat terjadinya deadlock:
- Mutual
exclusion
Tiap sumber daya saat diberikan pada satu
proses.
- Hold
and wait Condition
Proses-proses yang sedang menggenggam
sumber daya, menunggu
sumberdaya-sumberdaya baru
sumberdaya-sumberdaya baru
- Non
Preemption Condition
Sumberdaya - sumberdaya yang sebelumnya
duberikan tidak dapat
diambil paksa dari proses itu. Sumberdaya – sumberdaya
harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
diambil paksa dari proses itu. Sumberdaya – sumberdaya
harus secara eksplisit dilepaskan dari proses yang menggenggamnya.
- Circulair
Wait Condition
Harus terdapat rantai sirkuler dari dua
proses atau lebih, masing-masing
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
menunggu sumber daya yang digenggam oleh berikutnya pada rantai itu.
Metode Mengatasi deadlock :
1. Pencegahan
terjadinya deadlock
2. Pengindaran
terjadinya deadlock
3. Deteksi
dan pemulihan deadlock
3. Terdapat 3 (tiga) proses P1,P2 dan P3.
P1,P2 dan P3.memerlukan akses sumber daya R secaraperiodik. Selanjutnya : P1
sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber sumber daya R.
Ketika P1 keluar dari critical region, P2 dan P3 diijinkan mengakses R. Asumsi
P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali
diberikan ke P1 yang saat itu membutuhkan sumber daya R. Jika pemberian hak
akses bergantian terusmenerus antara P1 dan P3 , maka P2 tidak pernah
memperoleh akses sumber daya R, meski tidak ada deadlock. Pada situasi ini P2
disebut mengalami startvation.