download

Matakuliah
Tahun
Versi/Revisi
: T0316/sistem Operasi
: 2005
:5
Pertemuan 5
Komunikasi antar Proses /
Interprocess Communication
(IPC)
OFFCLASS01
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• menjelaskan perlunya komunikasi antar
process, dan menerangkan beberapa
mekanisme untuk berkomunikasi (C2)
2
Outline Materi
• Race Condition
• Critical Region
• Mutual Exclusion with busy waiting
–
–
–
–
–
Disabling interrupts
Lock variables
Strict Alternation
Peterson’s solution
TSL Instruction
• Sleep and wakeup
3
Interprocess Communication
Problems
- Passing information between process
- Making sure two or more processes do not get into each
other’s way
- Proper sequencing when dependencies are present
RACE CONDITION
Situation where two or more processes are reading or
writing some shared data and the final result depends
on who runs precisely when
4
Examples: spooler directory for printer
Two processes want to access shared memory at
same time
5
spooler (2)
Process A
Reads in = 7
Process B
Store local_next_slot = 7
Reads in = 7
Store local_next_slot = 7
Store buffer[7] = B
Update in = 8
Reads local_next_slot = 7
Store buffer[7] = A
Update in = 8
B will never receive any output
6
Critical Regions
Part of the programs in which the shared memory is accessed
Mutual Exclusion:
 mechanism to prevent process accessing resource used
by another process
Four conditions to provide mutual exclusion
1.
2.
3.
4.
No two processes simultaneously in critical region
No assumptions made about speeds or numbers of CPUs
No process running outside its critical region may block
another process
No process must wait forever to enter its critical region
7
Mutual exclusion using critical regions
8
Mutual Exclusion with Busy Waiting
1. Disabling Interrupt
 Each process disable all interrupts just after entering its
critical regions and re-enable them just before leaving it
but, disabling interrupt shall not be carried out by user
process
9
2. Lock Variables
- Shared (lock) variables, initially set to 0
- If lock = 0, lock is set to = 1, then enters the critial
region
- If lock = 1, wait until lock = 0
problem: race condition
10
3. Strict Alternation
(a) Process 0.
(b) Process 1.
11
4. Peterson’s Solution
12
5. TSL Instruction (Test and Set Lock)
Initially lock = 0  JNE = false  just RET
Note:
Peterson and TSL are correct bur requires busy waiting
13
Sleep and Wakeup
Sleep:
system call yang menyebabkan proses
yang memanggil diblock, atau ditunda
(suspended)
Wakup: system call yang menyebabkan proses
dibangunkan, atau menjadi ready
Case: Producer-Consumer Problem (Bounded-Buffer Problem)
14
Example of producerconsumer problem with
fatal race condition
15