The Critical Section Problem Algorithm III

dokumen-dokumen yang mirip
The Critical Section Problem Algorithm III. Muhammad Fikry Hazmi (143) Kresna Ridwan (145) Guntur Kondang Prakoso (153)

Bab 19. Solusi Critical Section

Bab 6: Sinkronisasi Proses. Latar Belakang

Operating System. Synchronization & Deadlock. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

MODUL 5 MANAJEMEN PROSES (2) (PENJADWALAN PROSES)

Proses Sinkronisasi. Latar Belakang Masalah Critical Section Sinkronisasi Hardware Semaphores Monitors

7 Sinkronisasi. Proses Sinkronisasi. Overview (1) Overview (2) Latar Belakang Masalah Critical Section Sinkronisasi Hardware Semaphores Monitors

Sinkronisasi dan Deadlock Sistem Operasi

Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

Bab 5. Sinkronisasi Proses POKOK BAHASAN: TUJUAN BELAJAR: 5.1 LATAR BELAKANG

Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses disebut konkuren jika proses-proses berada pada saat yang sama.

PROSES & THREADS 2 AGUS PAMUJI. SISTEM OPERASI - Proses & Threads

Sistem Operasi. Critical section, konkurensi, mutasi exclusion, starvation dan deadlock. Juliansyahwiran, S. Kom, MTI. Modul ke: Fakultas FASILKOM

Process Synchronization

Apa yang akan dipelajari?

Process Synchronization (Background)

Soal-jawab Quiz 2. Oleh: Endro Ariyanto (END) Oktober 2008

BAB 4. SINKRONISASI & DEADLOCK

6 Maret Structure of Java [Penyeleksian Kondisi]

Sequential Process. Keterangan SISTEM OPERASI KOMUNIKASI ANTAR PROSES

Pertemuan #3: Sinkronisasi dan Deadlock

Laporan Tugas Scheduling Pengantar Sistem Operasi

Sleep and Wake Up. Tugas Kuliah. Mata kuliah : CF 1310 Sistem Operasi. Disusun oleh : UZLINA RAHMAWATI FIA MAHANANI

24/09/2017 PERULANGAN

B. Jawablah dengan ringkas dan lengkap. (Jawaban tidak lebih dari 10 kalimat) (Nilai 40) Solusi: kata kunci dalam huruf miring.

MODUL 6 STRUKTUR KONDISI (PERULANGAN)

Paralel processing Benefits Job level Process level Thread level

Bab 22. Perangkat Sinkronisasi II

Concurrency 1 : Mutual Exclusion dan Sinkronisasi (P ( e P rtemuan ua ke-9) 9 September 2014

Pemrograman Fery Updi,M.Kom

Sinkronisasi dan Deadlock

MODUL 4 KONSEP PROSES, KONKURENSI, MANAJEMEN PROSES (1) M. R A J A B F A C H R I Z A L - S I S T E M O P E R A S I - M O D U L 4

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

Artikel Perbedaan Proses Dan Thread. Disusun Oleh : Nama : Rozy Putra Pratama NIM : Prodi : Sistem Informasi

SOLUSI QUIZ 2 SISOP CS3613

Sistem Operasi Komputer. Pertemuan VI Proses Sinkronisasi

Komunikasi & Sinkronisasi Proses

Konsep Deadlock. Kelompok 54.7 Ferry Sulistiyanto ( ) Ibnu Mubarok ( )

Monitor. Makalah Sistem Operasi. Disusun oleh :

Selection, Looping, Branching

MANAJEMEN PROSES. Satu Empat Model program counter program counter Proses

Dosen pengampu : Mohamad Dani Sifat : Tutup buku dan peralatan elektronik

CRITICAL REGIONS DAN MONITORS

Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN

Masalah Deadlock. Contoh Persimpangan Jalan. Resource-Allocation Graph. Deadlock

1/3/2013. Race Condition adalah situasi di mana beberapa proses mengakses

Struktur Kontrol. Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:

Bab 6. Deadlock POKOK BAHASAN: TUJUAN BELAJAR:

DEADLOCK. KELOMPOK : Aurora Marsye Mellawaty Vidyanita Kumalasari Y

P10 Seleksi & Perulangan

TUGAS SISTEM OPERASI

two/more processor operate in unison.

PENGATURAN PROSES. Proses adalah program yang sedangdieksekusi atau sofware yang sedang dilaksanakan.

BAB II MANAJEMEN PROSES

EXERCISE WORKBOOK MI /2012#07

Process Control Block (PCB) Masing-masing proses Direpresentasikan oleh Sistem Operasi dengan menggunakan Process Control Block (PCB),

T UGAS STUDI KASUS SISTEM OPERASI. Mutual Exclusion. Mata Kuliah : Sistem Operasi [ CF 1322] Disusun Oleh :

PROSES. Sistem Terdistribusi

a. TRUE b. FALSE c. Jawaban A dan B keduanya dimungkinkan benar d. Tidak dapat ditentukan e. Tidak ada jawaban di antara A, B, C, D yang benar

Sistem Operasi. Proses dan Thread

MODUL V REPETITIVE. Modul Praktikum Bahasa Pemrograman Visual (BPV)

Sinkronisasi dan Deadlock

PEDOMAN WAWANCARA UNTUK PENGAJAR

Struktur Perulangan Ema Utami STMIK AMIKOM Yogyakarta

Control Structure. Dasar Pemrograman C Mikrokontroler AVR. Hendawan Soebhakti Oktober 2009

PERTEMUAN 5 PENGEMBANGAN PSEUDOCODE STRUKTUR KONTROL PENGULANGAN

MAKALAH SISTEM OPERASI Perbedaan Proses dan Thread. Disusun Oleh : NOVITA ANGGRAINI PUTRI

Pertemuan 4 KONKURENSI

Sistem Operasi. Deadlock

PEMROGRAMAN WEB 1. Statement Control Pemilihan dan Perulangan. Rio Andriyat Krisdiawan, M.Kom

Overview Penjadwalan (1)

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM III Sinkronisasi Proses

P9 Seleksi & Perulangan

Algoritma Perulangan. Kuliah algoritma dan pemrograman

BAB 2. Class Thread. Setelah mempelajari modul ini peserta diharapkan dapat: Mengenal Kelas Thread Menggunakan Kelas Thread dalam aplikasi

Algoritma dan Pemrograman. Loop control structures: WHILE. Loop control structures: WHILE Perhatikan potongan program berikut: 12/29/2011

Sistem Operasi. Kongkurensi

DEADLOCK. Haryono Setiadi, ST, M.Eng

Bab 27. Sinkronisasi Dengan Semafor

Rahmady Liyantanto liyantanto.wordpress.com

Dasar-Dasar Pemrograman (Pengendalian Proses Program)

Dasar Pemrograman. Kondisi dan Perulangan. By : Hendri Sopryadi, S.Kom, M.T.I

Definisi (1) ready, dll.) Sering disebut dengan lightweight process. register set, dan stack. sama.

Monitor. Process Synchronization. SISTIM OPERASI (IKI-20230) ProcessSynchronization Ch. 6. Johny Moningka

Penjadwalan Process. Konsep Dasar Penjadwalan Proses. Preemptive & Non-Preemtive Scheduling. Dispatcher.

3. Struktur Perulangan dalam Bahasa C++

MINGGU III : KONTROL PROGRAM

PENGANTAR KOMPUTER & SOFTWARE II

MODUL 6 PERULANGAN. A. String. 1. Instansiasi dan Inisialisasi. M0601xxyyy.jar

KONGKURENSI (KEBERSAMAAN) Haryono Setiadi, ST, M.Eng

PENGULANGAN. pencacah harus bertipe integer atau karakter pernyataan adalah satu atau lebih instruksi yang. Pernyataan

TUGAS SISTEM OPERASI

Soal hari Jumat (16/10) Latihan 10 MS

Analisis Penerapan Semaphore dalam Mengatasi Masalah Sinkronisasi Dining Philosophers.

Pengulangan for. Konstruksi for. keberadaan exp1, exp2, dan exp3 bersifat optional. for (exp1; exp2; exp3){ statement; atau. statement1; statement2;

3. Struktur Perulangan dalam C++

Perbedaan Anatara Thread dan Proses

PANDUAN PRAKTIKUM DASAR ARDUINO

Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :

Transkripsi:

The Critical Section Problem Algorithm III Di dalam suatu sistem terdapat n proses yang saling bersaing untuk menggunakan data. Masing-masing proses tersebut mempunyai kode segmen yang disebut Critical Section. Critical Section adalah bagian dari suatu proses yang akan melakukan akses dan memanipulasi data. Ketika suatu proses sedang dijalankan di Critical Section, maka tidak ada proses lain yang dijalankan di Critical Section. Critical Section biasanya digunakan dalam program multithreading, dimana dalam program tersebut terdapat banyak thread dan akan mengubah suatu nilai dari variabel. Dalam hal ini, Critical Section diperlukan agar melindungi variabel dari concurrent acces (akses program secara bersamaan) yang dapat membuat nilai suatu variabel itu berubah-ubah. Suatu proses itu dapat bekerja secara sendiri (independent process) namun juga dapat bekerja bersama proses-proses yang lain (cooperating process). Pada saat Cooperating Process, maka dapat dipastikan bahwa proses-proses tersebut akan saling berbagi data dan ada kemungkinan bahwa data yang saling dibagi secara bersama itu akan tidak konsisten karena adanya kemungkinan proses-proses tersebut melakukan akses secara bersama yang menyebabkan data tersebut dapat berubah. Hal ini disebut Race Condition. Oleh karena itu, dibutuhkan sebuah solusi untuk menghindari adanya Race Condition dan solusi ini harus memenuhi tiga persyaratan berikut : 1. Mutual Exclusion Jika proses P i masuk dalam Critical Section, maka tidak ada proses lain yang masuk ke dalam Critical Section. Critical Section sebaiknya terfokus dan pendek Tidak memasuki infinite loop 2. Progress Jika tidak ada proses yang masuk ke dalam Critical Section dan terdapat beberapa proses yang ingin masuk ke dalam Critical Section, maka pemilihan proses yang akan masuk ke dalam Critical Section tidak dapat ditunda antara lain : Jika hanya ada satu proses yang ingin masuk, proses ini akan masuk Jika terdapat dua atau lebih proses yang ingin masuk, maka salah satunya seharusnya dapat masuk 3. Bounded Waiting Tidak ada proses yang menunggu lama-lama untuk masuk ke dalam Critical Section. Jika ada suatu proses yang memasuki Critical Section, maka proses lain memiliki waktu tunggu yang ada batasnya untuk menjalankan Critical Section-nya. Asumsikan bahwa setiap proses dieksekusi pada kecepatan nol Tidak ada asumsi mengenai kecepatan relatif proses n Dalam hal ini, Algoritma III adalah salah satu yang memenuhi dari ketiga persyaratan yang ditentukan untuk mengatasi Critical Section.

Langkah-langkah berikut ini akan menunjukkan bahwa Mutual Exclusion harus dipertahankan. Disini terdapat dua variabel yaitu flag dan turn. Variabel flag disini menunjukkan apakah proses tersebut sudah siap untuk masuk ke Critical Section atau tidak dan variabel turn disni menunjukkan giliran proses mana yang boleh masuk ke Critical Section. Disini P i akan masuk ke dalam Critical Section hanya jika flag[j] bernilai false atau memberikan turn kepada P i (turn == i). Jika kedua proses tersebut dapat dieksekusi ke dalam Critical Section pada waktu yang bersamaan, maka flag[i] dan flag[j] bernilai benar. Namun ini bertentangan dengan persayaratan Mutual Exclusion.

Disini menunjukkan bahwa P i dan P j tidak dapat berhasil dieksekusi while statement/infinite loop mereka pada waktu yang sama, karena nilai turn dapat berupa I atau j, bukan keduanya. Maka, salah satu proses,kita asumsikan P j,harus berhasil mengeksekusi proses While Statement, sedangkan P i harus mengeksekusi additional statement (dalam konteks ini adalah turn == j). Namun pada waktu itu, selama P j masuk ke dalam Critical Section, flag[j] bernilai true dan turn bernilai j. Dan Mutual Exclusion sudah dipertahankan.

Untuk selanjutnya akan membuktikan bahwa persayaratan Progress dan Bounded Waiting terpenuhi. Prosses P i dapat dicegah untuk masuk ke dalam Critical Section hanya jika ini terperangkap di dalam While Loop dengan kondisi bahwa flag[j] bernilai benar dan turn bernilai j. Jika P j belum siap untuk masuk ke dalam Critical Section, maka flag[j] bernilai false dan P i dapat masuk ke dalam Critical Section.

Jika P j sudah menetapkan falg[j] bernilai true dan ini juga mengeksekusi While Statement, lalu turn bernilai salah satu, i atau j. Lalu jika turn bernilai i, maka P i akan masuk ke dalam Critical Section. Tapi, jika turn bernilai j dan P j masuk ke Critical Section, setelah P i keluar, ini akan mengembalikan nilai flag[j] menjadi false, lalu mempersilahkan P i untuk masuk ke dalam Critical Section.

Jika P j balik ke awal dan memasang kembali nilai flag[j] ke true, ini juga harus merubah nilai turn ke i dalam maksud untuk dapat ke While Statement lagi. Dengan P i tidak mengubah nilai dari variabel turn ketika mengeksekusi While Statement, P i akan masuk ke dalam Critical Section setelah ada yang menunggu yaitu P j. Semua kondisi terpenuhi dan dengan ini masalah Critical Section sudah teratasi dengan baik karena proses-proses tidak masuk ke dalam Critical Section secara bersamaan Referensi http://cs.uttyler.edu/faculty/rainwater/cosc3355/animations/criticalsection.htm https://mediekaputra.wordpress.com/2011/03/26/critical-section/