- If you are getting "command not found" when you are trying to
run the nachos on Unix, and you have opened the shell script "bin/nachos"
using a Windows editor such as notepad, you may have converted the Unix text
file to a dos text file. The difference isn't great, but it's enough to prevent
the shell script from running. To fix this, use the dos2unix command. "dos2unix
nachos > nachos.new; mv nachos.new nachos"
- Priority Scheduling hint #1. A thread can only be waiting for one
resource at a time.
- Priority Scheduling hint #2. Remember that for some resources, such
as the CPU, it doesn't make sense to acquire() the resource. Consider how
a process who has the CPU can place herself back into the ready queue. Check
the transferPriority flag, and don't call acquire() from any functions in
PriorityScheduler.java if it is set.
- When implementing the ElevatorController class: the elevator bank sends
you (the ElevatorController) events. To get this events, you call setInterruptHandler()
on the ElevatorControls. You pass setInterruptHandler() a Runnable that specifies
the method you want to be run when a message is available. Now the elevator
bank is scheduling a timer event to send you these message, so when your handler
is called, it is called from the timer interrupt handler. Remember that interrupt
handlers must NEVER block. So you cannot use within that method that may block
(such as P() or acquire() or sleep()). On the other hand, interrupts should
be disabled when the interrupt handler is called, and you can call V() or
wake();