-
qWhy
does Tiny limit the user tasks to Reg Bank 0?
-
Write a program using Tiny OS that causes a context switch to occur with a
fair amount of data (calls) on the stack (least two threads). Then use the
simulator to trigger an interrupt.
-
determine the latency to the start of the interrupt routine
-
Are interrupts disabled for the entire context switch process? if so then
explain the experiment you did to prove this…otherwise
-
How is it possible to allow interrupts during context switch? Make sure
your interrupt routine also has some subroutine calls so that you can see
what happens to the stack.
-
If one thread signals another thread, then executes a wait before the end
of the OS timeslice, does the signaled thread start running immediately or
only at the beginning of the next timeslice?
-
Turn in answers to the questions along with your test code. Include clear
explanations for how you arrived at your answers.
-
The Keil debugger has many utilities to help you: Dissassembler, memory
window, timer window for timer 0, elapsed time in machine cycles and
seconds, etc. The debugger has lots of good tools for using the kernel. One of the
best is View->Periodic Window Update so that you can see variables
changing while the simulator is running. You can also get a list of
tasks and status. Also, you can look at RAM in the memory window, look
at timer status and change timer 0 values to cause context switch whenever
you want
-
Turn in clearly explained incontrovertible proof of your answers.