68.2k views
4 votes
Design an algorithm for a monitor that implements an alarm clock that enables a calling program to delay itself for a specified number of time units (ticks). You may assume the existence of a real hardware clock that invokes a function tick() in your monitor at regular intervals.

1 Answer

6 votes

Answer:

The algorithm a monitor that implements an alarm clock is designed below.

Monitor alarm

{

Condition c;

int current = 0;

void delay (int ticks)

{

int alarms;

alarms = current + ticks;

while (current > alarms)

c. wait (alarms) ;

c. signal;

}

void tick ( )

{

current = current + 1;

delay. signal;

}

}

User Dwight Guth
by
4.2k points