Anda di halaman 1dari 31

SISTEM OPERASI

CONCURRENCY: MUTUAL EXCLUSION AND


SYNCHRONIZATION
Oleh :
Kelompok : 2
NADIA RAHMI
LUTHFAN MAULANA
RIFAL PRATAMA
M. REZA PRATAMA
ANISSA YOLANDA PUTRY

ROADMAP
Principals of Concurrency
Mutual Exclusion: Hardware Support

Semaphores
Monitors
Message Passing

Readers/Writers Problem

CONCURRENCY
Concurrency merupakan
landasan umum perancangan
sistem operasi. Proses-proses
disebut concurrensy jika prosesproses (lebih dari satu proses)
berada pada saat yang sama.

Concurrency muncul pada 3 konteks


yang berbeda:
Multiple Application
Waktu sharing
Aplikasi terstruktur
Ekstensi dari rancangan modular
Struktur sistem operasi
SO sendiri diimplementasikan
sebagai sekumpulan proses atau

Istilah Penting

berapa istilah yang berhubungan dengan concurren


Atomic operation
Sebuah fungsi yang diimplementasikan sebagai urutan satu
atau lebih instruksi secara atomic (tanpa interrupt).

Critical section
bagian kode dalam proses yang membutuhkan akses
menuju sumberdaya dan
tidak boleh dijalankan ketika
proses lain berada pada bagian kode yang
terhubung
Deadlock
suatu keadaan dimana sistem seperti terhenti dikarenakan
setiap proses memiliki sumber daya yang tidak bisa dibagi dan
menunggu untuk mendapatkan sumber
daya yang sedang
dimiliki oleh proses lain.

Livelock
situasi dimana dua atau lebih proses secara kontinu
merubah state sebagai respon tanpa melakukan suatu
pekerjaan.

Mutial Exclusion
Sebuah ketentuan dimana ketika hanya ada satu proses pada
critical section yang boleh memakai sumber daya, dan proses lain
yang ingin memakai sumber daya tersebut harus menunggu
hingga sumber daya tadi dilepaskan atau tidak ada proses yang
memakai sumber daya tersebut
Race condition
Situasi dimana beberapa proses mengakses dan memanipulasi
sebuah pada saat besamaan dan nilai akhir dari data tersebut
tergantung pada proses yang terakhir selesai
Starvation
Situasi dimana sebuah proses yang runnable diabaikan oleh
scheduler;meskipun mampu melanjutkan, tetapi tidak pernah
dipilih

Principals of
Concurrency

Proses Interleaving & Overlapping


Telah diketahui bahwa proses dapat
diinterleave pada uniprocessor

Pada multi-processor, bukan hanya terdapat interleaving


namun juga dapat di overlapping

Keduanya dapat dilihat sebagai


contoh dari concurrent
processing

Kesulitan
Concurrency
1.

Sharing sumber daya global


Penulisan suatu shared variable: urutan
penulisan sangat penting

2. Pengelolaan alokasi sumber daya secara


Optimal.
. OS kesulitan dalam pengelolaan alokasi
sumber daya secara optimal
3. Sulit menemukan error pemrograman

Contoh Sederhana

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

Contoh pada
Multiprocessor
Process P2
Process P1

chin = getchar();

chout = chin;
putchar(chout);

chin = getchar();
chout = chin;

putchar(chout);

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
P2 me-resume & mengeksekusi echo

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

Operating System Concern


Isu perancangan dan pengelolaan apa 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
Memastikan proses & output terbebas
dari kecepatan pemrosesan

Interaksi Proses

Tingkat
Kesadaran

Hubungan

Proses tak peduli Persaingan

Proses secara tak


langsung peduli
Kerjasama dg
terhadap proses
pemakaian
lain (yaitu objek
bersama
yang dipakai
bersama)

Proses secara
langsung peduli
terhadap proses
lain

Kerjasama dg
komunikasi

Pengaruh Satu Proses


Dengan
Proses Lainnya

Masalah
Pengendalian yang
Perlu Dilakukan

Hasil satu proses


independen terhadap aksi
proses lain
Pewaktuan proses dapat
berpengaruh

Mutual exclusion
Deadlock
Starvation

Hasil-hasil suatu proses


dapat bergantung
pada informasi yg
diperoleh dari proses
lain
Pewaktuan proses dapat
berpengaruh

Mutual exclusion
Deadlock
Starvation
Koherensi Data

Hasil-hasil suatu proses


dapat bergantung
pada informasi yg
diperoleh dari proses
lain
Pewaktuan proses dapat

Deadlock
Starvation

Kompetisi Antar Proses (Resources)


Ada tiga permasalahan:
Pada Mutual Exclusion
Critical section (bagian kritis dari
proses)
Deadlock
Starvation

Syarat Mutual Exclusion (1)


Hanya satu proses pada satu
waktu yang
dibolehkan ada dalam critical
section bagi
suatu resource
Proses yang berhenti pada
noncritical
section-nya harus berlanjut tanpa
gangguan proses lain

Syarat Mutual Exclusion


(2)
Proses tidak harus ditunda untuk masuk ke
critical section saat tidak ada proses lain
yang menggunakannya
Tidak ada asumsi mengenai kecepatan
relatif proses atau jumlah proses
Proses berada di dalam critical section-nya
hanya dalam batas waktu tertentu (finite)

Mutual Exclusion:
Hardware Support

1. (Disabling Interrupts)
Uniprocessor hanya membolehkan
interleaving
Interrupt Disabling
Proses berjalan sampai ia
memanggil suatu layanan SO atau
sampai ia diinterupsi
Disabling interrupts menjamin
terwujudnya mutual exclusion
Tidak akan bekerja pada
arsitektur multiprocessor

2. Instruksi Mesin Khusus

Instruksi Compare & Swap


( Juga disebut compare
and exchange instruction)

Intruksi exchange

COMPARE & SWAP


INSTRUCTION

int compare_and_swap (int *word,


int testval, int newval)
{
int oldval;
oldval = *word;
if (oldval == testval) *word = newval;
return oldval;

EXCHANGE INSTRUCTION

void exchange (int register, int


memory)
{
int temp;
temp = memory;
memory = register;
register = temp;

EXCHANGE INSTRUCTION

(FIG 5.2)

ntungan Special machine Instruc


Keuntungan instruksi mesin khusus
Dapat diterapkan terhadap beberapa
proses pada uniproccessor atau multi
processor yang berbagi (sharing) main
memory
Simple, karena itu mudah untuk
diperiksa
Dapat digunakan untuk mendukung

Kerugian Special machine Instruction


Busy-waiting : menghabiskan
waktu processor
memungkinkan terjadinya
Starvation : ketika suatu proses
meninggalkan critical section dan
lebih dari satu proses menunggu
(waiting).
Beberapa proses dapat ditolak
aksesnya dalam waktu tak
terbatas.

TERIMAKASIH

Anda mungkin juga menyukai