Sistem terdistribusi menggunakan penjadwalan proses berdasarkan prinsip keadilan, efisiensi, waktu respons dan throughput yang maksimal. Ada beberapa strategi penjadwalan seperti run to completion dan preemptive serta teknik seperti round robin dan prioritas. Sistem file menyediakan persistensi data dengan menggunakan konsep file, direktori, blok disk dan i-node untuk mengelola ruang penyimpanan serta memungkinkan berbagi file.
2. 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
3. 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
4. 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
5. 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.
6. 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
7. 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
8. 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)
9. 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 EO F 10 2 EO F 4 F REE 5 F REE 8
0 1 2 3 4 5 6 7 8 9 10
F il e no d e
No. o f l in k s t o f il e
O w n e r' s U I D
O w n e r' s G I D
F il e s iz e
T im e c r ea te d
T im e l a st a c c es s e d
T im e l a st m o d if i e d
10 d i s k b l o c k n u m b e rs
S in g le i n d i re c t
D o u b le i n d i re c t
T ri p l e in d ir e c t
10. 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
F ile n a m e E x t. A ttr . R e s e rv e d T im e D a te F i rs t S iz e
b lo c k
num.
8 b y te 3 b y te 1 b 8 b y te 2 b y te 2 b y te 2 b y te 4 b y te
b lo c k 13 2 is i- no d e 26 fo r b lo c k 40 6 is
R o o t d ire c to ry i- no d e 6 f or /u s r /u s r d ir ec to ry /u s r/a s t d ir .
/u s r/a s t
1 . m ode 6 . m ode 26 .
1 .. s iz e 1 .. s iz e 6 ..
4 b in ti m e s 19 d ic k ti m e s 64 g ra n t s
7 dev 132 30 e ri c 406 92 b o ok s
14 li b 26 ast 60 m box
9 e tc 45 bal 81 s rc
6 usr /u s r/a s t i s /u s r/a s t/m b o x
8 tm p i- no d e 26 is i-n od e 6 0
/u s r i s in /u s r/a s t i s in
b lo c k 13 2 b lo c k 40 6
u sr : t o i-n od e 6
11. Sistem File
Berbagi file (file sharing)
Dengan mekanisme link
Problem: update agar terlihat oleh pihak lain
Metode langsung: Info blok disk sbg “atribut” file (di i-
node dlm UNIX) yg bisa dilihat oleh direktori siapapun
Kelemahan metode langsung: “dirty” deletion
penghapusan file oleh pemilik bisa menyisakan i-node
file tsb (agar tidak terjadi situasi yg “menggantung”)
Symbolic linking: menyisipkan file bertipe LINK, yg
berisi path ke file yg di-share, ke direktori “tamu”
Kelemahan symlink: overhead pemrosesan, krn harus
membaca dan memproses path ke file yg sebenarnya
C 's d ire c to ry B 's d ire c to ry C 's d ire c to ry B 's d ire c to ry
owner = C owner = C owner = C
c o un t = 1 c o un t = 2 c o un t = 1
12. Sistem File
Konsistensi sistem file
Problem inkonsistensi antara data dan info ttg file (i-node)
Pemeriksaan konsistensi: blok & file
Pemeriksaan konsistensi blok
List untuk blok yg dipakai dlm file
List untuk blok bebas
Kedua counter dibandingkan sebuah nomor blok hrs berada di salah satu list
Kemungkinan inkonsistensi blok
Nomor blok hilang
Duplikasi nomor blok di list blok bebas
Duplikasi nomor blok di list blok terpakai
Pemeriksaan konsistensi file
Dilakukan pd direktori
Caranya mirip pemeriksaan konsistensi blok
Menghasilkan sebuah list berisi info ttg. banyaknya refcount ke sebuah i-node
Info ini dibandingkan dng isi field refcount dari i-node ybs
Kemungkinan inkonsistensi file
Counter link terlalu tinggi file tetap ada meskipun telah dihapus
Counter link terlalu rendah problem integritas file
13. Pengaksesan File
Abstraksi server file sbg interface
Atomic update
Perubahan thdp file harus berhasil atau tidak sama sekali
Diimplementasikan dng konsep tempat penyimpanan stabil (stable
storage)
Sebuah drive logikal diimplementasikan dng dua disk fisis
Penulisan ke blok logikal n, dituliskan ke blok n di disk #1, diverifikasi, lalu
dituliskan ke blok n di disk #2 dan diverifikasi
Error fisis (blok rusak, dsb) bisa diperbaiki dng cara menyalin data dari salah
satu disk
Crash pd saat menulis disk #1 kembali ke kondisi asal
Crash pd saat menuli disk #2 kembali ke kondisi setelah update
Concurrency control
Serializability: update secara bersama-an menghasilkan situasi yg sama
jika updatenya dilakukan scr sekuensial
Locking concurrency control dari sisi data (file)
14. Pengaksesan File
Transaksi
Atomic update + locking
Concurrency ditangani oleh file server
BEGIN TRANSACTION
Transaction record utk merekam status transaksi
END TRANSACTION
Proses commit utk membuat update mjd permanen
C lie n t F ile S e r v e r
M u la i tra n s a k s i B u a t tra n s a c tio n re c o rd d i s ta b le s to ra g e
B a c a file A L o c k file A
B a c a file B L o c k file B
U p d a te file A B u a t s a lin a n A d a n u p d a te s a lin a n in i
U p d a te file B B u a t s a lin a n B d a n u p d a te s a lin a n in i
S e le s a i tra n s a k s i S im p a n in te n tio n list k e s ta b le s to ra g e
T a n d a i tra n s a k s i s e b a g a i ‘ c o m m ite d ’
G a n ti file A d e n g a n s a lin a n n ya
G a n ti file B d e n g a n s a lin a n n ya
L e p a s k a n lo c k A d a n B
A c k n o w le d g e
Replikasi
Mewujudkan konsep fault tolerance
Menyimpan lebih dari 1 copy file
Biasanya diterapkan di lingkungan sistem terdistribusi
15. 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
16. 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 ?
P a rt is i 4 P a rt is i 4
P a rt is i 3 P a rt is i 3
P a rt is i 2 P a rt is i 2
P a rt is i 1 P a rt is i 1
O p er at in g O p er at in g
s y st em s y st em
17. Manajemen Memori
Alokasi memori dengan partisi variabel
Bgmn mengalokasikan memori untuk proses yg
berkembang ?
S iste m o p e ra s i
P ro g ra m B
P ro g ra m A
S ta c k B
S ta c k A
D a ta B
D a ta A
Bgmn mengalokasikan memori untuk proses yg
berkembang ?
Bitmap
Linked-list
Buddy system
1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0
P 0 5 H 5 3
P 8 6 H 14 2
18. 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
19. 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
20. Manajemen Memori
Ilustrasi model buddy system
0 1 28 2 56 5 12 1 02 4
In it ia l
R e q. 7 0 A
R e q. 3 5 A B
R e q. 8 0 A B C
R e tu rn A B C
R e q. 6 0 D B C
R e tu rn B D C
R e tu rn D C
R e tu rn C
21. 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
22. Virtual Memory: Paging
12 K - 16 K
16 K - 20 K
20 K - 24 K
28 K - 32 K
32 K - 36 K
36 K - 40 K
40 K - 44 K
44 K - 48 K
48 K - 52 K
52 K - 56 K
56 K - 60 K
60 K - 64 K
24 K - 28 K
8K - 1 2K
4K - 8 K
V i rtu a l
0 - 4K
a dd re s s
s pa c e
V i rtu a l
2 1 6 0 4 3 x x x 5 x 7 x x x x
p ag e
Pa g e
fr am e
12 K - 16 K
16 K - 20 K
20 K - 24 K
24 K - 28 K
28 K - 32 K
8K - 1 2K
4K - 8 K
0 - 4K
P h y s ic al
m e m ory
a dd re s s
Page yg tidak terpetakan akan menyebabkan
page fault
Jika terjadi page fault
1. SO memilih salah satu page frame yg tidak banyak
diakses & menyimpan isinya ke disk
2. SO mengambil isi page yg tidak terpetakan dan
menyalinnya ke page frame yg baru saja di-flush
3. SO mengubah mapping
4. Melanjutkan eksekusi instruksi
23. Algoritma Pergantian Page
Tujuan: minimisasi overhead, shg hrs dipilih page frame yg tidak
banyak digunakan
Algoritma Not-Recently-Used
Bit R (referenced) dan M (modified)
R diset bila sebuah page direferensikan
M diset bila ada modifikasi thdp isi page
Pertama kali sebuah proses dimulai, R dan M direset.
Scr periodis (mis: tiap clock interrupt), bit R direset
Ada 4 kemungkinan kelas:
K1: tidak direferensi, tidak dimodifikasi
K2: tidak direferensi, dimodifikasi
K3: direferensi, tidak dimodifikasi
K4: direferensi, dimodifikasi
Jika ada page fault, SO akan memilih sebuah page dr kelas terendah yg tidak
kosong
Contoh: lebih baik memilih (utk dibuang) page yg dimodifikasi tp tidak direferensi
dlm waktu yg cukup lama (K2), drpd page yg tdk dimodifikasi tp sering digunakan
(K3)
24. Algoritma Pergantian Page
Algoritma FIFO
Page yang paling awal akan dibuang pd saat terjadi page fault
Perlu list utk merekam info ttg “umur” page
Algoritma FIFO sering dikombinasikan dng bit R dan M utk
meminimisasi overhead akibat dibuangnya page yg sering direferensi
Algoritma Least-Recently-Used
Asumsi: sebuah page yg banyak digunakan pd bbrp instruksi
terakhir akan tetap banyak digunakan dlm bbrp instruksi berikut,
dmk pula sebaliknya
Pilih page yg tidak direferensikan dlm jangka waktu yg paling lama
LRU mahal krn harus memonitor status tiap page perlu bantuan
hardware khusus atau simulasi software utk mencatat status
referensinya (bit R)