materi 6

24
OLEH : AHMAD KURNIAWAN SISTEM TERDISTRIBUSI

Upload: wawankoerniawan

Post on 26-May-2015

119 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Materi 6

OLEH : AHMAD KURNIAWAN

SISTEM TERDISTRIBUSI

Page 2: Materi 6

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 sama1. Tiap proses dialokasikan sepotong selang waktu (quantum) utk eksekusi2. Jika dalam 1 quantum eksekusi belum selesai dikeluarkan dari status

aktifnya (preempted)3. Selanjutnya proses tsb ditempatkan di akhir list4. Eksekusi berlanjut dng proses pd antrian pertama

Page 3: Materi 6

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

Page 4: Materi 6

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

Page 5: Materi 6

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.

Page 6: Materi 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

Page 7: Materi 6

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

Page 8: Materi 6

Sistem FileTujuan: 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)

Page 9: Materi 6

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

0

X

1

EOF

2

10

3

2

4

EOF

5

4

6

FREE

7

5

8

FREE

9

8

10

File node

No. of links to file

Owner's UID

Owner's GID

File size

Time created

Time last accessed

Time last modified

10 disk block numbers

Single indirect

Double indirect

Triple indirect

Page 10: Materi 6

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

File name

8 byte

Ext.

3 byte

Attr.

1 b

Reserved

8 byte

Time

2 byte

Date

2 byte

Firstblocknum.

2 byte

Size

4 byte

Root directory

usr: to i-node 6

1 .1 ..4

7

14

9

6

8

bin

dev

lib

etc

usr

tmp

modesize

times

132

i-node 6 for /usr

/usr is inblock 132

modesize

times

406

i-node 26 for/usr/ast

/usr/ast is inblock 406

6 .1 ..19

30

26

45

dick

eric

ast

bal

block 132 is/usr directory

/usr/ast isi-node 26

26 .6 ..

64

92

60

81

grants

books

mbox

src

block 406 is/usr/ast dir.

/usr/ast/mboxis i-node 60

Page 11: Materi 6

Sistem FileBerbagi 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

owner = Ccount = 1

owner = Ccount = 2

owner = Ccount = 1

C's directory B's directory C's directory B's directory

Page 12: Materi 6

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

Page 13: Materi 6

Pengaksesan File

Abstraksi server file sbg interfaceAtomic 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)

Page 14: Materi 6

Pengaksesan FileTransaksi

Atomic update + locking Concurrency ditangani oleh file server BEGIN TRANSACTION

Transaction record utk merekam status transaksi END TRANSACTION

Proses commit utk membuat update mjd permanenClient File ServerMulai transaksi Buat transaction record di stable storageBaca file A Lock file ABaca file B Lock file BUpdate file A Buat salinan A dan update salinan iniUpdate file B Buat salinan B dan update salinan iniSelesai transaksi Simpan intention list ke stable storage

Tandai transaksi sebagai ‘commited’Ganti file A dengan salinannyaGanti file B dengan salinannyaLepaskan lock A dan BAcknowledge

Replikasi Mewujudkan konsep fault tolerance Menyimpan lebih dari 1 copy file Biasanya diterapkan di lingkungan sistem

terdistribusi

Page 15: Materi 6

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

Page 16: Materi 6

Manajemen MemoriMengapa 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 samaManajemen memori dengan partisi tetap

n buah partisi, ukuran bisa bervariasi, diset pd saat sistem diaktifkan

Bgmn jika proses berkembang ?

Partisi 4

Partisi 3

Partisi 2

Partisi 1

Operatingsystem

Partisi 4

Partisi 3

Partisi 2

Partisi 1

Operatingsystem

Page 17: Materi 6

Manajemen MemoriAlokasi memori dengan partisi variabel

Bgmn mengalokasikan memori untuk proses yg berkembang ?

Sta

ck B

Data

B

Pro

gra

m B

Sta

ck A

Data

A

Pro

gra

m A

Sis

tem

opera

si

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

Bgmn mengalokasikan memori untuk proses yg berkembang ?

Bitmap Linked-list Buddy system

Page 18: Materi 6

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

Page 19: Materi 6

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

Page 20: Materi 6

Manajemen MemoriIlustrasi model buddy system

A

A B

A B C

B C

D B C

D C

C

0 128 256 512 1024

Initial

Req. 70

Req. 35

Req. 80

Return A

Req. 60

Return B

Return D

Return C

Page 21: Materi 6

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 memori2. Alamat memori virtual address space, diteruskan ke MMU3. MMU melakukan mapping ke real address4. Real address diteruskan ke address bus

Page 22: Materi 6

Virtual Memory: Paging

Page yg tidak terpetakan akan menyebabkan page fault

Jika terjadi page fault1. SO memilih salah satu page frame yg tidak banyak

diakses & menyimpan isinya ke disk2. SO mengambil isi page yg tidak terpetakan dan

menyalinnya ke page frame yg baru saja di-flush3. SO mengubah mapping4. Melanjutkan eksekusi instruksi

0 -

4K

2 1 6 0 4 3 x x x 5 x 7 x x x x

4K

- 8

K

8K

- 1

2K

12

K -

16

K

16

K -

20

K

20

K -

24

K

24

K -

28

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

Virtualpage

Pageframe

Virtualaddressspace

0 -

4K

4K

- 8

K

8K

- 1

2K

12

K -

16

K

16

K -

20

K

20

K -

24

K

24

K -

28

K

28

K -

32

K

Physicalmemoryaddress

Page 23: Materi 6

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)

Page 24: Materi 6

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)