Monday, 27 July 2015

SISTEM OPERASI KOMPUTER (KONGKURENSI)




       Kongkurensi merupakan landasam umum perancangan sistem operasi.
       Proses-proses disebut kongkuren jika proses-proses (lebih dari satu proses) berada pada saat yang sama
       Proses-proses kongkuren dapat sepenuhnya tak bergantung dengan lainnya tapi dapat juga saling berinteraksi
       Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik
       Pada proses-proses kongkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan, yaitu:
  1. Mutual exclusion
  2. Deadlock
  3. Starvation
  4. Sinkronisasi

       Banyak bahasa pemrograman dikembangkan untuk pembuatan program kongkuren, antara lain:
  1. Bahasa concurent pascal oleh Brinch Hansen
  2. Bahasa Modula-2 oleh Niklaus Wirth
  3. Bahasa Ada oleh departemen pertahanan Amerika dsb

1 prinsip-prinsip Kongkurensi
       Kongkurensi meliputi hal-hal berikut:
  1. Alokasi waktu pemroses untuk proses-proses
  2. Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
  3. Komunikasi antar proses
  4. Sinkronisasi aktivitas banyak proses

       Kongkurensi dapat muncul pada 3 konteks berbeda yaitu:
  1. Untuk banyak aplikasi(multiprogramming)
                contoh:
v  Aplikasi pppd-daimon yang bertugas menjagai transfer data lewat kanal point-to-point protocol. Aplikasi ini bertugas sebagai arus bawah untuk komunikasi lewat saluran serial(modem) dengan ujung satunya (biasaya ISP)
v  Aplikasi diald-daemon yang bertugas untuk secara otomatis menghidup matikan modem atau saluran serial sehingga seolah-olah pemakai terhubung terus ke ISP
v  Multiprogramming  juga sangat berguna pada saat user menunggu selesainya layanan (misal transfer berkas oleh modem atau pencetakan oleh printer) pemakai dapat berinteraksi dengan aplikasi lain

  1. Untuk strukturisasi aplikasi
                contoh: pemrograman tersturktur adalah suatu aplikasi secara efktif diimplementasikan               
              sebagai sekumpulan proses
  1. Untuk strukturisasi satu proses, peningkatan kinerja satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses
  2. Untuk struktur sistem operasi, keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem, beberapa sistem operasi telah diimplementasikan sebagai sekumpulan proses ( sitem operasi bermodelkan client/server )

2 Kesulitan-kesulitan yang ditimbulkan Kongkurensi
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi
       Kecepatan proses pada sistem bergantung beragam hal:
  1. Aktivitas-aktivitas proses-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 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
  2. Pengelolaan alokasi sumber daya agar optimal, jika proses A meminta suatu kanal I/O tertentu dan proses A di-suspend sebelum menggunakan kanal itu,  jika OS mengunci kanal dan mencegah proses-proses lain menggunakan kanal itu
  3. Pencarian kesalahan pemrograman, pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen

3 Mutual exlusion, Deadlock dan startvation
       Beberapa masalah yang muncul pada kongkurensi:
  1.  Mutual Exclusion
  2. Deadlock
  3. Starvation

  1. Mutual exclusion, adalah jaminan hanya satu proses yang mengakses sumber daya pada satu interval waktu tertentu.             seperti printer (mempunyai ruang disk / direktori spooler) untuk menyimpan berkas-berkas yang akan dicetak, sumber daya macam ini disebut sumber daya kritis. Bagian program yang menggunakan sumber daya kritis disebut memasuki critical region/section Pemaksaan adanya mutual exclusion menimbulkan dua masalah,yaitu:
-          Deadlock
-          Startvation.
  1. Deadlock, adalah jika proses menunggu suatu kejadian tertentu yang tak akan pernah terjadi.
deadlock terjadi ketika proses-proses mengakses secara ekslusif sumber daya.

 


       Contoh
P0  dialokasikan R0
P1  dialokasikan R1

Kemudian
P0  sambil masih menggegam R0   meminta R1
P1  sambil masih menggegam R1 meminta R0
Terjadinya deadlock ditandai munculnya graph melingkar


  1. Startvation 
Ilustrasi startvation
Misalnya
       Terdapat tiga proses p1,p2 dan P3
       P1,P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik
Skenario berikut terjadi:
       P1 sedang diberi sumber daya R, P2 dan P3 blocked menunggu sumber daya R
       Ketika P1 keluar dari critical section, P2 dan P3 diijinkan mengakses R.
       Asumsi P3 diberi hak akses. kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R

4 Interaksi antar Proses

Pada sistem dengan banyak proses (kongkuren), terdapat 3 kategori interaksi, yaitu:
  1. Proses-proses saling tidak peduli (independen)
  2. Proses-proses saling mempedulikan secara tidak langsung
  3. Proses-proses saling mempedulikan secara langsung

5 Pokok Penyelesaian Masalah Kongkurensi
Penyelesaian masalah kongkurensi ada 2 :
  1. Mengasumsikan adanya memori yang digunakan bersama
  2. Tidak mengasumsikan adanya memori yang digunakan bersama
Adanya memori bersama lebih mempermudah penyelesaian masalah kongkurensi. Metode penyelesaian ini dapat dipakai untuk singleprocessor  atau multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama / sistem tersebar








No comments:

Post a Comment