INSTRUKSI PADA CPU SIMULATOR
Program 1 yaitu :
program LoopTest
I = 0
for N = 0 to 40
I = I + 1
next
end
Saat program ini di
compile dan di load in memory lalu dieksekusi di virtual OS menggunakan
penjadwalan FCFS program LoopTest dengan Pid 2 akan masuk ke ready queue dan
jika proses sudah siap akan di eksekusi di CPU 0. Ketika process selesai di eksekusi di CPU,
process akan masuk ke Process Bin.
Program 2 yaitu :
program OSQueuesDemo %Start of program
while true %Forever loop
for n = 1
to 15 %Repeat 15
times
i = 1 %Just
something to do !
next %End of
repeat loop
wait %Suspend
program for 3 secs
wend %End of
forever loop
end %End
of program
Saat program ini di
compile dan di load in memory lalu dieksekusi di virtual OS menggunakan
penjadwalan FCFS Program OSQueuesDemo dengan Pid 3 akan masuk ke Ready Queue
dan jika proses sudah siap akan di eksekusi di CPU 0. Akan tetapi pada program ini, akan terus
terjadi pengulangan sehingga program akan berhenti dieksekusi jika program yang
sedang dieksekusi di CPU 0 di drag langsung ke Process Bin.
Program 3 yaitu :
program Ex5_3
for n = 1 to 50
a = 1
b = a
c = 2
next
end
Saat program ini di
compile dan di load in memory lalu dieksekusi di virtual OS menggunakan
penjadwalan FCFS program Ex5_3 dengan Pid 2 akan masuk ke ready queue dan jika
proses sudah siap akan di eksekusi di CPU 0.
Ketika process selesai di eksekusi di CPU, process akan masuk ke Process
Bin.
a.
FCFS
( First-Come, First-Serve )
Algoritma ini merupakan
algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan
menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan
kedalam ready Queue atau antrian dengan prinsip first in first out,
sesuai dengan waktu kedatangannya. Tidak peduli apakah burst time-nya panjang atau
pendek,semua proses yang sedang di kerjakan di selesaikan terlebih duluh
barulah proses berikut nya di layani. Proses yang tiba terlebih dahulu yang
akan dieksekusi.
Penjadwalan FCFS
merupakan penjadwalan yang non-preeventive (run-to-completion) dan penjadwalan
ini tidak berprioritas. Ketentuan dari penjadwalan FCFS adalah proses-proses
diberi jatah waktu pemroses, diurut dengan waktu kedatangannya. Begitu proses
mendapat jatah waktu pemproses, proses dijalankan sampai proses tersebut
selesai, walaupun ada proses lain yang datang, proses tersebut berada dalam
antrian sistem atau disebut dengan ready queue.
Penjadwalan
untuk dua proses ( Program LoopTest dan Program Ex5_3 )
Saat kedua program ini
di compile dan di load in memory lalu dieksekusi di virtual OS menggunakan
penjadwalan FCFS program LooptTest dengan Pid 2 dan EX5_3 dengan Pid 4 akan masuk ke ready queue dengan urutan LoppTest
yang pertama dan EX5_3 yang kedua. Lalu jika proses sudah siap akan di eksekusi
di CPU 0 dengan urutan LoopT est yang dieksekusi terlebih dahulu kemudian
dilanjutkan dengan EX5_3. Ketika process selesai di eksekusi di CPU akan
langsung masuk ke Process Bin.
Sehingga akan
menghasilkan informasi log sebagai berikut :
00:57:38(38.309) [OS0:
00000335]: *** STATS FOR PROCESS P1(2)
***
00:57:38(38.309) [OS0:
00000335]: Elapsed Time = 00:00:06(06.407) ms
00:57:38(38.309) [OS0:
00000335]: Avg. Waiting Time = 0.04 sec
00:57:38(38.309) [OS0:
00000335]: Avg. Burst Period = 335 ms
00:57:38(38.309) [OS0: 00000335]:
Tick Count = 335 ms
00:57:38(38.309) [OS0:
00000335]: Memory Swap Count = 0
00:57:38(38.393)
[OS0: 00000336]: P2(4) moved from READY
to RUNNING state on CPU 0
00:57:48(48.104) [OS0:
00000841]: P2(4) terminated normally
00:57:48(48.104) [OS0:
00000841]: *** STATS FOR PROCESS P2(4)
***
00:57:48(48.104) [OS0:
00000841]: Elapsed Time = 00:00:10(09.712) ms
00:57:48(48.104) [OS0:
00000841]: Avg. Waiting Time = 6.54 sec
00:57:48(48.104) [OS0:
00000841]: Avg. Burst Period = 505 ms
00:57:48(48.104) [OS0:
00000841]: Tick Count = 505 ms
00:57:48(48.104) [OS0:
00000841]: Memory Swap Count = 0
Dan juga akan
menghasilkan Rata-rata Waiting Time untuk kedua process yaitu :
00:57:48(48.186) [OS0:
00000842]: Avg. Process Waiting Time = 3.29 sec
Keterangan :
Elapsed
Time : waktu untuk menyelesaikan proses tersebut dari awal hingga selesai.
Avg.
Waiting Time : Rata-rata waktu yang dihabiskan menunggu
di Ready Queue
Avg.
Burst Period : Rata-rata waktu sebuah proses membutuhkan CPU diantara proses
menunggunya I/O
b.
PRIORITY
Algoritma SJF (Shortest-Job-First)
adalah suatu kasus khusus dari penjadwalan berprioritas,tiap-tiap proses di
lengkapi dengan nomor prioritas(integer),CPU di alokasikan untuk proses yang
memiliki prioritas paling tinggi (nilai integer terkecil biasanya merupakan
prioritas terbesar). Jika beberapa proses memiliki prioritas yang sama,maka
akan di gunakan algoritma FCFS.
Jadi, pada algoritma ini proses akan
melakukan penjadwalan berdasarkan prioritas, nilai prioritas dengan nilai
terkecil akan memiliki prioritas paling tinggi. Seperti contoh diatas proses
dengan Pid 2 memiliki nilai prioritas 3, proses dengan Pid 4 memiliki nilai
prioritas 2, proses dengan Pid 5 memiliki nilai prioritas 4, dan proses dengan
Pid 6 memiliki nilai prioritas 3. Maka pada ready queue proses dengan nilai
prioritas yang terkecil akan menempati urutan pertama untuk dieksekusi sehingga
untuk seperti contoh diatas pada ready queue Pid 4 akan menempati urutan
pertama dengan nilai prioritas 2, dilanjutkan dengan Pid 2 dengan nilai
prioritas 3, dilanjutkan dengan Pid 6 dengan nilai prioritas 3 dan yang
terakhir adalah Pid 5 dengan nilai prioritas 4. Selanjutnya jika proses sudah siap akan langsung di eksekusi di
CPU 0 sesuai dengan urutan penjadwalan tadi.
Ketika process selesai di eksekusi di CPU, process akan masuk ke Process
Bin.
Sehingga akan
menghasilkan informasi log sebagai berikut :
01:29:26(25.819)
[OS0: 00000000]: NEW SCHEDULER SESSION STARTED
01:29:26(25.819)
[OS0: 00000000]: Scheduling scheme is Shortest-Job-First with Non-preemptive
priority
01:29:26(25.819) [OS0:
00000000]: Memory allocation policy is First Fit
01:29:26(25.855)
[OS0: 00000000]: P1(2) moved from READY
to RUNNING state on CPU 0
01:29:32(32.275) [OS0:
00000335]: P1(2) terminated normally
01:29:32(32.275) [OS0:
00000335]: *** STATS FOR PROCESS P1(2) ***
01:29:32(32.275) [OS0:
00000335]: Elapsed Time = 00:00:06(06.421)
01:29:32(32.275) [OS0:
00000335]: Avg. Waiting Time = 0.04 sec
01:29:32(32.275) [OS0:
00000335]: Avg. Burst Period = 335
01:29:32(32.275) [OS0:
00000335]: Tick Count = 335
01:29:32(32.275) [OS0:
00000335]: Memory Swap Count = 0
01:29:32(32.343)
[OS0: 00000336]: P2(4) moved from READY
to RUNNING state on CPU 0
01:29:42(41.870) [OS0:
00000841]: P2(4) terminated normally
01:29:42(41.870) [OS0:
00000841]: *** STATS FOR PROCESS P2(4) ***
01:29:42(41.870) [OS0:
00000841]: Elapsed Time = 00:00:10(09.526)
01:29:42(41.870) [OS0:
00000841]: Avg. Waiting Time = 6.52 sec
01:29:42(41.870) [OS0:
00000841]: Avg. Burst Period = 505
01:29:42(41.870) [OS0:
00000841]: Tick Count = 505
01:29:42(41.870) [OS0:
00000841]: Memory Swap Count = 0
01:29:42(41.931)
[OS0: 00000842]: P3(5) moved from READY
to RUNNING state on CPU 0
01:29:48(48.396) [OS0:
00001177]: P3(5) terminated normally
01:29:48(48.396) [OS0:
00001177]: *** STATS FOR PROCESS P3(5) ***
01:29:48(48.396) [OS0:
00001177]: Elapsed Time = 00:00:06(06.466)
01:29:48(48.396) [OS0:
00001177]: Avg. Waiting Time = 16.11 sec
01:29:48(48.396) [OS0:
00001177]: Avg. Burst Period = 335
01:29:48(48.396) [OS0:
00001177]: Tick Count = 335
01:29:48(48.396) [OS0:
00001177]: Memory Swap Count = 0
01:29:48(48.470)
[OS0: 00001178]: P5(6) moved from READY
to RUNNING state on CPU 0
01:29:58(58.054) [OS0:
00001683]: P5(6) terminated normally
01:29:58(58.054) [OS0:
00001683]: *** STATS FOR PROCESS P5(6) ***
01:29:58(58.054) [OS0:
00001683]: Elapsed Time = 00:00:10(09.583)
01:29:58(58.054) [OS0:
00001683]: Avg. Waiting Time = 22.65 sec
01:29:58(58.054) [OS0:
00001683]: Avg. Burst Period = 505
01:29:58(58.054) [OS0:
00001683]: Tick Count = 505
01:29:58(58.054) [OS0:
00001683]: Memory Swap Count = 0
Dan juga akan
menghasilkan Rata-rata Waiting Time untuk ke empat process
yaitu :
01:29:58(58.115) [OS0:
00001684]: Avg. Process Waiting Time = 11.33 sec
Keterangan :
Elapsed
Time : waktu untuk menyelesaikan proses tersebut dari awal hingga selesai.
Avg.
Waiting Time : Rata-rata waktu yang dihabiskan menunggu
di Ready Queue
Avg.
Burst Period : Rata-rata waktu sebuah proses membutuhkan CPU diantara proses
menunggunya I/O
Tidak ada komentar:
Posting Komentar