• Tidak ada hasil yang ditemukan

Pertemuan 11 KONKURENSI

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pertemuan 11 KONKURENSI"

Copied!
25
0
0

Teks penuh

(1)

Pertemuan 11

(2)

A. Pengertian Konkurensi

Proses-proses disebut konkuren apabila proses-proses (lebih dari satu proses) berada pada saat yang sama. Karena proses tersebut bisa saja tidak saling bergantung tetapi saling berinteraksi.

(3)

B. Prinsip Konkurensi

Prinsip-prinsip konkurensi meliputi :

1. Alokasi layanan pemroses untuk proses-proses 2. Pemakaian bersama dan persaingan untuk

mendapatkan sumberdaya 3. Komunikasi antar proses

4. Sinkronisasi aktivitas banyak proses

Konkurensi dapat muncul pada konteks berbeda, yaitu : 1. untuk banyak pemakai

2. untuk strukturisasi dari aplikasi

3. untuk strukturisasi dari satu proses 4. untuk strukturisasi sistem operasi

(4)

Konteks Konkurensi

Konteks Konkurensi untuk Strukturisasi Satu Proses

Untuk peningkatan kinerja, maka satu proses dapat memiliki banyak thread yang independen.

Thread-thread tersebut harus dapat bekerja sama untuk

mencapai tujuan proses.

Konteks Konkurensi untuk Banyak Aplikasi

Sistem multiprogramming memungkinkan banyak aplikasi/ proses yang sekaligus dijalankan di satu pemroses.

(5)

Konteks Konkurensi (Lanjut…)

Konteks Konkurensi untuk Strukturisasi Aplikasi

Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses, maka masing-masing proses menyediakan satu layanan spesifikasi tertentu.

Thread: suatu unit dasar dari CPU Utilization yang berisi

program counter, kumpulan register dan ruang stack

Konteks Konkurensi u/ Strukturisasi Sistem Operasi

Keunggulan strukturisasi dapat diterapkan ke pemrograman sistem. Beberapa sistem operasi yang dipasarkan dan yang sedang dalam reset telah diimplementasikan sebagai sekumpulan proses.

(6)

C. Beberapa kesulitan yang ditimbulkan

konkurensi

1. Pemakaian bersama sumber daya global

2. Pengelolaan alokasi sumber daya agar optimal 3. Pencarian kesalahan program (Debuging)

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 bersama menjadi kritis.

(7)

Beberapa kesulitan yang ditimbulkan

konkurensi (Lanjut..)

Pengelolaan Alokasi Sumber Daya agar Optimal

Jika proses A meminta suatu kanal masukan/ keluaran tertentu dan dipenuhi, permintaan tersebut dapat ditunda (suspend) sebelum menggunakan kanal tersebut. Jika sistem operasi mempunyai kebijaksanaan mengunci kanal dan mencegah proses-proses lain menggunakan kanal itu, maka tindakan ini jelas hanya menghasilkan inefisiensi sistem komputer.

Pencarian Kesalahan Pemrograman

Pencarian kesalahan pada pemrograman konkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen

(8)

Proses-proses konkuren

Proses-proses konkuren mengharuskan hal-hal berikut ditangani 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

(9)

D. Interaksi Antarproses

Pada sistem dengan banyak proses (konkuren), terdapat tiga 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

Proses-proses Saling Tidak Perduli (Independen)

Proses-proses ini tidak dimaksudkan untuk bekerja sama untuk mencapai tujuan tertentu. Pada multiprogramming, proses-proses independen dapat berupa batch atau sesi interaktif (campuran keduanya).

(10)

Interaksi Antarproses (Lanjut...)

Proses-proses Saling Memperdulikan Scr Tdk Langsung

Proses-proses tidak perlu saling memperdulikan identitas proses-proses lain, tapi sama-sama mengakses objek tertentu seperti: buffer

masukan/keluaran. Proses-proses tersebut perlu bekerja sama (cooperation) dalam memakai objek tertentu.

Proses-proses Saling Memperdulikan Secara Langsung

Proses-proses dapat saling berkomunikasi dan dirancang bekerja sama untuk suatu aktivitas.

(11)

E. Masalah-masalah konkuren

Masalah-masalah konkuren diantaranya :

1. Mutual exclusion 2. Deadlock

3. Starvation

1. Mutual Exclusion

Merupakan persoalan untuk menjamin hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu. Pentingnya mutual exclusion dapat dilihat pada ilustrasi eksekusi daemon printer.

(12)

Mutual Exclusion (Lanjut…)

Contoh Ilustrasi Eksekusi Daemon Printer

Daemon untuk printer adalah proses penjadwalan dan

pengendalian untuk mencetak berkas-berkas di printer sehingga seolah-olah printer dapat digunakan secara simultan oleh proses-proses. Daemon untuk printer mempunyai ruang penyimpanan di harddisk (disebut direktori spooler) untuk menyimpan berkas-berkas yang akan di cetak. Terdapat variabel in yang menunjuk slot bebas diruang harddisk yang dipakai untuk menyimpan berkas yang hendak di cetak.

(13)

Mutual Exclusion (Lanjut…)

Gambar 6-1. Skenario terlanggarnya mutual exclusion pada

(14)

Mutual Exclusion (Lanjut…)

Skenario

Proses A membaca variabel in bernilai 9. Belum sempat A menyelesaikan proses, penjadwal menjadwalkan proses B berjalan. Proses B juga ingin mencetak segera membaca variabel in yang masih bernilai 9. Proses B dapat menyelesaikan prosesnya. Proses B menyimpan berkasB di slot 9. Proses A dijadwalkan kembali dan segera menyimpan berkasA di slot 9. BerkasB tertimpa berkasA, maka B tidak akan pernah memperoleh cetakan.

(15)

Mutual Exclusion (Lanjut…)

Kriteria Penyelesaian Mutual Exclusion

Kemampuan menjamin mutual exclusion harus memenuhi kriteria-kriteria berikut:

a. Mutual exclusion harus dijamin

b. Hanya satu proses pada satu saat yang diizinkan masuk critical section

critical section: suatu bagian yang berisi sejumlah

variabel yang akan di-share (dipengaruhi atau mempengaruhi) proses yang lain.

(16)

Kriteria Penyelesaian Mutual Exclusion

(Lanjut)…)

c. Proses yang berada di noncritical section, dilarang mem-block proses-proses yang ingin masuk critical

section.

d. Harus dijamin proses yang ingin masuk critical section tidak menunggu selama waktu yang tidak berhingga.

e. Ketika tidak ada proses di critical section, maka proses yang ingin masuk critical section harus diizinkan segera masuk tanpa waktu tunda.

f. Tidak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada.

(17)

2. Deadlock

Deadlock terjadi ketika proses-proses mengakses sumber daya secara eksklusif. Semua deadlock yang terjadi melibatkan persaingan untuk memperoleh sumber data eksklusif oleh dua proses atau lebih.

Model Deadlock

Terjadi deadlock dapat digambarkan dengan menggunakan graph. Misal model deadlock dua proses dan dua sumber daya:

Dua proses P0 dan P1

(18)

Deadlock (Lanjut…)

Gambar 7-1. Graph meminta sumber daya dan alokasi sumber daya

Keterangan:

(a) P0 meminta sumber daya R0, ditandai busur berarah dari proses P0 ke sumber daya R0.

(b) Sumber daya R1 dialokasikan ke P1, ditandai busur berarah dari sumber daya R1 ke proses P1.

P0

P1 R0

(19)

Deadlock ( Lanjut…)

Gambar 7-2. Graph deadlock dua proses dan dua sumber daya

Skenario yang Menimbulkan Deadlock:

P0 dialokasikan R0, P1 dialokasikan R1. Kemudian P0 sambil masih menggenggam R0, meminta R1 dan P1 sambil masih menggenggam R1, meminta R0.

Kejadian ini mengakibatkan deadlock karena sama-sama proses P0 dan P1 akan saling menunggu.

Terjadinya deadlock ditandai munculnya graph melingkar P0

P1

(20)

Deadlock (Lanjut…)

Coffman, et al. [Cof-71] menyatakan empat syarat terjadinya deadlock, yaitu:

a. Mutual exclusion condition b. Hold and wait condition c. Non-preemption condition d. Circular wait condition

Mutual Exlusion Condition

Kondisi dimana sumber daya saat itu diberikan pada tetap satu proses

(21)

Deadlock (Lanjut…)

Hold and Wait Condition

• Kondisi dimana proses - proses yang sedang menggenggam sumber daya, menunggu sumber daya-sumber daya baru.

Non-preemption Condition

• Kondisi dimana sumber daya yang sebelumnya diberikan, tidak akan diambil paksa dari proses yang sedang menggenggamnya. Sumber daya tersebut secara eksplisit dilepaskan dari proses yang menggenggamnya.

(22)

Deadlock (Lanjut…)

Circular Wait Condition

Kondisi dimana harus terdapat rantai sirkuler dari dua proses atau lebih, masing-masing menunggu sumber daya yang digenggam oleh anggota berikutnya pada rantai itu.

Metode untuk mengatasi deadlock dapat dikelompokkan menjadi tiga, yaitu:

a. Metode pencegahan (deadlock prevention) b. Metode penghindaran (deadlock avoidance)

c. Metode deteksi dan pemulihan (deadlock detection and

(23)

3. Startvation

Keadaan dimana pemberian akses bergantian terus-menerus, dan ada suatu proses yang tidak mendapatkan gilirannya.

Ilustasi starvation, misalnya :

Terdapat tiga proses, yaitu P1, P2 dan P3.

P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik.

(24)

Starvation (Lanjut…)

Skenario berikut terjadi:

P1 sedang diberi sumber daya R sedangkan P2 dan P3 diblocked menunggu sumber daya R.

Ketika P1 keluar dari critical section, maka 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. Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R. Dalam kondisi ini memang tidak terjadi

deadlock, hanya saja P2 mengalami starvation (tidak

(25)

F. Pokok penyelesaian masalah konkurensi

Pada dasarnya penyelesaian masalah konkurensi terbagi menjadi dua, yaitu :

Mengasumsikan adanya memori yang digunakan bersama.

Tidak mengasumsikan adanya memori yang digunakan bersama

Adanya memori bersama lebih mempermudah dalam penyelesaian masalah konkurensi.

Gambar

Gambar 6-1. Skenario terlanggarnya mutual exclusion pada  spooler
Gambar 7-1. Graph meminta sumber daya dan alokasi sumber daya
Gambar 7-2. Graph deadlock dua proses dan dua sumber daya  Skenario yang Menimbulkan Deadlock:

Referensi

Dokumen terkait

Jumlah penduduk miskin adalah jumlah penduduk yang berada di bawah batas yang disebut garis kemiskinan, yang merupakan nilai rupiah dari kebutuhan minimum makanan dan

Istilah penekanan tombol kiri disebut dengan click dimana penekanan ini akan berfungsi bila mouse berada pada objek yang ditunjuk, tetapi bila tidak berada pada objek yang

Jika proses penanganan form berada dilakukan di halaman yang berbeda, maka value atribut action pada tag form harus diisi dengan alamat halaman tempat

Thread juga bisa dikerjakan secara konkuren lebih satu (multiple threads) untuk satu proses yang menggunakan resources yang sama (menggunakan memory).. Namun untuk

Secara ekstremural (diluar Lembaga Pemasyarakatan) Pembinaan secara ekstremural yang dilakukan di Lembaga Pemasyarakatan disebut asimilasi, yaitu proses pembinaan

Konsep dasar analisis markov adalah state dari sistem atau state transisi, sifat dari proses ini adalah apabila diketahui proses berada dalam suatu keadaan

Jika berada pada larutan yang hipertonik, air di dalam sel keluar, sehingga sel mengerut dan membrane plasma akan tertarik menjauhi dinding sel, disebut plasmolisis adalah peristiwa

PENERAPAN TQM PADA MATAKULIAH Metode TQM yang dipakai adalah "Kuesioner Satu Menit" dan "Gugus Kendali Mutu", yang diterapkan pada matakuliah "Pengambilan Keputusan dan Perencanaan"