~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

  1. Mainframe

-         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

  1. Server

-         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)

  1. Multiprocessor Operating System

-         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

  1. PC untuk aplikasi2 biasa, untuk kepentingan individu

-         c/: spreadsheet(excel), internet(aplikasi2 di pc), dsb

  1. Real Time Operating System

-         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

  1. Embedded OS

-         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.

  1. Smart Card OS

-         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

  1. Sistem monolithic

-         big mess (besar, tidak beraturan)

-         biasanya di mainframe

-         belum tersedia fasilitas2 yang terstruktur

-         service procedures yang akan menyelesaikan masalah yang diberikan oleh main procedure

  1. Layered system

-         THE = Technische Hoge School Einhoven

-         MULTICS

  1. Mesin virtual

-         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

  1. Client server

-         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:

  1. masukan tugas (submit
  2. lalu dikumpulkan oleh job spooler lalu dijadwalkan oleh job scheduler untuk yang masuk ke memory (bisa FIFO, dsb)
  3. setelah itu dijalankan
  4. complete kalo udah selesai

 

03/02-14

events yang menyebabkan penciptaan proses: (kapan proses itu timbul)

  1. inisialisasi sistem saat sist dihidupkan dari kondisi awal
  2. eksekusi sistem call jika proses memanggil sist call
  3. permintaan user krn perintah2 yang diberikan user pd sisi interaktif
  4. inisiasi batch job pekerjaan ditumpuk yang duluan datang, yg duluan dikerjakan terjadi pada sist mainframe

 

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:

  1. normal exit (voluntary) prosedur sudah selesai keluar
  2. error exit (voluntary) suatu proses berjalan, tiba2 ada yang salah/error. Mis: yg diminta int, yang dimasukkan string
  3. fatal error (involuntary) kesalahan2 yang gak bisa ditolerir. Mis: proses gak berjalan, trus dibagi 0 terpaksa berhenti, kalo gak hasilnya kacau
  4. killed by another process (involuntary) terpaksa keluar oleh proses lain. Mis: dengerin mp3 trus maen game yang ada suaranya juga terpaksa berhenti mp3nya gara2 game

 

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

  1. mis: dulu gak ada jalan tol, soalnya masih sepi, Cuma dibagi dua jalur doang
  2. sekarang udah rame, jadi dibagi 3 jalur 1 rame, jalur lain bisa jalan

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

Petersons 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

  1. DOWN (S) menurunkan nilai semaphore 1 tergantung dari pemakaian

S var semaphore

If (S<0) then sleep(S) kalo maka sleep, kalo 0 / + maka jalan

  1. S<=0 ada proses yang tertunda trus dibangunin

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, 35, 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:

  1. all systems

-         adil (fairness) memberikan jatah CPU yang adil untuk setiap proses

-         menekankan pada kebijakan (algoritma penjadwalan)

-         seimbang memelihara seluruh bagian sistem selalu sibuk

  1. batch system

-         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

  1. interactive system

-         response time mengusahakan agar response time secepat mungkin (jawab diberikan secepat mungkin)

-         proportionality sesuai dengan perkiraan / keinginan user

  1. real time system

-         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