nurrohmah - sinkronisasi proses

14
DOSEN PEMBIMBING : ANDINO MASELENO SISTEM OPERASI NAMA : Nurrohmah NPM : 142310132 KELAS : B1-D3-MI-1

Upload: belajarkomputer

Post on 08-Aug-2015

73 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Nurrohmah - Sinkronisasi Proses

DOSEN PEMBIMBING :ANDINO MASELENO

SISTEM OPERASI

NAMA : NurrohmahNPM : 142310132

KELAS : B1-D3-MI-1

Page 2: Nurrohmah - Sinkronisasi Proses

STRUKTUR SISTEM OPERASI.

C.    Kesulitan-kesulitan yang ditimbulkan konkurensiMasalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:1.    Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:a)    Aktivitas proses-proses lainb)    Cara sistem operasi menangani interupsic)    Kebijaksanaan penjadwalan yang dilakukan oleh sistem

       operasi. 2.    Beberapa kesulitan yang dapat muncul, di antaranya adalah:

a)    Pemakaian bersama sumber daya global.Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.b)    Pengelolaan alokasi sumber daya agar optimalJika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.

C.    Kesulitan-kesulitan yang ditimbulkan onkurensiMasalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:1.    Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:a)    Aktivitas proses-proses lainb)    Cara sistem operasi menangani interupsic)    Kebijaksanaan penjadwalan yang dilakukan oleh sistem

       operasi. 2.    Beberapa kesulitan yang dapat muncul, di antaranya adalah:

a)    Pemakaian bersama sumber daya global.Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.b)    Pengelolaan alokasi sumber daya agar optimalJika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.

SINKRONISASI PROSES

Pokok pembahasan:1.permasalahan critical section 2.Sinkronisasi perangkat keras 3.samaphore4.Masalah-masalah klasik dalam sinkronisasi

Proses proses yang konkuren adalah proses-proses (lebih dari satu) pada saat yang sama . proses ini dapat sepenuhnya tak bergantung dengan lainnya ,tapi dapat saling brontraksi . Proses-proses yang brintraksi memerlukan sikronisasi agar terkendali dengan baik.Proses yang melakukan akses secara konkuren pada data yang gunakan Bersama-sama menyebabkan data tidakkonsisten(inconsistence).

Page 3: Nurrohmah - Sinkronisasi Proses

5.2 PERMASALAHAN CRITICAL-SECTION (CRITICAL-SECTION FROBLEM)

Suatu system terdiri dari n proses dimana semuannya berkopetisi menggunakan data yang digunakan bersama-sama.masing-masing preses menpunyai sebuah kode segmen yang disebut ciritical section,dimana proses memungkinkan untuk mengubah variable umum,mengubah sebuah table,menulis file danlain sebagainnya.Gamar penting dari system adalah,ketika sebuah proses dijalankan dengan ciritical section,tidak ada proses lain yang diizinkan untuk menjalankan ciriticel sectionpermasalahan ciritical section digunakan untuk mendesain sebuah protocol dimana proses-proses dapat bekerjasama masing-masing harus meminta izin untuk memasuki ciritical sectionnya.

Page 4: Nurrohmah - Sinkronisasi Proses

STRUKTUR SISTEM OPERASI.

C.    Kesulitan-kesulitan yang ditimbulkan konkurensiMasalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:1.    Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:a)    Aktivitas proses-proses lainb)    Cara sistem operasi menangani interupsic)    Kebijaksanaan penjadwalan yang dilakukan oleh sistem

       operasi. 2.    Beberapa kesulitan yang dapat muncul, di antaranya adalah:

a)    Pemakaian bersama sumber daya global.Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.b)    Pengelolaan alokasi sumber daya agar optimalJika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.

C.    Kesulitan-kesulitan yang ditimbulkan onkurensiMasalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:1.    Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:a)    Aktivitas proses-proses lainb)    Cara sistem operasi menangani interupsic)    Kebijaksanaan penjadwalan yang dilakukan oleh sistem

       operasi. 2.    Beberapa kesulitan yang dapat muncul, di antaranya adalah:

a)    Pemakaian bersama sumber daya global.Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.b)    Pengelolaan alokasi sumber daya agar optimalJika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.

Sebuah solusi dari permasalahan ciritical section harus memenuhi tiga syrat antaa lain:•Matual Exclusion.apabila proses P! menjalankan ciritical sectionnya,maka tidak ada proses ain yang dapat menjalankan ciritical section.•Progress.Apabila tidak ada proses yang menjalankan ciritical sectionnya dan dapat beberapa proses yang akan memsuki ciritical sectionnya maka hanya prose situ yang tidak dip roses didalam daerah pengingat (Remainder) dapat ikut berprestasi didalam keputusan proses mana yang akan measuki ciritical section.dan pemilihan itu tidak dapat ditunda tiba-tiba.•Bounded Waiting.Terdapat batasan jumlah waktu yang diizinkan oleh proses lain untuk memasuki ciritical section. Dan sebelum permintaan dikabulkan.Bahwa Asumsi masing-masing proses dijalankan pada kecepatan bukan nol (nonzero).akan tetapi tidak ada asumsi mengenai kecepatan relative dari proses ke nPemecahan masalah ciritical section tidak mengandalkan semua asumsi tentang intruksi Hardware atau jumlah processor dari hardware yang mendukung.Akan tetapi intruksi dasar bahasa mesin (intruksi primitive,misalnya,load,store,dan test) dijalankan secara otomatis.Apabila perintah load dan store dijalankan bersama-sama perintah load akan mempunyai nilai lama atau nilai baru,tetapi tidak kombinasi dari kedua perintah itu.Ketika mengimlementasikan suatu algoritma,kita menentukan dahulu variable-variabel yang diginakan untuk keperluan sinkronisasi dan menggambarkan hannya proses P!.Entri section dan Exit section didalam kotak untuk menunjukkan segmen kode yang penting.

Page 5: Nurrohmah - Sinkronisasi Proses

•Pemecahan dua prosesPada sub bab ini kita membatasi pada algoritma yang dapat di aplikasikan hanya terhadap dua proses pada satu wakru.Poses tersebut diberi nama P0 dan Pi Untuk jelasnya kita menyatakan Pi,kita gunakan Pj untuk menyataka proses yang lain,dimana j = 1-i•Algoritma 1Pendekatan pertama.memperbolehkan semua proses menggunakan variable interger trun diinisialisasikan ke 0 (atau 1) Int trun;Apabila trun = I,maka proses Pi diizinkan untuk menjalankan ciritical sectionnya.Do {While (trun !=i) ;Ciritical sectionTrun = j ;Remainder section} While (1) ;•ALgoritma 2Kelemah dengan algoritma 1 adalah tidak adanya informasi yang cukup tentang static dari masing-masing proses.untuk mengatasi masalah ini dilakukan penggantian variable Inisialisasi awal flag [0] = flag [1] = flase. Apabila flag [i]bernilai tri,nilai ini menandakan bahwa Pi siap memasuki ciritical section. Proses Pi adalah Sbb.Do {Flag[i] := true;While (flag[j]) ;ciritical sectionRemainder section] while (1) ;

Page 6: Nurrohmah - Sinkronisasi Proses

•Algoritma3Algoritma ini merupakan kombinasi algoritma 1 dan algoritma 2 harapannya akan didapatkan solusi yang benar untuk masalah ciritical section,dimana proses ini menggunakan dua variable.Int trun;Boolean flag [2] ;Inisialisasi flagl [0] = flag [1] = flase,dan nilai dari trun bernilai 0 atau 1 struktur dari proses Pi adalah:Do {Flag [i] : = true ;Trun = j;While( flag [j] dan true = j) ;ciritical sectionFlag [i] = false;Remaider section} while (1);Algoritma ketiga ini memenuhi ketiga kebutuhan yaitu : mutual Execlusion,Progressdan bounded waiting dan memecahkan permasalahan ciritical section untuk dua proses.

Page 7: Nurrohmah - Sinkronisasi Proses

5.3 PERANGKAT KERAS SINKRONISASI Pada system multiprosessor , Proses-proses bersifat independen .intruksi disuatu proses tidak memenuhi pemroses-pemroses lainnya . Pemroses-pemrosesyang memekai memory bersama maka pengaksesan terhadap suatu memori dijaga pada tingkat perangkat keras agar tidak memproses lain tidak mengakses suatu lokasi yang sama disaat yang sama. Perancang perangkat keras menyediakan intruksi-intruksi otomok yang tidak dapat di intrupsi. Intruksi ini dilaksanakan sampai selesai. Intuksi ini biasanya di laksanakan dengan cara mengunci bus sehingga pemrosesan lain tidak dapat menggunakan bus 5.3.1 Metode Test and SetMetode Test and Set melakukan lesting dan memodifikasikan isi memory secara atomic menggunakan fungsi tes and set sebagai berikut.Boolean TestAndSet(Boolean dan target){ Boolean rv = target;Target= true;Return rv;}Metode SwapMetode swap menggunakan prosedur swap untuk menukar dua variable secara otomic .  

Page 8: Nurrohmah - Sinkronisasi Proses

5.4 SEMAPHORE Semaphore adalah pendekatan yang ditemukan Dijkstra . prinsip semaphore

adalah sebagai berikut: dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Proses dipaksa berhenti sampai proses memperoleh penanda tertentu.

Sembarang kebutuhan keordinasi kompleks memenuhi dengan struktur penanda yang sesuai kebutuhan .variable khusus untuk penandaan ini disebut semaphore.

Semaphore adalah alat untuk sinkronisasi yang tidak membutuhkan busy waiting .Semaphore S berupa variable integer.Semaphore adalah dapat diakses melalui otomatic yang tidak dapat di interupsi sampai kode selesai.

adanya Semaphore mempermudah penyelesaian persoalan critical section pada n proses . penyelesaian critical section menggunakan semaphore menggunakan variable umum.

Pada semaphore terdapat oprasi sederhana yaitu BLOCK untuk menghentikan sementara proses yamg meggunakan semaphore dan wakeup(p) untuk melanjutkan exsekusi proses P yang di blok.

Semaphore merupakan salah satu sumber system .misalnya dua proses P! dan P2 dua sumber kritis R1 dan R2, Proses P! harus mengakses kedua sumber daya . kondisi berikut terjadi : R! di berikan kepada P! sedangkan R2 di berikan kepada P2 .apabila dua proses melanjutkan eksekusi memerukan kedua sumber sekaligus maka kedua proses akan salaing menuggu sumber daya lain selamanya.

Page 9: Nurrohmah - Sinkronisasi Proses

5.5 MASALAH-MASALAH KLASIK SINKRONISASI Untuk mengimplementasikan permasalahan sinkronisasi dapat menggunakan

model yang digunakan untuk permasalan Bounded Buffer, Reader wiriter dan dining Philosopher yang akan dijelaskan di bawah ini.

•Barang yang dihasilkan oleh produsen terbatas•Barang yang dipakai konsumen terbatas•Konsumen hanya boleh digunakan barang yang dimaksud setelah produsen

menghasilkan barang dalam jumlah tertentu.•Produsen hanya boleh memproduksi barang jika konsumen suda kehabisan barang.Untuk penyelesai permasalahan bounded buffer menggunakan eimaphoreMenggunakan variable berikut:Semaphore fill.empety,mutex ;inisialisasi intuk variable diats. Full = 0.empty = n,mutex

= 1. Struktur program untuk Do{Wait(empty;….Wait(empty;Menambag next ke buffer….Signal mutex;Signa (full);…}while (10);

Page 10: Nurrohmah - Sinkronisasi Proses

5.5.2 Rider And writer Problem

•Seorang rider tidak perlu menunggu reader lain untuk selesai hanya karena ada wwrite menunggu(reader memiliki perioritas lebih tinggi disbanding dengan writer)•Jika ada writer yang sedang menunggu maka tidak boleh ada reader lain yan bekerja (Writer memiliki prioritas yang lebih tinggi)Jika terdapat writer didalam citirical section dan terdapat n reader yang menunggu,maka satu reader akan antri di wrt dan n – 1 reader akan antri di mutex.jika writer mengeksekusi signal (Wrt) ,maka dapai disimpulkam bahwa eksekusi menunggu reader atau menunggu satu writer . variaber lain yang digunakan adalah:Semaphore mutex;Inisialisai variable di atas adalah mutex = 1,wrt =1, readcount = o, struktur proses writer dalah.wait (wrt);…MenulisSignal (wrt);Sedangkan struktur proses eader adalah:Wait (mutex);Readcount++;If (readcount == 1)Wait (wrt);Signal (mutex);

Page 11: Nurrohmah - Sinkronisasi Proses

5.5.3 Dining philosophers problemPermasalhan philosopher dimana terdapat philosopher yang akan makan.disana disediaakan 5 supit yaitu di tangan kanan ditangan kiri.Namun adakan hanya satu supit saja.jika ada fhilosop yang mengambil dua ssupt,maka ada filosof yang harus menunggu,sampai supit tersebut diletakkan.Hal ini dapat diimplementasikan dengan wait dan signal.

Gambar 5-2:lima filosofi dalam sati meja makan

Page 12: Nurrohmah - Sinkronisasi Proses

Namun jika tiap-tiap piloshopers lapar dan mengambil supit kiri,maka semua nilai supit = 0.dan jika kemudian tiap-tiap filosf akan mengambil supit kanan,maka akan terjadi deadlock. cara untuk menghindari deadlock: •mengijinkan paling banyak 4 pilosof yang duduk bersama-sama pada satu meja.•Mengijinkan seorang pilosof mengambil supit hanya jika kedua supit itu ada,(dengan catatan bahwa ia harus mengambil ciritical section)•Menggunakan suatu solusi assimetrik.yaiti pilosof pada nomor ganjil mengambil supit kakan dulu baru supit kiri.Sedangkan pilosof yang duduk dikursi genap mengambil supit kanan dulu baru supit kiri.

5.6 Sinkronisasi pada Solaris 2Pada solaris 2,sinkronisasi diimplementasikan dengan menggunakan beberapa kunci untuk mendukung system multitasking,multithreading (termasuk thread real time)Dan multi prosessing.Solaris menggunakan adovtive mutex untuk efesiensi system pada saat priteksi data dari kode segmen yang pendek.selain itu menggunakan variable kondisi dan kunci reader writer apabila kode segmen lebih panjang memerlukan akses ke data.

Page 13: Nurrohmah - Sinkronisasi Proses

5.6.2 Sinkronisasi pada Windows 2000Implementasisinkronisasi pada windows 2000 menggunakan interrupt mask untuk memproteksi akses kesumber daya global pada system uniprossesor,sedangkan ada system multiprossesor menggunkan spinlock.selain itu windows 2000 juga menyediakan dispatcher object yang berfungsi sebagai mutual exclusion dan semaphore. Dispatcher object juga menyediakan ivent yang berfungsi sebagai variable kondisi.

Page 14: Nurrohmah - Sinkronisasi Proses