KONKURENSI
Konkurensi merupakan
landasan unum 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:
- Mutual Exclusion
- Sinkronisasi
- Deadlock
- Startvation
A.
Prinsip-prinsip Konkurensi
Konkurensi meliputi
hal-hal sbb:
Ø Alokasi waktu pemroses untuk
proses-proses
Ø Pemakaian bersama dan persaingan
untuk mendapatkan sumber daya
Ø Komunikasi antarproses
Ø Sinkronisasi aktivitas banyak proses.
Konkurensi
dapat muncul pada konteks berbeda, antara lain:
Ø Banyak aplikasi (multiple application).
Multiprogramming
memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal
dari aplikasi-aplikasi berbeda. Pada system multiprogramming bisa terdapat banyak
aplikasi sekaligus yang dijalankan di system komputer.
Ø Aplikasi terstruktur.
Perluasan prinsip
perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat
secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan
proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
Ø Struktur sistem operasi.
Keunggulan strukturisasi
dapat jauga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual
yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai
sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan
ini.
Ø Untuk Strukturisasi Satu Proses.
Saat ini untuk
peningkatan kinerja maka satu proses dapat memiliki banyak thread yang
independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai
tujuan proses.
Interaksi Antar Proses. Pada
sistem dengan banyak proses (kongkuren), terdapat 2 katagori interaksi, yaitu:
1.
Proses-proses
Saling Tidak Peduli (Independen).
Proses-proses ini tidak
dimaksudkan untuk bekerja untukmencapai tujuan tertentu. Pada multiprogramming
dengnaproses-proses independen, dapat berupa batch atau sesiinteraktif, atau
campuran keduanya.
2.
Proses-proses
Saling Mempedulikan Secara Tidak Langsung.
Proses-proses tidak perlu
saling mempedulikan identitas proses-proses lain, tapi sama-sama mengakses
objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu
bekerja sama (cooperation) dalam memakai bersama objek tertentu.
B. Kesulitan-kesulitan yang ditimbulkan konkurensi
Masalah yang dihadapi
proses-proses kongkurensi pada multiprogramming
dan multiprocessing
serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak
dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:
1.
Kecepatan
proses pada sistem tergantung pada beberapa hal, antara lain:
o
Aktivitas
proses-proses lain
o
Cara
sistem operasi menangani interupsi
o
Kebijaksanaan
penjadwalan yang dilakukan oleh sistem operasi.
2.
Beberapa
kesulitan yang dapat muncul, di antaranya adalah:
o
Pemakaian
bersama sumber daya global.
Jika dua proses
menggunakan variabel global yang sama, serta keduanya membaca dan menulis
variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel
itu menjadi kritis.
o
Pengelolaan
alokasi sumber daya agar optimal
Jika proses A meminta
suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu.
Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya,
maka akan terjadi inefisiensi.
o
Pencarian
kesalahan pemrograman.
Pencarian kesalahan pada
pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada
program-program sekuen.
3.
Proses-proses
konkuren mengharuskan beberapa hal yang harus ditangani, antara lain:
o
Sistem
operasi harus mengetahui proses-proses yang aktif
o
Sistem
operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap
proses aktif. Sumber daya yang harus dikelola, antara lain:
i.
Waktu pemroses.
ii.
Memori
iii.Berkas-berkas
iv. Perangkat I/O
o
Sistem
operasi harus memproteksi data dan sumber daya fisik masing-masing proses dari
gangguan proses-proses lain.
o
Hasil-hasil
proses harus independen terhadap kecepatan relatif proses-proses lain dimana
eksekusi dilakukan.
4.
Pokok
Penyelesaian Masalah Kongkurensi
Pada dasarnya
penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:
- Mengasumsikan adanya memori yang
digunakan bersama
- Tidak mengasumsikan adanya memori
yang digunakan bersama.
Adanya memori bersama
lebih memudahkan penyelesaian masalah kongkurensi.
Metode memori bersama
dapat dipakai untuk singleprocessor ataupun multiprocessor yang mempunyai memori
bersama.
Penyelesaian ini tidak
dapat digunakan untuk multiprocessor tanpa memori bersama atau untuk sistem
tersebar.
1.
MUTUAL EXCLUSION
Mutual exclusion adalah
jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu
tertentu. Sumber daya yang tidak dapat dipakai bersama pada saat bersamaan.
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 kriteria
sbb:
o
Mutual
exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya sendiri.
Di sini terjadi proses tunggal.
o
Proses
yang berada di noncritical section, dilarang mem-blocked proses-proses lain
yang ingin masuk critical section. Hal ini bisa terjadi startvation.
o
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.
o
Ketika
tidak ada proses pada critical section, maka proses yang ingin masuk critical
section harus ijinkan masuk tanpa waktu tunda.
o
Tidak ada asumsi mengenai kecepatan relatif proses atau
jumlah yang ada.
o
Proses
hanya tinggal pada critical section selama satu waktu yang berhingga
Beberapa metode yang
diusulkan untuk menjamin Mutual Exclusion, antara lain:
- Metode Variable Lock
Locking adalah salah satu mekanisasi
pengontrol konkuren. Konsep dasar : pada saat suatu transaksi memerlukan
jaminan kalau record yang diinginkan tidak akan berubah secara mendadak, maka
diperlukan kunci untuk record tersebut. Fungsi kunci (lock) adalah menjaga
record tersebut agar tidak dimodifikasi transaksi lain.
Cara kerja dari kunci :
1.
Pertama
kita asumsikan terdapat 2 macam kunci :
- Kunci X : kunci yang eksklusif.
- Kunci S : kunci yang digunakan
bersama-sama.
2.
Jika
transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B
untuk suatu kunci pada R ditunda, dan B harus menungggu sampai A melepaskan
kunci tersebut.
3.
Jika
transaksi A menggunakan kunci S pada record R, maka :\
a.
Bila
transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A
melepaskan kunci tersebut.
b.
Bila
transaksi B ingin menggunakan kunci S, maka B dapat menggunakan kunci S bersama
A.
Tabel Kunci
4.
Bila
suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia memerlukan
kunci S baca (S).
Bila transaksi tersebut
ingin memodifikasi record maka secara otomatis ia memerlukan kunci X
memodifikasi (X).
Bila transaksi tersebut
sudah menggunakan kunci S, setelah itu ia akan memodifikasi record, maka kunci
S akan dinaikan ke level kunci X.
5.
Kunci
X dan kunci S akan dilepaskan pada saat synchpoint (synchronization point).
Synchpoint menyatakan akhir dari suatu transaksi dimana basis data berada pada
state yang konsisten. Bila synchpoint ditetapkan maka :
- Semua modifikasi program menjalankan
operasi commit atau rollback.
- Semua kunci dari record dilepaskan.
Metode ini sederhana
ketika proses masuk critical section lebih dahulu
memeriksa variable lock.
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.
>>>>>selanjutnya klik di bawah<<<<<<<<
DAFTAR PUSTAKA
Ø Sistem
Operasi, SP Hariningsih, Penerbit
Graha Ilmu 2003.
Ø Silberschatz, A., Gagne, G. dan Galvin, P., "Applied
Operating System Concept", John Wiley and Sons Inc., 2000
Ø Hariyanto, B.,"Sistem Operasi", Bandung:
Informatika, Desember 1997
Ø Tanenbaum, Andrew S., "Modern Operating
Systems", Englewood Cliffs, New Jersey: Prentice-Hall Inc., 1992
Ø Coffman, E.G., Jr., M.J. Elphick dan A. Shoshani,
"System Deadlocks", Computing surveys, Vol.3, No.2, June 1971
Ø WWW.Google.com
0 komentar:
Posting Komentar