Konkurensi

KONKURENSI
Konkurensi ialah landasan unum perancangan sistem operasi. Proses-proses disebut konkuren kalau 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 menerima 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 dilaksanakan. Proses-proses mampu berasal dari aplikasi-aplikasi berbeda. Pada system multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di system komputer.
Ø  Aplikasi terencana.
Perluasan prinsip perancangan modular dan pemrograman terstruktur ialah sebuah aplikasi dapat secara efektif diimplementasikan selaku sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menawarkan satu layanan spesifik tertentu.
Ø  Struktur sistem operasi.
Keunggulan strukturisasi dapat jauga dipraktekkan ke pemrograman metode. Beberapa sistem operasi positif yang dipasarkan dan yang sedang dalam riset sudah 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 mempunyai banyak thread yang independen. Thread-thread tersebut harus dapat berafiliasi untuk meraih tujuan proses.
Interaksi Antar Proses. Pada sistem dengan banyak proses (kongkuren), terdapat 2 katagori interaksi, ialah:
1.      Proses-proses Saling Tidak Peduli (Independen).
Proses-proses ini tidak dimaksudkan untuk melakukan pekerjaan untukmencapai tujuan tertentu. Pada multiprogramming dengnaproses-proses independen, mampu berbentukbatch atau sesiinteraktif, atau campuran keduanya.
2.      Proses-proses Saling Mempedulikan Secara Tidak Langsung.
Proses-proses tidak butuhsaling mempedulikan identitas proses-proses lain, tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu bekerja sama (cooperation) dalam menggunakan bareng objek tertentu.
B.     Kesulitan-kesulitan yang ditimbulkan konkurensi
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan hukuman proses-proses di metode tidak mampu diprediksi. Beberapa kemungkinan yang terjadi tidak mampu diprediksi mirip:
1.      Kecepatan proses pada metode tergantung pada beberapa hal, antara lain: 
o   Aktivitas proses-proses lain
o   Cara metode operasi menanggulangi interupsi
o   Kebijaksanaan penjadwalan yang dilaksanakan oleh sistem operasi. 
2.      Beberapa kesulitan yang dapat muncul, di antaranya adalah:
o   Pemakaian bersama sumber daya global.
Jika dua proses memakai variabel global yang serupa, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan kepada variabel itu menjadi kritis.
o   Pengelolaan alokasi sumber daya biar maksimal
Jika proses A meminta sebuah akses masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan terusan itu. Jika tata cara operasi mengunci jalan masuk tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.
o   Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemrograman kongkuren lebih susah dibanding penelusuran kesalahan pada program-program sekuen.
3.      Proses-proses konkuren mewajibkan beberapa hal yang mesti dikerjakan, antara lain:
o   Sistem operasi harus mengenali proses-proses yang aktif
o   Sistem operasi mesti mengalokasikan dan mendealokasikan bermacam-macam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikontrol, antara lain:
i.     Waktu pemroses.
ii.   Memori
iii.Berkas-berkas
iv. Perangkat I/O
o   Sistem operasi mesti memproteksi data dan sumber daya fisik masing-masing proses dari gangguan proses-proses lain.
o   Hasil-hasil proses mesti independen kepada kecepatan relatif proses-proses lain dimana eksekusi dijalankan.
4.      Pokok Penyelesaian Masalah Kongkurensi
Pada dasarnya solusi dilema kongkurensi terbagi menjadi 2, yaitu:
      Mengasumsikan adanya memori yang digunakan bareng
      Tidak mengasumsikan adanya memori yang dipakai bareng .
Adanya memori bersama lebih membuat lebih mudah solusi problem kongkurensi.
Metode memori bersama mampu digunakan untuk singleprocessor ataupun multiprocessor yang memiliki memori bersama.
Penyelesaian ini tidak mampu digunakan untuk multiprocessor tanpa memori bersama atau untuk tata cara tersebar.
1.      MUTUAL EXCLUSION
Mutual exclusion adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu tertentu. Sumber daya yang tidak mampu dipakai bersama pada saat bersama-sama.
Sering terjadi pada peralatan pencetakan (printer). Daemon printer yakni 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 mau dipakai untuk menyimpan berkas yang ingin dijadwalkan untuk dicetak. Bagian acara yang sedang mengakses memory atau sumber daya yang dipakai bareng disebut critical section. Jika proses pada critical section memblokir proses-proses lain dalam antrian, maka akan terjadi startvation dan deadlock.
Kesuksesan proses-proses konkurensi membutuhkan pendefinisian critical section dan memaksakan mutual exclusion di antara proses-proses konkuren yang sedang berlangsung. Pemaksaan mutual exclusion merupakan landasan pemrosesan konkuren. Fasilitas atau kemampuan menyediakan derma mutual exclusion mesti 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, tidak boleh mem-blocked proses-proses lain yang ingin masuk critical section. Hal ini mampu terjadi startvation.
o   Harus dijamin bhwa proses yang ingin masuk critical section tidak menunggu selama waktu yang tak terhingga. Ini bisa menyebabkan dilema deadlock dan antrian proses bertambah panjang.
o   Ketika tidak ada proses pada critical section, maka proses yang ingin masuk critical section mesti ijinkan masuk tanpa waktu tunda.
o   Tidak ada perkiraan tentang kecepatan relatif proses atau jumlah yang ada.
o   Proses hanya tinggal pada critical section selama satu waktu yang berhingga
Beberapa metode yang disarankan untuk menjamin Mutual Exclusion, antara lain:
      Metode Variable Lock
Locking yaitu salah satu mekanisasi pengontrol konkuren. Konsep dasar : pada ketika sebuah transaksi memerlukan jaminan kalau record yang dikehendaki tidak akan berganti secara secara tiba-tiba, maka diperlukan kunci untuk record tersebut. Fungsi kunci (lock) yakni menjaga record tersebut semoga tidak dimodifikasi transaksi lain.
Cara kerja dari kunci :
1.      Pertama kita asumsikan terdapat 2 macam kunci :
      Kunci X : kunci yang langsung.
      Kunci S : kunci yang dipakai bersama-sama.
2.      Jika transaksi A menggunakan kunci X pada record R, maka seruan dari transaksi B untuk sebuah kunci pada R ditunda, dan B mesti 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 mesti menanti hingga A melepaskan kunci tersebut.
b.      Bila transaksi B ingin menggunakan kunci S, maka B mampu menggunakan kunci S bareng A.
Tabel Kunci

4.      Bila sebuah transaksi hanya melakukan pembacaan saja, secara otomatis ia memerlukan kunci S 􀃆 baca (S).
Bila transaksi tersebut ingin memodifikasi record maka secara otomatis beliau membutuhkan kunci X 􀃆 memodifikasi (X).
Bila transaksi tersebut telah menggunakan kunci S, sehabis itu dia 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 sebuah transaksi dimana basis data berada pada state yang konsisten. Bila synchpoint ditetapkan maka :
      Semua adaptasi acara melakukan operasi commit atau rollback.
      Semua kunci dari record dilepaskan.
Metode ini sederhana ketika proses masuk critical section lebih dulu
menilik 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 hingga nilai variable lock nya menjadi 0.Metode ini tidak menjamin proses tidak masuk critical section yang sudah dimasuki proses lain.
      Metode bergantian secara ketat

Metode ini mengasumsikan dapat mengalir masuk critical section secara bergantian terus-menerus. Metode ini melaksanakan refleksi terhadap variabel yang berfungsi untuk memenuhi critical section.

>>>>>berikutnya 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