Nachos Project Assignment 1 Multiprogramming TA HungLeng Chen

  • Slides: 18
Download presentation
Nachos Project Assignment 1 Multi-programming TA: Hung-Leng Chen

Nachos Project Assignment 1 Multi-programming TA: Hung-Leng Chen

Outline Introduction to Nachos Install Nachos on Linux Assignment 1

Outline Introduction to Nachos Install Nachos on Linux Assignment 1

Introduction Nachos: • Not Another Completely Heuristic Operating System Written by Tom Anderson and

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

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

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.

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

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

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

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

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

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

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

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,

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

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

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.

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

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