- ...address)
- See Section 1 for a
description of one common problem students encounter due to this.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...deadlock
- To correctly implement preemption, the
interrupt handler invoked when a running threads quantum expires needs
to switch to another thread. This is handled by having the interrupt
service routine invoke Thread::YieldOnReturn(), which delays the
actual preemption until it is safe to do so.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...stack
- Actually, threads technically do share their stacks
with other threads in the sense that a particular thread's stack will
still be addressable by the other threads. In general, however, it is
more useful to think of the stack as private, since each thread must
have its own stack.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...result.
- Warning: when
opening files, Nachos opens all files for both reading and
writing. Thus, the binary being loaded off of disk must be writable.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.