Nachos Project Assignment 1 Multiprogramming TA HungLeng Chen


















- Slides: 18
Nachos Project Assignment 1 Multi-programming TA: Hung-Leng Chen
Outline Introduction to Nachos Install Nachos on Linux Assignment 1
Introduction Nachos: • Not Another Completely Heuristic Operating System Written by Tom Anderson and his students at UC Berkeley • http: //www. cs. washington. edu/homes/tom/nachos/
Introduction (cont. ) An educational OS used to • teaching monolithic kernel design and implementation • doing experiments A virtual MIPS machine • User programs need a cross-compiler (target MIPS)
Install Nachos Platform: Linux , Linux over VMware or Cygwin • Check gcc version − gcc -v • gcc 3. 3. 3 and gcc 3. 2. 2 are ok. Install steps on Linux or Linux over VMware • Get Nachos-4. 0 <<作業公告>> • Get Cross Compiler <<作業公告>> • Move Cross Compiler to / − mv. /mips-decstation. linux-xgcc. tgz / • Untar Cross Compiler − tar zxvf /mips-decstation. linux-xgcc. tgz
Install Nachos (cont. ) • Untar Nachos-4. 0 − tar zxvf. /nachos-4. 0. tar. gz • Make Nachos-4. 0 − cd . /nachos-4. 0/code − make • Test if installation is succeeded − cd . /userprog −. /nachos –e. . /test 1 • You should see the following…
You should see test 1 result Total threads number is 1 Thread. . /test 1 is executing. Print integer: 9 Print integer: 8 Print integer: 7 Print integer: 6 return value: 0 No threads ready or runnable, and no pending interrupts. Assuming the program completed. Machine halting! Ticks: total 200, idle 66, system 40, user 94 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
You should see test 2 result Total threads number is 1 Thread. . /test 2 is executing. Print integer: 20 Print integer: 21 Print integer: 22 Print integer: 23 Print integer: 24 Print integer: 25 return value: 0 No threads ready or runnable, and no pending interrupts. Assuming the program completed. Machine halting! Ticks: total 200, idle 32, system 40, user 128 Disk I/O: reads 0, writes 0
Operate Nachos command help • . /nachos -h Debugging mode • . /nachos -s Execute files on Nachos • . /nachos –e. . /test 1
Recompile Modified Nachos Code cd nachos-4. 0/code make clean (optional) make • If you want to fully re-compile the source code, “make clean” is required. Or make will only re-compile the modified and related files. (save time)
Trace Nachos Read *. h and *. cc to have an overview about the whole system and see how it is implemented. Documentation (A Road Map Through Nachos) • http: //www. cs. duke. edu/~narten/110/nachos/main. html Trace for Nach. OS-4. 0 with GLOBAL • http: //cc. ee. ntu. edu. tw/~farn/courses/OS 2006/nachos/HTML/
Assignment 1 Go to nachos-4. 0/code/userprog and type “. /nachos –e. . /test 1 –e. . /test 2” Total threads number is 2 Thread. . /test 1 is executing. Thread. . /test 2 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 Print Print Print Print Print integer: 8 integer: 9 integer: 10 integer: 12 integer: 13 integer: 14 integer: 15 integer: 16 integer: 17 integer: 18 integer: 19 integer: 20 integer: 21 integer: 23 integer: 24 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 In some reasons, the output results didn’t match the behavior of “. . /test 1. c” and “. . /test 2. c”
Assignment 1(Hint) Please trace the following files to see why the output results are wrong • • • 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/machine/translate. h nachos-4. 0/code/machine/translate. cc
Assignment 1(Hint) Please modified the Nachos code to run the correct results. You may need to modify the following functions • Nachos-4. 0/code/userprog/addrspace. cc − constructor − destructor − init. Register − Load
Deadline 4/18 Tue 14: 00 Please tar your code and e-mail to kidd@arbor. ee. ntu. edu. tw entitled as your_student_ID. tar. gz • make clean (submit source code only) • tar zcvf r 92921100. tar. gz nachos-4. 0 Accompany with your report about what did you done to the Nachos source code (why and how) , or what did you get when tracing the Nachos source code.
Grading policy Note: your handout files must contain two parts • 1. modified nachos source code (ID. tar. gz) • 2. report Correct result 30% Report 70% Contact me if you have any problems • kidd@arbor. ee. ntu. edu. tw


















