Home Schedule Reading Presentations Projects People
Mac Logo Windows Logo Minix Logo Sun Solaris Logo Linux Logo

Note: This course syllabus is a general plan for the course; deviations announced to the class by the instructor may be necessary.

Synopsis

Throughout this course we will explore concepts of operating systems both from the design side and the implementation side perspectives. The design side will be investigated via lectures (discussions), presentations and reading core system research papers. The implementation side will be realized through several programming projects. The programming component will give you a real taste of systems programming and the inner workings of a real-world Operating System (Minix).

The learning goals of the course is to learn the basic principles of operating systems and how operating systems are organized and utilized. Specific topics include:

Topics will be covered either by lecture, reading or both.

General Information


Lectures: Tue/Thu, 2:00PM - 3:15PM Boyd # 306
1023-0306
Discussion: Wed, 2:30PM - 3:20 PM Boyd GRC # 306
1023-0306
  
Instructor: Maria Hybinette maria (at) cs.uga.edu
Office hours: Wed, 3:30-4:40 PM Boyd 219 C
and by appointment
     
TA: Babak Rahbarinia babak AT uga.edu
Office hours: Mondays 4:20 - 5:20PM. Boyd 301
   
Mailing lists:  CS-OS@listserv.uga.edu

Requried Text:

Cover Image




Operating System Concepts: 8th Update Edition
(revised for 2011)

Abraham Silberschatz, Bell Laboratories
Peter Baer Galvin, Corporate Technologies
Greg Gagne, Westminster College

The course material covered in class is primarily drawn from two text books: (1) The "Operating System Concepts (8th update edition - for 2011) by Silberschatz, Galvin and Gagne", or as it is sometimes called the Dinosaur book, and (2) The MINIX Book: Operating Systems, Design and Implementation: 3rd Edition by Andrew A. Tanenbaum and Woodhull.

The lectures are also influenced by other resources such as William Stallings (previously MIT); Deitel & Deitel’s OS Book and many more, other instructors & colleagues: Andrea & Remzi Arpaci-Dusseau, University of Wisconsin; Andy Wang, (UCLA) now at Florida State University Fred Kuhns, Washington University; Jeff Donahoo, Baylor University (TCP/IP and sockets), Darrell Long, UC Santa Cruz, Chris Kruegel, UC Santa Barbara, students feedback and last but not least Wikipedia (Yes! Wikipedia provides a good introduction to fundamental operating systems concepts and is also becoming a nice start for any research in topics in computer science).

Recommended Text (on reserve)

Cover Image


The MINIX Book: Operating Systems, Design and Implementation: 3rd Edition (link)

ISBN-10: 0131429388
ISBN-13: 9780131429383

Andrew S. Tanenbaum, Vriji University (link)
Albert S. Woodhull,

For background on lectures most textbooks on Operating Systems will do - but for projects the MINIX text book provides the best background - altough most of this material is available on the web (and the material on the web is more updated/recent).

Homework assignments will often use exercises from the dinosaur book, we will not provide the text of these exercises as we assume you possess this book (that is the dinosaur text book).

Other Required Text:

In addition to the text book you will need to read technical papers from the OS core literature (see reading link above) we will provide links or information on how to find these resources online or in the library. These texts are required.

Other Required Resources & Material

You will need to download VMware - there is free version for students. More on this later in the semester. Student from previous years have had luck with Virtual box.

Grading Policy and Evaluation (subject to change)

You are evaluated via exams & quizzes, homework, presentations and implementation of software projects. For most of the projects, you will learn to extend the functionality of a real Unix-style operating system, MINIX that can run natively on your hardware or on a virtual machine (such as Qemu, Boch or VMware). However to provide some consistency in grading and assisting you we will will require that your implementation runs on VMware. Regarding workload, as we get deeper into MINIX hacking, the amount of homework assignments will decrease allowing your more time to delve deeper into the workings on Operating Systems. The grade is configured from the below areas:

Participation 05%
Quizzes 05%
Exam 1 10%
Exam 2 10%
Final 15%
Homework 15%
Projects 20%
Summaries 15%
Presentation 05%

The general grading philosophy is the following:

A+ (95-100) Extraordinary, goes beyond minimum criteria both in depth and breath. Design is thourough and well thought out, code base and implementation is beautiful- modularized, complete, clear and concise. A well thought out debugging strategy is appearant. Well documented code. The evaluation plan is welll executed and well thought out, goes beyond the simple cases and illustrates strong problem solving skills.

A (90-94) Superior (somewhat less than an A+, almost perfect code, beautiful, concise, minimum criteria met, not as much depth and forethought as an A+ but it is superb), goes beyound meeting the minimum critera demonstrates depth, can apply solution to a variation of similar problems.

B (80-89) Good, minimum criteria well executed and well done, shows some depth and understanding, meets most testcases but not as much forethought as an A;

C (70-79) Fair, minimum criteria met, but could have been executed with more depth and forethought.

Late Policy

Homework assignments and summaries are due on the date and time specified in the assignment or the day of the presentation (email as a time stamp and hand-in hardcopy the next day). Late homework will not be accepted.

For the programming assignments you will have 3 grace days to extend the due date of a programming assignment (for you only, not the whole class). Programming assignments turned in after the due date lose 10% per day, including weekends and holidays. Grade days will be automatically applied at the end of the Semester. There will be opportunities throughout the semester to earn additional grace days.

There may be a time where you submit a project but it doesn't work for the TA (the TA will not fix your programs for you). If this happens, your project will be returned to you and you will be given the opportunity to fix and resubmit the project (after this point you may have to meet with the TA to demonstrate it). After the project is returned to you, every 24 hour period used to fix the project will use up a grace day. If you no longer have any grace days left, 10% will be docked off of the project for every day late. If you feel that the project should have worked, and you are not at fault, please contact the TA immediately in order to schedule an appointment to resolve the issue.

Homework and Projects Posting

Projects and homework will be posted on the web from the scheduling page (see link top menu bar), and will be accessible from anywhere on the Internet. Assignments may be posted before they are officially assigned; however, you should not assume that an assignment on the web is in final form until the date it is assigned. In other words, assignments are subject to change before the date that they are officially assigned.

The software programming projects are of-course an important component of this course. You'll be making changes to the MINIX 3 operating system, which runs on x86 processors or simulations of them. x86 simulators capable of running MINIX are available for Mac OS X, Windows X or Linux. The programming tools you'll need (C compiler, debugger, etc.) are part of the MINIX install CD (image available to download), which, along with more details on the projects, will be available from the project page (or schedule page).

Technical Paper Summaries

You will read/skim at least one technical paper or essay every week. For each week each you will prepare a 1-page summary on one of the presented papers (you may chose any one of the two). This summary must be emailed to the grader account before midnight on the day the paper is due, typically a Wednesday. You also must turn in a hard copy of the paper the following day (Thursday). The hardcopy will be used for grading and the email will check when you turned in the summary. The summary needs to reflect that you made an effort to read and understand the paper. The summary should address the questions listed on the reading list. You should also include a brief critique of the current week's presentation (both presentations). What else should have been included?/excluded? Suggested improvements? You may skip up to 2 summaries without a penalty (see reading page link above for specific questions that you need to address).

Presentations

You will present on one two topics throughout the semester, each presenter is expected to read additional technical papers (or essays) to ensure breadth of the week's topic. Some suggestions to add "breath" to your theme topic are listed in the reading list, or you may choose your own. You will select the theme, but the specific paper will be assigned (however you may suggest or express interest in particular paper).

Participation and Attendance

Class attendance is mandatory; we typically do not take attendance - but it happens, and class participation is 5% of your grade. So how do we know? Don't worry, we know.

Homework, assignments, and important dates will be posted on the scheduling page and is provided as a courtesy and is not always complete. It's your responsibility to find out what you missed if you don't attend class. You are also required to subscribe to the class email list or forum - and be aware that sometimes homework is assigned via the forum - or there are some hints posted in the forum - you probably do not want to miss that.

Office hours are of-course optional. They're your chance to ask the professor and TA questions about the material being covered, programming assignments, or anything else about operating systems (or other general computer science issues) you want to discuss.

Other Class Policies

The purpose of the assignments and projects is familiarization of concepts and details of system programming and designs. The assignments & projects are expected to be individual work unless other specified. However, you are encouraged to ask questions of one another, and to respond to other student's questions on the email list. Direct exchange of code is prohibited, as is line-by-line assistance from anyone or thing. This is checked for every assignments. If you do get help from other sources than book, slides, or TA you must acknowledge the source in the material that you turn in - still not copying is allowed.

Unless otherwise specified, exams are closed-book and no additional materials may be used. Missing an exam: absence due to serious illness will be an acceptable reason for missing an exam. Doctor's diagnostic note is required. The final grade will be scaled accordingly. You must subscribe to the class email list, see details HW1 listed on the schedule page. Assigned homework (if any) must be typed, you must also email a copy to the class email account.

Honor Code:

As a University of Georgia student, you have agreed to abide by the University's academic honesty policy, "A Culture of Honesty," and the Student Honor Code. All academic work must meet the standards described in "A Culture of Honesty" found at: http://www.uga.edu/honesty. Lack of knowledge of the academic honesty policy is not a reasonable explanation for a violation. Questions related to course assignments and the academic honesty policy should be directed to the instructor.

The link to more detailed information about academic honesty can be found at: http://www.uga.edu/ovpi/honesty/acadhon.htm

 

Class Photos

~~ Fall 2009 Class ~~