Unformatted text preview:

Nachos Project Guide G22 2250 001 Operating Systems Fall 2007 Vijay Karamcheti Department of Computer Science Courant Institute of Mathematical Sciences New York University Preface 3 1 2 3 4 Nachos Project Policies and Mechanisms 4 1 1 What to Hand In 4 1 2 Grading 4 1 3 Late Work and Solutions 5 1 4 What Parts of Nachos to Modify 5 Working With Nachos 6 2 1 Installing and Building Nachos 6 2 2 Tracing and Debugging Nachos Programs 7 2 3 Controlling the Order of Execution in Nachos 8 2 4 The Nachos MIPS Simulator 9 2 5 Creating Test Programs for Nachos Kernels 10 Nachos Lab Assignments 12 3 1 Lab 1 The Trouble with Concurrent Programming 13 3 2 Lab 2 Threads and Synchronization 16 3 3 Lab 3 Programming with Threads 19 3 4 Lab 4 Multiprogrammed Kernel 22 3 5 Lab 5 I O 26 3 6 Lab 6 Virtual Memory 28 Nachos System Call Interface 31 4 1 Process Management 31 4 2 Files and I O 32 4 3 Pipes 32 2 Preface This document describes the Nachos programming projects used for G22 2250 the one semester M S Operating Systems course at New York University Nachos is an instructional operating system within which students can explore the key concepts that underlie most modern operating systems Note that this is an introductory course targeted towards students who may not have taken an operating systems course in their studies so far The document has its roots in the project guide created by Jeff Chase chase cs duke edu for use in the introductory Operating Systems course at Duke University I have made several modifications to the original document over the years in some of the assignment descriptions in formatting and in making the policies assignments and document references suitable for use at New York University Vijay Karamcheti August 15 2007 New York 3 1 Nachos Project Policies and Mechanisms In this course we will have a Nachos lab project due every two weeks starting two weeks after the first day of classes The one exception is Lab 6 which is due three weeks after it is handed out This section defines the course procedures and policies for doing the Nachos labs and assigning grades Please read it carefully The specific details of each assignment are covered in Section 3 See Nachos Lab Assignments You will find the information in Section 2 See Working With Nachos valuable for some or all of the assignments The system call definitions in Section 4 See Nachos System Call Interface will be important for Labs 4 and 5 By the end of the semester you will have read everything in this document 1 1 What to Hand In Each of you is expected to turn in a completed lab which represents work that you have performed on your own To make this clearer you can discuss with others the high level approaches that you might take to solve a particular lab problem but the actual coding and evaluation of this approach should be your own To turn in a lab 1 Place the source code files for the lab in a separate sub directory under your home directory on the department machines Include only the files that have been modified from the original distribution provided to you 2 Please e mail a short writeup 1 2 pages for each lab to the instructor before the deadline with the string nachos project writeup N in the subject line where N is the lab number The message should cc the TA if one exists The first line of your message should be the full pathname of your source code directory The rest of the message should give an overview of your approach to the assignment and a summary of the status i e what works and what does not Since there will very likely be a delay from the time you turn in a lab to the time we get a chance to examine your work please make sure that you do not accidentally or intentionally update the source files in the turn in directory For some of the labs we may additionally require that you demo the work in front of the TA or instructor These demo sessions will be announced in class and held during office hours 1 2 Grading Your implementation will be graded on completeness correctness programming style and thoroughness of testing Bugs that were not uncovered by your testing will likely impact your grade more than bugs you are aware of and tell us about in advance You should expect less than half credit for projects that do not compile build or do not run Please make sure that your writeup documents whatever command line options one may need to supply to run your program Note that in this course labs will NOT be graded on the basis of how fast they execute Performance concerns are critical in many software systems but correctness ALWAYS comes first As an unbending rule you should strive for solutions that are simple direct elegant structurally sound easy to extend and obviously correct Simple solutions can save you endless nights of debugging time These solutions are 4 also the easiest to grade and they demonstrate that you understand the principles and know what is right Each project will be graded on a 100 point scale You should be pleased with any grade above an 80 Grades below 70 indicate that your effort is failing to meet expectation If you are in trouble please ask for help from the TA and or the instructor or stop by during office hours to talk about it with the instructor The instructor or TA will send out e mail to you with your grade at most a week after the turnin date 1 3 Late Work and Solutions Late work To ensure that students do not unduly put off working on the labs a 20 grade penalty will be imposed for each week the lab is delayed after the due date Get started early and schedule your time carefully Availability of solutions In previous semesters that similar assignments have been used at NYU or at other universities it has never been necessary to hand out solutions We would rather have you expend the effort to fix your own bugs for each lab because ultimately that will help you learn the material better Note that the labs build upon each other so you do not really have the luxury to skip out on any of the labs without implementing at least some minimal functionality We may revisit this policy mid semester if we find that students are unable to make progress because of earlier labs 1 4 What Parts of Nachos to Modify Some students find the nature of the Nachos projects confusing because there is a significant amount of code already written and it is not always clear what to change or where to make additions Nachos is designed so that the changes for each assignment are reasonably localized and


View Full Document

NYU CSCI-GA 2250 - Nachos Project Guide

Loading Unlocking...
Login

Join to view Nachos Project Guide and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Nachos Project Guide and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?