Anda di halaman 1dari 8

Mata Kuliah :

Sistem Operasi
[ CF 1322]
TUGAS STUDI KASUS SI STEM OPERASI
Mutual Exclusion
Disusun Oleh :
Muhammad Rizky Rafidianto 5208 100 043
Route Gemilang 5208 100 03
!e"lina #usuma $a"dhani 5208 100 130
#hikmatul Maula 5208 100 135
%inan &lmanda 'yafa(at 5208 100 145
)oga #u"nia*an 5208 100 14+
Jurusan Sistem Informasi
Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember
Surabaya
MUTUAL EXCLUSION
Penjelasan tema Mutual Exclusion
Pada system computer terdapat sumber daya yang tidak dapat dipakai bersama pada saat yang
bersamaan seperti pada penggunaan printer, Sumber daya seperti hanya dapat menjalankan satu proses
pada suatu saat, sumber daya ini disebut sumber daya kritis. Program yang menggunakan sumber daya
kritis disebut sedang memasuki critical region / section .
Sistem operasi memberikan fasilitas untuk pemrogram dapat memberikan indikasi keberadaan critical
region. Sistem operasi menyediakan layanan ( berupa system call ) untuk mencagah suatu proses masuk
kedalam critical region akan tetapi di dalam critical region terdapat proses lain yang sedang berjalan.
Mutual exclusion merupakan solusi bagi masalah pada critical region / section, mutual exclusion adalah
persoalan untu menjamin hana satu proses saja an! "erjalan dalam suatu critical re!ion # section$
Ilustrasi apli%asi ta"un!an
Seluruh sistem yang melibatkan banyak proses mengakses satu sumber daya bersama
selalu menimbulkan persoalan mutual-exclusion.
ontohnya adalah sebagai berikut.
Pada aplikasi tabungan, misalnya rekening ! berisi "p #.$$$.$$$,% yang terdaftar di
kantor cabang bandung.
&emudian pada suatu saat program aplikasi kantor cabang di 'akarta melayani
penyetoran "p (.$$$.$$$,% ke rekening !. lalu program aplikasi membaca saldo akhir
rekening !
Persoalan di atas dapat tidak terjamin mutual-exclusion jika)
#. Program aplikasi bandung menulis ke rekening ! secara cepat sehingga di hasilkan saldo
"p *.$$$.$$$. Setelah itu, program aplikasi kantor cabang 'akarta menimpa hasil itu
dengan saldo "p +.$$$.$$$,% . ,alam kasus ini saldo akhir yang diperoleh adalah "p
+.$$$.$$$,% bukan "p #$.$$$.$$$,% (yang seharusnya).
-. Program aplikasi 'akarta dilakukan menulis ke rekening ! secara cepat sehingga
dihasilkan saldo "p +.$$$.$$$,%. Setelah itu program aplikasi di kantor bandung
menimpa hasil itu dengan saldo "p *.$$$.$$$,%. .asil yang lebih baik dibanding skenario
pertama tetapi masih di ba/ah yang seharusnya yaitu "p #$.$$$.$$$,%.
&riteria Penelesaian Mutual-Exclusion
&emampuan menjamin mutual%exclusion harus memenuhi kriteria%kriteria berikut)
#. Mutual%exclusion harus dijamin.
-. .anya satu proses pada satu saat yang dii0inkan masuk critical section yang sama pada
saat telah ada proses yang masuk critical section itu.
(. Proses yang berada di noncritical section, dilarang mem%block proses%proses lain yang
ingin masuk critical section.
+. .arus dijamin proses yang ingin masuk critical section tidak menunggu selama /aktu
yang tak berhingga atau tidak boleh terjadi deadlock maupun start1ation.
2. &etika tidak ada proses di critical section, maka proses yang ingin masuk critical section
harus dii0inkan segera masuk tanpa ada /aktu tunda.
*. 3idak ada asumsi mengenai kecepatan relatif proses atau jumlah proses yang ada.
kriteria pada nomor satu merupakan kriteria pokok yang harus dipenuhi. Metode yang
melanggar kriteria nomor satu sama sekali tidak dapat di gunakan. Pelanggaran kriteria%kriteria
lain berarti metode masih bisa digunakan pada situasi%situasi tertentu tapi harus dilakukan
secara hati%hati.
Al!oritma dan 'lo(chart
4erikut ini adalah pemecahan masalah critical region menggunakan mutual exclusion )
!lgoritma #
Shared 5ariables / rtitical "egion) "
6or processes i7$ to 8
do
9
//Process 8on ritical "egions
//:nd of 8on ritical "egions
"e;uest<" (i)=
//if "e;uest >ranted then :nter " else /ait
:xit<" (i)=
?/hile(#)=
!lgoritma -
Shared 5ariables / ritical "egion) "
3 ) urrent 3ime of the System
,@" ) ,uration of use of ritical "egion
3
first
) 6irst Pre1iously "e;uested Process urrent 3ime
,@"
pre1
) !ll Pre1iously "e;uested Process ,uration of use of ritical "egion
6or processes i7$ to 8
)lo(chart *

Process
Enter Process I+, Current Time
o' -e.uest, and +uration o' USE
in Critical -e!ion/s 0ueue
0ueue
Empt
Enter C-
CT 1
CT
'irst
2 +U-
pre3

4ait
Send Messa!e to Current
Usin! Process
-epl
Update +U-
pre3
-emo3e Current usin!
process 'rom the 0ueue
and Set C- )ree
STA-T
,o
9
//Process 8on ritical "egions
//:nd of 8on ritical "egions
"e;uest<" (i, 3, ,@")=
Af(Bueue of " is :mpty)
:nter ritical "egion
:lse
9
Af(3 7 3
first
C ,@"
pre1
)
9
Send Message to urrently !ccessing Process
Af(reply 7 true)
@pdate ,@"
pre1
/ith ne/ 3ime
:lse
"emo1e current process entry from the ;ueue
?
Dait for ritical "egion to be free until ,@"
?
:xit
?/hile (#)=
Contoh &asus an! diselesai%an
Masalah printer +aemon
EN+
,aemon printer adalah proses penjad/alan E pengendalian pencetakan berkas- di printer
sehingga seolah- printer dapat digunakan secara simultan oleh proses%proses. ,aemon printer
mempunyai ruang disk (disebut direktori spooler) untuk menyimpan berkas%berkas yang akan
dicetak. ,irektori spooler membagi disk menjadi sejumlah slot. Slot%slot diisi berkas yang akan
dicetak. 3erdapat 1ariable in menunjuk slot bebas di ruang disk yang kan dipakai menyimpan berkas
yang ingin dijad/alkan untuk dicetak.
a. Contoh Al!oritma Pro!ram*
Program Give_File_to_spooler;
Var
in : Integer;
berkasA, berkasB: File;
ProcedureStore (Berkas: File, next_slot: Integer);
{Untkmen!impanberkaspa"aslot kenext_slot#
Procedure ProsesA;
Var
next_$ree_slot: %nteger;
Begin
next_$ree_slot:&in;
store(BerkasA, next_$ree_slot);
in:&next_$ree_slot'(;
End;
ProcedureProsesB;
Var
next_$ree_slot:%nteger;
Begin
next_$ree_slot:&in;
store(BerkasB, next_$ree_slot);
in:&next_$ree_slot'(;
End;
Begin
in:&);
Repeat
Parbegin
ProsesA;
ProsesB;
Parend
Forever
End.
"$ S%enario an! Mem"uat &acau
Misal proses ! dan 4 ingin mencetak berkas, 1ariable in bernilai F. Scenario berikut dapat
terjadi )
Proses A
9in7F?
8ext<free<slotGin
9in7F?
9Penjad/al menjad/alkan 4 berjalan?
9in7F?
Proses 5
9in7F?
8ext<free<slotGin
Store berkas 4 to slotHnext<free<slotI
9berkas 4 disimpan dislot ke%F?
in Gnext<free<slotC #
9in7#$?
9Penjad/al menjad/alan ! berjalan?
Store berkas ! to slotHnext<free<slotI
9berkas ! disimpan dislot%F, menimpa
berkas4?
in Gnext<free<slotC #
9in7#$?
9berkas! menimpa berkas4, sehingga 4 tak pernah mendapat cetakannya?
c$ Penjelasan
Proses ! membaca 1ariable in bernilai F. 4elum sempat ! menyelesaikan proses,
penjad/al menjad/alkan proses 4 berjalan. Proses 4 yang juga ingin mencetak, membaca
1ariable in , 1ariable in masih berniali F. Proses 4 dapat menyelesaikan proses. Proses 4
menyimpan berkas 4 dislot ke%F. Proses ! dijad/alkan kembali dan juga menyimpan berkas ! di
slot ke F. 4erkas4 ditima berkas !, 4 tak akan pernah memperoleh cetakan.
Pada contoh terdapat kondisi dimana dua proses atau lebih sedang membaca atau
menulis data bersama (yaitu 1ariable in ) denga hasil akhir bergantung jalannya proses%proses.
.asil akhir tidak dapat diprediksi. &ondisi ini disebut kondisi pacu (race condition ). &ondisi pacu
harus dihilangkan agar hasil proses dapat diprediksi dan tidak bergantung jalannya proses%
proses itu.
&unci penghilangan kondisi pacu adalah harus dapat dicegah lebih dari satu proses
membaca atau menulis data bersama pada saat bersaman. Mutual exclusion adalah menjamin
hanya satu proses yang yang sedang menggunakan 1ariable atau berkas pada suatu saat.
Proses%proses lain dilarang mengerjakan hal yang sama. 4agian program yang sedang
mengakses memori atau sumber daya yang dipakai bersama disebut critical section/region.
@ntuk mengatasi kondisi pacu harus dijamin tidak boleh dua proses atau lebih
memasuki critical section yang sama secara bersamaan. &esuksesan proses%proses konkuren
memerlukan pendefinisian critical section dan memaksakan mutual exclusion di antara proses%
proses kongkuren yang sedang berjalan. Pemaksaan mutual exclusion merupakan landasan
pemrosesn kongkuren.

Anda mungkin juga menyukai