KONGKURENSI Kongkurensi merupakan landasan umum

advertisement
KONGKURENSI
Kongkurensi merupakan landasan umum
perancangan sistem operasi. Proses-prose
disebut kongkurensi jika proses-proses(lebih
dari satu proses) berada pada saat yang
sama. Prosose-proses kongkurensi dapat
sepenuhnya tak bergantung dengan lainnya
tapi dapat juga saling berinteraksi. Prosesproses yang berinteraksi memerlukan
sinkronisasi agar terkendali dengan baik.
Pada proses kongkurensi ini yang berinteraksi
mempunyai beberapa masalah yang harus
diselesaikan, yaitu :
1. mutual exclusion
2. deadlock
3. starvation
4. sinkronisasi
Penyelesaian terhadap masalah-masalah ini
sangat penting karena perkembangan tehnologi
sistem komputer menuju ke sistem
multiprocessing, terdistribusi dan paralel yang
mengharuskan adanya proses kongkurensi.
PRINSIP-PRONSIP KONGKURENSI meliputi halhal berikut :
1. alokasi waktu pemrosesan untuk prosesproses
2. pemakaian bersama dan persaingan untuk
mendapatkan sumber daya
3. komunikasi antar proses
4. sinkronisasi aktivitas banyak proses
Hal-hal tersebut tidak hanya muncul dilingkungan
komputasi multiprocessing dan tersebar tapi juga
pada sistem multiprogramming/multithreading pada
pemrosesan tunggal
Kongkurensi dapat muncul pada
konteks yang berbeda, yaitu :
1. untuk banyak aplikasi
2. untuk strukturisasi dari aplikasi
3. untuk strukturisasi dari satu
proses
4. untuk strukturisasi sistem
operasi
UNTUK BANYAK APLIKASI
MULTIPROGRAMMING memungkinkan banyak
proses sekaligus dijalankan
CONTOH :
Eksekusi banyak aplikasi untuk suatu tujuan komputasi tertentu
adalah implementasi perangkat lunak sistem jaringan komputer
TCP/IP. Implementasi TCP/IP dikomputer umumnya (terutaa
UNIX) dipecah menjadi banyak aplikasi yang saling bekerjasama;
•Aplikasi pppd-daemon yang bertugas menjaga transfer data
lewat kanal point to point protokol. Aplikasi ini bertugas sebagai
arah bawah untuk komunikasi lewat saluran serial (modem)
dengan ujung satunya (biasanya ISP – internet service provider)
•Aplikasi dial-daemon yang bertugas secara otomatis
menghidup matikan modem atau saluran serial sehingga
seolah-olah pemakai terhubung terus ke ISP
•Aplikasi finger, ping, pine, netscape dan aplikasi
jaringan lainnya yang bekerjasama dengan pppd dan
dial sehingga dapat terjadi pertukaran dengan komputer
remote
•Aplikasi ifwadm yang selalu waspada memeriksa setiap
paket yang keluar dan/atau masuk jaringan yang berasal
atau menuju aplikasi tertentu sehingga keamanan
jaringan lebih terjaga.
Kinerja multiprogramming ini juga sangat
berguna untuk sistem komputer satu
pemakai tunggal(single user) karena
sambil menunggu selesainya layanan
(misal: transfer berkas oleh modem /
pencetakan oleh printer) pemakai dapat
berinteraksi dengan aplikasi lain seperti
aplikasi permainan (game) atau mengetik
pada text editor
UNTUK STRUKTURISASI APLIKASI
Perluasan prinsip perancangan modular
dan pemrograman terstrukrur adalah suatu
aplikasi dapat secara efektif
diimplementasikan sebagai sekumpulan
proses. Dengan sekumpulan proses, maka
tiap proses menyediakan satu layanan
spesifik tertentu
.
UNTUK STRUKTURISASI SATU PROSES
Saat ini untuk peningkatan kinerja maka suatu 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 menpunyai kemampuan berikut :
a. menerima masukan dari keyboard
b. menerima masukan dari mouse/perangkat
penunjuk yang lain
c. pemisahan kata-kata
d. memformat baris menjadi rata kanan, kiri atau
kanan-kiri
UNTUK STRUKTURISASI SISTEM
OPERASI
Keunggulan strukturisasi dapat juga
diterapkan ke pemrograman sistem.
Beberapa sistem operasi aktual yang
dipasarkan dan yang sedang dalam riset
telah diimplemtasikan sebagai
sekumpulan proses (misal sistem operasi
yang bermodelkan client/server)
KESULITAN-KESULITAN YANG DITIMBULKAN
KONGKURENSI
Masalah yang dihadapi proses-proses kongkuren
pada multiprogramming dam multiprocessing
serupa, yaitu kecepatan eksekusi proses-proses
disistem tidak dapat diprediksi. Beragam
kemungkinan yang terjadi tidak dapat diprediksi.
Kecepatan proses pada sistem
bergantung beragam hal
diantaranya
:
1. aktivitas proses lain
2. cara sistem operasi menangani interupsi
3. kebijaksanaan penjadwalan yang dilakukan oleh
sistem operasi
Beberapa kesulitan dapat muncul diantaranya :
1. pemakaian bersama sumber daya global Jika 2
proses menggunakan variabel global yang sama, serta
keduanya membaca dan menulis variabel itu maka
urutan terjadinya pembacaan dan penulisan terhadap
variabel itu menjadi kritis
2. 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 (tidak membolehkan pemakaian oleh
lainnya) dan mencegah proses lain menggunakan kanal
itu, maka tindakan ini jelas hanya menghasilkan
inefisiensi
3. pencarian kesalahan pemrograman
Pencarian kesalahan pada pemrograman kongkuren
lebih sulit dibandingkan pencarian kesalahan pada
program-program sekuen.
Download