Kamis, 22 November 2012

KONKURENSI

KONKURENSI

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama. Dikatakan sebagai landasan umum perancangan sistem operasi karena dalam menciptakan suatu sistem operasi, sistem operasi tersebut umumnya harus bisa menjalankan beberapa proses (lebih dari satu proses) pada saat yang bersamaan.
Pada proses-proses yang konkuren atau berada pada saat yang bersamaan, terdapat beberapa masalah yang harus diselesaikan. Masalah-masalah tersebut antara lain :
1.      Mutual exclusion
2.      Sinkronisasi
3.      Deadlock
4.      Starvation
Dengan kata lain, masalah-masalah diatas akan timbul apabila sistem operasi menjalankan beberapa proses pada saat yang bersamaan.

A.      Prinsip-prinsip Konkurensi
Karena konkurensi merupakan landasan umum pada perancangan suatu sistem operasi, maka beberapa hal yang merupakan prinsip-prinsip konkurensi harus ada dalam sistem operasi yang akan dirancang. Konkurensi meliputi beberapa hal berikut ini:
v  Alokasi waktu pemroses untuk proses-proses.
Hal ini berkaitan dengan penjadwalan proses pada suatu sistem operasi. Penjadwalan proses merupakan kumpulan kebijakan dan mekanisme dalam sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem operasi. Penjadwalan proses bertugas untuk mengatur proses mana yang harus berjalan, kapan dan seberapa lama proses tersebut dijalankan.
v  Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
Dalam hal ini, sebuah sistem operasi harus bisa mengatur pemakaian sumber daya pada saat terjadinya konkurensi. Sumber daya yang ada jumlahnya terbatas, sehingga pada saat banyak proses yang berjalan sistem harus dapat mengatur pengalokasian sumberdaya agar tidak terjadi starvation. Selain itu terdapat juga sumber daya yang tidak bersifat shareable atau tidak dapat digunakan secara bersaman, sumber daya seperti itu disebut sumber daya kritis.

v  Komunikasi antar proses.
Untuk mengatur kegiatan proses yang berjalan bersamaan, mereka harus dapat saling berkomunikasi, dimana proses-proses yang ingin dikomunikasikan harus memiliki sebuah cara untuk berkomunikasi satu dengan lainnya. Mereka dapat menggunakan komunikasi secara langsung atau tak langsung.
v  Sinkronisasi aktivitas banyak proses.
Sinkronisasi aktivitas banyak proses ini mencakup semua hal di atas. Untuk terjadinya sinkronisasi antar proses-proses yang berjalan diperlukannya komunikasi antar proses yang berjalan. Setelah proses-proses tersebut berkomunikasi, sistem akan dapat membagi sumber daya yang ada baik itu sumber daya kritis atau tidak. Selan itu, sistem juga dapat mengatur penjadwalan proses dengan baik.

Konkurensi dapat muncul pada konteks berbeda, antara lain:
1.        Banyak aplikasi (multiple application).
Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
2.        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.
3.        Struktur sistem operasi.
Keunggulan strukturisasi dapat juga 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.

B.       Interaksi Antar Proses.
Pada sistem dengan banyak proses (kongkuren), terdapat 3 katagori interaksi antar proses berdasarkann derajat pengetahuan keberadaan proses lainnya, yaitu:
1.        Proses tidak saling mengetahiu keberadaannya.
Proses seperti ini merupakan proses yang tidak dimaksudkan untuk bekerjasama. Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuran keduanya. Walaupun proses saling tidak melakukan kerjasama, sistem operasi perlu memperhatikan kompetisi sumber daya. Misalnya dua aplikasi independen dapat sama-sama menginginkan akses ke disk, file , atau printer yang sama. Sistem operasi harus mengatur akses tersebut.
2.        Proses mengetahui keberadaan proses lainnya secara tidak langsung.
Proses seperti ini adalah proses yang tidak harus saling mengetahui akan keberadaan proses lainnya berdasarkan namanya namun memiliki akses berbagi ke beberapa objek, misaslkan bufer I/O. Proses seperti itu menunjukkan adanya kooperasi dalam melakukan berbagi pemakaian ojek.
3.        Proses mengetahui keberadaan proses lainnya secara langsung.
Proses-proses seperti ini adalah proses yang dapat berkomunikasi satu dengan lainnya berdasarkan nama dan merupakan proses yang dirancang untuk bekerja sama dalam melakukan aktivitas-aktivitas tertentu. Demikian pula, proses seperti ini menunjukkan adanya kooperasi.

Tingkat Pengetahuan
Relationship
Pengaruh satu Proses Masalah Terhadap Proses lainnya
Control Potensial
Proses saling tidak mengetahui
Kompetisi
-    Hasil suatu proses akan independen terhadap keberadaan proses aksi proses lainnya
-    Timing proses dapat terpengaruh
-     Mutual Exclusion
-     Deadlock
-     Starvation
Proses mengetahui keberadaan proses lainnya secara tidak langsung (misalnya, objek bagi-pakai)
Kooperasi dengan bagi-pakai
-     Hasil suatu proses dapat bergantung pada informasi yang diperoleh proses lainnya
-     Timing proses dapat terpengaruh
-     Mutual Exclusion
-     Deadlock
-     Starvation
-     Koherasi data

Mengetahui keberadaan proses lainnya secara langsung (memiliki permitive komunikasi)
Kooperasi dengan menggunkan komunikasi
-     Hasil suaru proses dapat bergantung pada informasi yang diperoleh dari proses lainnya
-     Timing proses dapat terpengaruh
-     Deadlock
-     Starvation

C.   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:
a)    Aktivitas proses-proses lain
b)    Cara sistem operasi menangani interupsi
c)    Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.
2.    Beberapa kesulitan yang dapat muncul, di antaranya adalah:
a)    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.
b)    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.
c)    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:
a)    Sistem operasi harus mengetahui proses-proses yang aktif
b)   Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain:
(1)    Waktu pemroses.
(2)    Memori
(3)    Berkas-berkas
(4)    Perangkat I/O
c)    Sistem operasi harus memproteksi data dan sumber daya fisik masing-masing proses dari gangguan proses-proses lain.
d)   Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.

Tidak ada komentar:

Posting Komentar