Konsep Dasar dan Permasalah Pada Konkurensi

19 04 2010

Kongrkurensi

Merupakan landasan umum perancangan sistem operasi. Proses-proses tersebut disebut kongkuren jika proses-proses (lebih dari satu proses) ada pada saat yang sama, Proses-proses kongkuren dapat sepenuhnya tak bergantung dengan lainya tapi dapat juga saling berinteraksi. Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik.

Kongkurensi menjadi penting karena saat ini hampir seluruh sistem adalah multiprogramimg, maupun multithreading, serta menuju pemrosesan tersebar yang mengharuskan adanya proses-proses kongkuren. Pada proses-proses kongkuren yang saling berinteraksi akan mempunyai beberapa masalah mendasar yang harus di selesaikan yaitu :

  1. Mutual Exlusion
  2. Deadlock
  3. Starvation
  4. Sinkronisasi

Penyelesaian terhadap masalah-masalah ini sangat penting karena perkembangan teknologi, sistem komputer menuju menuju ke sistem multiprocessing, terdistribusi dan paralel yang mengaharuskan adanya proses-proses kungkuren.

Lingkup kongkurensi meliputi hal-hal berikut :

  • Alokasi layanan pemrosesan untuk proses-proses
  • Pemakian bersama dan persaingan unuk mendapatkan sumber daya / resource
  • Komunikasiantar proses
  • Sinkronisasi aktivitas banyak proses

Hal-hal tersebut tidak hanya muncul dilingkungan komputasi multiprocess dan tersebar juga pada sistem multiprogram ataupun multithreading pada pemroses tunggal.

Kongkurensi dapat muncul pada empat konteks berbeda yaitu :

  1. Untuk banyak aplikasi
  2. Untuk strukturisasi dari aplikasi
  3. Untuk Strukturisasi dari pemroses

Beberapa masalah yang muncul pada Kongkurensi adalah : Mutual Exclusion, Deadlock, Starvation

  1. Mutual Exclusion

Pada permasalahan yang satu ini adalah sebagai berikut, pada resource komputer hanya dapat digunakan oleh satu pemakai dalam satu waktu saja, dan tidak dapat di pakai bersamaan, contohnya adalah printer. Sumber daya seperti ini disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya ini disebut dengan critical region/section. Dengan demikian, hanya satu program pada satu saat yang di ijinkan masuk critical region. Pemrograman tidak dapat bergantung pada sistem operasi untuk memahami dan memaksakan batasan ini karena maksud program tidak dapat diketahui oleh sistem operasi.

Sistem operasi memberikan fasilitas untuk pemrogram dapat memberikan indikasi keberadaan critical region. System operasi memberikan / menyediakan layanan berupa fasilitas (system call) untuk mencegah proses masuk critical region yang sedang dimasuki proses lain. Pemrogram harus menspesifikasikan bagian-bagian critical region sehingga sistem operasi akan menjaganya dengan suatu mekanisme tertentu untuk mencegah proses lain masuk critical region yang sedang dipakai proses.

Pemaksaan adanya mutual exclusion dapat menumbulkan dua masalah, yaitu:

  1. Deadlock
  2. Starvation

a) Deadlock

Ilustrasinya:

    • Dua Proses, P1 dan P2
    • Dua Resource kritis R1 dan R2
    • Proses P1 dan P2 harus mengakses kedua sumber daya.

Kondisi berikut dapat terjadi : R1 diberikan ke P1, sedang R2 di berikan ke P2.

Karena untuk melanjutkan ekssekusi memerlukan sumber daya sekaligus maka kedua proses akan saling menunggu sumber daya yang lainnya, selamanya. Tidak ada proses yang dapat melepaskan sumber daya yang telah dipegangnya karena menunnggu sumber daya lain yang tidak pernah diperolehnya. Keduanya tidak membuat proses kemajuan apapaun, kedua proses tersebut dalam kondisi deadlock.

Kondisi deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semua yang terlibat tidak dapat mengakhiri prosesnya secara benar. Beragam mekanisme diusulkan untuk mengatasi kondisi deadlock.

b) Starvation

Ilustrasinya :

    • Terdapat tiga proses P1, P1, dan P3
    • P1, P2, dan P3 memerlukan pengaksesan sumber daya R secara periodik

Terjadi Skenario berikut:

    • P1 sedang di beri sumber daya R, P2, dan P3 Blcoked menunggu sumber daya R.
    • Ketika P1 keluar daricritical section, P2 dan P3 diijinkan mengakse R.
    • Asumsi P3 diberi hak akses. Kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.

Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R. meskipun tidak ada deadlock, pada sutuasi ini P2 mengalami starvation.

Selain masalah diatas, terdapat pula masalah-masalah kongkurensi sebagai berikut:

Kecepatan proses pada sistem tergantung beragam hal :

  • Sktivitas-aktivitas proses lain
  • Cara kerja sistem operasi menngani interupsi
  • Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi

Beberapa kesulitan dapat muncul diantaranya :

  1. Pemakaian bersama sumber daya global
  2. Pengoelolaan alokasi sumber daya agar optimal
  3. Pencarian kesalahan pemrograman.

1. Pemakaian Sumber Daya Global

Jika buah proses menggunakan variabel global yang sama serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel bersama menjadi kritis.

2. Pengelolaan Sumber Daya agar Optimal

Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A ditunda (suspend) sebelum menggunakan kanal itu. Jika sistem operasi mempunyai kebijaksanaan mengunci kanal (sehingga tidak di memperbolehkan pemakaian oleh lainnya) dan mencegah proses-proses lain menggunakan kanal itu maka tindakan ini jelas hanya menghasilkan inefisiensi sistem komputer.

3. Pencarian Kesalahan Pemrograman

Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.

Proses-proses kongkuren mengharuskan hal-hal berikut di tangani sistem operasi, yaitu:

  1. Mengetahui proses-proses yang aktif.
  2. Alokasi dan dealokasi beragam sumber daya untuk tiap proses aktif.
  3. Proteksi data dan sumber daya fisik proses.
  4. Hasil-hasil proses harus independen.
  1. Mengetahui Proses-proses yang Aktif

Sistem Operasi mengelola senarai proses. Senarai ini berupa senarai PCB proses. Senarai berjumlah sesuai jumlah state yang di implementasikan sistem operasi.

  1. Alokasi dan Dealokasi Beragam Sumber Daya untuk Tiap Proses yang Aktif

Sumber daya yang harus di kelola antara lain : – waktu pemroses, – Memory, – Berkas-berkas, – Peralatan-peralatan masukan/keluar, – data dan sebagainya.

  1. Proteksi Data dan Sumber Daya Fisik

Proteksi data dan sumber daya fisik masing-masing proses dari gangguan (interferensi) proses-proses lain.

  1. Hasil-hasil Proses harus Independen.

Hasil-hasil proses harus independen terhadap kecepatan relatifproses-proses lain dimana eksekusi dilakukan.

Pembahasan di sini menjawab bagaimana permasalahan yang terjadi pada kongkurensi, sehingga pemrogram dapat membuat suatu formula untuk menyelesaikan masalah yang ada dan meningkatakan perkembangan terhadap proses pada multiprocess maupun multiprogram dan multithread.(aris.zona)

sumber : Haryanto, Dr. Bambang. 2009. “Sistem Operasi(reveisi keempat)”, Informtika, Bandung


Actions

Information

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: