~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

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

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

  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