producer() { consumer() {
int item; int item;
Monitor
Primitif sinkronisasi tingkat tinggi (pd aras
bhs pemrograman)
Monitor: data, prosedur, variabel dlm
sebuah konstruksi khusus
Hanya ada satu proses aktif dlm sebuah
monitor pd satu saat ttt
Implementasi mekanisme oleh kompiler
bahasa pemrograman
Penggunaan operasi WAIT dan SIGNAL
Semaphore dan Monitor
monitor ProducerConsumer procedure producer;
condition full, empty; begin
integer count; while true do
begin
procedure enter; produce_item;
begin ProducerConsumer.enter;
if count = N then wait(full); end;
enter_item; end;
count := count + 1;
if count = 1 then signal(empty); procedure consumer;
end; begin
while true do
procedure remove; begin
begin ProducerConsumer.remove;
if count = 0 then wait(empty); consume_item;
remove_item; end;
count := count - 1; end;
if count = N-1 then signal(full);
end;
count := 0;
end monitor;
philosopher(int i) {
while (TRUE) {
think();
take_forks(i);
eat();
put_forks(i);
}
}
take_forks(int i) { put_forks(int i) {
down(mutex); down(mutex);
state[i] = HUNGRY; state[i] = THINKING;
test(i); test(LEFT);
up(mutex); test(RIGHT);
down(s[i]); up(mutex);
} }
test(int i) {
if (state[i] == HUNGRY &&state[LEFT] != EATING&&state[RIGHT] != EATING) {
state[i] = EATING;
up(s[i]);
}
}
Penjadwalan Proses
Prinsip-prinsip penjadwalan
Keadilan: tiap proses mendapatkan alokasi
CPU yang adil
Efisiensi: penggunaan CPU semaksimal
mungkin
Waktu respons: minimal
Waktu tunggu: minimal
Throughput: maksimisasi pemrosesan
proses
Strategi penjadwalan
Run to completion
Preemptive
Teknik Round Robin
List proses
Semua proses memiliki hak yang sama
1. Tiap proses dialokasikan sepotong selang
waktu (quantum) utk eksekusi
2. Jika dalam 1 quantum eksekusi belum
selesai dikeluarkan dari status aktifnya
(preempted)
3. Selanjutnya proses tsb ditempatkan di
akhir list
4. Eksekusi berlanjut dng proses pd antrian
pertama
Penjadwalan Proses
Penjadwalan dengan prioritas
Memasukkan unsur prioritas proses
Tiap proses memiliki prioritas tertentu,
dan penjadwalannya menurut urutan
prioritasnya
Sering diimplementasikan dengan
kelas-kelas prioritas dan teknik round
robin
Prioritas proses diturunkan selama
eksekusi dilakukan supaya proses
dng prioritas rendah memiliki
kesempatan dieksekusi juga
Contoh penjadwalan dng prioritas
• Proses dng prioritas pertama diekseskusi
selama 1 quantum, prioritas kedua selama 2
quantum, prioritas ketiga 4 kuantum, dst.
• Setelah eksekusi menghabiskan n quantum
yg dialokasikan, proses diturunkan ke
prioritas berikutnya
• Proses sepanjang 100 quantum memerlukan
7x pergantian (swap) saja
Penjadwalan Proses
Teknik Pengutamaan Proses
Tercepat
Cocok untuk batch job dng waktu
eksekusi yg diketahui sebelumnya
Menempatkan proses-proses pendek
pada urutan awal
Memperpendek waktu tunggu
Optimal untuk proses-proses yg sudah
“siap” dieksekusi
Penjadwalan berbasis pemakai
Jika ada n pemakai pd satu saat ttt,
maka tiap orang akan menerima 1/n
alokasi CPU
Perlu informasi:
• Brp banyak waktu CPU yg telah dikonsumsi
seorang pemakai sejak login x
• Brp lama pemakai ybs login ke sistem y
“Jatah” pemakai z = y/n, dan rasio
antara jatah dng kenyataan r = z/x
Penjadwalan mengikuti nilai r: proses-
proses milik pemakai dengan nilai r yg
lebih rendah dieksekusi dahulu
Deadlock
Deadlock: sekumpulan proses yg
menunggu event yg hanya bisa
dimunculkan oleh salah satu dr
proses anggota
Tidak ada proses yg bisa berlanjut,
melepaskan resources, atau diaktifkan
kembali
Berawal dari situasi supply resources
lebih kecil drpd demand
Empat kondisi pemicu deadlock
Kondisi mutual exclusion. Sebuah
resource sdg digunakan oleh 1 proses,
atau sdg bebas
Kondisi hold and wait. Proses-proses
yg sdg memakai resources diijinkan
meminta resources baru
Kondisi non-preemptive. Resource yg
sdg digunakan hanya bisa dilepaskan
oleh proses yg memakainya (pelepas-
an tdk bisa dipaksa oleh pihak lain)
Kondisi circular wait. Ada rantai dr 2
atau lebih proses, msg-msg menunggu
resource yg dikuasai proses berikutnya
dalam rantai tsb.
Deadlock
Pemodelan penggunaan resource
Menggunakan graf alokasi resource
A menguasai resource R A R
A meminta resource R A R
Dpt digunakan utk analisis deadlock
Strategi dlm menghadapi deadlock
Abaikan saja algoritma “onta” (prinsip
pragmatisme)
Pendeteksian dan pemulihan
Pencegahan, dng cara menegasikan
kondisi-kondisi pemicu
Menghindari, dng cara alokasi resource scr
hati-hati
Algoritma onta (Ostrich algorithm)
Pragmatisme, perbandingan antara usaha
utk menghilangkan deadlock dng akibat yg
ditimbulkannya
Pendeteksian dan pemulihan
Monitoring request dan release dr
resources, menganalisis graf alokasi
resources utk mendeteksi deadlock
Rantai deadlock diputus dng
mengorbankan 1 atau lebih proses
Deadlock
Pencegahan deadlock
Negasi 4 kondisi pemicu
Kondisi mutual exclusion ?
• Resource bisa digunakan oleh lebih dr satu
proses
Kondisi hold and wait ?
• Proses yg sdg menguasai sbh resource tidak
diijinkan utk meminta resource yg lain
• Kebutuhan resource sering bersifat dinamis
• Menyebabkan alokasi resource tdk efisien
Kondisi non-preemptive ?
• Memungkinkan resource dilepas scr paksa
• Dapat mengacaukan operasi (e.g., printing)
Kondisi rantai tunggu (circular wait) ?
• Alternatif yg paling mungkin ditempuh
• Dengan penomoran resource, akses
diijinkan dng mengikuti urutan tertentu
Menghindari deadlock
Alokasi resource scr hati-hati
Algoritma banker
• Alokasi resource selalu memperhatikan
kemungkinan ke depan (next state)
• Kebutuhan ke depan satu atau lebih proses
harus selalu dapat dipenuhi oleh resource yg
tersedia saat ini
Sistem File
Tujuan: memberikan persistence
bagi data
Kondisi ideal: tidak ada impedance
mismatch antara short-term memory dan
long-term memory
Krn kondisi ideal tdk bisa tercapai
muncul abstraksi file
Bagaimana rancangan sistem file ?
Manajemen ruang disk
Ruang sebesar n byte scr kontinyu, atau
m blok yg tidak harus kontinyu
Alt. I bgmn jika file berkembang
(bertambah besar) ?
Alt. II brp besar ukuran blok ?
• Terlalu besar boros
• Terlalu kecil delay saat pembacaan
• Trade off antara efisiensi waktu dan ruang
512 byte, 1 kb, atau 2 kb
Bgmn melacak blok-blok bebas ?
• Linked list berisi blok-blok bebas
• Bit map berisi status semua blok (0-bebas, 1-
terpakai)
Sistem File
Bagaimana menyimpan file ?
Blok data dirangkai mjd linked-list
• Implementasi akses scr acak mjd mahal
File Allocation Table (FAT) dr MS-DOS
• Tidak cocok utk disk berukuran besar
menyita tempat di memory
• Pointer ke semua file disimpan dlm satu
tabel yg sama
i-Node (digunakan oleh UNIX)
• Tabel berisi info accounting dan proteksi,
diasosiasikan ke sebuah file
• Mampu menangani dinamika file, dan lebih
modular (1 file 1 i-node)
X X EOF 10 2 EOF 4 FREE 5 FREE 8
0 1 2 3 4 5 6 7 8 9 10
File node
Owner's UID
Owner's GID
File size
Time created
Single indirect
Double indirect
Triple indirect
Sistem File
Struktur dan organisasi direktori
Direktori pada MS-DOS
• Direktori diwujudkan dlm sebuah file
• Tiap entri direktori menunjuk pd satu file
• Tidak ada batas maksimal jumlah file pada
sebuah direktori
Direktori pada UNIX
• Direktori diwujudkan dlm sebuah file
• Tiap entri merujuk pd satu file
• Info pd tiap entri: nomor i-node dan nama
file
Replikasi
Mewujudkan konsep fault tolerance
Menyimpan lebih dari 1 copy file
Biasanya diterapkan di lingkungan
sistem terdistribusi
Keamanan Sistem File
Berkaitan dng kehilangan data dan
usaha-usaha penyusupan
Mekanisme proteksi
Usaha/biaya sebanding dengan nilai
informasi yg akan dilindungi
Prinsip-prinsip pengamanan
Desain sistem hrs bersifat public
• “Security through obscurity” tidak cocok
Prinsip paranoid
• Kondisi default: tidak ada akses
• Berikan privilege seminimal mungkin
• Autorisasi hrs dilakukan sesaat sbl. aktivitas
yg memerlukan autorisasi tsb dilakukan
Sistem proteksi hrs sederhana,
seragam, dan mendasar
Sistem proteksi hrs dpt diterima scr
psikologis
Beberapa mekanisme pengamanan
Autorisasi identifikasi pemakai
Domain proteksi lingkup akses
sebuah object
Access Control List
Manajemen Memori
Mengapa perlu manajemen memori
Resource yg sangat berharga
Parkinson’s law: program cenderung
memenuhi seluruh kapasitas memori
dan menguasainya
Kemampuan multiprogramming
beberapa proses berada di memori pd
saat yg sama
Manajemen memori dengan partisi
tetap
n buah partisi, ukuran bisa bervariasi,
diset pd saat sistem diaktifkan
Bgmn jika proses berkembang ?
Partisi 4 Partisi 4
Partisi 3 Partisi 3
Partisi 2 Partisi 2
Partisi 1 Partisi 1
Operating Operating
system system
Manajemen Memori
Alokasi memori dengan partisi
variabel
Bgmn mengalokasikan memori untuk
proses yg berkembang ?
Stack B
Data B
Stack A
Data A
Program B
Program A
Sistem operasi
Bgmn mengalokasikan memori untuk
proses yg berkembang ?
Bitmap
Linked-list
Buddy system
1111100011111100
P 0 5 H 5 3
P 8 6 H 14 2
Manajemen Memori
Pelacakan memori bebas dengan
metode bit map
Faktor pemilihan satuan alokasi mjd
penting
• Satuan kecil bit map besar
• Satuan besar ada kemungkinan sisa
memori
Pelacakan memori bebas dengan
metode linked-list
Diurutkan berdasar alamat memori
Implementasi dng double linked-list
Algoritma alokasi memori
First fit: mencari daerah memori bebas
(DMB) yg pertama kali ditemukan yg
bisa menampung proses
Next fit: mirip dng first fit, tapi dng
merekam posisi DMB. Proses pencarian
selanjutnya dimulai dr posisi ini.
Best fit: mencari di seluruh list DMB yg
paling sesuai dng kebutuhan proses
Worst fit: mencari di seluruh list DMB
yg paling besar yg tersedia
Manajemen Memori
Pelacakan memori bebas dengan
metode buddy system
Berdasar kenyataan bhw komputer
bekerja dng bilangan biner diguna-
kan utk mempercepat penggabungan
DMB-DMB yg bersebelahan pd saat
sebuah proses selesai dieksekusi (atau
diswap ke disk)
Diimplementasikan dng list memori
bebas berukuran 1, 2, 4, 8, 16, … byte
Pengalokasian memori ke proses dila-
kukan dng memecah satu blok memori
bebas mjd 2 bg yg sama besar. Peme-
cahan dilakukan scr rekursif shg dida-
pat blok yg besarnya sesuai kebutuhan
Keuntungan
• Cepat utk proses pembebasan memori
Kerugian
• Utilisasi memori yg kurang efisien krn terikat
pd aturan 2n fragmentasi internal
Manajemen Memori
Ilustrasi model buddy system
0 128 256 512 1024
Initial
Req. 70 A
Req. 35 A B
Req. 80 A B C
Return A B C
Req. 60 D B C
Return B D C
Return D C
Return C
Virtual Memory
Muncul dr kenyataan bhw
kebutuhan memori jauh lebih
tinggi drpd memori yg tersedia
Usaha utk menyederhanakan
solusi dng cara abstraksi
manajemen memori
Paging
Akses ke memori melalui
• Mapping dari virtual address
• Mekanisme “page frame”
Memory management unit (MMU) sbg
mapper
Virtual addr space > real addr space
mapping yg dinamis (bisa berubah-
ubah)
Mekanisme akses
1. Instruksi program berisi perintah akses ke
memori
2. Alamat memori virtual address space,
diteruskan ke MMU
3. MMU melakukan mapping ke real address
4. Real address diteruskan ke address bus
Virtual Memory: Paging
Virtual
address
32K - 36K
12K - 16K
16K - 20K
20K - 24K
28K - 32K
36K - 40K
40K - 44K
44K - 48K
48K - 52K
52K - 56K
56K - 60K
60K - 64K
24K - 28K
4K - 8K
space 8K - 12K
0 - 4K
Virtual
2 1 6 0 4 3 x x x 5 x 7 x x x x
page
Page
frame
Physical
memory
0 - 4K
4K - 8K
8K - 12K
12K - 16K
16K - 20K
20K - 24K
24K - 28K
28K - 32K
address