Selasa, 10 Oktober 2017

INSTRUKSI PADA CPU SIMULATOR


  
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

Program SORTING DAN SEARCHING DATA Bahasa C

LISTING PROGRAM LOGIKA PROGRAM    #include <stdio.h> adalah penyisipan file standard input output header untuk ...