+----------------------+ | OS 211 | | TASK 0: ALARMCLOCK | | DESIGN DOCUMENT | +----------------------+ ---- PRELIMINARIES ---- >> If you have any preliminary comments on your submission, or notes for the >> markers, please give them here. >> Please cite any offline or online sources you consulted while preparing your >> submission, other than the Pintos documentation, course text, lecture notes >> and course staff. ALARM CLOCK =========== ---- DATA STRUCTURES ---- >> A1: (2 marks) >> Copy here the declaration of each new or changed `struct' or `struct' member, >> global or static variable, `typedef', or enumeration. >> Identify the purpose of each in roughly 25 words. ---- ALGORITHMS ---- >> A2: (2 marks) >> Briefly describe what happens in a call to timer_sleep(), including the >> actions performed by the timer interrupt handler on each timer tick. >> A3: (2 marks) >> What steps are taken to minimize the amount of time spent in the timer >> interrupt handler? ---- SYNCHRONIZATION ---- >> A4: (1 mark) >> How are race conditions avoided when multiple threads call timer_sleep() >> simultaneously? >> A5: (1 mark) >> How are race conditions avoided when a timer interrupt occurs during a call >> to timer_sleep()? ---- RATIONALE ---- >> A6: (2 marks) >> Why did you choose this design? >> In what ways is it superior to another design you considered?