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: 
  1. Mutual Exclusion
  2. Sinkronisasi
  3. Deadlock
  4. 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.
  • 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