1.
Pengertian
kongkurensi
Perkembangan sistem komputer mendatang
adalah menuju ke sistem multiprocessing,
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).
Proses-proses yang mengalami kongkuren
dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga
membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan kongkuren,
bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya
perlu dukungan sistem operasi dimana bahasa berada.
2.
Prinsip-prinsip
kongkurensi
Kongkurensi merupakan kegiatan yang berhubungan dengan :
a. Alokasi waktu pemroses untuk
proses-proses yang aktif.
b. Pemakaian bersama dan persaingan
untuk mendapatkan sumber daya.
c. Komunikasi antar proses.
d. Sinkronisasi aktivitas banyak
proses
Masalah kongkurensi dapat terjadi pada :
a. Banyak aplikasi.
Multiprogramming memungkinkan banyak
proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi
berbeda. Pada sistem sistem multiprogramming bisa terdapat banyak aplikasi
sekaligus yang dijalankan di sistem komputer.
b. Strukturisasi sebuah aplikasi yang terdiri dari kumpulan
proses.
Perluasan prinsip perancangan modular
dan pemograman terstruktur adalah suatu aplikasi dapat secara efektif
diimplementasikan sebagai kumpulan proses. Dengan sekumpulan proses, maka tiap
proses menyediakan satu layanan spesifik tertentu.
c. Strukturisasi sebuah 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. Strukturisasi
satu aplikasi dapat dilakukan dengan banyak proses atau banyak thread. Sistem
operasi modern telah mendukung banyak thread yang berkinerja lebih bagus
dibanding proses dalam kondisi/lingkungan yang lebih terkendali.
Contoh : Suatu word
processor antara lain mempunyai kemampuan :
-
Menerima masukan dari keyboard
-
Menerima masukan dari mouse atau perangkat
penunjuk yang lain (asinkron)
-
Pemisahan kata-kata
-
Memformat baris menjadi rata kanan, kiri atau
kanan-kiri.
Aplikasi ini dapat diterapkan dengan
banyak proses atau thread yang masingmasing mempunyai tugas tertentu. Dengan
demikian, saat dilakukan penataan tampilan di layar, aplikasi sekaligus dapat
menerima masukan dari mouse yang segera akan diteruskan ke aplikasi untuk
mendapat perhatian.
d. Strukturisasi sistem operasi
Keunggulan strukturisasi dapat
diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang
dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai kumpulan
proses. Sistem operasi bermodelkan client/server.
3. Kesulitan-kesulitan dalam kongkurensi
Kecepatan proses pada sistem dipengaruhi oleh :
a. Aktivitas-aktivitas proses-proses
lain.
b. Cara sistem operasi menangani
interupsi.
c. Kebijaksanaan penjadwalan yang
dilakukan oleh sistem operasi
Beberapa kesulitan yang muncul :
a. Pemakaian bersama sumber daya global.
Apabila terdapat dua proses yang menggunakan variabel
global yang sama serta keduanya membaca dan menulis ke variabel itu,maka urutan
terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.
b. Pengelolaan alokasi sumber daya agar optimal.
Apabila proses A meminta suatu kanal
masukan/keluaran tertentu dan dipenuhi, kemudian terjadi proses A di suspend
sebelum menggunakan kanal tersebut. Jika sistem operasi mengunci kanal (tidak
memperbolehkan atau mencegah proses lain untuk menggunakannya), maka tindakan
tersebut menghasilkan inefisiensi.
c. Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemograman
kongkuren lebih sulit disbanding pencarian kesalahan pada program-program
sekuen.
Penanganan kongkurensi
adalah dengan :
a. Mengetahui proses-proses yang aktif.
Sistem operasi mengelola senarai proses di sistem operasi.
Senarai ini berupa senarai PCB proses. Senarai berjumlah sesuai jumlah state
yang diimplementasikan sistem operasi.
b. Mengatur alokasi dan dealokasi beragam sumber daya untuk tiap
proses yang aktif.
Sumber daya yang harus dikelola antara lain :
-
Waktu
pemroses
-
Memori
-
Berkas-berkas (file)
-
Peralatan masukan/keluaran
-
Dan sebagainya
c. Proteksi data dan sumber daya fisik proses.
Proteksi data dan sumber daya fisik masing-masing
proses dari gangguan (interfensi) proses-proses lain.
d. Hasil-hasil proses harus independen.
Hasil-hasil proses harus independen terhadap kecepatan
relatif proses-proses
lain dimana eksekusi dilakukan.
4. Mutual Exclusion
Merupakan kondisi dimana terdapat
sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan
(misalnya : printer, disk drive). Kondisi demikian disebut sumber daya kritis,
dan bagian program yang menggunakan sumber daya kritis disebut critical region
/ section. Hanya satu program pada satu saat yang diijinkan masuk ke critical
region. Pemogram tidak dapat bergantung pada system operasi untuk memahami dan
memaksakan batasan ini, karena maksud program tidak dapat diketahu oleh sistem
operasi. Hanya saja, sistem operasi menyediakan layanan (system call) yang
bertujuan untuk mencegah proses lain masuk ke critical section yang sedang
digunakan proses tertentu. Pemograman harus menspesifikasikan bagian-bagian
critical section, sehingga sistem operasi akan menjaganya.
Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
a. Deadlock
b. Startvation
5. Interaksi antar proses
Pada sistem dengan banyak proses kongkuren, terdapat tiga kategori
interaksi,
yaitu :
a. Proses-proses saling tidak peduli (independen)
Proses-proses ini tidak dimaksudkan
untuk bekerja bersama untuk mencapai tujuan tertentu. Pada multiprogramming
dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau
campuan keduanya. Meski proses-proses tidak bekerja bersama, sistem operasi
perlu mengatur persaingan diantara proses-proses itu dalam memperoleh sumber
daya yang terbatas.
Contoh : Terdapat dua aplikasi yang berusaha mengakses printer
yang sama, bila kedua aplikasi benar-benar mengakses printer yang sama secara bersamaan,
maka kedua proses akan memperoleh hasil yang tak dikehendaki. Sistem operasi
harus mengatur pengaksesan-pengaksesan sumber daya agar tidak menyebabkan hasil
yang tidak dikehendaki.
b. Proses-proses saling mempedulikan secara tidak langsung
Dimana 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.
c. Proses-proses saling mempedulikan secara langsung.
Proses-proses dapat saling
berkomunikasi dan dirancang bekerja sama untuk suatu aktivitas. Interaksi
antara proses-proses dan masalah-masalah yang harus diatasi dapat
dilihat dalam tabel berikut :
Derajat
Kepedulian
|
Hubungan
|
Akibat
satu proses
terhadap
lainnya
|
Masalah
pengendalian
yang
dilakukan
|
Proses tak peduli
|
Persaingan
|
·
Hasil satu proses
Independen terhadap
aksi proses lain.
·
Pewaktuan proses
dapat berdampak pada
proses lain
|
·
Mutual exclusion.
·
Deadlock
·
Starvation
|
Proses secara tidak
langsung peduli terhadap proses lain, yaitu obyek yang
dipakai bersama
|
Kerjasama dengan
pemakaian bersamaan
|
·
Hasil-hasil proses
dapat bergantung pada
informasi yang diperoleh dari proses lain.
·
Pewaktuan proses
dapat berdampak pada
proses lain
|
·
Mutual exclusion.
·
Deadlock
·
Starvation
·
Koherensi data
|
Proses secara
langsung peduli terhadap
proses lain (tersedia primitif-primitif untuk proses
tersebut)
|
· Kerjasama dengan
komunikasi yang
diperoleh dari proses lain.
·
Pewaktuan proses
dapat berdampak pada
proses lain
|
·
Hasil-hasil proses
dapat bergantung
pada informasi
|
·
Deadlock
·
Starvation
|
6.
Persaingan
diantara proses-proses untuk sumber daya
Proses-proses kongkuren berkompetisi ketika
proses-proses bersaing menggunakan sumber daya yang sama. Dua proses atau lebih
perlu mengakses sumber daya yang sama pada suatu saat. Masing-masing proses
tidak peduli keberadaan proses-proses lain dan masing-masing proses tidak
dipengaruhi proses-proses lain. Pada proses-proses berkompetisi ini, tidak ada
pertukaran informasi antara prosesproses itu. Eksekusi satu proses dapat
berpengaruh terhadap kelakuan prosesproses yang berkompetisi. 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. Kasus ekstrim yang dapat terjadi adalah
proses di-blocked terus-menerus sehingga tak pernah mengakses sumber daya.
Proses tak pernah dapat berakhir dengan suskses. Kondisi tidak pernah dapat
kesempatan dialokasikan sumber daya disebut startvation. Sistem operasi harus
menghindarkan terjadinya kondisi ini.
Persaingan proses-proses untuk memperoleh sumber daya menimbulkan
tiga masalah :
1. Mutual exclusion
2. Deadlock
3. Startvation
Pengendalian persaingan melibatkan sistem operasi,
yang bertugas mengalokasikan sumber daya. Proses-proses itu sendiri harus
menyatakan keperluan mutual exclusion (diprogram oleh pemrogram menggunakan
system call yang disediakan sistem operasi) dan sistem operasi menangani agar
tidak terlanggar kondisi mutual exclusion, serta tidak terjadi deadlock dan
startvation.
7. Kerjasama diantara proses-proses dengan pemakaian
bersama
Dalam kasus kerjasama pemakaian sumber
daya bersama meliputi proses-proses yang saling berinteraksi tanpa dinyatakan
secara eksplisit.
Contoh : Banyak proses mengakses variabel atau berkas yang dipakai
bersama.
Proses-proses dapat menggunakan dan memperbarui data yang dipakai
bersama tanpa peduli proses-proses lain. Proses mengetahui bahwa proses-proses
lain dapat juga mengakses data yang sama. Proses-proes harus bekerja sama untuk
menjamin integritas data yang dipakai bersama tersebut. Kerjasama diantara
proses-proses dalam pemakaian bersama mempunyai masalah antara lain :
-
Mutual exclusion
-
Deadlock
-
Startvation
Karena data disimpan pada suatu sumber
daya (peralatan, memori), maka terdapat masalah pengendalian mutual exclusion,
deadlock dan startvation.
Perbedaannya adalah item-item data dapat diakses dengan dua mode,
yaitu :
1.
Operasi pembacaan dan penulisan harus mutually exclusive (yaitu benar-benar hanya
satu proses yang berada di critical section).
2.
Operasi penulisan saja yang harus mutually exclusive. Pada situasi ini, masalah
baru muncul yaitu mengenai koherensi data. Critical section digunakan untuk
menjamin integritas data.
8. Kerjasama diantara
proses-proses dengan komunikasi
Pada kasus persaingan, proses-proses memakai sumber daya tanpa
peduli prosesproses lain. Pada kasus kedua, proses-proses memakai bersama nilai
dan meski masing-masing proses tidak secara eksplisit peduli proses-proses
lain. Tapi prosesproses peduli untuk menjaga integritas data. Ketiak
proses-proses bekerja sama dengan komunikasi, beragam proses berpartisipasi
dalam suatu usaha dengan menghubungkan semua proses. Komunikasi menyediakan
cara untuk sinkronisasi atau koordinasi beragam aktivitas. Komunikasi dicirikan
dengan berisi pesan-pesan dengan suatu urutan. Primitif untuk mengirim dan
menerima pesan disediakan sebagai bagian bahasa pemrograman atau disediakan
kernel sistem operasi. Karena tak ada sesuatu yang dipakai bersama diantara
proses-proses itu dalam melewatkan pesan-pesan, tak ada masalah mutual
exclusion. Tetapi masalah deadlock dan startvation dapat muncul.
9. Pokok penyelesaian masalah kongkurensi
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi
dua, yaitu :
a. Mengasumsikan adanya memori yang
digunakan bersama.
b. Tidak mengasumsikan adanya memori
yang digunakan bersama.
Adanya memori bersama lebih mempermudah penyelesaian masalah kongkurensi.
Metode penyelesaian ini dapat dipakai untuk sistem singleprocessor ataupun multiprocessor
yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk
multiprocessor tanpa memori bersama ataupun untuk system tersebar.
Sumber:
http://manajemenmemory.blogspot.com/2010/10/konkurensi.html
https://noursloudy.wordpress.com/2014/05/29/makalah-konkurensi-untuk-tugas-mata-kuliah-sistem-operasi/
Tidak ada komentar:
Posting Komentar