Konkurensi

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama. Pada proses-proses konkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan:
1. Mutual Exclusion
2. Sinkronisasi
3. Deadlock
4. Startvation

A. Prinsip-prinsip Konkurensi
Konkurensi meliputi hal-hal sbb:
Ø  Alokasi wkatu pemroses untuk proses-proses
Ø  Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
Ø  Komunikasi antarproses
Ø  Sinkronisasi aktivitas banyak proses.

Konkurensi dapat muncul pada tiga konteks berbeda, antara lain:
Ø  Banyak aplikasi (multiple application)
Ø  Aplikasi terstruktur
Ø  Struktur sistem operasi

B. Kesulitan-kesulitan yang ditimbulkan konkurensi
    Konsep: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beragam kemungkinan yang terjadi tidak dapat diprediksi, seperti:
1. Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:
Ø  Aktivitas proses-proses lain
Ø  Cara sistem operasi menangani interupsi
Ø  Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.

2. Beberapa kesulitan yang dapat muncul, di antaranya adalah:
Ø  Pemakaian bersama sumber daya global
Ø  Pengelolaan alokasi sumber daya agar optimal
Ø  Pencarian kesalahan pemrograman.

3. Proses-proses konkuren mengharuskn beberapa hal yang harus ditangani, antara lain:
Ø  Sistem operasi harus mengetahui proses-proses yang aktif
Ø  Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain:
a)      Waktu pemroses.
b)      Memori
c)      Berkas-berkas
d)     Perangkat I/O

Ø  Sistem operasi harus memproteksi data dan sumber daya fisik masing-masing proses dari gangguan proses-proses lain.
Ø  Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.

Mutual Exclusion
    Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu tertentu. Sering terjadi pada peralatan pencetakan (printer). Daemon printer adalah proses yang melakukan penjadwalan dan pengendalian pencetakan berkas-berkas di printer. Ruang disk ini disebut direktori spooler. Direktori spooler membagi disk menjadi sejumlah slot. Slot-slot diisi berkas yang akan dicetak. Terdapat variabel in yang menunjuk slot bebas pada ruang disk yang akan dipakai untuk menyimpan berkas yang ingin dijadwalkan untuk dicetak. Bagian program yang sedang mengakses memory atau sumber daya yang dipakai bersama disebut critical section. Jika proses pada critical section memblokir proses-proses lain dalam antrian, maka akan terjadi startvation dan deadlock
    Kesuksesan proses-proses konkurensi memerlukan pendefinisian critical section dan memaksakan mutual exclusion di antara proses-proses konkuren yang sedang berjalan. Pemaksaan mutual exclusion merupakan landasan pemrosesan konkuren. Fasilitas atau kemampuan menyediakan dukungan mutual exclusion harus memenuhi criteria sbb:
Ø  Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya  sendiri. Di sini terjadi proses tunggal.
Ø  Proses yang berada di noncritical section, dilarang mem-blocked proses-proses lain yang ingin masuk critical section. Hal ini bisa terjadi startvation.
Ø  Harus dijamin bhwa proses yang ingin masuk critical section tidak menunggu selama waktu yang tak terhingga. Ini bisa mengakibatkan masalah deadlock dan antrian proses bertambah panjang.
Ø  Ketika tidak ada proses pada critical section, maka proses yang ingin masuk critical section harus ijinkan masuk tanpa waktu tunda.
Ø  Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah yang ada.
Ø  Proses hanya tinggal pada critical section selama satu waktu yang berhingga

Beberapa metode yang diusulkan untuk menjamin Mutual Exclusion, antara lain:
Ø  Metode Variable Lock
Metode ini sederhana ketika proses masuk critical section lebih dahulu
memeriksa variable lock. Jika variable lock bernilai 0, proses men-set variable locknya menjadi 1 kemudian masuk ke dalam critical section. Jika variable lock bernilai 1, maka proses menunggu sampai nilai variable lock nya menjadi 0. Metode ini tidak menjamin proses tidak masuk critical section yang telah dimasuki proses lain.

Ø  Metode bergantian secara ketat
Metode ini mengasumsikan dapat mengalir masuk critical section secara
bergantian terus-menerus. Metode ini melakukan refleksi terhadap variabel yang berfungsi untuk memenuhi critical section.

Tidak ada komentar:

Posting Komentar