1. DOSEN PEMBIMBING :
ANDINO MASELENO
SISTEM OPERASI
NAMA : Nurrohmah
NPM : 142310132
KELAS : B1-D3-MI-1
2. STRUKTUR SISTEM OPERASI.
C. Kesulitan-kesulitan yang ditimbulkan konkurensi
Masalah 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 lain
b) Cara sistem operasi menangani interupsi
c) 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 optimal
Jika 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 onkurensi
Masalah 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 lain
b) Cara sistem operasi menangani interupsi
c) 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 optimal
Jika 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.samaphore
4.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).
3. 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.
4. STRUKTUR SISTEM OPERASI.
C. Kesulitan-kesulitan yang ditimbulkan konkurensi
Masalah 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 lain
b) Cara sistem operasi menangani interupsi
c) 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 optimal
Jika 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 onkurensi
Masalah 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 lain
b) Cara sistem operasi menangani interupsi
c) 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 optimal
Jika 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 n
Pemecahan 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.
5. Pada 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 1
Pendekatan pertama.memperbolehkan semua proses menggunakan variable interger trun
diinisialisasikan ke 0 (atau 1)
nt trun;
Apabila trun = I,maka proses Pi diizinkan untuk menjalankan ciritical sectionnya.
Do {
While (trun !=i) ;
Ciritical section
Trun = j ;
Remainder section
} While (1) ;
•ALgoritma 2
Kelemah dengan algoritma 1 adalah tidak adanya informasi yang cukup tentang static dari masing-
masing proses.untuk mengatasi masalah ini dilakukan penggantian variable
nisialisasi 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 section
Remainder section
] while (1) ;
6. •Algoritma3
Algoritma 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 section
Flag [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.
7. 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 Set
Metode 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 Swap
Metode swap menggunakan prosedur swap untuk menukar dua variable secara
otomic .
8. 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.
9. 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 eimaphore
Menggunakan 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);
10. 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);
…
Menulis
Signal (wrt);
Sedangkan struktur proses eader adalah:
Wait (mutex);
Readcount++;
If (readcount == 1)
Wait (wrt);
Signal (mutex);
11. 5.5.3 Dining philosophers problem
Permasalhan 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
12. 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 2
Pada 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.
13. 5.6.2 Sinkronisasi pada Windows 2000
Implementasisinkronisasi 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.