nachos projects overview and project 1 ta : 王映智 2007/10/24
Post on 31-Dec-2015
224 Views
Preview:
TRANSCRIPT
Nachos Projects Overview and Project 1
TA : 王映智2007/10/24
Outline
What’s Nachos? Why do we use Nachos? Nachos Project Overview Nachos installation Nachos Assignment 1 Reference
What’s Nachos?
Nachos Not Another Completely Heuristic Operating System
Developed by Tom Anderson and his students at UC, Berkeley. http://www.cs.washington.edu/homes/tom/nachos/
What’s Nachos?
Nachos is an instrumental software that allows students to study and modify a “real” operating system.
The only difference between Nachos and a real operating system is that Nachos runs a Unix process, whereas a real operating system runs on a real machine.
What’s Nachos?
Nachos simulates a MIPS machine (MIPS R2/3000) on the host system (Unix, Linux, etc.)
Conceptually, Nachos has two modes of execution, namely, MIPS simulator and Nachos “kernel”
Reference : http://course.cs.ust.hk/comp252/web07fall/Lab1/Nachos%20architecture/nachos.ps
Why do we use Nachos?
For understanding operating system concepts, nothing is better than building an operating system.
Nachos is simpler than UNIX. Simulator makes debugging easier.
Deterministic
Nachos Project Overview
The project for this course is to build an operating system for scratch. The project contains four phases, corresponding to each of the major pieces of a modern OS. Multiprogramming Thread management File Systems and Virtual Memory Networking
Nachos Installation
Platforms you may use Unix, Linux, Linux over VMware, or Cygwin.
Environment Checking g++ version
g++ -v Both g++ 3.3.3 or g++ 3.2.2 are ok.
Get Nachos-4.0 http://cc.ee.ntu.edu.tw/~farn/courses/OS2007/nachos/nach
os-4.0.tar.gz wget
Nachos Installation
Get Cross Compiler http://cc.ee.ntu.edu.tw/~farn/courses/OS2007/nac
hos/mips-decstation.linux-xgcc.tgz Move Cross Compiler to /
mv ./mips-decstation.linux-xgcc.tgz /
Untar Cross Compiler cd / tar zxvf mips-decstation.linux-xgcc.tgz
Nachos Installation
Untar Nachos tar zxvf nachos-4.0.tar.gz
Make Nachos-4.0 cd ./nachos-4.0/code make
Test cd ./userprog ./nachos –e ../test/test1 ./nachos –e ../test/test2
Nachos Installation
You should see the result of test1
Nachos Installation
You should see the result of test2
Some Important Things
Nachos arguments Help
./nachos –h Debugging Mode
./nachos –s Execute files
./nachos –e [file_name]
Recompilation of modified nachos code cd nachos-4.0/code make clean (optional) make
Nachos Assignment 1
Abstract The assignment is to support multiprogramming. We give s
ome of the code you need, and you have to complete the system.
Try execute two programs at the same time on Nachos
cd ./userprog ./nachos –e ../test/test1 –e ../test/test2 you should see the following result.
Result of simultaneously execution Total threads number is 2 Thread ../test/test1 is executing. Thread ../test/test2 is executing. Print integer:9 Print integer:8 Print integer:7 Print integer:20 Print integer:21 Print integer:22 Print integer:23 Print integer:24 Print integer:6 Print integer:7 Print integer:8 Print integer:9 Print integer:10 Print integer:12 Print integer:13 Print integer:14 Print integer:15 Print integer:16 Print integer:16 Print integer:17
Result of simultaneously execution Print integer:18 Print integer:19 Print integer:20 Print integer:17 Print integer:18 Print integer:19 Print integer:20 Print integer:21 Print integer:21 Print integer:23 Print integer:24 Print integer:25 return value:0 Print integer:26 return value:0 No threads ready or runnable, and no pending interrupts. Assuming the program completed. Machine halting! Ticks: total 800, idle 67, system 120, user 613 Disk I/O: reads 0, writes 0 Console I/O: reads 0, writes 0 Paging: faults 0 Network I/O: packets received 0, sent 0
Why the output result of executing two program simultaneously differsfrom the result of executing two programs separately?
Why should you do?
Trace Nachos Read *.h and *.cc to understand the whole system
and see how it is implemented. You might use some documentations to help
yourself understand the system. A Road Map Through Nachos
http://cc.ee.ntu.edu.tw/~farn/courses/OS2007/ref/Nachos%20Road%20Map.pdf
Trace for NachoOS-4.0 with GLOBAL http://cc.ee.ntu.edu.tw/~farn/courses/OS2007/nachos/HTML/index.html
Hints
To know why the result is wrong, you may trace the following files. nachos-4.0/code/userprog/addrspace.h nachos-4.0/code/userprog/addrspace.cc nachos-4.0/code/userprog/userkernel.cc nachos-4.0/code/userprog/translate.h nachos-4.0/code/userprog/translate.cc
Hints
You have to modify the Nachos code to achieve the correct result.
You may try to modify the following functions nachos-4.0/code/userprog/addrspace.cc
constructor destructor initRegister Load
Assignment Requirements
Progress Report (11/7 on the class) Prepare a presentation about the following topics:
Your understanding about Nachos Your progress
Installation of Nachos Knowing why the result is not congruent with expected Your Plan for modifying Nachos
Everything you consider important
Assignment Requirements
Assignment Report (11/21 on the class) Prepare a presentation about the following topics:
Why the result is not congruent with expected How you modified Nachos to make it support
multiprogramming – important code segments Everything you consider important
Hand in your reports.
Please compress your code with tar. source code only tar zcvf r95943071.tar.gz nachos-4.0
E-mail your code and presentation files(report) to TA (mondale.tw@gmail.com).
Deadline: 2007/11/21 23:59
Grading Policy
Progress Report 20% Correct Result 30% Report 50%
Reference
Author’s Web Page http://www.cs.washington.edu/homes/tom/nachos/
Thomas Narten's Nachos Roadmap http://www.cs.duke.edu/~narten/110.html
Other Reference http://www.cse.ucsc.edu/classes/cmp111/Fall94/nachos/intro.html http://course.cs.ust.hk/comp252/web07fall/nachos_intro.html http://neuron.csie.ntust.edu.tw/homework/93/OS/homework_2/A9315010/html/
top related