52 lines
1.5 KiB
Cheetah
52 lines
1.5 KiB
Cheetah
+----------------------+
|
|
| 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?
|