~Sistem Operasi~
Petunjuk penggunaan: dibaca dengan transparansi sesuai nomor halaman, cari bagian yang mengandung kata2 serupa. (not stand alone)
01/01-07
Application programs à dibuat oleh user untuk tujuan tertentu, mis: di bank aplikasi deposito untuk hitung jumlah bunga kalo jatuh tempo
System programs à yang udah disediakan dalam sistem, bisa juga diinstall untuk meningkatkan efisiensi sistem.
Machine language termasuk h/w à karena udah build in
Microarchitecture & physical devices à ada instruksi dasar untuk memindahkan data ke perangkat keras
Physical devices à memory, cpu, bus, ram, disk
01/02-07
- menjembatani program user dan perangkat keras komputer à supaya program user bisa memanfaatkan perangkat keras secara maksimal
extended machine à virtual machine / mesin semu
01/03-07
Vacuum tubes (memory) and Plugboards (buat input)
01/06-07
SPOOLING à yang menentukan mana yang masuk duluan dan bagaimana menyelesaikannya
02/01-08
- arsitektur komputernya tertutup
- memiliki sistem operasi sendiri (berbeda dgn mesin jenis lain)
- multiprogramming
- kapasitas I/O besar (1000 disk, ratusan terminal)
- cikal bakal sistem terdistribusi, client server
- OS/360 à dikembangkan sistem IBM, sbg interaksi IBM 3764
OS/390 à perbaikan dari OS/360
OS/370
- mainframe, mini, PC dengan kinerja tinggi
- contoh OS: UNIX, Windows 2000, Linux, Novel Netware
- digunakan dalam sistem terdistribusi dan jaringan
- memungkinkan akses secara remote dan pemakaian resource bersama
- untuk server yang mempunyai tugas berat (aplikasi multimedia, grafis, dsb) dilengkapi kemampuan lain yaitu multiprocessor (multiprocessor & multiCPU)
- server2 yang kerjanya berat mis. buat grafis / multimedia dilengkapi multiprocessor
- multiCPU à pengolahannya lebih rumit
- jenis: (tergantung dari cara koneksi)
· multi computer à banyak komputer untuk lakukan 1 tugas
· paralel computer
· multi processor (1 komputer banyak processor)
- untuk mendapatkan computer power (kemampuan/kinerja) komputer yang tinggi
- c/: web vendor memasang banyak server untuk melayani customer2nya
- c/: spreadsheet(excel), internet(aplikasi2 di pc), dsb
- Parameter kunci à waktu à secepat mungkin
- Respon yang cepat terhadap instruksi / interaksi ke sistem
- Aplikasi: (HARD real time system)
· ATM, perbankan
· Pengendalian produksi di pabrik
· Perakitan mobil, barang elektronik (harus tepat sekali masangnya / sistemnya, mis: buat solder barang – harus tepat)
· Sistem kendali rudal
- audio & multimedia à SOFT realtime system à gak harus tepat, bisa nunggu2
- mesin2 (bukan komputer) yang berhubungan dengan komputer ditanamkan so sehingga bisa bertindak sebagai komputer
- c/: OS pada komputer untuk mengendalikan: pintu gerbang, microwave, robot, lampu lalu lintas.
- sebuah kartu dengan chip kecil di dalamnya
- c/: kartu chip buat telp à bisa diisi ulang chipnya bisa melakukan pemrosesan dan punya memory
- Virtual Machine à smart card yang menggunakan bahasa java bisa dipake untuk internet dan interpreter untuk JVM (SO untuk smart card)
02/04-08
Struktur sistem operasi
- big mess (besar, tidak beraturan)
- biasanya di mainframe
- belum tersedia fasilitas2 yang terstruktur
- service procedures à yang akan menyelesaikan masalah yang diberikan oleh main procedure
- THE = Technische Hoge School Einhoven
- MULTICS
- c/: VM/370 à OS yang digunakan VM. JVM à virtual machine yang menggunakan bhs java
- CMS: modul2 OS untuk melayani interaktif dari terminal
- Memory jg dipecah2, maka seolah2 masing2 copy punya mesin sendiri2/sumber daya sendiri2 padahal secara fisik 1 Cuma dibagi2 aja
- Masing2 copy gak saling pake/pinjem à kelola sumber daya sendiri2, yang dipake subset2nya sendiri
- sist op modern cenderunt membuat ukuran sist op utama (Kernel) sekecil mungkin
- modul2 OS lainnya diletakkan pada layer yang lebih tinggi (user mode)
- kelebihan:
· jika terjadi kerusakan (proses server, file server) tidak menyebabkan keseluruhan sist mati, komp masih jalan & yang diperbaiki hanya bagian yang rusak
· mudah beradaptasi ke sist terdistribusi
kernel : sistem operasi yang berada (aktif) di memory à yg utama
02/08-08
tidak ada akses langsung ke hardware à krn lewat s/w à untuk server2 krn server berfungsi pd user mode, sehingga tidak boleh mengakses secara langsung ke h/w
adaptability (mudah beradaptasi) à user gak perlu tau dimana data diproses
03/01-14
multi processor à sist dgn byk CPU
multi programming à sist yg bisa mengeksekusi byk proses (di memory) secara bersama2
pseudo parallelism à sebenernya hanya satu proses yang dieksekusi setiap saat. Tapi dalam satu detik / menit banyak proses yang sedang dieksekusi bersama2, seolah2 paralet, ini yg disebut pseudo parallelism.
Keterangan gambar 03/01-14 & 03/02-14
a) multiprogramming dgn satu program counter
b) sequential process, masing2 dgn prog counter tersendiri
c) hanya satu process yg dieksekusi setiap saat (pseudo parallelism)
CPU switching à CPU di swicth dari satu proses ke proses lainnya setiap kuantum waktu CPU (10 msec/100msec)
Proses à program yang sedang dieksekusi di memory oleh CPU
State process:
running: sedang menggunakan CPU
ready: antri, menunggu giliran menggunakan CPU
blocked: ditahan, menunggu resource yang sedang digunakan oleh proses lain (input, buffer)
Penjelasan:
03/02-14
events yang menyebabkan penciptaan proses: (kapan proses itu timbul)
System call à c/: copy suatu modul library ke sbh proses
- biasanya berupa modul2 library
- untuk meminta pelayanan OS
- mis: read, write, open, close, fork
- dipanggil dari program
03/03-14
Process termination à kapan proses selesai / berhenti
Kondisi yang menyebabkan proses berhenti:
03/04-14
Windows tidak memiliki konsep hirarki proses à semua proses diciptakan sama / equal (tidak ada istilah parent – child)
03/05-14
Proses table/process control block à pada saat CPU berpindah dari 1 proses ke proses lain, ada peristiva saving & loading ke masing2 proses table
03/06-14
Threads à bagian dari proses – sifatnya sama kayak proses à sama aja kalo ada prog – berarti ada juga sub prog
Same address à memory yang sama
Quasiparralel à seolah2 setiap eksekusi dilakukan paralel
Thread memungkinkan multiple execution terjadi pada environment proses yang sama à ada 1 proses tapi eksekusinya bisa banyak
03/07-14
analogi gambar
gbr a à untuk sistem operasi yang lama à 1 proses 1 thread – proses balapan gunain CPU
03/08-14 gbr à 1 lingkaran = address space
03/10-14
code a (dispatcher thread)
fungsi: mengambil permintaan dari client (dibawa ke server)
get_next_request(&buf) à ambil permintaan tertentu di buffer
handoff_work(&buf) à bisa isi di buffer
code b (worker thread)
while (TRUE) à jalan terus tapi suatu saat berhenti jg krn di blocked
wait_for_work(&buf) à tunggu giliran
look_for_page_in_cache(&buf,&page) à kalo udah ada di cache bisa langsung dipake (ditandai dgn signal) à page yang sering di akses ditaruh di cache. Mula2 ia cari di cache dulu krn waktu aksesnya lebih cepat. Bila gak ada, baru cari di disk
return_page(&page) à balikan page yang tadi dipake / diminta untuk kasih giliran ke yang laen à melakukan permintaan dari client
03/11-14
blocking system calls à sist call yang digunakan untuk memblock thread yg 1 dgn lainnya
single-threaded process à 1 proses punya 1 thread saja
finite-state machine à mirip dgn std. c/: ATM, dsb
paralisme à ada hubungan antara thread 1 dgn thread lainnya
process table à 1 tabel untuk 1 proses *ada bagian untuk file management, memory, dan process m)
thread table à masing2 thread punya thread table sendiri à ada yang diproses
kernel à diusahakan sederhana (kecenderungan sistem yang sekarang)
03/12-14
penjadwalan sendiri à mirip dgn threads
implementasi blocking system calls à antara 1 thread dgn thread yang laen
03/13-14
implementasi thread pada kernel
- ada banyak thread dalam satu proses
- pengelolaan thread punya SO sendiri
03/14-14
kekurangan:
- masalah biaya karena mengelola thread à kalo ada thread baru musti diperhatikan à lebih mahal
- pengelolaan mahal
implementasi hybrid à biasanya diterapkan di server
04/01-08
race condition à terjadi kalo proses A setengah memproses trus waktu quantum CPUnya habis, sehingga pindah ke proses B à bisa mengakibatkan kesalahan yang fatal
quantum waktu CPU = 50 msec
- setiap waktu proses akan mendapatkan jatah giliran menggunakan cpu selama 50 msec
- jadi 50 msec pertama jatah proses A à meski belom selesai dipindahin ke proses B (50 msec) à trus pindah lagi.. ampe akhirnya balik lagi ke A (lanjutin yang belum selesai)
context switch à pengalihan pemakaian CPU dari satu proses ke proses lain à yang ngatur perpindahan proses
print spooler:
- modul os yang akaan mengumpulkan cetakan output dari proses2
- proses seolah2 mencetak output ke printer, padahal tidak demikian
- print spooler akan membuat suatu file output untuk tiap2 proses di spooler directory
print daemon:
- modul os yang mengatur pencetakan ke printer yang sebenarnya
- printer daemon secara periodik akan memeriksa apakah ada file yang dsiap dicetak di spooler directory
- jika printer nganggur maka file tsb dicetak ke printer, kemudian file dihapus dari spooler directory
04/02-08 gbr:
spooler directory à ngumpulin semua data2 sebelum di print à ditumpuk, nah ada modul lain yang bertugas ngatur out.print dari spooler directory, yaitu print daemon.
printer daemon à tiap waktu tertentu printer tanya ada yang mo dicetak gak.
abc à sudah lengkap bisa dicetak ke printer. Kalo udah selesai diprint à dihapus biar diisi yang laen
out = 4 à tempat keluarin data
in = 7 à tempat masukin data
kalo ada proses yang mo cetak – liat in
04/03-08
waiting à sibuk menunggu
- setiap proses tidak akan diblock
- setiap proses bisa jalan terus (menggunakan jatah giliran CPU), tapi proses yang busy waiting tidak akan menghasilkan perubahan
- jadi gunain CPU, taip untuk proses yang menunggu resource – gak bakal menghasilkan suatu hasil
mutual exclution à suatu resource hanya boleh dipake ama 1 proses aja (kalo banyak bakal jadi race condition!). Emang resource digunain secara bersama, tapi dalam 1 proses tetep pake tuh resource. Cth: kursi dipake bersama, tapi saat ini gue yang make.
Empat kondisi à hapalin aja!
1. tidak ada.. bersamaan à hanya 1 proses yang boleh masuk daerah kritis. Mis: proses A lagi ½ proses trus kwantum CPU abis, harusnya masuk proses B (ke daerah kritis) tetapi harus dicegah. Makanya proses B harus di block. Kalo A udah selesai, baru B boleh dijadwalkan lagi.
2. tidak.. cpu
3. tidak.. blocking proses yang laen à gak mungkin di wc umum blocking orang yang mo masuk wc
4. ..
04/05-08
disabling interrupt à tidak sebaiknya dilakukan oleh user process, tetapi oleh sistem operasi
proses A:
masuk daerah kritis à dikunci à makanya orang gak bisa masuk
sesaat sebelum selesai à dibuka à karena bisa aja untuk proses yang gak perlu dilock (boleh buka kalo posisi udah aman, kalo gak bisa diserbu ama proses laen)
shared (lock) variables à variable global
0 à terbuka, 1 à tertutup
problem: race condition à ada 2 proses masuk ke daerah kritis secara bergantian
strict alternation
à ada kemungkinan proses di luar critical regionnya bisa memblock proses lain
turn 1; à keluar dari daerah kritis lalu biar proses 1 masuk eh ternyata proses 1 blom masuk. Nah pas proses 0 mo masuk lagi jadi gak bisa karena masih dipake proses 1, padahal gak ada yang di dalam critical region.
04/06-08
Peterson’s solution
Int turn à var global
Int process à no proses
Int other à var lokal
TSL instruction
TSL à perintah copy ke register
LOCK à lock jadi 1
CMP à bandingin isi register dengan 0
JNE enter region à kalo lock = 0 à perintah JNE gak dijalankan, langsung masuk ke perintah berikutnya yaitu RET. Kalo mis lock = 1 à JNE dijalankan (looping)
04/07-08
sleep and wakeup à salah satu pemecahannya, gak termasuk busy waiting keduanya
busy waiting à beberapa usulan untuk mencapai mutual exclution
No |
Proposal |
Kelemahan |
1 |
Disabling interrupt |
- teknik yang berguna dalam kernel - tidak cocok untuk proses user dalam mutual exclution |
2 |
Lock variables |
- bisa muncul race condition |
3 |
Strict alternation |
- proses diluar critical region bisa memblock proses lain |
4 |
Peterson solution |
- priority inversion problem |
5 |
Tsl instruction |
- priority inversion problem |
Priority inversion problem
- proses A (prioritas rendah L) sedang run (menggunakan CPU). Saat A berada dalam critical region, muncul proses B (ready) dengan prioritas tinggi H.
- maka proses A digeser (switch) CPU diberikan ke proses B
- B mau masuk ke critical region, tapi gak bisa (ada proses lain yang berada di CPU Region). Jadi B busy waiting.
- Proses A gak bisa keluar dari critical region (karena CPU digunakan oleh B terus) à looping terus – gak bisa masuk critical region
producer à mo masukin barang ke gudang, konsumen mo ambil barang di gudang
N 100 à kapasitas gudang max
Count = 0 à jumlah awal barang di gudang
Sleep à kalo mis kapasitas di gudang udah penuh, maka diberhentiin dulu / sleep untuk sementara waktu
Wakeup à kalo barang udah tersedia di gudang, maka di wakeup / dibangunin / boleh ambil
N - 1 à kapasitas – 1 à berarti kapasitas gudang berkurang, makanya bangunin / wake up producer untuk memproses lagi
05/02-10
S à var semaphore
If (S<0) then sleep(S) à kalo – maka sleep, kalo 0 / + maka jalan
Atomic action à tidak bisa dipecah2 (1 proses harus selesai dulu baru melakukan proses lain)
05/03-10
mutex à untuk mengatur keluar masuk barang (kalo ada yang masuk gak boleh ada yang keluar)
N à 100
0 à awalnya gudang lom ada isinya à so kalo konsumen dijalanin, maka diblok coz blom ada persediaan
consumer awalnya sleep karena gak ada barang di gudang
while (TRUE) à puter terus kalo benar
setelah consumer dibangunin:
down(&mutex) à bisa ambil barang but catet dalam so mutex=0
item = remove_item();
up(&mutex) à pencatatan udah selesai so.. mutex dinaikan lagi à mutex=1
up(&empty) à naik jadi empty=100, coz barangnya udah diambil
mutex = 1
empty = N = 100
full = 0
jalanin consumer (void)
while(true)
down(full) à full = 0-1 = -1 à sleep(full)
jalanin producer()
while(true)
produce
down(empty) à empty = 100-1 = 99
down(mutex) à mutex = 1-1 = 0
item = insert_item()
up(mutex) à mutex = 0+1 = 1
up(full) à wakeup(full)
lanjutin consumer yang tadi sleep:
down(mutex) à mutex = 1-1 = 0
remove_item()
up(mutex) à mutex = 0+1 = 1
up(empty) à emtpy = 99+1 = 100
consume_item(item)
05/05-10
monitor berisi kumpulan prosedur…
modul à modul monitor
05/06-10
producer consumer problem menggunakan monitor à hanya mengakses modul dalam monitor, tidak mengakses / utak atik variable – mo tidur / bangun terserah monitor
nama monitor ß producerconsumer.insert (item) à barang akan masuk / gak diatur monitor, bukan kita
05/07-10
if count = N then wait(full); à kalo gudang penuh maka wait
insert_item(item); à kalo gak, masukin barang
if count = 0 then wait(empty); à kalo gudang kosong, tunggu
remove_item(item) à kalo gak, ambil barang, count di –
if count = N-1 then signal(full) à kalo gudang udah mulai ber – barangnya, kasih signal buat masukin barang lagi
proses tunggu menunggu/ tidaknya proses diatur oleh monitor, bukan oleh proses itu sendiri
05/08-10
message lost à message hilang di tengah jalan
authentication à sender akan cek message benar2 diterima oleh receiver yang tepat. Receiver jika minta message ama sender juga cek apakah itu sender yang tepat
acknowledgement:
- sender mengirim pesan ke receiver
- receiver akan mengirim signal acknowledgement segera setelah menerima pesan
- sender akan mengecek apakah pesan telah diterima? (acknowledgement)
- jika dalam interval tertentu ternyata pesan belum diterima, maka sender akan mengirim ulang pesan tadi
penamaan proses à proses@machine à machine:process
- untuk jumlah mesin yang banyak, dikendalikan terpusat, kadang ada juga mesin2 yang namanya sama, yang seharusnya tidak dibolehkan
- pengendalian mesin secara desentralisasi, mesin2 dikelompokkan dalam domain2:
· mesin2 boleh memiliki nama sama, asalkan domain berbeda
·
mesin2 pada suatu domain memiliki
nama yang berlainan
penamaan proses:
process@machine.domain
05/09-10
receive(consumer, &m) à terima alamat buffer dari receiver
for(i=0;i<N;i++) send(producer,&m) à kirim alamat dari slot2 buffer yang bisa diisi oleh producer
receive(producer,&m) à terima pesan di alamat buffernya dari produser
item = extract_item(&m) à ambil msg – pindahin ke tempat lain
send(producer,&m) à kirim alamat kosong ke producer – supaya bisa ngisi
consume_item(item) à br dikonsumsi
05/10-10
variasi lain dari message passing:
- mailbox
- rendezvous à istilah SO
- pipe à di Unix à ada 1 proses hasil eksekusinya dikirim ke proses lain melalui pipa
06/01-08
batch à gak butuh jawab secepatnya
interactive à harus dijawab secepat mungkin à prioritas tinggi
real time à harus secepat mungkin, saat itu juga
I/O bound process à proses2 yang banyak melibatkan I/O (CPU kebanyakan menganggur)
Compute bound process à proses2 yang banyak melibatkan komputasi – menggunakan CPU, sedikit operasi I/O (CPU sibuk)
Penjadwalan non preemptive (tidak bisa ditahan) à proses yang sedang menggunakan CPU tidak dapat ditahan untuk sementara (proses dikerjakan sampai selesai)
CPU akan dilepas, jika:
- proses diblok
- voluntair (selesai)
Tujuan batch:
- turnaround time (TAT) à lama suatu job berada dalam sistem komputer (mulai dari submit sampai selesai)
1. FCFS (lihat gbr a)
TAT A = 8 menit
TAT B = 12 menit (TAT A + TAT B)
TAT C = 16 menit
TAT D = 20 menit
--------------------- +
= 56 menit
TAT rata2 = 56/4 = 14 menit à kalo job besar – nunggu lama, gak masalah
2. Shortest Job First
TAT B = 4 menit
TAT C = 8 menit
TAT D = 12 menit
TAT A = 20 menit
---------------------- +
= 44 menit
TAT rata2 = 44/4 = 11 menit à lebih baik algoritmanya
3. Shortest Remaining Time Next
- variasi dari shortest job first
- saat job sedang dieksekusi, muncul job2 baru, maka yang sisa waktu eksekusinya paling kecil yang dieksekusi
- job yang sedang jalan, jika perlu ditahan untuk sementara waktu
06/02-08
algoritma:
First come first served à yang pertama datang, yang pertama dilayani
Shortest job first à kalo datengnya hampir bersamaan, ditumpuk dulu, trus diliat/dipilih mana yang paling pendek waktu pengerjaannya
Gambar b à B C D à karena TATnya sama, yang mana dikerjain sama aja
06/03-08
main memory à job yang di memory berkembang à membuat (proses anak)2 SO. Terkadang gak cukup, maka ada memory scheduler yang mengatur à ada yang ditampung di disk untuk sementara
à job yang masuk bergantian
admission scheduler à modul SO à biasa disebut job scheduler
06/04-08
round robin à muter2
quantum CPU:
- 10 msec ato 100 msec
- setiap rposes dapat jatah satu quantum CPU, kemudian CPU di switch / dipindahin ke proses lain
06/05-08
B à setelah diproses dalam 1 quantum, dipindahkan ke paling belakang, trus dilanjutin ama proses F
Prioritas
- fixed
à diminta oleh user, melalui parameter penjadwalan
à bisa juga diberikan oleh OS
- berubah à diberikan oleh SO
running ready blocked:
karena ada 1 proses yang menunggu resource tersedia, ia di block, dan proses2 laen dijalankan. Saat resource siap, ia diproses dengan prioritas tinggi (dijalankan duluan). Tiap kali proses dijalankan 1 quantum, prioritas diturunkan sehingga tidak mencegah ia diproses tanpa batas.
06/06-08
gambar di bag queue header harusnya ditambahn urutan prioritas 4-3-2-1
highest priority à akan dilakukan dulu semua, baru prioritas selanjutnya
kalo lebih cepat à minta prioritas 1 untuk prosesnya
algoritma penjadwalan interaktif: shortest process next, …
06/07-08
penjadwalan job dipisah antara policy dgn mechanism:
- so memiliki kebijakan tertentu dalam penjadwalan (menggunakan algoritma2 penjadwalan)
- tapi user / pemakai dapat mengubah aturan penjadwalan dengan memasukkan suatu nilai parameter penjadwalan dalam jobnya
gbr:
1 2 3 à thread ada di user process
50-msec à kuantum A
5-msec à kuantum thread à mis: di proses A, thread 1 à 5 msec, 2 à 5, 3à5, trus balik lagi ke thread 1 lagi, dst.. ampe 45 msec. so sisa 5 msecuntuk administrasi / perpindahan dari 1 thread ke thread lagi
06/08-08
gbr b à pemilihan dikendalikan oleh kernel
07/01-12
deadlock à 2 proses saling menunggu karena mis ada resource yang saling ditunggu
akses eksklusif à hanya 1 proses yang boleh masuk, tidak boleh lebih
resource:
- pre-emptable
· resource2 yang pada saat digunakan oleh suatu proses, dapat dipindahkan ke proses lain sementara waktu
· c: memory, cpu
- non pre-emptable
· resource yang digunakan ampe selesai
· pada saat digunakan oleh suatu proses, proses tersebut gak bisa dipindahkan ke proses lain
· c: CD, printer
07/03-12
a à maka tanda panah dari resource ke proses
b à kalo dari proses ke resource, berarti resource gak bisa digunain /proses sedang menunggu
c à karena ada siklus (cycle) à proses C & D saling menunggu à untuk mengatasinya, mis: D dibatalkan, mk C bisa ambil resource T dan bisa jalan lagi
ignore
à diulang dari awal 1 per 1
à dibiarin aja / dianggap gak ada
detection and recovery
deteksi à di deteksi ada deadlock / gak à kalo iya, segera perbaiki. C: dalamsistem kalo tjd deadlock, salah satu proses bisa dibatalkan
recovery à ada cara2nya, mis: salah satu proses dibekukan
Tujuan algoritma penjadwalan:
- adil (fairness) à memberikan jatah CPU yang adil untuk setiap proses
- menekankan pada kebijakan (algoritma penjadwalan)
- seimbang à memelihara seluruh bagian sistem selalu sibuk
- throughput à memaksimumkan jumlah job yang dieksekusi per jam
- turn around time à meminimumkan waktu (lama) suatu job berada dalam sistem komputer (dari submit s/d finish)
- CPU utilization à menjaga agar CPU selalu sibuk setiap saat
- response time à mengusahakan agar response time secepat mungkin (jawab diberikan secepat mungkin)
- proportionality à sesuai dengan perkiraan / keinginan user
- meeting deadlines à menghindari hilangnya data
- predictability à menghindari merosotnya kualitas pada sistem multimedia
07/05-12
urutan langkah menggunakan resource: request à used à release
07/06-12
deteksi deadlock dengan satu resource… à mis: hanya 1 printer (resource) untuk 1 proses, dll.
07/07-12
holds à menggunakan
wants à menunggu
deadlock à karena ada cycle
cycle pada gambar a à D-T-E-V-G-U-D
gbr b à proses2 yang melibatkan deadlock: D-E-G
07/08-12
no 3 à cuman nambahin simpul ke daftar L, lalu cek udah ada 2x blom simpul tsb. Kalo udah ada, stop algoritma, berarti ada cycle.
Algoritma cycle: (gbr a)
Simpul yang dipilih pertama kali = D
- Langkah 3 à masukin D ke daftar L (cek udah 2x blom?)
- Langkah 4 à ada, masuk langkah 5
- Langkah 5 à pilih panah, mis: (D à S) à lalu langkah 3
- Langkah 3 à tambahin ke daftar L, resource S. jadi L = D – S à cek udah 2x blom? à kalo blom, masuk ke langkah 4
- Langkah 4 à tidak ada à masuk langkah 6
- Langkah 6 à jalan buntu. Balik ke simpul sebelumnya. Jadi L = D (S dihapus) à ke langkah 4
- Langkah 4 & 5 à simpul = D, arah panah keluar masih ada yaitu (D à T) à langkah 3
- Langkah 3 à masukin T ke L. Jadinya L = D – T à cek udah 2x blom? Belum à lanjutin lagi
- Langkah 4 & 5 à ada yaitu (T à E), masuk langkah 3
- Langkah 3 à masukin ke L, jadinya L = D – T – E à cek udah 2x blom? Belom à maka lanjutin lagi
- Langkah 4 & 5 à ada yaitu (E à V), masuk langkah 3
- Langkah 3 à masukin lagi ke L, jadinya L = D-T-E-V, cek lagi! masuk langkah 4 & 5
- Langkah 4 & 5 à ada yaitu (V à G), masuk langkah 3
- Langkah 3 à masukin lagi ke L, jadinya L = D-T-E-V-G, cek lagi!
- Langkah 4 & 5 à ada yaitu (G à U) masuk langkah 3
- Langkah 3 à masukin ke L, jadinya L = D-T-E-V-G-U, cek lagi!
- Langkah 4,5,3 à ada yaitu (U à D) à masuk langkah2, trus masukin ke L, jadinya à L = D-T-E-V-G-U-D à cek udah ada yang 2x blom? Kalo udah, maka berhenti algoritmanya
- Hasil: L = D-T-E-V-G-U-D à stop ketemu deadlock, karena ada cycle
07/09-12
no 6 à …kerjakan langkah 4 (bukan 3).
07/10-12
- Vektor E (Existing resource vector) = resource yang terhubung ke sist (resource yang ada)
- Vektor A (Available resource vector) = resource yang tersedia (nganggur), resource sisa
- Matriks C (Current allocation matrix) = resource2 yang sedang digunakan
- Matriks R (Request matrix) = resource2 yang masih diperlukan
Contact me: pchan@bonbon.net