CS501 Assignment No.2 Solution: a -...

1
CS501 Assignment No.2 Solution fall 2017 Solution: a. The device makes 100 interrupt requests per second, each of which takes 5000 + 1x2500 (context switching to the ISR and back from it) = 7500 cycles. Thus, a total of 100x7500=750000 cycles per second are spent handling I/O using interrupts b. The percentage of the processor time used in interrupt handling is 750000/ (300x10^6) or 0.25%. c. There are 100 interrupt requests per second, or one interrupt request every 5 ms. Every interrupt consumes a total of 7500 cycles, as calculated in part (a). For a 1000 MHz CPU, this is 7500 / (1000 x 10^6 ) = 7.5 microseconds. For 100 interrupts per second, this is 2.5 msec. This leaves 2500 2.5 = 2497.5 msec for polling Since the processor polls once every 0.3 msec during the time when there is no interrupt, this corresponds to 2497.5 / 0.7 = 3568 times per second The total number of cycles required for polling is 3568*300=1070400 cycles per second. 1070400+750000=1820400 cycles per second. d. The interrupt overhead is 2500 cycles per second for a context switch to the ISR And 2500 cycles per second back from it. This is a total of 1 x 2500 cycles per second. With 100 Interrupts per second, this is 100 x 2500 = 250000 cycles per second. The polling overhead is 300 cycles per second. Thus, for the same overhead as interrupts, the Polling operation should be performed 250000/ 300 = 833 times per second, or 1/833 = every 1.2 msec.

Transcript of CS501 Assignment No.2 Solution: a -...

CS501 Assignment No.2 Solution fall 2017

Solution:

a. The device makes 100 interrupt requests per second, each of which takes 5000 +

1x2500 (context switching to the ISR and back from it)

= 7500 cycles.

Thus, a total of 100x7500=750000 cycles per second are spent handling I/O using

interrupts

b. The percentage of the processor time used in interrupt handling is 750000/ (300x10^6)

or

0.25%.

c. There are 100 interrupt requests per second, or one interrupt request every 5 ms.

Every interrupt consumes a total of 7500 cycles, as calculated in part (a). For a 1000

MHz CPU,

this is

7500 / (1000 x 10^6 ) = 7.5 microseconds.

For 100 interrupts per second, this is 2.5 msec. This leaves 2500 – 2.5 = 2497.5 msec for

polling

Since the processor polls once every 0.3 msec during the time when there is no interrupt,

this corresponds to

2497.5 / 0.7 = 3568 times per second

The total number of cycles required for polling is

3568*300=1070400 cycles per second.

1070400+750000=1820400 cycles per second.

d. The interrupt overhead is 2500 cycles per second for a context switch to the ISR And 2500 cycles per second back from it. This is a total of 1 x 2500 cycles per second. With 100 Interrupts per second, this is 100 x 2500 = 250000 cycles per second. The polling overhead is 300 cycles per second. Thus, for the same overhead as interrupts, the Polling operation should be performed 250000/ 300 = 833 times per second, or 1/833 = every 1.2 msec.