• Tidak ada hasil yang ditemukan

Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization

N/A
N/A
Protected

Academic year: 2021

Membagikan "Sistem Operasi Pertemuan 5 Concurrency: Mutual Exclusion & Synchronization"

Copied!
71
0
0

Teks penuh

(1)

Pertemuan 5

Concurrency: Mutual

Exclusion &

Synchronization

(2)

Ikhtisar

• Prinsip Mendasar dari Concurrency

– Mutual Exclusion: Dukungan Hardware – Semaphore

– Monitor

– Message Passing

(3)

Banyak Proses

• Sentral bagi perancangan SO modern adalah pengelolaan banyak proses

– Multiprogramming – Multiprocessing

– Distributed Processing

• Isu besarnya adalah Concurrency

(4)

Concurrency

Concurrency hadir pada:

• Banyak aplikasi

– Waktu sharing

• Aplikasi terstruktur

– Ekstensi dari rancangan modular

• Struktur sistem operasi

– SO sendiri diimplementasikan sebagai sekumpulan proses atau thread

(5)
(6)

Proses Interleaving & Overlapping

• Telah diketahui bahwa proses dapat diinterleave pada uniprocessor

(7)

Proses Interleaving & Overlapping

• Pada multi-processor, juga dapat overlapping

(8)

Kesulitan Concurrency

• Sharing sumber daya global

– Penulisan suatu shared variable: urutan penulisan sangat penting

– Masalah besar adalah penulisan tidak lengkap

• Pengelolaan alokasi resource secara optimal

• Sulit menemukan error pemrograman

(9)

Contoh Sederhana

void echo() { chin = getchar(); chout = chin; putchar(chout); }

(10)

Contoh pada Multiprocessor

Proses P1 Proses P2

. .

chin = getchar(); .

. chin = getchar(); chout = chin; chout = chin;

putchar(chout); .

. putchar(chout);

(11)

Menerapkan Akses Tunggal

• Jika diterapkan suatu aturan yang hanya

satu proses dapat memasuki fungsi tersebut pada suatu waktu, maka:

• P1 & P2 berjalan pada processor berbeda • P1 memasukkan echo lebih dahulu,

– P2 mencoba masuk tetapi diblok – P2 suspend

• P1 melengkapi eksekusi

(12)

Kondisi Race

• Race condition terjadi ketika

– Banyak proses atau thread membaca & menulis item data

– Hasil akhir dari aktifitas baca & tulis tersebut tergantung pada urutan eksekusi dari proses-yang terlibat.

• Output tergantung pada siapa yang terakhir menyelesaikan race.

(13)

Fokus SO

• Isu desain dan manajemen yang muncul karena adanya concurrency?

• SO harus

– Menjaga track dari berbagai proses

– Meng-alokasi-kan dan men-dealokasi-kan sumber daya

– Melindungi data & resource dari gangguan proses lain

(14)
(15)

Kompetisi Antar Proses

(Resources)

Ada tiga masalah kendali utama: • Kebutuhan Mutual Exclusion

– Critical section (bagian kritis dari proses)

• Deadlock • Starvation

(16)

Syarat Mutual Exclusion (2)

• Hanya satu proses pada satu waktu yang

dibolehkan ada dalam critical section bagi suatu resource

• Proses yang berhenti pada noncritical

section-nya harus melakukan demikian

tanpa gangguan dengan proses lain • Tidak ada deadlock atau starvation

(17)

Syarat Mutual Exclusion (2)

• Proses harus tidak didelay akses ke suatu

critical section saat tidak ada proses lain

yang menggunakannya

• Tidak ada asumsi mengenai kecepatan proses relatif atau jumlah proses

• Proses tetap di dalam critical section-nya hanya selama waktu terbatas tertentu

(18)

Mutual Exclusion

(Disabling Interrupts)

• Uniprocessor hanya membolehkan

interleaving

• Interrupt Disabling

– Proses berjalan sampai ia meng-invoke suatu layanan SO atau sampai ia diinterupsi

– Disabling interrupts menjamin terwujudnya

mutual exclusion

– Tidak akan bekerja pada arsitektur multiprocessor

(19)

Pseudo-Code

while (true) { /* disable interrupts */; /* critical section */; /* enable interrupts */; /* remainder */; }

(20)

Instruksi Mesin Khusus

• Instruksi Compare & Swap

– Juga disebut “compare and exchange instruction”

(21)

Instruksi Compare&Swap

int compare_and_swap (int *word, int testval, int newval) {

int oldval;

oldval = *word;

if (oldval == testval) *word = newval; return oldval;

(22)
(23)

Instruksi Exchange

void exchange (int register, int memory) { int temp; temp = memory; memory = register; register = temp; }

(24)
(25)

Keuntungan Mutual

Exclusion Hardware

• Dapat diterapkan terhadap banyak proses pada processor tunggal atau multi

processor yang berbagi (sharing) main memory

• Simple, karena itu mudah diwujudkan • Dapat digunakan untuk mendukung

(26)

Kerugian Mutual

Exclusion Hardware

• Busy-waiting mengkonsumsi waktu processor

• Starvation mungkin ketika suatu proses meninggalkan critical section dan lebih dari satu proses menunggu (waiting).

– Beberapa proses dapat ditolak aksenya dalam waktu tak terbatas.

(27)

Semaphore

• Semaphore:

– Suatu nilai integer (bilangan bulat) yang digunakan untuk pensinyalan (signalling) antar proses.

• Hanya tiga operasi dapat dikerjakan pada suatu semaphore, semuanya bersifat

atomik:

(28)
(29)
(30)

Semaphore Kuat & Lemah

• Antrian (queue) digunakan untuk

menangani proses yang menunggu (waiting) pada semaphore

– Dalam urutan bagaimana proses dihapus dari antrian?

• Semaphore Kuat menggunakan FIFO • Semaphore Lemah tidak menentukan

(31)
(32)
(33)
(34)
(35)

Masalah Producer-Consumer

• Situasi Umum:

– Satu atau lebih producer membangkitkan data & menempatkannya dalam suatu buffer

– Consumer tunggal mengambil item keluar buffer satu pada satu waktu

– Hanya satu producer atau consumer yang boleh mengakses buffer pada satu waktu

• Masalahnya:

– Pastikan bahwa Producer tidak dapat menambahkan data ke dalam buffer yang penuh & comsumer tidak

(36)

Fungsi

Producer Consumer while (true) { /* produce item v */ b[in] = v; in++; } while (true) {

while (in <= out) /*do nothing */; w = b[out];

out++;

/* consume item w */

• Anggap suatu buffer tak terbatas b dengan suatu array linier elemen

(37)
(38)
(39)
(40)
(41)
(42)
(43)
(44)

Fungsi dalam Bounded Buffer

Producer Consumer

while (true) {

/* produce item v */

while ((in + 1) % n == out) /* do nothing */;

b[in] = v;

in = (in + 1) % n }

while (true) {

while (in == out)

/* do nothing */; w = b[out]; out = (out + 1) % n; /* consume item w */ }

(45)

Demo Animasi

• Producer/Consumer

– Ilustrasi operasi buffer producer-consumer.

• Bounded-Buffer Problem Using Semaphores

– Demontrasi masalah consumer/producer buffer terbatas menggunakan semaphore.

(46)

Monitor

• Monitor merupakan suatu konsepsi

bahasa pemrograman yang menyediakan fungsi sama dengan semaphore & lebih mudah dikontrol.

• Diimplementasikan dalam sejumlah bahasa pemrograman, termasuk

– Concurrent Pascal, Pascal-Plus, – Modula-2, Modula-3, dan Java.

(47)

Karakteristik Utama

• Variabel data lokal hanya dapat diakses oleh monitor

• Proses memasuki monitor dengan menjalankan salah satu prosedurnya

• Hanya satu proses yang boleh berjalan (executing) dalam monitor pada satu

(48)

Sinkronisasi

• Synchronisation dicapai dengan variabel

kondisi dalam suatu monitor

– Hanya dapat diakses oleh monitor.

• Fungsi monitor:

–Cwait(c)

: Men-suspend eksekusi dari

proses yang memanggil pada kondisi c

–Csignal(c)

Me-resume eksekusi dari

(49)
(50)

Solusi Buffer Terbatas

Menggunakan Monitor

(51)
(52)
(53)

Interaksi Proses

• Ketika proses berinteraksi satu dengan lainnya, dua syarat fundamental harus terpenuhi:

– Sinkronisasi, dan – komunikasi.

• Message Passing adalah (satu) solusi untuk syarat kedua

(54)

Message Passing

• Fungsi aktual dari message passing normalnya disediakan dalam bentuk pasangan primitif:

– send (destination, message) – receive (source, message)

(55)

Synchronization

• Komunikasi memerlukan sinkronisasi

– Sender (pengirim) harus mengirim sebelum receiver (penerima) dapat menerima

• Apa yang terjadi terhadap proses setelah ia menjalankan primitif send atau receive?

– Sender & receiver mungkin (bisa pula tidak) menjadi blocking (waiting for message)

(56)

Blocking send, Blocking receive

• Sender & receiver diblok sampai message

tersampaikan (delivered)

• Dikenal sebagai rendezvous

• Menmungkinkan sinkronisasi ketat (tight) antar proses.

(57)

Non-blocking Send

• Lebih alami bagi banyak tugas

pemrograman concurrent.

• Nonblocking send, blocking receive

– Sender terus jalan

– Receiver diblok sampai message yang diminta tiba

• Nonblocking send, nonblocking receive

(58)

Pengalamatan

• Proses pengiriman perlu mampu

menentukan proses mana yang sebaiknya menerima message

– Direct addressing (langsung)

(59)

Pengalamatan Langsung

• Primitif send menyertakan suatu pengenal (identifier) khusus dari proses tujuan

• Primitif receive segera dapat mengetahui proses mana yang menjadi tujuan

message

• Primitif receive dapat memanfaatkan

parameter source untuk mengembalikan suatu nilai ketika operasi receive selesai

(60)

Pengalamatan Tak Langsung

• Message dikirim ke suatu struktur shared

data yang mengandung antrian (queues) • Queues disebut pula mailboxes

• Satu proses mengirimkan suatu message ke mailbox & proses lain mengambil

(61)
(62)
(63)
(64)
(65)

Masalah Readers-Writers

• Suatu area data dishare antar banyak

proses

– Beberapa proses hanya membaca area data, beberapa hanya menulis ke area tersebut.

• Kondisi untuk dicapai:

1.Banyak readers boleh membaca file at once. 2.Hanya satu writer pada satu waktu yang

(66)
(67)
(68)
(69)
(70)
(71)

Tugas Pertemuan 5

• Kerjakan problem 5.1 & 5.2!

• Jelaskan definisi dari Proses, Thread, Mutual Exclution, Race Condition,

Sinkronisasi, Deadlock, Starvation, Monitor, dan Semaphore!

• Uraikan implementasi sinkronisasi &

Referensi

Dokumen terkait

Ledy Daiyana (2019) menulis skripsi yang berjudul “Tindak Tutur Ilokusi Sopir Truk di Rumah Makan yang Ada di Kecamatan Pulau Punjung, Kabupaten Dharmasraya”.

No Kasus Deskrip si Prosedur Pengujian Output yang Diharapkan Hasil ID-01 Halama n Login Mengisikan Username dan Password Berhasil masuk ke halaman utama kelola sistem

Hasil sidik keragaman menunjukkan bahwa konsentrasi pupuk organik cair yang diberikan memberikan pengaruh yang sangat nyata terhadap semua peubah yang diamati. Konsentrasi

Adapun responden produsen pada kelompok bahan makanan, kelompok kesehatan, dan kelompok makanan jadi, minuman, dan rokok relatif lebih banyak yang menyatakan bahwa angka

Penanggulangan terhadap penurunan yang besar dan waktu penurunan yang lama pada tanah lempung lembek yang di bebani merupakan masalah yang

unsur lembaga litbang, perguruan tinggi, dan industri.  Keanggotaan konsorsium riset paling tidak terdiri atas satu lembaga riset, satu perguruan tinggi dan satu

Zaki A., M.Kom Prind Triajeng P, M.Kom Siti Asmiatun, M.Kom Fahrul Pradhana P., M.Kom.. Fuzzy

Dengan perkembangan zaman dan teknologi maka orang sekarang mulai berhati-hati dalam memilih dan membeli makanan, karena pada masa kini