1 of 31

KONKURENSI

2 of 31

PENGERTIAN

Sistem yang memiliki sejumlah aktifitas yang sedang berjalan secara bersamaan.

3 of 31

Pada proses-proses konkuren yang berinteraks mempunyai beberapa masalah yang harus diselesaikan:

  • 1. Sinkronisasi
  • 2. Mutual Exclusion
  • 3. Deadlock
  • 4. Startvation

4 of 31

Prinsip-prinsip Konkurensi

  • Alokasi waktu pemroses untuk proses-proses
  • Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
  • Komunikasi antarproses
  • Sinkronisasi aktivitas banyak proses.

5 of 31

Konkurensi dapat muncul pada konteks berbeda, antara lain:

  • Banyak aplikasi (multiple application).
  • Aplikasi terstruktur.
  • Struktur sistem operasi
  • Untuk Strukturisasi Satu Proses.

6 of 31

Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu:

  • kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi.

7 of 31

B. Kesulitan-kesulitan yang ditimbulkan konkurensi

Konsep: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi.

Beragam kemungkinan yang terjadi tidak dapat diprediksi, seperti:

1. Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:

  • Aktivitas proses-proses lain
  • Cara sistem operasi menangani interupsi
  • Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.

8 of 31

2. Beberapa kesulitan yang dapat muncul, di antaranya adalah:

  • Pemakaian bersama sumber daya global
  • Pengelolaan alokasi sumber daya agar optimal
  • Pencarian kesalahan pemrograman.

9 of 31

Proses-proses konkuren mengharuskan beberapa hal yang harus ditangani, antara lain:

  • Sistem operasi harus mengetahui proses-proses yang aktif
  • Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif.

10 of 31

  • Sistem operasi harus memproteksi data dan sumber daya fisik masing-masing proses dari gangguan proses-proses lain.
  • Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.
  • SO harus memfasilitasi jika proses-proses konkuren memerlukan komunikasi satu dengan yang lainnya.

11 of 31

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.

12 of 31

1. sinkronisasi

Memungkinkan proses-proses melakukan aktifitas-aktifitas secara konkuren ke suatu sumber daya yang dibagi pakai bersama.

Hal ini menimbulkan Race Condition,

13 of 31

Race condition

  • Race Condition: Situasi dimana beberapa proses mengakses dan memanipulasi data secara bersamaan. Nilai terakhir dari data bergantung dari proses mana yang selesai terakhir.
  • Untuk menghindari Race Condition, proses-proses secara bersamaan harus disinkronisasikan.

14 of 31

Race condition

  • Dalam beberapa sistem operasi, proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses tulis (write).

15 of 31

  • Penyimpanan bersama (shared storage) mungkin berada di memori utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak merubah kealamian dari komunikasi atau masalah yang muncul.

16 of 31

  • Bagaimana menghindari race conditions?

Kunci untuk mencegah masalah ini adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama.

17 of 31

4 kondisi agar menghasilkan solusi yang baik:

  1. Tidak ada dua proses secara bersamaan
  2. Tidak ada asumsi mengenai kecepatan
  3. Tidak ada proses yang berjalan, yang dapat mengeblok proses lain.
  4. Tidak ada proses yang menunggu

18 of 31

2. 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.

19 of 31

  • critical section : Bagian program yang sedang mengakses memory atau sumber daya yang dipakai bersama
  • Jika proses pada critical section memblokir

proses-proses lain dalam antrian, maka akan terjadi startvation dan deadlock

20 of 31

mutual exclusion harus memenuhi kriteria sbb :

  • Mutual exclusion harus dijamin, bahwa tidak ada proses lain, kecuali dirinya sendiri.
  • Hanya ada 1 proses pada satu saat yang diizinkan masuk critical section.
  • Proses yang berada di noncritical section, dilarang mem-blocked proses-proses lain yang ingin masuk critical section.
  • Harus dijamin bhwa proses yang ingin masuk critical section tidak menunggu selama waktu yang tak terhingga.

21 of 31

  • Ketika tidak ada proses pada critical section, maka proses yang ingin masuk critical section harus ijinkan masuk tanpa waktu tunda.
  • Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah yang ada.
  • Proses hanya tinggal pada critical section selama satu waktu yang berhingga

22 of 31

Beberapa metode yang diusulkan untuk menjamin Mutual Exclusion, antara lain:

- Metode Naif

Tidak menyelesaikan masalah mutual exclusion.

- Metode Variable Lock

Metode ini sederhana ketika proses masuk critical section lebih dahulu memeriksa variable lock.

1. Jika variable lock bernilai 0, proses men-set variable locknya menjadi 1 kemudian masuk ke dalam critical section.

2. 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.

23 of 31

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

- Metode penyelesaian Dekker

1. tidak memerlukan instruksi-instruksi dari perangkat keras

2. proses yang beroperasi diluar critical section tidak dapat mencegah proses lain memasuki critical section itu.

3. proses yang ingin masuk critical section akan segera masuk jika dimungkinkan.

24 of 31

- Metode Peterson

Mekanisme :

Sebelum masuk critical section, proses memanggil enter_critical_section. Sebelum memanggil enter_critical_section, proses memeriksa sampai kondisi aman untuk enter_critical_section. Terjadi busy waiting. Setelah selesai di critical section proses menandai pekerjaan telah selesai dan mengizinkan proses lain masuk.

25 of 31

3. Deadlock�

  • Deadlock adalah suatu kondisi dimana dua proses atau lebih tidak dapat meneruskan eksekusinya oleh pemroses.
  • Proses terlihat didalam deadlock jika proses menunggu suatu kejadian tertentu yang tidak akan pernah terjadi.
  • Pada umumnya deadlock terjadi karena proses mengalami startvation.

26 of 31

Model deadlock

urutan kejadian :

  1. Meminta (request)
  2. Memakai (use)
  3. Melepaskan (release)

27 of 31

Karakteristik Deadlock

Kondisi yang dapat menimbulkan terjadinya deadlock:

1. Mutual exclusion. Apabila proses telah menggunakan suatu resource, maka tidak

boleh ada proses lain yang menggunakan resource tsb.

2. Hold & Wait. Pada suatu proses sedang mengakses suatu resource, proses tsb dapat meminta ijin untuk mengakses resource lain yang dipakai oleh proses lain.

28 of 31

3. No Preemption.

Jika suatu proses meminta ijin untuk mengakses resource,

sementara resource tersebut tidak tersedia, maka permintaan ijin tidak dapat dibatalkan.

4. Circular Wait Condition.

Jika proses P0 sedang mengakses Resource R1 dan minta ijin untuk mengakses resource R1 dan minta ijin untuk mengakses resource R2, dan pada saat yang bersamaan P1 sedang mengakses resource R2 dan mint ijin untuk mengakses R1.

29 of 31

Metode Mengendalikan Deadlock

1. Menggunakan suatu protokol untuk meyakinkan bahwa sistem tidak akan pernah mengalami deadlock.

2. Mengijinkan sistem mengalami deadlock, namun kemudian harus segera dapat memperbaikinya.

3. Mengabaikan semua masalah dan menganggap deadlock tidak akan pernah terjadi lagi di dalam sistem.

30 of 31

Pencegahan Deadlock

  • Meniadakan Mutual exclusion.
  • Meniadakan Hold & Wait.
  • Meniadakan No Preemption.
  • Meniadakan Circular Wait Condition.

31 of 31

4. STARTVATION

  • Startvation adalah keadaan dimana pemberian akses bergantian terus menerus, dan ada suatu proses yang tidak mendapatkan gilirannya