Senin, 17 Juni 2013

Masalah-masalah konkurer

Mutual Exclusion

Pada system computer terdapat sumber daya yang tidak dapat dipakai bersama pada saat yang bersamaan seperti pada penggunaan printer, Sumber daya seperti hanya dapat menjalankan satu proses pada suatu saat, sumber daya ini disebut sumber daya kritis. Program yang menggunakan sumber daya kritis disebut sedang memasuki critical region / section .
Sistem operasi memberikan fasilitas untuk pemrogram dapat memberikan indikasi keberadaan critical region. Sistem operasi menyediakan layanan ( berupa system call ) untuk mencagah suatu proses masuk kedalam critical region akan tetapi di dalam critical region terdapat proses lain yang sedang berjalan. Mutual exclusion merupakan solusi bagi masalah pada critical region / section, mutual exclusion adalah persoalan untu menjamin hanya satu proses saja yang berjalan dalam suatu critical region / section.

Ilustrasi aplikasi tabungan


Seluruh sistem yang melibatkan banyak proses mengakses satu sumber daya bersama selalu menimbulkan persoalan mutual-exclusion.
Contohnya adalah sebagai berikut.
· Pada aplikasi tabungan, misalnya rekening A berisi Rp 1.000.000,- yang terdaftar di kantor cabang bandung.
· Kemudian pada suatu saat program aplikasi kantor cabang di Jakarta melayani penyetoran Rp 3.000.000,- ke rekening A. lalu program aplikasi membaca saldo akhir rekening A

Persoalan di atas dapat tidak terjamin mutual-exclusion jika:
1. Program aplikasi bandung menulis ke rekening A secara cepat sehingga di hasilkan saldo Rp 6.000.000. Setelah itu, program aplikasi kantor cabang Jakarta menimpa hasil itu dengan saldo Rp 4.000.000,- . Dalam kasus ini saldo akhir yang diperoleh adalah Rp 4.000.000,- bukan Rp 10.000.000,- (yang seharusnya).
2. Program aplikasi Jakarta dilakukan menulis ke rekening A secara cepat sehingga dihasilkan saldo Rp 4.000.000,-. Setelah itu program aplikasi di kantor bandung menimpa hasil itu dengan saldo Rp 6.000.000,-. Hasil yang lebih baik dibanding skenario pertama tetapi masih di bawah yang seharusnya yaitu Rp 10.000.000,-.

Kriteria Penyelesaian Mutual-Exclusion


Kemampuan menjamin mutual-exclusion harus memenuhi kriteria-kriteria berikut:
1. Mutual-exclusion harus dijamin.
2. Hanya satu proses pada satu saat yang diizinkan masuk critical section yang sama pada saat telah ada proses yang masuk critical section itu.
3. Proses yang berada di noncritical section, dilarang mem-block proses-proses lain yang ingin masuk critical section.
4. Harus dijamin proses yang ingin masuk critical section tidak menunggu selama waktu yang tak berhingga atau tidak boleh terjadi deadlock maupun startvation.
5. Ketika tidak ada proses di critical section, maka proses yang ingin masuk critical section harus diizinkan segera masuk tanpa ada waktu tunda.
6. Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada. kriteria pada nomor satu merupakan kriteria pokok yang harus dipenuhi. Metode yang melanggar kriteria nomor satu sama sekali tidak dapat di gunakan. Pelanggaran kriteria-kriteria lain berarti metode masih bisa digunakan pada situasi-situasi tertentu tapi harus dilakukan secara hati-hati. 

Deadlock

Deadlock adalah keadaan dimana 2 atau lebih proses saling menunggu meminta resources untuk waktu yang tidak terbatas lamanya. Analoginya seperti pada kondisi jalan raya dimana terjadi kemacetan parah. Deadlock adalah efek samping dari sinkronisasi, dimana satu variabel digunakan oleh 2 proses. Deadlock bisa digambarkan sebagai berikut :
Kejadian Deadlock selalu tidak lepas dari sumber daya, bahwa hampir seluruhnya merupakan
masalah sumber daya yang digunakan bersama-sama. Oleh karena itu, kita juga perlu tahu tentang
jenis sumber daya, yaitu: sumber daya dapat digunakan lagi berulang-ulang dan sumber daya yang
dapat digunakan dan habis dipakai atau dapat dikatakan sumber daya sekali pakai.
Sumber daya ini tidak habis dipakai oleh proses mana pun.Tetapi setelah proses berakhir, sumber
daya ini dikembalikan untuk dipakai oleh proses lain yang sebelumnya tidak kebagian sumber daya ini.
Contohnya prosesor, Channel I/O, disk, semaphore. Contoh peran sumber daya jenis ini pada
terjadinya Deadlock ialah misalnya sebuah proses memakai disk A dan B, maka akan terjadi Deadlock
jika setiap proses sudah memiliki salah satu disk dan meminta disk yang lain. Masalah ini tidak hanya
dirasakan oleh pemrogram tetapi oleh seorang yang merancang sebuah sistem operasi. Cara yang
digunakan pada umumnya dengan cara memperhitungkan dahulu sumber daya yang digunakan oleh
proses-proses yang akan menggunakan sumber daya tersebut. Contoh lain yang menyebabkan
Deadlock dari sumber yang dapat dipakai berulang-ulang ialah berkaitan dengan jumlah proses yang
memakai memori utama.

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.

0 komentar:

Posting Komentar