• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
8
0
0

Teks penuh

(1)

Mata Kuliah :

Sistem Operasi

[ CF – 1322]

T U G A S S T U D I K A S U S S I S T E M O P E R A S I

Mutual Exclusion

Disusun Oleh :

Muhammad Rizky Rafidianto 5208 100 043

Route Gemilang 5208 100 073

Ferlina Kusuma Wardhani 5208 100 130

Khikmatul Maula 5208 100 135

Ainan Ilmanda Syafa’at 5208 100 145

Yoga Kurniawan 5208 100 149

Jurusan Sistem Informasi Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember

(2)

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 hanya satu proses saja yang berjalan dalam suatu critical region / section.

Ilustrasi aplikasi tabungan

Seluruh sistem yang melibatkan banyak proses mengakses satu sumber daya bersama

selalu menimbulkan persoalan mutual-exclusion.

Contohnya adalah sebagai berikut.

Pada aplikasi tabungan, misalnya rekening A berisi Rp 1.000.000,- yang terdaftar di

kantor cabang bandung.

Kemudian pada suatu saat program aplikasi kantor cabang di Jakarta melayani

penyetoran Rp 3.000.000,- ke rekening A. lalu program aplikasi membaca saldo akhir

rekening A

Persoalan di atas dapat tidak terjamin mutual-exclusion jika:

1. Program aplikasi bandung menulis ke rekening A secara cepat sehingga di hasilkan saldo

Rp 6.000.000. Setelah itu, program aplikasi kantor cabang Jakarta menimpa hasil itu

dengan saldo Rp 4.000.000,- . Dalam kasus ini saldo akhir yang diperoleh adalah Rp

4.000.000,- bukan Rp 10.000.000,- (yang seharusnya).

2. Program aplikasi Jakarta dilakukan menulis ke rekening A secara cepat sehingga

dihasilkan saldo Rp 4.000.000,-. Setelah itu program aplikasi di kantor bandung

(3)

menimpa hasil itu dengan saldo Rp 6.000.000,-. Hasil yang lebih baik dibanding skenario

pertama tetapi masih di bawah yang seharusnya yaitu Rp 10.000.000,-.

Kriteria Penyelesaian Mutual-Exclusion

Kemampuan menjamin mutual-exclusion harus memenuhi kriteria-kriteria berikut:

1. Mutual-exclusion harus dijamin.

2. Hanya satu proses pada satu saat yang diizinkan masuk critical section yang sama pada

saat telah ada proses yang masuk critical section itu.

3. Proses yang berada di noncritical section, dilarang mem-block proses-proses lain yang

ingin masuk critical section.

4. Harus dijamin proses yang ingin masuk critical section tidak menunggu selama waktu

yang tak berhingga atau tidak boleh terjadi deadlock maupun startvation.

5. Ketika tidak ada proses di critical section, maka proses yang ingin masuk critical section

harus diizinkan segera masuk tanpa ada waktu tunda.

6. Tidak 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.

Algoritma dan flowchart

Berikut ini adalah pemecahan masalah critical region menggunakan mutual exclusion :

Algoritma 1

Shared Variables / Crtitical Region: CR For processes i=0 to N

do {

(4)

//Process Non Critical Regions //End of Non Critical Regions Request_CR (i);

//if Request Granted then Enter CR else wait Exit_CR (i);

}while(1); Algoritma 2

Shared Variables / Critical Region: CR CT : Current Time of the System DUR : Duration of use of Critical Region

CTfirst : First Previously Requested Process Current Time

DURprev : All Previously Requested Process Duration of use of Critical Region For processes i=0 to N

Flowchart :

Process

Enter Process ID, Current Time of Request, and Duration of USE

in Critical Region’s Queue

Queue Empty Enter CR

CT = CTfirst + DURprev

Wait Send Message to Current

Using Process Repl Update DURprev

Remove Current using process from the Queue

and Set CR Free START

(5)

Do {

//Process Non Critical Regions //End of Non Critical Regions Request_CR (i, CT, DUR); If(Queue of CR is Empty)

Enter Critical Region Else

{

If(CT = CTfirst + DURprev ) {

Send Message to Currently Accessing Process If(reply = true)

Update DURprev with new Time Else

Remove current process entry from the queue }

Wait for Critical Region to be free until DUR }

Exit }while (1);

Contoh Kasus yang diselesaikan

Masalah printer Daemon

(6)

Daemon printer adalah proses penjadwalan & pengendalian pencetakan berkas2 di printer sehingga seolah2 printer dapat digunakan secara simultan oleh proses-proses. Daemon printer mempunyai ruang disk (disebut direktori spooler) untuk menyimpan berkas-berkas yang akan dicetak. Direktori spooler membagi disk menjadi sejumlah slot. Slot-slot diisi berkas yang akan dicetak. Terdapat variable in menunjuk slot bebas di ruang disk yang kan dipakai menyimpan berkas yang ingin dijadwalkan untuk dicetak.

a. Contoh Algoritma Program:

Program Give_File_to_spooler;

Var

in : Integer;

berkasA, berkasB: File;

ProcedureStore (Berkas: File, next_slot: Integer);

{Untukmenyimpanberkaspadaslot kenext_slot} Procedure ProsesA; Var next_free_slot: Integer; Begin next_free_slot:=in; store(BerkasA, next_free_slot); in:=next_free_slot+1; End; ProcedureProsesB; Var next_free_slot:Integer; Begin next_free_slot:=in; store(BerkasB, next_free_slot); in:=next_free_slot+1; End;

(7)

Begin in:=0; Repeat Parbegin ProsesA; ProsesB; Parend Forever End.

b. Skenario yang Membuat Kacau

Misal proses A dan B ingin mencetak berkas, variable in bernilai 9. Scenario berikut dapat terjadi :

Proses A

{in=9}

Next_free_slot←in {in=9}

{Penjadwal menjadwalkan B berjalan}

{in=9}

Proses B

{in=9}

Next_free_slot←in

Store berkas B to slot[next_free_slot] {berkas B disimpan dislot ke-9} in ←next_free_slot+ 1

{in=10}

(8)

Store berkas A to slot[next_free_slot]

{berkas A disimpan dislot-9, menimpa berkasB}

in ←next_free_slot+ 1 {in=10}

{berkasA menimpa berkasB, sehingga B tak pernah mendapat cetakannya}

c. Penjelasan

Proses A membaca variable in bernilai 9. Belum sempat A menyelesaikan proses, penjadwal menjadwalkan proses B berjalan. Proses B yang juga ingin mencetak, membaca variable in , variable in masih berniali 9. Proses B dapat menyelesaikan proses. Proses B menyimpan berkas B dislot ke-9. Proses A dijadwalkan kembali dan juga menyimpan berkas A di slot ke 9. BerkasB ditima berkas A, B tak akan pernah memperoleh cetakan.

Pada contoh terdapat kondisi dimana dua proses atau lebih sedang membaca atau menulis data bersama (yaitu variable in ) denga hasil akhir bergantung jalannya proses-proses. Hasil akhir tidak dapat diprediksi. Kondisi ini disebut kondisi pacu (race condition ). Kondisi pacu harus dihilangkan agar hasil proses dapat diprediksi dan tidak bergantung jalannya proses-proses itu.

Kunci 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 variable atau berkas pada suatu saat. Proses-proses lain dilarang mengerjakan hal yang sama. Bagian program yang sedang mengakses memori atau sumber daya yang dipakai bersama disebut critical section/region.

Untuk mengatasi kondisi pacu harus dijamin tidak boleh dua proses atau lebih memasuki critical section yang sama secara bersamaan. Kesuksesan 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.

Referensi

Dokumen terkait

Atas dasar itulah, penulis tertarik untuk menganalisis jurnalisme damai pada berita penyerangan Gereja Santa Lidwina Yogyakarta periode 11-19 Februari 2018 di

Banyak tradisi adat jawa yang masih digunakan sebelum menikah, misalnya menghitung hari pernikahan, biasanya dilakukan ketika tunangan yang kedua adalah menghitung

Pada iklan produk segmentasi dewasa yang tayang di televisi edisi Desember 2012, anak-anak beradegan sebagai peran tambahan atau figuran dengan prosentase

Alamat ketua komite   : Cot keumuning  82.. Nama Sekretaris Komite  

Katoda ialah elektroda negatif yang merupakan benda kerja yang akan dilapisi. Katoda atau benda kerja dapat memiliki bentuk dan dapat terbuat dari beraneka logam, yang

Perkembangan Motorik Kasar Almira Kifthia Desanti, dari data penilaian dalam Penggunaan Media Gamolan untuk mengembangkan motorik kasar Almira dalam item

Para ulama ushul fiqih menyatakan bahwa seseorang itu dikenai hukum apabila orang tersebut memenuhi dua syarat, yaitu: Orang itu telah mampu memahami khitab syari’ (tuntutan

Di desa Klampok dan SMA Negeri 1 Godong sangat minim sekali yang memahami akan pentingnya meneutupi aurtnya, mereka hanya memakainya pada saat-saat tertentu saja