STARVATION
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).Ilustrasi starvation dengan deadlock seperti pada gambar di
bawah ini.
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.
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
antrian kanan terjadi starvation karena resource (jembatan) selalu
dipakai oleh antrian kiri, dan antrian kanan tidak mendapatkan giliran. Jika dua proses ingin mengakses satu sumber daya tunggal maka sistem
operasi mengalokasikan untuk salah satu proses dan mengharuskan proses lain
menunggu. Proses yang ditolak pengaksesan menjadi melambat. Jika terlalu parah
maka proses di-blocked terus-menerus sehingga tidak pernah mengakses sumber
daya. Proses tidak pernah dapat berakhir dengan suskses.
Dalam
beberapa cara Starvation dapat diselsaikan dengan sumber daya yang dialokasikan
dengan dengan melibatkan sistem operasi, dengan pengendaliain persaingan ini proses-proses seperti ini akan
teratasi. Kerjasama ini meliputi sistem operasi yang saling berinteraksi tanpa
dinyatakan dengan eksplisit. Sistem operasi ini sudah terprogram melalui sistem
call jadi antara proses satu dengan yang lain tidak ada pembedaan yang
mengakibatkan persaingan antara proses-proses tersebut. Program ini sudah
dimasukkan dalam sistem operasi yang sudah sesuai dengan mutual exclusion.
Ø Mengatasi Starvation
Salah satunya dengan cara Round Robbin:
Selain
itu, Starvation juga dapat diatasi dengan pemrosesan dengan cara Round Robin.
Pada Round Robin, proses yang masuk akan dimasukkan ke dalam antrian menurut
kedatangan proses tersebut. Dalam penyelesainnya, suatu proses tidak akan
langsung selesai jika waktu yang dibutuhkan melebihi waktu kuantum yang
diberikan. Waktu kuantum adalah waktu yang diberikan untuk menyelesaikan suatu
proses. Ketika sutu proses telah mencapai batas waktu kuantum, sisa dari proses
tersebut dikembalikan ke antrian paling belakang dan resource dipindahkan ke
proses selanjutnya. Dengan cara ini, semua proses yang mengantri, akan
mendapatkan resource secara bergantian ( tidak ada proses yang memonopoli
resource ) sehingga semua proses dapat diselesaikan.



No comments:
Post a Comment