CPSC 410 / CPSC 611 -- Operating Systems (Summer 2006)

CPSC 410 / CPSC 611 -- Operating Systems (Summer 2006)


Section 410-501 / 611:

Time:
MW 4:00pm-5:55pm
Location:
113 HRBB


Instructor: Teaching Assistant:

Riccardo Bettati
509C Harvey R. Bright Bldg
845-5469
Office hours:
M 2pm-3pm
F 11am-12pm
and by appointment
e-mail:
bettati cs.tamu.edu

Ying Wei Yu
322A Harvey R. Bright Bldg
Office hours:
TR 10:30am - 12:00pm
e-mail:
yingweiy cs.tamu.edu


TA-Page | Schedule | Slides | Tests | Homeworks | Projects

News/Announcements:




Required Textbook

We will be following this textbook rather closely. Purchasing it for the course is strongly recommended.

Reference Material

These optional books complement the textbook. Perusing them may help you better understand some issues discussed in class.

Of course I never miss a chance to recommend the following bathtub reading to anybody with ambition to write decent code.


Lectures

During lectures we will be covering OS concepts and case studies. One particular "case study" will be the OS kernel developed in the projects, including the underlying architecture and run-time environment.

Tutorials

In addition to the lectures, we will have a series of tutorials, which will present additional material that is specific to the machine problems. For example, there will be a tutorial (more accurately called "crash course") on C++ as needed for this course. Other tutorials will provide the platform to discuss specific machine problems.

If there is interest, additional tutorials will be scheduled to present and discuss current OS related issues, that is, for material that is not part of the course syllabus.

Stay tuned for more information on tutorials!


Assessment Method

This couse will have two tests (225+225 = 450 points,) a series of projects (totalling 380 points,) and several homeworks (totalling = 170 points).

The grading scale looks as follows:

A: 901 - 1000 points

B: 801 - 900 points

C: 701 - 800 points

D: 601 - 700 points

F: 0 - 600 points

We expect that the projects (and perhaps the tests) will have some bonus points.


Late-Submission Policy

All the submission deadlines have included extra time for the consideration of accidental events such as (not limited to) unavailable resource (machines are down,) sickness of students, stock market collapse, distress due to the Aggies loosing a game, etc. This means that additional extensions are generally not granted. The rule of the game: START EARLY!

Both homework and projects will be submitted electronically. (More information about this will be forthcoming.) Lateness is penalized with 1/4 of the earned points of the item per day.

After the due date (plus 4 days) no more submissions will be accepted. Also, no make-up work submissions will be accepted.


Examinations

There will be one midterm and one final examinations. We are planning ot have both exams in-class.

All tests will be closed-book. You will be allowed one hand-written "cheat sheet" of size 8.5in x 5.5in. No other aids will be allowed, except for writing utensils.


Projects

In this course we will not only talk about operating systems; we will actually build one (at least portions of it.) You will get into writing some rather sophisticated code. While doing this, you will realize that writing OS code is to programming your typical application like NASCAR racing is to driving your mom-in-law to Sunday brunch. If you need somebody to hold you by the hand (like, memory protection) you will be in really bad shape. You will either have to learn to live without, or you will write your own. But the fun part is that you will learn how to nurture a CPU (or multiple CPUs) from the moment it wakes up until it has access to sufficient support infrastructure to run user programs on its own.

This semester we will be using MIPS IV as the underlying architecture for the projects. As execution platform we will be using a sophisticated software emulator for the MIPS CPU and enough supporting infrastructure (PCI busses, etc.) to represent a system where interesting stuff happens. For information on the emulation environment check out GXemul.

The environment for the projects is written in C++, which gives a nice opportunity to some of you to get a little experience in writing simple object-oriented code. It is simple, from an object-oriented standpoint. The code itself will be more sophisticated than most you will write before you graduate. For the students who are not familiar with C++, a short introduction of the most important concepts will be given in form of a tutorial. A working knowledge of C will be assumed.

Some of the projects will be graded at two levels:

Basic level: Handing in a correct solution at this level is perfectly fine, and is sufficient to get maximum points in class. Typically, it should not be difficult to solve the projects at this level.

Advanced level: For experts who think their talent is wasted on implementing solutions for the basic level. Handing in a correct (!) solution at this level will give you bonus points. A Note for 611 students: Expect to submit some of the projects at the Advanced Level, with no bonus points.


Communication Policy

Both the instructor and the teaching assistant for this course will do their best to communicate relevant administrative information (deadlines, information about posted material, details about projects, locations of tutorials, and so on) in an effective and timely manner. We will be using anouncements in class, postings on the web site, material on csnet, and occasionally e-mails to students.

Having said that, keep in mind that this is not a distance education course! You are expected to be current with the material covered in class and with any announcements made in class. In fact, announcements in class will override whatever information has been made available through the other channels. The instructor and TA cannot be held responsible for not conveying important information to students who did not attend class.

Note on e-mail etiquette: E-mail is a very convenient and potentially effective way to communicate with instructor and TA, but only if used in a professional manner. Keep in mind that -- in particular when a deadline is looming -- we are receiving many e-mails, and all senders expect immediate turn-arounds. Therefore, keep your e-mail short and to the point; indicate that you have done some thinking *before* typing the e-mail; provide necessary support documentation (e.g. code sections) when needed (don't attach huge amounts of code!); follow standard basic rules for courteous and professional communication; proofread your e-mail before sending it out. We will not answer e-mail that does not follow these rules. Repeated offenders will be added to the spam filter.

Note on e-mail accounts: Over the years we have been having problems with off-site e-mail accounts used by students. We will therefore be sending CS-410/611 related e-mail to the accounts listed on CSNET. (These are typically of the form xxxx@cs.tamu.edu or xxxx@tamu.edu, and are most likely not your neo accounts.) Make sure that you have access to these mails, and forward them appropriately if needed.


Academic Dishonesty

The Aggie Code Honor applies. (Check http://www.tamu.edu/aggiehonor for details.)

These pages are prone to change without notice! Consult them regularly to avoid surprises.


Riccardo Bettati
Last modified: Tue May 31 2006