## 6 thoughts on “Tutorial 5”

1. Ng S.C Priscilla says:

i don’t understand q1 part c: Round Robin’s turnaround time for B.. why is it 15 and not 16? Here is my process trace:

| A | B | A | B | A | A | X | A | A | B | A | B | A | X | X | X |
| B submitted
| B runs | B ends

is there something i misinterpreted? thanks for any help!

• Ng S.C Priscilla says:

i meant to label the positions where b is submitted, started and ended.. hope its still understandable ><

• Lim Seok Min says:

Assuming the time taken to join the queue is negligible, B will finish its last unit of I/O processing at the 8th time unit and join the queue immediately. A

At the 9th time unit, A will use up its time quantum and CPU will pick B from the queue.

Mm, correct me if I’m wrong~

• Raymond Yeo says:

shouldn’t B finish its last unit of I/O processing of the first run at the 9th time unit? this is the diagram that i drew:

C: ABABAA AABABA
O: BBABB BABBB

*C means CPU and O means I/O

correct me if i’m wrong.

• Ng S.C Priscilla says:

i think we made the same mistake in interpretation…

think about the Round Robin as a Q that keep moving… lets label the pieces..

A1|A2|A3|A4|A5i/o|A6|A7|A8|A9|A10i/o
B1|B2|B3i/o|B4i/o|B5i/o|B6i/o|B7| B8|B9i/o|B10i/o| B11i/o|B12i/o

Initialised:
Queue <— A1 <—- B1

when A finish, it moves to the back

Queue <—B1 <— A2

when it comes to a point that after B executes, it do I/O, means it wont join the queue

Queue <—-B2 <—-A3
Queue <—-A3

when this instance of A finish, it immediately joins the queue and runs immediately

Queue <—-A4

when A4 finish, next one A5 is an I/O so the queue becomes empty. after A finish I/O, immediately joins queue because B is still busy wif I/O

Queue
Queue<— A6

now, when that A6 is running (near the end of the time quantum), B6 finish I/O, B7 immediately joins the queue

Queue <— A6 <—- B7

when A6 finish, A7 will join the queue… but since B7 is there already, B7 will run first

Queue<–B7<—A7

Thats why the process trace is

ABABAAXABABAAXX

2. Shubham Goyal says:

Hi prof,
Sorry if this is trivial, but when I was revising Tut 5, this doubt came up. This is regarding question 1. So, when the processes will be running FCFS, I think this will be the execution order –
First 4 units – compute of A will execute
Units 5 – 6 => compute of B (since A is blocked for IO)
Units 7 – 10 => compute of A again (IO of A finishes, B is blocked for IO)
Units 11 – 12 => compute of B again (A is blocked for IO, IO of B has already finished)
Unit 12 => A exits (B is blocked for IO and exit takes negligible time)

So, according to my calculations, I think the answer should be 12. Can anyone please tell me where I am wrong?