0% found this document useful (0 votes)
406 views18 pages

Praktikum Sistem Operasi CPU Schedulling

The document discusses various CPU scheduling algorithms: 1. FCFS scheduling allocates CPU to processes in the order of arrival with no preemption. It has high average waiting times. 2. SJF scheduling allocates CPU to the process with the shortest burst time. It is optimal but impractical as future burst times are unknown. 3. Round Robin scheduling preemptively allocates CPU to each process for a fixed time quantum. It aims to minimize waiting times but can increase turnaround times due to frequent context switching.

Uploaded by

Agung Pambudi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
406 views18 pages

Praktikum Sistem Operasi CPU Schedulling

The document discusses various CPU scheduling algorithms: 1. FCFS scheduling allocates CPU to processes in the order of arrival with no preemption. It has high average waiting times. 2. SJF scheduling allocates CPU to the process with the shortest burst time. It is optimal but impractical as future burst times are unknown. 3. Round Robin scheduling preemptively allocates CPU to each process for a fixed time quantum. It aims to minimize waiting times but can increase turnaround times due to frequent context switching.

Uploaded by

Agung Pambudi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

PRAKTIKUM SISTEM OPERASI [B]

Tugas 01

Agung Pambudi
519/Pra-MIK/35/2017
Agung Pambudi 519/Pra-MIK/35/2017

Table of Contents
FCFS (First-come First-served) .................................................................................................. 2
SJF (Shortest Job First) / SJN (Shortest Job Next) ..................................................................... 3
Round Robin ............................................................................................................................... 5
Priority Based.............................................................................................................................. 6
Multi-level Queue ....................................................................................................................... 7
Questions & Answers ................................................................................................................. 8
1. Operating System .............................................................................................................. 8
2. Types of Operating Systems ............................................................................................. 8
3. Process .............................................................................................................................. 10
4. CPU Schedulling ............................................................................................................... 10
5. Arrival time, Burst time, Waiting time, Turnaround time................................................. 10
6. Advantages of Round Robin CPU Scheduling Algorithm ................................................ 11
7. CPU Scheduling Algorithm for Real-time OS .................................................................. 11
8. CPU Algorithm with highest waiting time ....................................................................... 11
9. Optimal CPU scheduling algorithm in practice ................................................................ 11
10. The real difficulty with the SJF CPU scheduling algorithm ............................................. 11
11. C program for Round Robin Algorithm ............................................................................ 12
12. C program for Preemptive Shortest Job First Algorithm .................................................. 13
13. Multi-level Queue CPU Schedulling ................................................................................ 14
14. Difference between the general CPU scheduling algorithms ........................................... 14
15. CPU-bound and I/O-bound process .................................................................................. 14
16. Parameters for designing a multilevel feedback queue scheduler..................................... 15
17. Difference between multi-level queue and multi-level feedback queue ........................... 15
18. Advantages and Disadvantages of Multi-level queue and multi-level feedback queue CPU
scheduling algorithms ....................................................................................................... 15
19. C program for Multi-level queue Algorithm..................................................................... 16
REFERENCES ........................................................................................................................... 17

Tugas 1 Praktikum Sistem Operasi Page 1 of 17


Agung Pambudi 519/Pra-MIK/35/2017

FCFS (First-come First-served)


Proses dijalankan dengan aturan first come first serve.
Merupakan algoritma penjadawalan non-preemptive, pre-emptive.
Mudah untuk dipahami dan diimplementasikan.
Pelaksanaannya didasarkan pada antrian FIFO (First In First Out).
Buruk di kinerja karena tingginya average waiting time.

ALGORITMA
Process Waiting time
P0 0 (Proses pertama selalu bernilai 0)
P1 Burst time P0 + Waiting time P0
P2 Burst time P1 + Waiting time P1
dst. dst.
Process Turnaround time
P0 Burst time P0 + Waiting time P0
P1 Burst time P1 + Waiting time P2
P2 Burst time P1 + Waiting time P2
dst. dst.
Average Waiting Time Waiting time / Proses
Average Turnaround Time Turnaround time / Proses

CONTOH PROGRAM
Process BT WT TT
P0 8 0 8 AWT = (0+8+11+31) / 4 = 12.50
P1 3 8 11 ATT = (8+11+31+38) / 4 = 22.00

P2 20 11 31
P3 7 31 38

GANTT CHART

Tugas 1 Praktikum Sistem Operasi Page 2 of 17


Agung Pambudi 519/Pra-MIK/35/2017

SJF (Shortest Job First) / SJN (Shortest Job Next)


Pada penjadwalan SJF, proses yang memiliki CPU Burst paling kecil dilayani terlebih dahulu. SJF
terbagi menjadi dua:
1. SJF Non-preemptive, bila CPU diberikan pada proses, maka tidak bisa ditunda sampai CPU
burst selesai.
2. SJF Preemptive, jika proses baru datang dengan panjang CPU burst lebih pendek dari sisa
waktu proses yang saat itu sedang dieksekusi, proses ini ditunda dan diganti dengan proses
baru. Skema ini disebut dengan Shortest-Remaining-Time-First (SRTF).
SJF adalah algoritma penjadwalan yang optimal dengan rata-rata waktu tunggu yang minimal.

ALGORITMA
1. Tentukan urutan prioritas berdasarkan pendeknya proses yang dilayani.
2. Penentuan proses mana yang akan dilayani oleh pemroses.

SJF akan optimal, ketika rata-rata waktu tunggu minimum untuk setiap proses sudah ditetapkan.
Contoh:
Process diberikan BT Process berjalan BT
P1 6 P4 3
P2 8 P1 6
P3 7 P3 7
P4 3 P2 8

Sedangkan bila waktu kedatangannya berbeda maka contohnya seperti berikut:

SJF Non-preemptive

Process AT BT
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4

1. Pertama, pada urutan pertama masukkan proses yang memiliki arrival time terkecil. dan proses
selanjutnya melihat burst time terkecil
2. Menghitung rata-rata, waktu tunggu dikurangi arrival time diperoleh waktu tunggu untuk P1
adalah 0, P2 adalah 6, P3 adalah 3 dan P4 adalah 7 sehingga rata-rata waktu tunggu adalah
(0 + 6 + 3 + 7) /4 = 4 milidetik.

SJF Pre-emptive

Process AT BT
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4

1. Pertama, urutkan dari Arrival Time terkecil


2. Masukkan nilai Burst Time ke waktu yang telah tersedia (Arrival Time). Misal P1 memiliki
Burst Time "7" sedangkan P1 yang tersedia harus membutuhkan 2 milidetik. jadi 7 dikurangi
waktu yang dibutuhkan (bukan waktu proses) jadi P1 masih tersisa "5"
3. Karena P4 tidak memiliki waktu proses jadi langsung diletakkan di bagian sisa
4. Letakkan waktu yang yang tersisa di bagian setelah waktu yang ditentukan.

Tugas 1 Praktikum Sistem Operasi Page 3 of 17


Agung Pambudi 519/Pra-MIK/35/2017

5. Menghitung rata-rata, jika proses terjadi lebih dari 1 kali misal P1 ada dua seperti gantchart
diatas di awal dan diakhir. Cara menghitung adalah waktu tunggu yang terakhir dikurangi
waktu proses yang pertama. Jadi 11-2=9 P1=9
6. Jika proses hanya terjadi 1 kali maka cara menghitungnya adalah waktu tunggu dikurangi
arrival time.
7. Sisa
P1 = 5
P2 = 2
P4 = 4
8. Urutkan dari sisa yang paling kecil. Diperoleh P2, P4, P5
9. Waktu tunggu untuk P1 adalah 9, P2 adalah 1, P3 adalah 0 dan P4 adalah 2 sehingga rata-rata
waktu tunggu adalah (9 + 1 + 0 + 2)/4 = 3 milidetik.

CONTOH PROGRAM
Process diberikan BT Process berjalan BT WT TT
P0 8 P1 3 0 3
AWT = (0+3+10+18) / 4 = 7.75
P1 3 P3 7 3 10 ATT = (3+10+18+30) / 4 = 17.25
P2 20 P0 8 10 18
P3 7 P2 20 18 30

GANTT CHART

Tugas 1 Praktikum Sistem Operasi Page 4 of 17


Agung Pambudi 519/Pra-MIK/35/2017

Round Robin
Round Robin adalah algoritma proses penjadwalan pre-emptive.
Proses yang dijalankan sudah ditetapkan waktunya (quantum time).

ALGORITMA
Sebelum proses di jalankan, tentukan dulu quantum timenya.
Jika proses memiliki CPU Burst < Quantum Time, maka proses akan melepaskan CPU, jika
telah selesai digunakan, CPU dapat segera digunakan oleh proses selanjutnya.
Jika proses memiliki CPU Burst > Quantum Time, maka proses tersebut akan dihentikan jika
sudah mencapai quantum time dan selanjutnya mengantri kembali pada posisi tail queue (ekor
dari ready queue), CPU kemudian menjalankan proses berikutnya.
Jika quantum time belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O),
maka proses menjadi blocked dan CPU dialihkan ke proses lain.

CONTOH PROGRAM
Proses berikut menggunakan quantum time = 4 msec.
Dengan menggunakan rumus : Burst time - Quantum
Burst time yang tersisa, dimasukkan kembali kedalam antrian sesuai dengan urutan Prosesnya.

Process BT Sisa BT ke-1 Sisa BT ke-2 Sisa BT ke-3


P0 6 2 - -
P1 8 4 - -
P2 2 - - -
P3 10 6 4 -

Process BT Mulai Selesai WT TT


P0 6 0 16 10 16
P1 8 4 20 12 20 AWT = (10+12+8+16) / 4 = 11.50
ATT = (16+20+10+26) / 4 = 18.00
P2 2 8 10 8 10
P3 10 10 26 16 26

GANTT CHART

Tugas 1 Praktikum Sistem Operasi Page 5 of 17


Agung Pambudi 519/Pra-MIK/35/2017

Priority Based
Merupakan algoritma non-preemptive dan salah satu algoritma penjadwalan yang paling umum
dalam sistem batch.
Setiap proses diberikan prioritas. Proses dengan prioritas tertinggi akan dieksekusi pertama dan
seterusnya.
Proses dengan prioritas yang sama akan dijalankan berdasar first come first served.
Prioritas dapat diputuskan

ALGORITMA
Pertama-tama proses yang dimasukkan dilakukan pengurutan berdasar Prioritas.
Process Waiting time
Proses dengan priority tertinggi ke-1 0 (Proses pertama selalu bernilai 0)
Proses dengan priority tertinggi ke-2 Burst time 1st process + Waiting time 1st process
Proses dengan priority tertinggi ke-3 Burst time 2nd process + Waiting time 2nd process
dst. dst.
Process Turnaround time
Proses dengan priority tertinggi ke-1 Burst time 1st process + Waiting time 1st process
Proses dengan priority tertinggi ke-2 Burst time 2nd process + Waiting time 2nd process
Proses dengan priority tertinggi ke-3 Burst time 3rd process + Waiting time 3rd process
dst. dst.
Average Waiting Time Waiting time / Proses
Average Turnaround Time Turnaround time / Proses

CONTOH PROGRAM
Process BT Priority Process BT Priority WT TT
P0 5 2 P1 7 1 0 7 AWT = (0+7+14+18+23) / 5 = 12.40
P1 7 1 P3 7 1 7 14 ATT = (7+14+18+23+32) / 5 = 18.79

P2 4 2 P2 4 2 14 18
P3 7 1 P0 5 2 18 23
P4 9 5 P4 9 5 23 32

GANTT CHART

Tugas 1 Praktikum Sistem Operasi Page 6 of 17


Agung Pambudi 519/Pra-MIK/35/2017

Multi-level Queue
Multi-level queue bukan merupakan algoritma penjadwalan yang independen. Mereka memanfaatkan
algoritma lain yang ada untuk mengelompokkan dan menjadwalkan pekerjaan dengan karakteristik
umum sebagai berikut:
Beberapa antrian dikelola untuk proses dengan karakteristik umum.
Setiap antrian dapat memiliki algoritma penjadwalan sendiri.
Prioritas ditetapkan untuk setiap antrian.
Misalnya, pekerjaan CPU-bound dapat dijadwalkan dalam satu antrian dan semua pekerjaan I/O-bound
di antrian lainnya. Proses Scheduler kemudian bergantian memilih pekerjaan dari masing-masing
antrian dan menetapkannya ke CPU berdasarkan algoritma yang ditetapkan untuk antrian.

ALGORITMA
Proses dijalankan berdasar System Process terlebih dahulu, setelah selesai diteruskan dengan User
Process. Sedangkan urutannya tidak bergantung pada besar/kecil Burst time, melainkan secara first
come first served.

CONTOH PROGRAM
Process BT Type Process BT Type WT TT
P0 3 User P1 5 System 0 5 AWT = (0+5+8+11) / 4 = 6.00
P1 5 System P2 3 System 5 8 ATT = (5+8+11+13) / 4 = 9.25
P2 3 System P0 3 User 8 11
P3 2 User P3 2 User 11 13

GANTT CHART

Tugas 1 Praktikum Sistem Operasi Page 7 of 17


Agung Pambudi 519/Pra-MIK/35/2017

Questions & Answers


1. Operating System
Sistem operasi (OS) adalah kumpulan perangkat lunak yang dapat mengelola perangkat keras
komputer yang ada, dan menyediakan berbagai layanan umum untuk program komputer.
Sistem operasi merupakan sebuah perangkat lunak sistem yang merupakan komponen pentin
dalam sistem komputer.

2. Types of Operating Systems


A. Batch Operating Systems
Dalam tipe ini, user tidak berinteraksi secara langsung dengan komputer. Setiap
user mempersiapkan pekerjaannya pada kartu punch dan menyerahkan kepada operator
komputer. Untuk mempercepat proses, pekerjaan dengan bahasa dan kebutuhan serupa
akan ditumpuk secara bersamaan dan dijalankan sebagai sebuah kelompok.
Kelemahannya:
Tidak ada interaksi antara user dengan komputer.
CPU sering menganggur, karena kecepatan perangkat I/O mekanik lebih lambat
dibandingkan CPU.
Tidak ada mekanisme untuk memprioritaskan suatu proses

B. Time-sharing Operating Systems


Time-sharing adalah teknik yang memungkinkan banyak orang, yang terletak
di berbagai terminal, menggunakan sistem komputer tertentu pada waktu yang sama.
Time-sharing atau multitasking adalah perpanjangan logis dari multiprogramming.
Waktu processor yang dibagi di antara beberapa pengguna secara bersamaan disebut
sebagai time-sharing.
Time-Sharing Systems sangat mirip dengan Multiprogramming batch systems.
Bahkan time sharing systems merupakan suatu ekstensi dari multiprogramming
systems. Dalam time sharing systems fokus utama adalah meminimalkan response
time, sedangkan pada multiprogramming fokus utama adalah memaksimalkan CPU
usage.
Kelebihan:
Memberikan respon cepat.
Menghindari duplikasi software.
Mengurangi waktu idle CPU.
Kekurangan:

Masalah reliabilitas.
Pertanyaan keamanan dan integritas dari user program dan data.
Masalah komunikasi data.

Tugas 1 Praktikum Sistem Operasi Page 8 of 17


Agung Pambudi 519/Pra-MIK/35/2017

C. Distributed Operating Systems


Sistem terdistribusi menggunakan beberapa processor sentral untuk melayani
beberapa aplikasi real-time dan beberapa pengguna. Proses pengolahan data
didistribusikan di antara processor.
Processor berkomunikasi satu sama lain melalui berbagai jalur komunikasi
(seperti high-speed bus atau saluran telepon). Processor dalam sistem terdistribusi dapat
bervariasi dalam ukuran dan fungsinya. Prosesor ini disebut sebagai situs, node,
komputer, dan sebagainya.
Kelebihan:
Dengan fasilitas berbagi sumber daya, pengguna di satu lokasi mungkin dapat
menggunakan sumber daya yang tersedia di lokasi lain.
Speedup pertukaran data dengan satu sama lain melalui surat elektronik.
Jika salah satu situs gagal, situs yang tersisa berpotensi dapat terus beroperasi.
Layanan yang lebih baik kepada pelanggan.
Pengurangan beban pada komputer host.
Pengurangan keterlambatan dalam pengolahan data.

D. Network Operating Systems


Sistem ini berjalan pada server dan menyediakan server dengan kemampuan
untuk mengelola data, pengguna, group, keamanan, aplikasi, dan fungsi jaringan
lainnya. Tujuan utama dari sistem operasi jaringan adalah untuk memungkinkan
berbagi berkas dan akses printer secara bersamaan antara beberapa komputer dalam
jaringan, biasanya jaringan lokal (LAN), jaringan pribadi atau ke jaringan lain. Contoh:
Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac
OS X, Novell NetWare, dan BSD.
Kelebihan:
Server terpusat yang sangat stabil.
Keamanan server yang dikelola.
Upgrade ke teknologi baru dan perangkat keras dapat dengan mudah
diintegrasikan ke dalam sistem.
Akses remote ke server memungkinkan dari lokasi dan jenis sistem yang berbeda.
Kekurangan:
Biaya yang tinggi.
Ketergantungan pada lokasi pusat.
Pemeliharaan rutin dan pembaruan yang diperlukan.

E. Real Time Operating Systems


Sistem ini didefinisikan sebagai suatu sistem pengolahan data di mana interval
waktu yang diperlukan untuk memproses dan menanggapi masukan sangat kecil
sehingga mengontrol environment. Waktu yang dibutuhkan oleh sistem untuk
menanggapi masukan dan menampilkan informasi terbaru yang dibutuhkan disebut
sebagai response time. Jadi dalam metode ini, response time sangat kurang
dibandingkan dengan pengolahan secara online.

Tugas 1 Praktikum Sistem Operasi Page 9 of 17


Agung Pambudi 519/Pra-MIK/35/2017

Sebuah sistem operasi real-time harus memiliki definisi yang baik, kendala
waktu yang tetap, karena jika tidak maka sistem akan gagal. Misalnya, percobaan
ilmiah, sistem pencitraan medis, sistem kontrol industri, sistem senjata, robot, sistem
kontrol lalu lintas udara, dll.
Ada dua jenis sistem operasi real-time:
1. Hard real-time systems
Menjamin bahwa critical tasks akan selesai tepat waktu.
Penyimpanan sekunder terbatas atau hilang dan data disimpan dalam ROM.
Memori virtual hampir tidak pernah ditemukan.

2. Soft real-time systems


Less restrictive.
Critical tasks mendapat prioritas di atas tugas-tugas lain dan
mempertahankan prioritas sampai selesai.
Memiliki utilitas terbatas. Misalnya, multimedia, virtual reality, Advanced
Scientific Proyek seperti eksplorasi bawah laut dan penemuan planet, dll.

3. Process
Sebuah proses pada dasarnya adalah sebuah program yang sedang di eksekusi/di jalankan.
Pelaksanaan proses harus secara berurutan. Sebuah proses didefinisikan sebagai suatu entitas
yang mewakili unit dasar dari pekerjaan yang harus dilaksanakan dalam sistem.

4. CPU Schedulling
Penjadwalan CPU adalah pemilihan proses dari antrian yang ready untuk dapat dieksekusi.
Penjadwalan CPU merupakan konsep dari multiprogramming, dimana CPU digunakan secara
bergantian untuk proses yang berbeda. Suatu proses terdiri dari dua siklus yaitu Burst I/O dan
Burst CPU yang dilakukan bergantian hingga proses selesai.

5. Arrival time, Burst time, Waiting time, Turnaround time


1. Arrival Time, urutan waktu kedatangan suatu proses pada CPU.
2. Burst time (CPU time) ialah waktu yang digunakan suatu proses dalam satuan
milidetik (ms).
3. Waiting time, ialah waktu yang diperlukan untuk menunggu di ready queue. Waiting
time tidak mempengaruhi eksekusi proses dan penggunaan I/O.
4. Turnaround time, ialah banyaknya waktu ynag dilakukan untuk mengekseskusi
proses dari mulai menunggu untuk meminta tempat di memori utama, menunggu di
ready queue, eksekusi oleh CPU, dan mengerjakan I/O.

Tugas 1 Praktikum Sistem Operasi Page 10 of 17


Agung Pambudi 519/Pra-MIK/35/2017

6. Advantages of Round Robin CPU Scheduling Algorithm


1. Menghindari ketidak adilan seperti yang terjadi pada FCFS, karena setiap proses
mendapat bagian yang sama dari CPU.
2. Response time lebih cepat untuk proses berukuran kecil.
3. Proses yang baru dibuat, ditambahkan ke akhir antrian yang siap.
4. Dapat mencgah starvation.
5. Overhead kecil, jika ukuran proses rata rata lebih kecil dibanding ukuran
quantum/slot.

7. CPU Scheduling Algorithm for Real-time OS


1. Cooperative scheduling
2. Preemptive scheduling
a. Rate-monotonic scheduling
b. Round-robin scheduling
c. Fixed priority pre-emptive scheduling
d. Fixed-Priority Scheduling with Deferred Preemption
e. Fixed-Priority Non-preemptive Scheduling
f. Critical section preemptive scheduling
g. Static time scheduling
3. Earliest Deadline First approach
4. Stochastic digraphs with multi-threaded graph traversal
8. CPU Algorithm with highest waiting time
FCFS CPU Schedulling algoritm, karena prosesnya bersifat First Come First Served jadi langsung
menjalankan proses sesuai urutan Burst time, tanpa melihat besar/kecilnya waiting time.

9. Optimal CPU scheduling algorithm in practice


Dalam sistem operasi, algoritma penjadwalan yang paling optimal ialah menggunakan SJF karena tepat
untuk berbagai pendekatan yang berbeda, dalam algoritma ini manfaat utama adalah memberikan
average waiting time yang minimum.

Namun bila di praktiknya maka algoritma penjadwalan harus menyesuaikan dengan kondisi yang
sedang terjadi. Sebagai contoh sistem penjualan tiket online, dimana yang bisa mendapatkan tiket
(sesuai dengan pilihan banyak user) ialah user yang tercepat atau di gambarkan dengan burst time
terkecil. Pada kasus ini sama halnya dengan algoritma penjadwalan SJF.

Kesimpulannya bahwa setiap jenis simulasi untuk setiap algoritma penjadwalan CPU memiliki
keterbatasan. Satu-satunya cara untuk mengevaluasi algoritma tersebut ialah dengan membuat kode dan
memasukkannya ke dalam sistem operasi, dimana kemudian kemampuan kerja yang tepat dari
algoritma tersebut dapat diukur dalam sistem real time.

10. The real difficulty with the SJF CPU scheduling algorithm
Kesulitan sesungguhnya dengan algoritma SJF adalah, untuk mengetahui panjang permintaan CPU
berikutnya. SJF meminimalkan average waiting time karena menjalankan proses dengan burst time
kecil sebelum yang besar. Sementara itu karena meminimalkan average waiting time, mungkin proses
dengan burst time yang besar cenderung tertinggal dalam daftar.

Tugas 1 Praktikum Sistem Operasi Page 11 of 17


Agung Pambudi 519/Pra-MIK/35/2017

11. C program for Round Robin Algorithm


Scenario: All the processes in the system are divided into two categories system processes and user
processes. System processes are to be given higher priority than user processes. Consider the time
quantum size for the system processes and user processes to be 5 msec and 2 msec respectively.

1. #include<stdio.h>
2. int main()
3. {
4. int i, limit, total=0, x, counter=0, time_quantum;
5. int wait_time=0, turnaround_time=0, arrival_time[10], burst_time[10], temp[10];
6. float average_wait_time, average_turnaround_time;
7. printf("\nEnter Total Number of Processes:\t");
8. scanf("%d", &limit);
9. x = limit;
10. for(i=0; i<limit; i++)
11. {
12. printf("\nEnter Details of Process[%d]\n", i+1);
13. printf("Arrival Time : ");
14. scanf("%d", &arrival_time[i]);
15. printf("Burst Time : ");
16. scanf("%d", &burst_time[i]);
17. temp[i] = burst_time[i];
18. }
19. printf("\nEnter Time Quantum:\t");
20. scanf("%d", &time_quantum);
21. printf("\nProcess ID\t\tBurst Time\t Turnaround Time\t Waiting Time\n");
22. for(total=0, i=0; x!=0;)
23. {
24. if(temp[i] <= time_quantum && temp[i] > 0){
25. total = total + temp[i];
26. temp[i] = 0;
27. counter = 1;
28. }
29. else if(temp[i] > 0){
30. temp[i] = temp[i] - time_quantum;
31. total = total + time_quantum;
32. }
33. if(temp[i] == 0 && counter == 1){
34. x--;
35. printf("\nProcess[%d]\t\t%d\t\t %d\t\t\t %d", i+1, burst_time[i],
total-arrival_time[i], total-arrival_time[i]-burst_time[i]);
36. wait_time = wait_time+total-arrival_time[i]-burst_time[i];
37. turnaround_time = turnaround_time+total-arrival_time[i];
38. counter = 0;
39. }
40. if(i==limit-1){
41. i=0;
42. }
43. else if(arrival_time[i+1] <= total){
44. i++;
45. }
46. else{
47. i=0;
48. }
49. }
50. average_wait_time = wait_time*1.0 / limit;
51. average_turnaround_time = turnaround_time*1.0 / limit;
52. printf("\n\nAverage Waiting Time:\t%f", average_wait_time);
53. printf("\nAvg Turnaround Time:\t%f\n", average_turnaround_time);
54. return 0;
55. }

Tugas 1 Praktikum Sistem Operasi Page 12 of 17


Agung Pambudi 519/Pra-MIK/35/2017

12. C program for Preemptive Shortest Job First Algorithm


13. #include<stdio.h>
14. main()
15. {
16. int at[10],bt[10],rt[10],endTime,i,smallest;
17. int remain=0,n,time,sum_wait=0,sum_turnaround=0;
18. printf("Enter no of Processes : ");
19. scanf("%d",&n);
20. for(i=0;i<n;i++)
21. {
22. printf("Enter arrival time for Process P%d : ",i+1);
23. scanf("%d",&at[i]);
24. printf("Enter burst time for Process P%d : ",i+1);
25. scanf("%d",&bt[i]);
26. rt[i]=bt[i];
27. }
28. printf("\nProcess\t Waiting Time\t Turnaround Time");
29. rt[9]=9999;
30. for(time=0;remain!=n;time++)
31. {
32. smallest=9;
33. for(i=0;i<n;i++)
34. {
35. if(at[i]<=time && rt[i]<rt[smallest] && rt[i]>0)
36. {
37. smallest=i;
38. }
39. }
40. rt[smallest]--;
41. if(rt[smallest]==0)
42. {
43. remain++;
44. endTime=time+1;
45. printf("\n%d\t %d\t\t %d", smallest+1, endTime-bt[smallest]-at[smallest],
endTime-at[smallest]);
46. sum_wait+=endTime-bt[smallest]-at[smallest];
47. sum_turnaround+=endTime-at[smallest];
48. }
49. }
50. printf("\n\nAverage waiting time : %f\n",sum_wait*1.0/n);
51. printf("Average Turnaround time : %f",sum_turnaround*1.0/5);
52. return 0;
53. }

Tugas 1 Praktikum Sistem Operasi Page 13 of 17


Agung Pambudi 519/Pra-MIK/35/2017

13. Multi-level Queue CPU Schedulling


Penjadwalan Multi-level Queue diciptakan untuk situasi di mana proses yang mudah
diklasifikasikan ke dalam kelompok yang berbeda.
Penjadwalan antrian Multilevel memiliki karakteristik sebagai berikut:
Proses dibagi ke dalam antrian yang berbeda berdasarkan jenis mereka. Proses secara
permanen ditugaskan ke salah satu antrian, umumnya didasarkan pada beberapa properti
dari proses yaitu proses sistem, interaktif, sistem batch, akhir proses pengguna, ukuran
memori, prioritas proses dan jenis proses.
Setiap antrian memiliki algoritma penjadwalan sendiri. Misalnya proses interaktif dapat
menggunakan metode round robin penjadwalan, sementara pekerjaan batch menggunakan
metode FCFS.
Selain itu, harus ada penjadwalan antara antrian dan umumnya diimplementasikan sebagai
penjadwalan preemptive prioritas tetap. Proses latar depan mungkin memiliki prioritas
yang lebih tinggi selama proses latar belakang
Tidak ada proses dalam antrian batch dapat dijalankan kecuali antrian untuk proses sistem
dan proses interaktif semua kosong. Jika proses interaktif memasuki antrian siap sementara
proses batch berlari, batch akan mendahului

14. Difference between the general CPU scheduling algorithms

First come first serve Algoritma ini mendahulukan proses yang lebih dulu datang.
Kelemahannya,waiting time rata-rata cukup lama.
Shortest job first Algoritma ini mendahulukan proses dengan CPU burst terkecil yang
akan mengurangi waiting time rata-rata.
Priority Algoritma ini mendahulukan prioritas terbesar. Kelemahannya,
prioritas kecil tidak mendapat jatah CPU. Hal ini dapat diatasi dengan
aging,yaitu semakin lama menunggu,prioritas semakin tinggi.
Round Robin Algoritma ini menggilir proses-proses yang ada diantrian dengan jatah
time quantum yang sama. Jika waktu habis,CPU dialokasikan keproses
selanjutnya.
Multilevel Queue Algoritma ini membagi beberapa antrian yang akan diberi prioritas
berdasarkan tingkatan. Tingkatan lebih tinggi menjadi prioritas utama.
Multilevel Feedback Queue Pada dasarnya sama dengan Multilevel Queue, bedanya pada
algoritma ini diizinkan untuk pindah antrian.

15. CPU-bound and I/O-bound process


Proses CPU bound adalah proses-proses yang membutuhkan lebih banyak waktu untuk
melakukan komputasi daripada menjalankan I/O sehingga CPU burst yang dibutuhkan lebih
lama
Proses I/O bound adalah proses-proses yang membutuhkan lebih banyak waktu utnuk
menjalankan I/O daripada melakukan komputasi, sehingga CPU burst yang dibutuhkan lebih
singkat

Tugas 1 Praktikum Sistem Operasi Page 14 of 17


Agung Pambudi 519/Pra-MIK/35/2017

16. Parameters for designing a multilevel feedback queue scheduler


1. Jumlah antrian.
2. Algoritma penjadwalan untuk setiap antrian yang dapat berbeda dari FIFO.
3. Metode yang digunakan untuk menentukan kapan untuk mempromosikan suatu proses ke
antrian prioritas yang lebih tinggi.
4. Metode yang digunakan untuk menentukan kapan untuk menurunkan proses ke antrian
prioritas yang lebih rendah.
5. Metode yang digunakan untuk menentukan antrian proses mana yang akan masuk ketika
proses tersebut membutuhkan layanan.

17. Difference between multi-level queue and multi-level feedback queue


Perbedaan mendasar yang membedakan multilevel feedback queue dengan multilevel
queue biasa adalah terletak pada adanya kemungkinan suatu proses berpindah dari satu antrian ke
antrian lainnya, entah dengan prioritas yang lebih rendah ataupun lebih tinggi, misalnya pada
contoh berikut.

Semua proses yang baru datang akan diletakkan pada queue 0 (quantum = 8 ms).
Jika suatu proses tidak dapat diselesaikan dalam 8 ms, maka proses tersebut akan
dihentikan dan dipindahkan ke queue 1 (quantum = 16 ms).
Queue 1 hanya akan dikerjakan jika tidak ada lagi proses di queue 0, dan jika suatu proses
di queue 1 tidak selesai dalam 16 ms, maka proses tersebut akan dipindahkan ke queue 2.
Queue 2 akan dikerjakan bila queue 0 dan 1 kosong, dan akan berjalan dengan algoritma
FCFS.

18. Advantages and Disadvantages of Multi-level queue and multi-level feedback


queue CPU scheduling algorithms

Multi-level queue Multi-level feedback queue


Advantages Advantages
Implementasi perpindahan w.r.t fleksibel Suatu proses yang menunggu terlalu lama
antar queue dalam antrian prioritas yang lebih rendah
Memungkinkan pekerjaan CPU-bound yang mungkin akan dipindahkan ke antrian
singkat untuk diprioritaskan dan diproses prioritas yang lebih tinggi.
dengan cepat
Dapat menjadi preemptive atau non- Disadvantages
preemptive Memindahkan proses disekitar antrian
menghasilkan lebih banyak CPU overhead.
Disadvantages
Antrian memerlukan monitoring, hal ini
memerlukan aktivitas yang lebih.

Tugas 1 Praktikum Sistem Operasi Page 15 of 17


Agung Pambudi 519/Pra-MIK/35/2017

19. C program for Multi-level queue Algorithm


Scenario: All the processes in the system are divided into two categories system processes and user
processes. System processes are to be given higher priority than user processes. Consider each process
priority to be from 1 to 3. Use priority scheduling for the processes in each queue.

1. #include<stdio.h>
2. main()
3. {
4. int p[20], bt[20], pri[20], su[20], wt[20], tat[20], i, k, n, temp;
5. float wtavg, tatavg;
6. printf("Enter the number of processes : ");
7. scanf("%d",&n);
8. for(i=0;i<n;i++)
9. {
10. p[i] = i;
11. printf("Enter the Burst Time & Priority of Process %d : ",i);
12. scanf("%d %d",&bt[i], &pri[i]);
13. printf("System/User Process (0/1) ? : ");
14. scanf("%d", &su[i]);
15. }
16. for(i=0;i<n;i++)
17. for(k=i+1;k<n;k++)
18. if(su[i] > su[k])
19. {
20. temp=p[i];
21. p[i]=p[k];
22. p[k]=temp;
23. temp=bt[i];
24. bt[i]=bt[k];
25. bt[k]=temp;
26. temp=su[i];
27. su[i]=su[k];
28. su[k]=temp;
29. }
30. if(pri[i] > pri[k])
31. {
32. temp=p[i];
33. p[i]=p[k];
34. p[k]=temp;
35. temp=bt[i];
36. bt[i]=bt[k];
37. bt[k]=temp; temp=pri[i];
38. pri[i]=pri[k];
39. pri[k]=temp;
40. }
41. wtavg = wt[0] = 0;
42. tatavg = tat[0] = bt[0];
43. for(i=1;i<n;i++)
44. {
45. wt[i] = wt[i-1] + bt[i-1];
46. tat[i] = tat[i-1] + bt[i];
47. wtavg = wtavg + wt[i];
48. tatavg = tatavg + tat[i];
49. }
50. printf("\nPROCESS\t\t SYSTEM/USER PROCESS\t PRIORITY\t BURST TIME\t WAITING
TIME\t TURNAROUND TIME");
51. for(i=0;i<n;i++)
52. printf("\n%d \t\t %d \t\t\t %d \t\t %d \t\t %d \t\t %d ",p[i],su[i],pri
[i],bt[i],wt[i],tat[i]);
53. printf("\n\nAverage Waiting Time is : %f",wtavg/n);
54. printf("\nAverage Turnaround Time is : %f",tatavg/n);
55. getch();
56. }

Tugas 1 Praktikum Sistem Operasi Page 16 of 17


Agung Pambudi 519/Pra-MIK/35/2017

REFERENCES
https://www.tutorialspoint.com/operating_system/
https://en.wikipedia.org/wiki/Real-time_operating_system
http://research.cs.queensu.ca/home/akl/techreports/scheduling.pdf
http://cgi.csc.liv.ac.uk/~trp/Teaching_Resources/COMP204/204-Lecture12.pdf
http://www.sciencehq.com/computing-technology/1353.html
http://dini3asa.staff.gunadarma.ac.id/Downloads/files/19322/PENJADWALANPROSES.pdf.
http://www.ijetae.com/files/Volume4Issue1/IJETAE_0114_15.pdf

Tugas 1 Praktikum Sistem Operasi Page 17 of 17

You might also like