Monthly Archives: November 2015

Sistem Operasi Pertemuan 6

Session 11&12 – Concurrency

Concurrency digunakan untuk mengelola interaksi dari semua proses.

Concurrency hadir pada:

  • Banyak aplikasi -> Waktu sharing
  • Aplikasi terstruktur -> Ekstensi dari rancangan modular
  • Struktur sistem operasi -> Sistem operasi sendiri diimplementasikan sebagai sekumpulan proses atau thread

Masalah pada concurrency :

  • Sharing sumber daya global

->Penulisan suatu shared variable: urutan penulisan sangat penting

->Masalah besar adalah penulisan tidak lengkap

  • Pengelolaan alokasi resource secara optimal
  • Sulit menemukan error pemrograman karena hasilnya bersifat tidak deterministic and reproducible.

Contoh masalah concurrency pada multiprocessor :

cp1p2

Jika diterapkan suatu aturan yang hanya satu proses dapat memasuki fungsi tersebut pada suatu waktu, maka:

  • P1 & P2 berjalan pada processor berbeda
  • P1 memasukkan echo lebih dahulu -> P2 mencoba masuk tetapi diblok – P2 suspend
  • P1 melengkapi eksekusi -> P2 me-resume & mengeksekusi echo

Fokus Sistem Operasi

  • Menjaga track dari berbagai proses
  • Meng-alokasi-kan dan men-dealokasi-kan sumber daya
  • Melindungi data & resource dari gangguan proses lain
  • Memastikan bahwa proses & output terbebas dari kecepatan pemrosesan

Kompetisi antara proses dan resources :

  1. Mutual Exclusion -> 1 proses diberikan hak khusus untuk menggunakan resources.
  2. Deadlock -> banyak proses memperebutkan 1 resources
  3. Starvation -> setiap proses berfikir bahwa ada proses lain yang sedang memakai resources tersebut padahal sebenarnya tidak ada yang memakai.

Kerja sama antar proses:

  1. By Sharing (berbagi)
  2. By Communication (berkomunikasi)

Syarat Mutual Exclusion :

  • Hanya satu proses pada satu waktu yang dibolehkan ada dalam critical section bagi suatu resource
  • Proses yang berhenti pada noncritical section-nya harus melakukan demikian tanpa gangguan dengan proses lain
  • Tidak ada deadlock atau starvation
  • Proses harus tidak didelay akses ke suatu critical section saat tidak ada proses lain yang menggunakannya
  • Tidak ada asumsi mengenai kecepatan proses relatif atau jumlah proses
  • Proses tetap di dalam critical section-nya hanya selama waktu terbatas tertentu (finite)

Interrupt Disabling

  • Proses berjalan sampai ia meng-invoke suatu layanan SO atau sampai ia diinterupsi
  • Disabling interrupts menjamin terwujudnya mutual exclusion
  • Tidak akan bekerja pada arsitektur multiprocessor

Race Condition

  1. Race condition terjadi ketika
  • Banyak proses atau thread membaca &menulis item data
  • Hasil akhir dari aktifitas baca & tulis tersebut tergantung pada urutan eksekusi dari proses yang terlibat.
  1. Output tergantung pada siapa yang terakhir menyelesaikan race.

Semaphores

  • Suatu nilai integer (bilangan bulat) yang digunakan untuk pensinyalan (signalling)antar proses.
  • Hanya tiga operasi dapat dikerjakan pada suatu semaphore, semuanya bersifat atomik:
    • initialize
    • Decrement (semWait)
    • increment (semSignal)
  • Antrian (queue) digunakan untuk menangani proses yang menunggu (waiting) pada semaphore
  • Semaphore Kuat menggunakan FIFO
  • Semaphore Lemah tidak menentukan urutan penghapusan dari antrian

Masalah Procesur-Consumer

  • Situasi Umum:
    • Satu atau lebih producer membangkitkan data &menempatkannya dalam suatu buffer
    • Consumer tunggal mengambil item keluar buffer satu pada satu waktu
    • Hanya satu producer atau consumer yang boleh mengakses buffer pada satu waktu
    • Masalahnya:
    • Pastikan bahwa Producer tidak dapat menambahkan data ke dalam buffer yang penuh & comsumer tidak dapat menghapus data dari buffer kosong

Sleeping Barber Problem

Masalah sleeping barber menganalogikan proses dimana seorang barber bertugas menggunting rambut pelanggan, dan beristirahat jika tak ada pelanggan yang menunggu.

Masalah

Sleeping barber problem berdasar pada suatu barber shop dan barber-nya. Si barber hanya memiliki satu buah kursi untuk menggunting rambut dan beberapa kursi di ruang tunggu. Pada saat si barber telah selesai menggunting rambut seorang pelanggan, ia akan berjalan menuju ruang tunggu untuk melihat keadaannya. Jika ada pelanggan yang menunggu, ia akan membawanya ke kursi dan memotong rambutnya. Jika tidak, ia akan kembali ke ruangannya, dan beristirahat.

Setiap pelanggan ketika datang ke barber shop tersebut, harus melihat keadaan si barber terlebih dahulu. Jika si barber sedang tidur, ia akan membangunkannya dan duduk di kursi. Jika si barber sedang memotong rambut, ia akan berjalan menuju ruang tunggu, duduk dan menunggu gilirannya.

Solusi

Semua contoh permasalahan diatas dapat di dipecahkan oleh adanya mutex (mutual exclusion) yang memberi sebuah batasan dimana hanya satu unsur (si barber, atau satu pelanggan) yang dapat berubah status pada satu waktu. Si barber harus mendapatkan mutex sebelum melihat keadaan ruang tunggu, dan melepaskannya sebelum menggunting rambut dan istirahat. Setiap pelanggan wajib mendapatkan mutex sebelum masuk ke barber shop, dan melepaskannya ketika ia duduk di ruang tunggu dan kursi barber.

Dining Philosophers Problem

Masalah

Pada masalah Dining Philosophers ini, beberapa proses dianalogikan sebagai 5 orang yang berkumpul pada sebuah meja makan dengan masing-masing makanan mereka yang telah disediakan. Pada dasarnya, setiap orang hanya dapat melakukan dua hal dan hanya satu pada satu waktu, memakan dan/atau menunggu. Terdapat pula 5 buah sumpit (bukan 5 pasang) diantara setiap piring makanan, yang merupakan analogi dari shared resources.

Agar seseorang dapat makan, ia membutuhkan sepasang sumpit, dan hanya dapat mengambilnya dari sisi kiri atau sisi kanannya. Setiap orang tak pernah berbicara pada orang-orang yang lainnya, maka ada peluang yang sangat besar akan terjadi deadlock. Apabila seseorang telah mengambil sebuah sumpit, dan menunggu sumpit kedua yang sedang dipakai oleh orang lain, dan orang itu pula menunggu sumpit kedua yang sedang dipakai, dan seterusnya, hingga terjadi sebuah rantai dimana setiap keingingan orang-orang tersebut tidak dapat terpenuhi.

Masalah yang dihadapi oleh orang-orang di meja makan menjadi analogi masalah-masalah pada pemrograman komputer secara nyata, ketika program-program membutuhkan akses eksklusif kepada shared resources.

Solusi

A. Solusi Waiter: solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai, orang berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.

Contoh: Misalkan ke-lima orang tersebut dinamakan dari A sampai E secara berurutan. Ketika A dan C sedang makan, 4 buah sumpit sedang terpakai. B tidak memiliki kedua sumpit, dan D dan E memiliki satu buah sumpit diantara mereka. Apabila D ingin makan dan mengambil sumpit ke-lima, deadlock sangat mungkin terjadi. Maka waiter akan meminta D untuk menunggu, hingga pada saat salah satu sumpit telah selesai dipakai.

B. Solusi Hirarki Resource: pada intinya, resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang lebih rendah.

Readers-Writers Problem

Suatu area data dishare antar banyakproses

Beberapa proses hanya membaca area data, beberapa hanya menulis ke area tersebut.

Kondisi :

  • Banyak readers boleh membaca file at
  • Hanya satu writer pada satu waktu yang

dapat menulis

  • Jika suatu writer sedang menulis ke file, maka tidak ada reader yang dapat membacanya

Monitor

Monitor merupakan suatu konsepsi bahasa pemrograman yang menyediakan fungsi sama dengan semaphore & lebih mudah dikontrol.

Diimplementasikan dalam sejumlah bahasa pemrograman, termasuk Concurrent Pascal, Pascal-Plus,Modula-2, Modula-3, dan Java.

Message Passing

Digunakan untuk komunikasi antara 1 proses dengan proses lainnya.

Fungsi aktual dari message passing normalnya disediakan dalam bentuk pasangan primitif:

–   send (destination, message)

–   receive (source, message)

 

Session 13&14 – Deadlock

Deadlock

  • Pada sistem multiprogramming, beberapa proses mungkin saja harus berkompetisi untuk menggunakan sumber daya yang jumlahnya terbatas. Jika sebuah proses me-request sumber daya dan sumber daya tersebut tidak tersedia pada saat itu (sedang dipegang oleh proses lain), maka proses tersebut akan memasuki status wait (proses diblok). Status proses yang sedang menunggu tersebut bisa saja tidak akan pernah berubah karena sumber daya yang di-request proses tersebut sedang dipegang oleh proses lain yang juga sedang menunggu. Situasi demikian dinamakan sebagai deadlock.
  • Berdasarkan uraian pada poin di atas, dapat disimpulkan bahwa deadlock terjadi saat dua atau lebih proses menunggu suatu kejadian selama tak terhingga karena kejadian tersebut hanya bisa disebabkan oleh sebuah proses yang sedang menunggu.
  • Permanent blocking dari sekumpulan proses yang saling bersaing mendapatkan sumber daya sistem atau komunikasi
  • Tidak ada solusi yang efisien
  • Mencakup  kebutuhan yang bertentangan bagi sumber daya oleh dua atau lebih proses

Ilustrasi Deadlock

id

 

  1. Kejadian sebelum deadlock
  2. Kejadian setelah deadlock

Contoh Deadlock :

id2

 

Contoh tidak deadlock :

id3

Kondisi untuk Deadlock :

  • Mutual exclusion -> Hanya satu proses yang boleh menggunakan suatu sumber daya pada satu waktu
  • Hold-and-wait -> Suatu proses boleh memegang sumber daya yang dialokasikan selama menunggu assignment yang lain
  • No preemption -> tidak ada sumber daya yang dapat dipaksa dihilangkan dari suatu proses yang memegangnya
  • Circular wait -> adanya rantai tertutup (closed-chain) proses-proses, sehingga setiap proses memegang setidaknya satu sumber daya yang diperlukan oleh proses berikutnya dalam rantai tersebut

dm

Pada gambar (a) diatas merupakan gambar kemungkinan terjadinya suatu deadlock, sedangkan gambar (b) merupakan kejadian disaat deadlock sudah terjadi.

Gambar saat kondisi deadlock :

dm1

 

Solusi masalah deadlock :

dm2

 

Strategi untuk mencegah deadlock  :

  • Biarkan saja masalahnya (menurut algoritma Ostrich)
  • deteksi dan recorvery
  • Dynamic avoidance dengan pengalokasian resource dengan hati-hati.
  • Pencegahan

 

Deadlock Avoidance

  • Kebutuhan resource maksimum harus dinyatakan sebelumnya
  • Proses di bawah konsiderasi harus bersifat independen, tidak ada kebutuhan

Sinkronisasi

  • Harus ada sejumlah fix sumber daya yang akan dialokasikan
  • Tidak ada proses yang boleh exit selama memegang resource

Contoh safe state:

ss

Contoh unsafe state :

uss

Contoh safe dan unsafe state :

ssuss

Ket : a)safe state , b)safe state, c)unsafe state

Pencegahan Deadlock :

  • Mutual Exclusion -> Harus didukung oleh sistem operasi
  • Hold and Wait -> Mengharuskan suatu proses meminta (request) semua sumber daya yang dibutuhkannya pada satu waktu
  • No Preemption

-> Proses harus melepaskan sumber daya dan merequest lagi

-> SO boleh men-preempt suatu proses untuk mengharuskannya melepas sumber dayanya

  • Circular Wait -> Mendefinisikan suatu pengurutan linier dari jenis-jenis sumber daya

STARVATION

Starvation adalah sebuah algoritma untuk mengalokasikan sejumlah sumber informasi, dan mungkin memberikan shortest job first, tapi memungkinkan juga untuk terjadi penundaan waktu yg sangat panjang, meskipun tidak diblock. Maka solusi untuk mengatasi starvation adalah first-come first-serve algorithm.

Deadlock Recovery

Digunakan untuk membatalkan semua proses yg sudah deadlock (untuk proses terminasi). Untuk mencegah terjadinya interupsi sumber informasi adalah dengan :

  • memilih korbannya (mengurangi biaya)
  • rollback, artinya mengembalikan semua nilai menjadi safe state
  • starvation, proses yang sama mungkin bisa diambil dengan diambil sebagai korban

Deadlock Handling

Dengan mengkombinasikan 3 pendekatan yaitu :

  • Prevention
  • Avoidance
  • Detection

Memungkinkan untuk memilih pendekatan yang optimal untuk setiap sumber daya dalam suatu sistem. Partisi sumber informasi digambarkan dalam urutan kata dalam sistem.

Memastikan menggunakan pendekatan yang tepat dalam mengatasi deadlock dalam setiap class.

—————————————————————————————————————————————-

Contoh soal Deadlock :

Tugas dari Slide Binusmaya

1.

 a

Terdapat 3 proses yaitu proses A, proses B dan proses C.

Saldo awal di bank yaitu 3+2+2+3=10

Tapi karena sudah dipakai oleh proses A,B dan C maka sisa saldo menjadi 3.

Sekarang kita mau membuktikan apakah state tersebut safe atau non safe dan berapa nilai RB (resources bank).

Langkah pertama melihat berapa kekurangan saldo yang dibutuhkan dari masing-masing proses.

  • Proses A membutuhkan 9, sedangkan baru memiliki 3, jadi 9-3=6
  • Proses B membutuhkan 4, sedangkan baru memiliki 2, jadi 4-2=2
  • Proses C membutuhkan 7, sedangkan baru memiliki 2, jadi 7-2=5

Dari ketiga nilai tersebut maka yang memungkinkan untuk bank meminjamkan saldonya adalah proses B.

Langkah-langkahnya adalah:

  • Bank meminjamkan proses B sebanyak 2, jadi sekarang saldo di bank tersisa 1.
  • B mengembalikan pinjamannya sebesar 4, jadi sekarang saldo di bank menjadi 1+4=5
  • Bank meminjamkan C sebanyak 5, jadi sekarang saldo di bank menjadi 5-5=0
  • C mengembalikan pinjamannya sebesar 7, jadi sekarang saldo di bank menjadi 0+7=7
  • Bank meminjamkan A sebanyak 6, jadi sekarang saldo di bank menjadi 7-6=1
  • A mengembalikan pinjamannya sebesar 9, jadi sekarang saldo di bank menjadi 1+9=10

Jadi state tersebut safe dan RB nya adalah 10.

 

2. Banker’s Algorithm

2

Jawab :

a. Pembuktian

Rumusnya adalah Current allocation(A,B,C,D) + available yang kemudian dicocokan dengan resource dari masing-masing type

A = 2+0+4+1+1+1+6=15 (terbukti sama)

B= 0+1+1+0+1+0+3 = 6 (terbukti sama)

C = 2+1+0+0+0+0+5 = 9 (terbukti sama)

D = 1+1+2+1+0+1 +4 = 10(terbukti sama)

b. Need Matrix

Caranya adalah mengurangkan maximum demand dengan current allocation pada masing-masing prosess dan type

Process

A B C D

P0

7 5 3 4

P1

2 1 2

2

P2 3 4 4

2

P3

2 3 3 1
P4 4 1 2

1

P5 3 4 3

3

c. Membuktikan apakah state tersebut safe atau non safe

Saldo awal yang tersedia di bank adalah A=6, B=3, C=5, D=4.

Lalu kita melihat pada need matrix proses manakah yang memungkinkan bank untuk meminjamkan proses tersebut. Setelah ditelusuri maka ditemukan bahwa proses P0,P2 dan P5 tidak memungkinkan untuk dipinjamkan terlebih dahulu dikarenakan saldo di bank tidak mencukupi.

Maka proses yang bisa dijalankan terlebih dahulu adalah P1, P3 dan P4.

Dari ketiga proses tersebut kita dapat memilih secara bebas proses mana yang mau dijalankan terlebih dahulu.

Misalnya dimulai dari proses P1.

Keterangan

A B C D Operasi
Saldo awal bank 6 3 5 4

Dipinjam P1

2 1 2 2
Sisa saldo bank 4 2 3 2

=

P1 mengembalikan pinjamannya

2 2 3 3 +
Saldo bank 6 4 6 5

=

Dipinjam P2

3 4 4 2
Sisa saldo bank 3 0 2 3

=

P2 mengembalikan pinjamannya

7 5 5 4 +
Saldo bank 10 5 6 7

=

Dipinjam P0

7 5 3 4
Sisa saldo bank 3 0 3 3

=

P0 mengembalikan pinjamannya

9 5 5 5 +
Saldo bank 12 5 8 8

=

Dipinjam P5

3 4 3 3
Sisa saldo bank 9 1 5 5

=

P5 mengembalikan pinjamannya

4 4 4 4 +
Saldo bank 13 5 9 9

=

Dipinjam P4

4 1 2 1
Sisa saldo bank 9 4 7 8

=

P4 mengembalikan pinjamannya

5 2 2 1 +
Saldo bank 14 6 9 9

=

Dipinjam P3

2 3 3 1
Sisa saldo bank 12 3 6 8

=

P3 mengembalikan pinjamannya

3 3 3 2 +
Saldo bank 15 6 9 10

=

Jadi state tersebut safe dan RB nya adalah A=15, B=6, C=9 dan D=10

d. Diijinkan karena saldo bank mencukupi.

6

3 5 4

3

2 3 3

3 1 2 1

=

www.binus.ac.id

www.skyconnectiva.com

Sistem Operasi Pertemuan 5

Session 9 – Scheduling

Behaviour of Process

  1. Process-bound : dilihat dari proses itu sendiri
  2. I/O bound : dilihat dari input dan output

1

CPU Scheduler()

  • Algoritma  scheduling:  Memilih dari proses-proses yang berada di memori (ready to execute) dan memberikan jatah CPU ke salah satu proses tersebut.
  • CPU Scheduler berfungsi untuk menampilkan proses-proses didalam sebuah memori yang sudah siap untuk dieksekusi, dan dialokasikan ke dalam CPU.
  • CPU scheduling mempunyai 4 keputusan :
  1. berubah dari running ke waiting state
  2. berubah dari running ke ready state
  3. berubah dari waiting ke ready state
  4. terminate/mengakhiri
  • Scheduling nomor 1 dan 4 adalah non-preemptive
  • Scheduling nomor 2 dan 3 adalah preemptive

Types of Scheduler

  • Long-term scheduling -> Menyeleksi proses-proses mana yang harus dimasukkan ke dalam ready queue dan membawanya ke memori untuk dieksekusi .
  • Medium-term scheduling -> Menentukan apakah menambah sebagian jumlah proses atau seluruhnya dalam memori utama
  • Short-term -> Menentukan proses mana yang selanjutnya akan dieksekusi dan mengalokasikan CPU untuk proses tersebut, dimana pemilihan proses barunya dialokasikan sesering mungkin.
  • I/O scheduling -> I/O device yang tersedia akan menghandle proses I/O yang tertunda

Dispatcher

Dispatcher mengatur dan memberikan kontrol CPU kepada proses yang dipilih oleh “short-term scheduler”. Dispatcher melibatkan :

  • perubahan konteks
  • perubahan ke mode user
  • melompat ke lokasi yang salah dalam program user

Dispatcher latency adalah waktu yang dibutuhkan oleh dispatcher untuk menyelesaikan 1 proses dan memulai proses yang lainnya.

Scheduling Criteria :

  • CPU utilization :  untuk menjaga agar CPU tetap dalam keadaan sibuk/bekerja (menggunakan CPU semaksimal mungkin).
  • Throughput :  maksimalkan jumlah proses yang selesai dijalankan (per satuan waktu).
  • Turnaround time : meminimalkan waktu selesai eksekusi suatu proses (sejak di submit sampai selesai).
  • Waiting time : meminimalkan waktu tunggu proses  (jumlah waktu yang dihabiskan menunggu di ready queue).
  • Response time :  meminimalkan waktu respon dari sistem terhadap user (interaktif, time-sharing system), sehingga interaksi dapat berlangsung dengan cepat.

Optimization Criteria :

  • Max CPU utilization : Penggunaan CPU secara maksimal
  • Max throughput : Penyelesaian jumlah proses yang maksimal
  • Min turnaround time : Waktu yang diperlukan semakin cepat semakin baik
  • Min waiting time : Waktu menunggu seminimal mungkin
  • Min response time : Waktu untuk merespon secepat mungkin

Goal of Scheduling

  1. All system
    – Fairness : mengatur proses dalam penggunaan bersama sumber daya CPU secara adil
    – Policy enforcement :  memastikan kebijakan yang diterapkan berjalan
    – Balance : menjaga semua bagian sistem dalam keadaan sibuk
  2. Batch system
    – Throughput : memaksimalkan jumlah job per jam (jobs per hour)
    – Turn around time :  meminimalkan waktu dari mulai (submission) hingga berakhir (termination)
    – CPU utilization : mengupayakan CPU selalu sibuk sepanjang waktu
  3. Interactive system
    – Response time : merespon permintaan (request) dengan cepat
    – Proportionallity : memenuhi harapan pengguna (user’s expectation)
  4. Real time system
    – Meeting deadlines : menghindari kehilangan data
    – Predictability : menghindari penurunan kualitas dalam sistem multimedia

Batch Scheduling Algorithms

Ada beberapa metode dalam scheduling :

1.  First-Come First-Serve
Proses diassign ke dalam CPU secara urut.

Keuntungan : Mudah dimengerti dan mudah diprogram

Kelemahan  : Pekerjaan yang lebih singkat tetap harus menunggu meskipun ada pekerjaan yang lebih lama berada di depannya

.

2

2.  Shortest Job First

Pekerjaan yang lebih ringan akan dikerjakan terlebih dahulu.

Shortest Job First mempunyai 2 skema yaitu Preemptive  dan Non Preemptive.

  • Non preemptive :  saat CPU diberi proses maka harus menunggu proses tersebut sampai selesai terlebih dahulu.
  • Preemptive : Jika ada proses baru yang datang dengan jumlah CPU burst time nya lebih sedikit dibandingkan dengan sisa CPU burst time proses yang sedang berjalan maka proses yang baru datang tersebut dapat dijalankan terlebih dahulu. Skema ini juga dikenal sebagai Shortest-Remaining-Time-First (SRTF).

– Shortest Job First – Non Preemptive

3

– Shortest Job First – Preemptive

4

Contoh soal :

Tugas dari Buku Operating Systems: Internals and Design Principles: International Edition,7th Edition Halaman 447 nomor 9.2

Process

Arrival Time

Processsing Time

A
0
3
B
1
5
C
3
2
D
9
5
E
12
5

Jawab :

1. First-Come First-Serve

FCFS

Seperti yang telah dijelaskan diatas, FCFS menggunakan prinsip FIFO yaitu First In First Out.

Waktu menunggu A = 0 detik karena tidak ada proses yang berjalan sebelumnya pada saat proses A datang oleh karena itu proses A bisa langsung dikerjakan.

Waktu menunggu B = 2 detik karena arrival time proses B=1 sedangkan proses A baru selesai pada detik ke 3. Jadi waktu menunggunya adalah 3-1=2.

Waktu menunggu C = 5 detik karena arrival time proses C=3 sedangkan proses B baru selesai pada detik ke 8. Jadi waktu menunggunya adalah 8-3=5.

Waktu menunggu D = 1 detik karena arrival time proses D=9 sedangkan proses C baru selesai pada detik ke 10. Jadi waktu menunggunya adalah 10-9=1.

Waktu menunggu E = 3 detik karena arrival time proses E=12 sedangkan proses D baru selesai pada detik ke 15. Jadi waktu menunggunya adalah 15-12=3.

Jadi ..

Waktu menunggu untuk A=0, B=2, C=5, D=1, E=3

Rata-rata waktu menunggu = (0+2+5+1+3)/5 = 2,2 detik

2. Shortest Job First – Non Preemptive

np dan p

Pada Non Preemptive proses yang waktu pengerjaanya lebih cepat bisa dikerjakan terlebih dahulu dengan catatan proses yang sebelumnya harus diselesaikan terlebih dahulu.

Seperti biasa proses A dijalankan terlebih dahulu karena tidak ada proses yang berjalan sebelumnya dan waktu menunggunya adalah 0 detik.

Nah sekarang proses yang dijalankan selanjutnya adalah proses C. kenapa tidak proses B terlebih dahulu? bukannya proses B yang datang lebih dulu dibandingkan proses C? Seperti yang telah dijelaskan sebelumnya proses yang waktu pengerjaannya lebih cepat maka dijalankan terlebih dahulu. Proses C memiliki processing tme = 2 , sedangkan proses B memiliki processing time = 5. Jadi waktu menunggu proses c adalah 0 karena saat datang langsung dikerjakan.

Proses selanjutnya adalah B. Mengapa harus B? padahal proses B,D dan E memiliki processing time yang sama? alasannya adalah karena proses B datang terlebih dahulu, selanjutnya baru proses D dan E yang dijalankan.

Waktu menunggu proses B = 4, karena proses B baru dijalankan pada detik ke 5 sedangkan proses B datang pada detik ke 1. Jadi 5-1=4 detik.

Waktu menunggu proses D = 1, karena proses D baru dijalankan pada detik ke 10 sedangkan proses D datang pada detik ke 9. Jadi 10-9=1 detik

Waktu menunggu proses E = 1, karena proses D baru dijalankan pada detik ke 15 sedangkan proses D datang pada detik ke 12. Jadi 15-12=3 detik

Waktu menunggu untuk A=0, B=4, C=0, D=1, E=3

Rata-rata waktu menunggu = (0+4+0+1+3)/5 = 1,6 detik

3. Shortest Job First – Preemptive

np dan p

Kebetulan jawaban Preempive pada soal ini sama persis dengan jawaban non-preemptive, namun secara teknik pengerjaan tentu ada yang berbeda. Yang membedakan adalah pada preemptive kita bisa menghentikan proses yang sedang berjalan jika ada proses yang datang pada waktu tersebut dengan processing time yang lebih rendah.

Misalnya pada detik ke 0 datang proses A dengan processing time 4, lalu pada detik ke 2 ada proses C datang dengan processing time 1, yang dilakukan pada preemptive ini adalah menjalankan proses C terlebih dahulu dengan kata lain proses A di delay waktu pengerjaannya. Setelah proses C selesai pada detik ke 3 maka proses A bisa dilanjutkan kembali dengan waktu menunggunya adalah 1 detik (3-2=1). Namun jika ada proses baru lagi yang datang dengan processing time nya lebih rendah dari A , maka proses A bisa tertunda lagi sampai proses tersebut selesai dijalankan. Begitu juga dengan proses-prosess selanjutnya.

Jadi untuk jawaban preemptive adalah :

Waktu menunggu untuk A=0, B=4, C=0, D=1, E=3

Rata-rata waktu menunggu = (0+4+0+1+3)/5 = 1,6 detik

 

www.binus.ac.id

www.skyconnectiva.com