Notes of nachos.pdf
Five Assignments:
- thread management and synchronization
- the file system
- user-level multiprogramming support
- the virtual memory system
- network support
Thread Management
- Mesastyle locks and condition variables using semaphores(provide solutions to a number of concurrency problems)
- The thread system is based on FastThreads [Anderson et al 1989]
- For simplicity, thread scheduling is normally nonpreemptive but to emphasize the importance of critical sections we have a command line option that causes threads to be time-sliced at random but repeatable points in the program.
Concurrent programs are correct only if they work when a context switch can happen at any time
课件
Chapter 01 An Overview of Nachos
nachos.conf sample
Machine.stubFileSystem = false
Machine.processor = false
Machine.console = false
Machine.disk = false
Machine.bank = false
Machine.networkLink = false
ElevatorBank.allowElevatorGUI = true
NachosSecurityManager.fullySecure = false
ThreadedKernel.scheduler = nachos.threads.RoundRobinScheduler #nachos.threads.PriorityScheduler
Kernel.kernel = nachos.threads.ThreadedKernel
Boot Process
- 创建nachos.machine
- 硬件初始化:the interrupt controller, timer, MIPS process