0% found this document useful (0 votes)
115 views26 pages

Nachos Overview Project 1 - Thread Management: Chien Wen, Huang. Advisor: Farn, Wang

This document provides an overview and instructions for completing Project 1 of the Nachos operating system educational assignment. It introduces Nachos and explains how to install it in a Linux virtual machine. Project 1 involves fixing a bug in Nachos' thread management that causes test programs to execute out of order. The report requires students to analyze the problem, describe their fix, and present their work. Tips are provided for debugging, using Nachos data structures, and getting help online.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
115 views26 pages

Nachos Overview Project 1 - Thread Management: Chien Wen, Huang. Advisor: Farn, Wang

This document provides an overview and instructions for completing Project 1 of the Nachos operating system educational assignment. It introduces Nachos and explains how to install it in a Linux virtual machine. Project 1 involves fixing a bug in Nachos' thread management that causes test programs to execute out of order. The report requires students to analyze the problem, describe their fix, and present their work. Tips are provided for debugging, using Nachos data structures, and getting help online.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Nachos Overview

Project 1 – Thread Management


Chien Wen, Huang.
Advisor: Farn, Wang.

1
Outline
• Introduction of Nachos.
• Installation of Nachos.
• Linux 32-bit for Nachos.
• Project 1 – Thread Management.
• Some tips for Nachos.

2
Introduction of Nachos

3
What is Nachos?
• Not Another Completely Heuristic Operating System

4
What is Nachos?
• Designed by Thomas Anderson at UC Berkeley in 1992.
• Written in C++, but Danial Hattena has rewritten Nachos in JAVA.
• We use the C++ version here.
• Educational OS that some components can be implemented by users.
• Process management.
• CPU scheduling.
• Memory management.
• File system management.
• Networking.

5
Why Nachos?
• Nachos has basic functionality even at the beginning.
• Implement one part at a time.
• Too hard and dangerous to handle real hardware.
• Nachos is just a UNIX process runs on real OS.
• And real OS runs on real machine.
• Simulator makes debug more easier.

6
Structure of Nachos

7
Installation of Nachos
Linux only…

8
Linux 32-bit machine only
• Theoretically, You can use any Linux distribution as your platform.
• Ubuntu, Fedora, Debian…
• Remember to use 32-bit instead of 64-bit.
• Recommended choice, 32-bit Ubuntu 14.04 or older version.
• So how can I set up the environment exactly?

9
Virtual Machine & Image
• Virtual machine runs on your current OS.
• virtual box, vmware…
• Ubuntu Desktop
• http://www.ubuntu.com/download/desktop/
• Download the image (.iso file).
• Remember to choose 32-bit version!
• Load the image into your virtual machine.
• Or you can set up your own new virtual machine of course.

10
Nachos installation on Ubuntu 14.04 (32bit)
• Download the Nachos package and the cross compiler package from
http://cc.ee.ntu.edu.tw/~farn/courses/OS/OS2015/index.htm
• Install g++ and csh
• sudo apt-get install g++
• sudo apt-get install csh
• Untar packages
• tar –zxvf nachos-4.0.tar
• mv mips-x86.linux-xgcc.tar /
• tar –zxvf /mips-x86.linux-xgcc.tar
• Make
• cd ~/nachos-4.0/code
• make

11
File Hierarchy of Nachos
• bin
• filesys
• File system
• lib
• Many useful data structures.
• E.g. bitmap, hash, list…
• Machine
• Hardware and virtual memory.

12
File Hierarchy of Nachos
• network
• ports
• test
• Some test cases here.
• threads
• thread managements, synchronizations.
• userprog
• Process and memory management for users.
• The first project focus on here.

13
Project 1
Thread Management

14
Project 1
• cd ./userprog
• ./nachos –e ../test/test1
• Print integer:9
• Print integer:8
• Print integer:7
• Print integer:6
• ./nachos –e ../test/test2
• Print integer:20
• Print integer:21
• Print integer:22
• Print integer:23
• Print integer:24
• Print integer:25
• The programs execute correctly
15
Project 1
• ./nachos –e ../test/test1 –e ../test/test2
• 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
• …
• The result is wrong. And we are going to fix it.

16
Trace code and fix the issue
• Trace the following files and find out why the result is 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/userprog/translate.h
• nachos-4.0/code/userprog/translate.cc
• After you fix the bug, recompile Nachos and see if the result is correct.
• (Optional)Design your own test program and see what’s the
difference.
• Tell us anything interesting you find by your report.

17
Format of Source code & Report
• Report
• Why the result is not congruent with expected.
• The plan you take to fix the problem in Nachos.
• How you really modified Nachos, including some (not all) important code
segments and comments.
• Experiment result and some analysis.
• Please saved as [Student ID]_NachOS_report.pdf
• E.g. r04942044_NachOS_report.pdf

18
Hand in source code & report
• Source Code
• tar zcvf [Student ID]_Nachos1.tar.gz ./nachos-4.0
• E.g. r04942044_Nachos1.tar.gz
• Mail your source code and report to [email protected]
• One pdf file as report and one tar.gz file as source code.
• Deadline: Nov.18.2015, 23:59:59.

19
Presentation
• Choose one of these three projects to present:
• Nov.18.2015
• Dec.16.2015
• Jan.20.2016
• Register you choice in the following link before Oct.28.2015.
• http://goo.gl/forms/6xQSr5MqBn
• About 11 people to present in each project.
• Randomly assigned from first wish to last.
• If not registered, I will randomly assign you to each of the three.
• About 10 minutes(not including Q&A) in you presentation.

20
Presentation Details
• What’s your contribution to this project.
• Not necessary to make ppt.
• You can just use your report and source code to present.
• The main point is…
• Problem analysis and what’s you plan to solve it.
• What you do with this project.
• Extra observation.
• Some presentation skill.

21
Grading Policy
• With presentation:
• Nachos source code: (30%)
• Report: (30%)
• Correct format: (20%)
• Presentation: (20%)
• Without presentation:
• Nachos source code: (40%)
• Report: (40%)
• Correct format: (20%)

22
Late Policy
• 10% penalty per day.
• Late penalty only holds for a week
• After 7 days, you will get 70% penalty, but no more penalty after that.
• That is, after n(n>=7) days, you will still get 70% penalty.
• Don’t give up!
• No plagiarism.
Some tips for Nachos
• Design before coding.
• Better create your own test program to get the idea.
• Trace before coding.
• Some IDE or text editor is useful if you are not a professional vim/emac user.
• No need to trace all the code in single project.
• Some useful data structure has been implemented in Nachos.
• See the lib directory.
• Google is your best friend.
• Copy and paste the error message to Google is useful.
• You are not alone 

24
TODO
• Register you choice in the following link before Oct.28.2015.
• http://goo.gl/forms/6a5COlMGuB
• Install the environment and Nachos.
• See what’s the problem.
• Fix the bug.
• Write the report.
• Send the code and report to TA with correct format.
• Prepare the presentation if you should.

25
Reference
• Nachos wiki:
• https://en.wikipedia.org/wiki/Not_Another_Completely_Heuristic_Operating
_System
• Nachos official site:
• http://homes.cs.washington.edu/~tom/nachos/
• Ubuntu desktop:
• http://www.ubuntu.com/download/desktop
• Nachos Beginner’s Guide:
• https://www.ida.liu.se/~TDDI12/material/begguide/

26

You might also like