Perkembangan sistem komputer mendatang adalah menuju ke sistem multi-processing, multiprogramming, terdistribusi dan paralel yang mengharuskan adanya proses-proses yang berjalan bersama dalam waktu yang bersamaan. Hal demikian merupakan masalah yang perlu perhatian dari perancang sistem operasi. Kondisi dimana pada saat yang bersamaan terdapat lebih dari satu proses disebut dengan kongkurensi (proses-proses yang kongkuren). Dan dalam kongruensi ini pasti ada masalah yang salah satunya adalah 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 gambar 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.
No comments:
Post a Comment