Anda di halaman 1dari 11

Struktur Sistem Operasi

1041202 – Sistem Operasi

Erichson Rezanuel Berutu


11422041
DIV Teknologi Rekayasa Perangkat Lunak

Institut Teknologi Del


Fakultas Vokasi
2022/2023

Laporan Praktikum Sistem Operasi 1


Institut Teknologi Del

Minggu/Sesi : IX/3
Kode : 1031202, 1041202
Matakuliah
Nama : Sistem Operasi
Matakuliah
Tugas : 4 – Penjadwalan CPU
Setoran : Jawaban diketik dengan menggunakan word processor, selanjutnya disetor di
e-course
Batas Waktu : 24 Maret 2023
Setoran
Tujuan : 1. Mampu menjelaskan konsep penjadwalan CPU meliputi latar
belakang, kriteria penjadwalan, komponen, dan algorithma
2. Mampu menjabarkan algorithma-algorithma penjadwalan CPU
3. Mampu menjelaskan konsep dasar penjadwalan thread, dan
penjadwalan multi-prosesor.
4. Mampu menjelaskan model evaluasi dalam pemilihan algorithma
untuk penjadwalan meliputi: model deterministik, model antrian, dan
simulasi
5. Mampu menjelaskan konsep dasar penjadwalan CPU real-time
6. Mampu menjelaskan model evaluasi dalam pemilihan algorithma
untuk penjadwalan meliputi: model deterministik, model antrian,
dan simulasi
Petunjuk

1. Anda dapat mengerjakan tugas secara individu.


2. Sebelum memberikan pertanyaan silahkan baca buku yang ada pada referensi.
3. Mencontoh pekerjaan dari orang lain akan dianggap plagiarisme dan anda akan
ditindak sesuai dengan sanksi akademik yang berlaku di IT Del atau sesuai dengan
kebijakan saya dengan memberikan nilai 0.
4. Jawaban diketik menggunakan word processor kemudian dikonversi ke file berekstensi
.pdf
5. Penamaan file HARUS sesuai dengan format NIM_Tugas-X_NamaTugas.pdf
(contoh: 13321001_Tugas-4_Penjadwalan CPU.pdf).
6. Keterlambatan menyerahkan laporan tidak ditolerir dengan alasan apapun. Oleh
karena itu, laporan harus dikumpul tepat waktu.

Referensi
 A. Silberschatz, P.B. Galvin, and G. Gagne, Operating System Concepts, 9th edition,
Chapter 1 and 2, John Wiley & Sons, Inc., 2013.

Laporan Praktikum Sistem Operasi 2


Soal

Konsep Dasar

1. [10 poin] Jelaskan perbedaan antara penjadwalan CPU secara preemptive


dengan non- preemptive
Jawab:
Perbedaan antara preemptive dengan non-preemptive adalah sebagai berikut:
1. Preemptive CPU Scheduling: Pada preemptive scheduling, CPU dapat
menginterupsi proses yang sedang berjalan untuk memberikan waktu proses lain
untuk dieksekusi. Proses dengan prioritas tinggi akan mendapatkan waktu eksekusi
lebih banyak dan proses dengan prioritas rendah akan mendapatkan waktu
eksekusi yang lebih sedikit. Proses yang belum selesai dieksekusi dapat
diberhentikan dan dimulai kembali di kemudian hari, dengan catatan bahwa proses
lain yang memiliki prioritas lebih tinggi dapat mendapatkan CPU. Preemptive
scheduling lebih fleksibel dan responsif terhadap perubahan kondisi sistem.

2. Non-preemptive CPU Scheduling: Pada non-preemptive scheduling, proses yang


telah diberikan waktu eksekusi akan dieksekusi hingga selesai atau melepaskan
CPU secara sukarela. Prioritas proses tidak mempengaruhi waktu eksekusi. Proses
yang membutuhkan waktu eksekusi yang lama dapat memblokir proses lain untuk
dieksekusi, yang dapat mengurangi responsivitas sistem. Non-preemptive
scheduling lebih mudah diimplementasikan dan memiliki overhead yang lebih
rendah.

2. [10 poin] Jelaskan kriteria dari penjadwalan CPU berikut:


a. CPU Utilization = Kriteria ini mengukur seberapa efisien CPU digunakan. Semakin
tinggi CPU utilization, semakin banyak waktu CPU digunakan untuk melakukan
tugas-tugas. Sebaliknya, semakin rendah CPU utilization, semakin banyak waktu
CPU menganggur. Oleh karena itu, algoritma penjadwalan CPU yang baik harus
dapat memastikan bahwa CPU digunakan secara efektif dan tidak menganggur
terlalu banyak.

b. Throughput = Kriteria ini mengukur jumlah tugas yang selesai dieksekusi oleh CPU
dalam unit waktu tertentu. Semakin tinggi throughput, semakin banyak tugas yang
selesai dieksekusi oleh CPU dalam waktu yang lebih singkat. Oleh karena itu,
algoritma penjadwalan CPU yang baik harus dapat meningkatkan throughput
tanpa mengorbankan kriteria lain seperti turnaround time.

c. Turnaorund time = Kriteria ini mengukur waktu yang dibutuhkan untuk

Laporan Praktikum Sistem Operasi 3


menyelesaikan satu tugas dari awal hingga akhir. Semakin rendah turnaround time,
semakin cepat tugas dapat diselesaikan. Oleh karena itu, algoritma penjadwalan CPU
yang baik harus dapat mengoptimalkan turnaround time sehingga tugas-tugas dapat
diselesaikan dengan cepat.

d. Waiting time = Kriteria ini mengukur waktu yang dihabiskan oleh suatu tugas dalam
antrian penjadwalan sebelum tugas tersebut dieksekusi oleh CPU. Semakin rendah
waiting time, semakin cepat tugas dapat diselesaikan. Oleh karena itu, algoritma
penjadwalan CPU yang baik harus dapat meminimalkan waiting time sehingga tugas-
tugas dapat diselesaikan dengan cepat.

e. Response time = Kriteria ini mengukur waktu yang dibutuhkan oleh sistem untuk
merespons permintaan pengguna setelah pengguna mengirimkan permintaan
tersebut. Semakin rendah response time, semakin cepat sistem merespons
permintaan pengguna. Oleh karena itu, algoritma penjadwalan CPU yang baik harus
dapat meminimalkan response time sehingga pengguna dapat merasakan respons
yang cepat dari sistem.

Algoritma Penjadwalan CPU

3. [10 poin] Terdapat 3 proses yaitu A, B dan C yang spesifikasinya sebagai berikut:

Proses Burst-time
(millisecon
ds)
A 10

B 5

C 5

Dengan menggunakan algoritma penjadwalan CPU First-Come, First-Served (FCFS),


jawablah pertanyaan di bawah.
a. Gambarkan Gantt chart untuk penjadwalan dari ketiga proses tersebut.

A B C
0 10 15 20

b. Hitung rata-rata waktu tunggu untuk seluruh proses.


Average Waiting Time = (total waiting time for all processes) / (number of
processes)

Dalam hal ini, terdapat tiga proses, sehingga kita harus menghitung total waktu
tunggu untuk ketiga proses. Waktu tunggu untuk setiap proses dapat dihitung
dengan cara menghitung selisih antara waktu kedatangan (arrival time) dan waktu
mulai (start time).

Laporan Praktikum Sistem Operasi 4


Waktu kedatangan untuk ketiga proses adalah 0, sehingga waktu mulai akan sama
dengan waktu kedatangan untuk setiap proses. Waktu selesai untuk setiap proses
dapat dihitung dengan menambahkan waktu burst time dengan waktu mulai.

Proses A: Waiting time = 0, Turnaround time = 10


Proses B: Waiting time = 10, Turnaround time = 15
Proses C: Waiting time = 15, Turnaround time = 20

Jadi, total waktu tunggu untuk ketiga proses adalah 0 + 10 + 15 = 25, dan rata-rata
waktu tunggu adalah 25 / 3 = 8.33 ms.

4. [15 poin] Mengacu pada soal No. 3, semisalnya spesifikasi dari ketiga proses menjadi
sebagai berikut:

Proses Burst-time
(millisecon
ds)
B 5

C 5

A 10

Dengan menggunakan algoritma yang sama, jawablah pertanyaan di bawah.


a. Gambarkan Gantt chart untuk penjadwalan dari ketiga proses tersebut.

B C A
0 5 10 20

b. Hitung rata-rata waktu tunggu untuk seluruh proses.


Jawab: Rata-rata waktu = 0+5+10 / 3 = 5 ms.

c. Apakah ada perbedaan antara hasil dari No.3 dan No.4? Jika ada, apa
konsekuensi yang disebabkan dari penggunaan FCFS?
Jawab:
Perbedaan terletak pada urutan pelaksanaan proses. Nomor 3 dimulai
dengan urutan ABC, sementara nomor 4 dimulai dengan urutan BCA.
Penyebabnya adalah urutan kedatangan proses yang menentukan, dan
jika metode FCFS digunakan, proses akan dieksekusi sesuai urutannya
tanpa memperhatikan durasi burst-time atau nama proses

5. [10 poin] Terdapat 4 proses yaitu A, B, C dan D yang spesifikasinya sebagai berikut:
Laporan Praktikum Sistem Operasi 5
Proses Burst-time
(millisecon
ds)
A 8

B 10

C 9

D 5

Dengan menggunakan algoritma penjadwalan CPU Shortest-Job-First (SJF), jawablah


pertanyaan di bawah.
a. Hitung rata-rata waktu tunggu untuk seluruh proses.
Jawab:
Proses Durasi Burst-time Waktu tunggu Waktu selesai
D1505
A 6 8 5 13
C 7 9 13 22
B 16 10 22 32

Waktu tunggu adalah selisih antara waktu mulai dan waktu tiba. Waktu selesai
adalah waktu ketika proses selesai dijalankan.

Rata-rata waktu tunggu untuk seluruh proses adalah:


(0 + 5 + 13 + 22) / 4 = 10 ms.

Jadi, rata-rata waktu tunggu untuk seluruh proses adalah 10 miliseconds.

b. Jelaskan mengapa algoritma SJF pada soal ini dikategorikan


sebagai non- preemptive?
Jawab:
Algoritma SJF dalam kasus ini dikategorikan sebagai non
preemptive karena setiap proses harus menunggu sampai proses
sebelumnya selesai dijalankan. Dalam algoritma SJF non-
preemptive, setiap proses harus menunggu sampai proses
sebelumnya selesai dijalankan, bahkan jika ada proses lain dengan
burst-time yang lebih pendek yang bisa dijalankan di antara
keduanya. Dalam kasus ini, meskipun proses D memiliki burst-
time yang lebih pendek daripada A, C, dan B, ia tetap harus
menunggu sampai A dan C selesai dijalankan karena mereka
sudah mulai terlebih dahulu.

6. [10 poin] Untuk menjalankan algoritma penjadwalan CPU secara SJF diperlukan
prediksi terhadap burst-time dari proses selanjutnya. Prediksi ditentukan dengan
menggunakan formula berikut:

Laporan Praktikum Sistem Operasi 6


Keterangan dari formula dapat dilihat pada slide halaman 6.14. Diketahui nilai “guess”
(𝑟𝑛)dimana 𝑛 dimulai dari indeks ke-0 adalah 10, sedangkan nilai (𝑡𝑛) adalah 6.

Index (n) 0 1 2 3 4 5 6
CPU Burst (𝒕𝒏) 6 4 8 4 13 13
Guess(𝑟𝒏) 10 8 … … … … …

Dengan menggunakan formula di atas dan nilai dari 𝑟𝑛` serta 𝑡𝑛, jawablah pertanyaan
berikut:
a. Nilai prediksi dari 𝑟2 sampai dengan 𝑟6 (tuliskan cara untuk
mendapatkan nilai prediksinya kemudian tuliskan seperti tabel di
atas).
Jawab:
𝑇𝑛 + 1 = 𝛼 𝑡𝑛 + (1 – 𝛼)𝑇𝑛 – 1
𝛼 = 0,5; 𝑡1 = 6; 𝑇1 = 8
𝑇2 = 0,5(4) + (1 – 0,5)8 = 2 + (0,5)8 = 2 + 4 = 6
𝑇3 = 0,5(8) + (1 – 0,5)6 = 4 + 3 = 7
𝑇4 = 0,5(4) + (1 – 0,5)7 = 2 + 3,5 = 5,5
𝑇5 = 0,5(13) + (1 – 0,5) 5,5 = 6,5 + (0,5) 5,5 = 6,5 + 2,75 = 9,25
𝑇6 = 0,5(13) + (1 – 0,5)9,25 = 11,25

b. Adakah nilai prediksi dengan nilai CPU burst yang akurat sama?
Jawab: Tidak Ada

7. [20 poin] Terdapat 4 proses yaitu A, B, C dan D yang spesifikasinya sebagai berikut:

Prose Arrival- Burst


s time - time
A 0 10

B 1 6

C 4 11

D 6 5

Dengan menggunakan algoritma penjadwalan CPU SJF yang dikembangkan menjadi


shortest- remaining-time-first, jawablah pertanyaan di bawah:

a. Gambarkan Gantt chart untuk penjadwalan dari keempat proses tersebut.


Jawab:
A B D A C
Laporan Praktikum Sistem Operasi 7
0 1 7 14 23 34

b. Hitung rata-rata waktu tunggu untuk masing-masing proses.


Jawab:
Rata-rata waktu = 13+19+1+0 / 4 = 8,25 miliseconds

c. Apakah ada perbedaan antara hasil dari No.5 dan No.7?


Jawab:
Pada hasil nomor 5, rata-rata waktu tunggu hanya bergantung pada burst-time
saja, sedangkan pada nomor 7 terdapat arrival-time yang bisa memengaruhi rata-
rata waktu tunggu dari setiap proses.

d. Jelaskan mengapa algoritma SJF shortest-remaining-time-first


dikategorikan sebagai preemptive.
Jawab:
Proses dapat mengalami pergantian saat dieksekusi. Jika ada proses yang
lebih singkat dari proses yang sedang berjalan, maka proses yang sedang
berjalan akan dihentikan dan proses yang lebih singkat akan dieksekusi
terlebih dahulu.

8. [10 poin] Terdapat lima proses yaitu A, B, C, D dan E yang tiba secara berurutan
dengan spesifikasi pada tabel di bawah.

Prose Burst Priority


s - time
A 20 3

B 1 1

C 4 2

D 5 5

E 6 4

Dengan menggunakan algoritma penjadwalan CPU Priority jawablah pertanyaan di bawah:


a. Gambarkan Gantt chart untuk penjadwalan dari kelima proses tersebut.
Jawab:

B C A E D
0 1 5 25 31 36

b. Hitung rata-rata waktu tunggu untuk seluruh proses.


Jawab:

Laporan Praktikum Sistem Operasi 8


Rata-rata waktu = 5+0+1+31+25 / 5 = 12,4 miliseconds

9. [5 poin] Jelaskan dampak yang disebabkan dari penggunanaan algoritma


penjadwalan CPU dengan menggunakan Priority. Apakah Solusi dari munculnya
dampak tersebut?
Jawab:
Algoritma penjadwalan CPU dengan menggunakan priority adalah salah satu
metode yang digunakan dalam sistem operasi untuk menentukan urutan eksekusi
proses pada CPU. Dalam metode ini, setiap proses diberikan prioritas tertentu dan
proses dengan prioritas yang lebih tinggi akan dieksekusi terlebih dahulu. Namun,
penggunaan algoritma penjadwalan CPU dengan menggunakan priority juga
memiliki dampak yang perlu diperhatikan, antara lain:
1. Starvation: Dalam algoritma penjadwalan CPU dengan menggunakan priority,
proses dengan prioritas yang lebih rendah mungkin tidak pernah dieksekusi jika ada
proses dengan prioritas yang lebih tinggi selalu muncul.

2. Inversion: Dalam kasus ketika proses dengan prioritas rendah mendapatkan


akses ke sumber daya (misalnya memori) yang dibutuhkan oleh proses dengan
prioritas tinggi, maka proses dengan prioritas tinggi harus menunggu hingga sumber
daya tersebut tersedia kembali.

3. Deadlock: Algoritma penjadwalan CPU dengan menggunakan priority juga dapat


menyebabkan deadlock atau kebuntuan ketika dua atau lebih proses saling
menunggu untuk sumber daya yang sama dan tidak ada satu pun dari mereka yang
mau melepaskan sumber daya tersebut.

Solusi dari dampak-dampak tersebut adalah sebagai berikut:


1. Aging: Dalam aging, prioritas proses dengan prioritas rendah akan ditingkatkan
secara bertahap seiring berjalannya waktu sehingga proses tersebut akan
mendapatkan kesempatan untuk dieksekusi.

2. Priority Inheritance: Dalam priority inheritance, ketika proses dengan prioritas


tinggi harus menunggu untuk sumber daya yang dibutuhkan oleh proses dengan
prioritas rendah, maka prioritas proses dengan prioritas rendah akan ditingkatkan
hingga setara dengan proses dengan prioritas tinggi.

3. Deadlock Avoidance: Dalam penghindaran deadlock, sistem operasi


menggunakan algoritma khusus untuk memastikan bahwa tidak ada dua atau lebih
proses yang saling menunggu untuk sumber daya yang sama.

10. [15 poin] Terdapat lima proses yaitu A, B, C, D dan E yang tiba secara berurutan
dengan spesifikasi pada tabel di bawah.
Laporan Praktikum Sistem Operasi 9
Prose Burst
s - time
A 10

B 1

C 4

D 5

E 6

Dengan menggunakan algoritma penjadwalan CPU Round Robin (RR) jawablah


pertanyaan di bawah:
a. Gambarkan Gantt chart untuk penjadwalan dari kelima proses tersebut.
Jawab:
A B C D E A D E A
0 4 5 9 13 17 21 22 24 26

b. Hitung turnaround time untuk masing-masing proses.


Jawab:
Total waktu yang dibutuhkan untuk menyelesaikan proses A adalah 10 + 2 + 2 + 2
+ 2 + 2 = 20 unit waktu. Turnaround time untuk proses A adalah 20 - 0 = 20.

Proses B membutuhkan waktu burst-time sebesar 1 unit saja, sehingga CPU akan
mengeksekusi seluruh burst-time pada saat proses B tiba. Turnaround time untuk
proses B adalah 3 - 0 = 3

Total waktu yang dibutuhkan untuk menyelesaikan proses C adalah 12 + 2 + 2 + 2


= 18 unit waktu. Turnaround time untuk proses C adalah 18 - 0 = 18.

Total waktu yang dibutuhkan untuk menyelesaikan proses D adalah 14 + 2 + 2 + 1


= 19 unit waktu. Turnaround time untuk proses D adalah 19 - 0 = 19.

Total waktu yang dibutuhkan untuk menyelesaikan proses E adalah 12 + 2 + 2 + 2


= 18 unit waktu. Turnaround time untuk proses E adalah 18 - 0 = 18.

c. Hitung rata-rata turnaround time untuk seluruh proses.


Jawab:
Rata-rata turnaround time untuk seluruh proses dapat dihitung dengan cara
menjumlahkan semua nilai turnaround time dan kemudian membaginya dengan
jumlah total proses:
Rata-rata turnaround time = (20 + 3 + 18 + 19 + 18) / 5 = 15.6 miliseconds.

Laporan Praktikum Sistem Operasi 10


11. [5 poin] Jelaskan cara kerja multilevel feedback pada gambar di bawah, mengacu
pada slide halaman 6.27.

Jawab:

Dalam sistem multilevel feedback, sebuah proses akan ditempatkan pada antrian tertentu
ketika pertama kali masuk ke dalam sistem dan tidak akan dipindahkan antar antrian.
Meskipun pengaturan ini memiliki keuntungan dari overhead penjadwalan yang rendah,
namun kekurangannya adalah kurang fleksibel.

Artinya, dalam sistem multilevel feedback, suatu proses akan tetap berada di antrian awal
saat pertama kali masuk ke dalam sistem dan tidak akan dipindahkan ke antrian lain.
Meskipun hal ini mengurangi biaya penjadwalan, namun kurang fleksibel karena tidak
memungkinkan untuk memindahkan proses antar antrian sesuai dengan kondisi sistem
yang berubah-ubah.

Laporan Praktikum Sistem Operasi 11

Anda mungkin juga menyukai