Anda di halaman 1dari 16

PRAKTIKUM 2

LO 1: Investigating Process States and State Transitions

1. Drag process to the waiting queue (i.e. put in waiting state)

Proses yang berada di running state dapat berpindah ke waiting state.

2. Drag process to the Process Bin (i.e. terminate it)

Proses tidak dapat dilakukan dan terjadi error.


3. Drag process to the CPU 0 box (i.e. run it)

Proses tidak dapat dilakukan dan terjadi error.

4. Drag process to the waiting queue

Proses berhasil namun tidak terjadi perubahan.


5. Drag process to the CPU 0 box

Proses tidak dapat dilakukan dan terjadi error.

6. Drag process to the Process Bin

Proses tidak dapat dilakukan dan terjadi error.


7. Drag process to the Ready Queue (i.e. put it in ready state)

Proses berhasil dan berpindah ke ready state.

8. Click on the RESUME button in OS Control tab

Proses berhasil dan berpindah ke running state.


9. Drag process to the ready queue

Proses berhasil dan berpindah ke ready state.

10. Click on the RESUME button in OS Control tab

Proses berhasil dan berpindah ke running state.


11. Drag process to Process Bin

Resultant Success Fail


Action to take
State (Y or N) (Y or N)
1. Drag process to the waiting queue (i.e. put in waiting state) waiting state Y N
2. Drag process to the Process Bin (i.e. terminate it) waiting state N Y
3. Drag process to the CPU 0 box (i.e. run it) waiting state N Y
4. Drag process to the waiting queue waiting state Y N
5. Drag process to the CPU 0 box waiting state N Y
6. Drag process to the Process Bin waiting state N Y
7. Drag process to the Ready Queue (i.e. put it in ready state) ready state Y N
8. Click on the RESUME button in OS Control tab running state Y N
9. Drag process to the ready queue ready state Y N
10. Click on the RESUME button in OS Control tab running state Y N
11. Drag process to Process Bin terminate Y N

Next, based on the results above, fill in only the legal state changes in the table below:

From State To State


Ready state Running state
Runnning state Waiting state
Waaiting state Ready state
Running state Ready state
Running state Process bin
LO 2: Investigating Process States – Waiting Queue and Events

First, you need to create a single process of this program using the CREATE NEW PROCESS
button in the Process tab.
Next, check ALL three Suspend on state change check boxes (there are three of them in OS
simulator).

Next, start the scheduler by clicking on the START button. Make a note in the table below of the
sequence of the next six states of the process (Note: You’ll need to click on the RESUME button
in the Process tab after each display of the message window just after the state change)

Setelah proses berpindah ke RUNNING state, klik resume.


Setelah proses berpindah ke WAITING state, klik resume.

Setelah proses berpindah ke READY state, klik resume.

)
Setelah proses berpindah ke RUNNING state, klik resume.

Setelah proses berpindah ke WAITING state, klik resume.

Proses tersebut akan berulang-ulang ketika terus menekan resume.

States
1. RUNNING
2. WATING
3. READY
4. RUNNING
5. WAITING
6. READY

Investigating IO Interrupts
Exercise 1 – Describe what interrupt vectors are and explain how they are used
In the compiler window, check only the boxes Generate code, Enable optimizer and
Redundant Code. Enter the following source code and compile it:
program Vectors
sub IntVect1 intr 1 writeln("This is intr 1")
end sub

sub IntVect2 intr 2 writeln("This is intr 2")


end sub

sub IntVect5 intr 5 writeln("This is intr 5")


end sub

while true wend


end
Di hasil compile kode amati subrutin IntVect1, IntVect2, IntVect5. Alamat awal dari subrutin
tersebut adalah berikut :

Subrutin Alamat Awal


IntVect1 0
IntVect2 20
IntVect5 40

Gambar 1 Hasil screenshot CPU-OS Simulator


Selanjutnya, lakukan hal berikut:
1. Muat kode yang dihasilkan dalam memori CPU.
2. Klik tombol INTERRUPT… untuk melihat jendela INTERRUPT VECTORS.
3. Catat angka yang ditampilkan di kotak teks di sebelah INT1, INT2 dan INT5.

Interrupt
Int1 0
Int2 20
Int5 40

Gambar 2
1. Kode yang dihasilkan tadi dimuat menjadi instruksi dalam memori (RAM)
2. Jendela intrrupt Vector
Bandingkan dua tabel di atas dan beri komentar singkat tentang pengamatan Anda di tempat di
bawah ini:

Alamat awal pada subrutin memiliki nilai yang sama dengan interrupt yang sesuai

Sekarang, ikuti petunjuk di bawah ini:


1. Klik tombol INPUT OUTPUT… untuk melihat jendela konsol.
2. Centang Stay on top di konsol dan jendela vektor interupsi.
3. Setel ulang program Vectors dan jalankan dengan kecepatan tercepat.
4. Saat program sedang berjalan, klik tombol TRIGGER di jendela interupsi terhadap
INT1, INT2 dan INT5 satu demi satu.
5. Amati pesan yang ditampilkan di konsol. Komentari pengamatan Anda:

Gambar 3

Gambar 4
Gambar 5 Komentari pengamatan Anda di tempat di bawah ini:
Gambar 1
Ketika trigger interrupt di clik console akan menampilkan “This is intr 1”, program akan
menjalankan instruksi sesuai dengan interrupt dan R02 pada register akan berubah
nilai menjadi 6
Gambar 2
Ketika trigger interrupt di clik console akan menampilkan “This is intr 2”, program akan
menjalankan instruksi sesuai dengan interrupt dan R02 pada register akan berubah
nilai menjadi 26
Gambar 3
Ketika trigger interrupt di clik console akan menampilkan “This is intr 5”, program akan
menjalankan instruksi sesuai dengan interrupt dan R02 pada register akan berubah
nilai menjadi 46

Setelah itu akan kembali pada program utama dan nilai R02 pada register akan
kembali menjadi 1
Exercise 2 – Describe two main methods of interrupt handling
Enter the following source code in a new source editor and compile it.
program PolledInt var v integer

v=0
writeln("Program Starting") while true
read(nowait, v) for i = 1 to 100 if v > 0 then
break * end if write(".")

next
wend
writeln("Program Ending")
end
Jelaskan secara singkat apa yang dilakukan program diatas

Program ini adalah sebuah loop yang berlangsung sebanyak 100 kali dan akan terus
berjalan meskipun kita telah menginputkan suatu karakter dan akan ditampilkan
tepat sebelum program berakhir.

1. Muat kode yang dihasilkan dalam memori CPU.


2. Atur kecepatan simulasi ke maksimum.
3. Tampilkan jendela konsol (gunakan tombol INPUT OUTPUT…).
4. Centang kotak Stay on top.
5. Klik pada kotak INPUT pada Konsol.
6. Mulai simulasi dengan mengklik tombol RUN Simulator CPU. Segera setelah pesan
Program Memulai ditampilkan di Konsol, ketikkan karakter tunggal apa pun di kotak
INPUT Konsol. Tunggu hingga program berakhir.
Gambar 6

Next, enter the following source code in a new source editor and compile it.
program VectoredInt var v integer

sub InputInt intr 1 read(nowait, v)


end sub

v=0
writeln("Program Starting") while true
for i = 1 to 100
if v > 0 then
break * end if write(".")
next
wend
writeln("Program Ending")
end
Jelaskan secara singkat apa yang dilakukan program diatas (catat dimana letak read statement
pada kasus ini)

Program ini adalah sebuah loop yang akan berjalan sebanyak 100 kali. Tetapi ketika
kita menginputkan sebuah karakter, program akan menampilkan karakter dan akan
berhenti
tepat setelah itu. Dalam program ini read statement diletakkan diawal
Muat kode yang dihasilkan dalam memori CPU. Atur ulang dan jalankan kode ini dengan
kecepatan tercepat. Segera setelah pesan Program Memulai ditampilkan di Konsol, ketikkan
karakter tunggal apa pun di kotak INPUT Konsol. Tunggu hingga program berakhir

Gambar 7
Exercise 3 – Explain the difference between polled and vectored interrupts
Berdasarkan pengamatan Anda pada latihan sebelumnya, jelaskan secara singkat perbedaan
perilaku kedua program, PolledInt dan VectoredInt, sehubungan dengan kecepatan respons
terhadap input. Jelaskan mengapa perbedaan ini.

Program PolledInt menajalankan loop secara penuh sebanyak 100 kali dan
hanya memeriksa input sekali setelah semua perulangan selesai.
Program VectoredInt dapat memanggil interrupt segera setelah karakter dimasukkan
tanpa perlu menyelesaikan perulangan.
Dengan demikian VectoredInt memiliki respon input yang lebih cepat

Berdasarkan pengamatan Anda pada latihan 2, dan melihat tabel di bawah ini, metode
penanganan interupsi mana yang tercantum dalam tabel, lebih efisien (beri tanda X)

Interrupt Method Select the most


effiecient one
Polled Interrup
Vectored Interrupt X
Exercise 4 – Compare the merits of the two main methods of interrupt handling

1. Berdasarkan pengamatan Anda di atas, sarankan dan jelaskan secara singkat alasan
mengapa Anda akan menggunakan metode Polled Interrupt daripada metode Vectored
Interrupt?

Polled Interrupt lebih cocok digunakan ketika event yang muncul tidak memerlukan
waktu respon yang cepat dan terjadi dan memiliki frekuensi muncul yang lebih sering

2. Jelaskan secara singkat di mana Anda akan menggunakan metode Vectored Interrupt
daripada Polled Interrupt?

Vectored Interrupt lebih cocok digunakan ketika event yang muncul memerlukan
waktu respon yang cepat dan terjadi dan memiliki frekuensi muncul yang jarang.

Anda mungkin juga menyukai