CS 226: Operating systems and networking

Spring 2008

Instructor: David Bunde, SMC E-203, 341-7479, dbunde@knox.edu
Office hours: Whenever my office door is open; email for an appointment.
Website: http://courses.knox.edu/cs226

Course overview

In this class, we study principles and implementations of operating systems and networking. The operating system manages hardware resources and provides a simplified interface for programs to use these resources. Networking allows different computers to communicate and potentially act as a larger virtual system. These topics are closely related; networking is often managed by the operating system (and always requires use of the hardware it manages) and the operating system uses the network to provide services like the file system. To facilitate our study of these topics, we will learn the C language, which provides low-level access to the hardware and is often used in operating systems and networking.

Meetings

We meet Monday, Wednesday, Thursday, and Friday during 5th period (1:20-2:30). On Thursday, we meet in the Cat lab (SMC-E011). The other days, we meet in SMC-A112.

There will be no class April 16 so you can work on your midterm.

Books

Our textbook is "Modern Operating Systems" by Andrew Tanenbaum (3rd edition).

This book only covers the operating systems part of the course. For references on C, the standard references are

For the networking portion of the course, I suggest the following as references: All of these books will be put on reserve in the library.

Extra help

If you find yourself struggling in this course, get help right away. The term will move quickly and concepts in this course build on one another so you can't afford to get too far behind. Don't hesitate to come by my office or email me a question.

Rough schedule

The following is a rough schedule of what we'll cover each week. I will refine it as the term progresses so don't expect this to be our exact schedule. See the Lectures page for what we have actually done.

Week 1: Overview of operating systems and C.

Week 2: OS history. Processes. Memory management.

Week 3: File system.

Week 4: Scheduling. Networking protocol stacks. Midterm.

Week 5: Interprocessor communication. Threads.

Week 6: Deadlock.

Week 7: Network layer: IP. Begin transport layer: UDP.

Week 8: Checksums and error correction. TCP. Name service: DNS.

Week 9: Web: HTTP. Email: SMTP, MIME, POP, IMAP.

Week 10: Data link layer: Ethernet. ALOHA.

Assignments

Most assignments in this class will involve programming, though we will do some written assignments as well. Lab assignments will not be graded directly, but many of them will be assigned as homework. In addition, we will have a midterm exam the week of April 14 and a final during the finals period. Both will be take-home exams. The final will be cumulative, but emphasizing material since the midterm.

Be aware that I draw my examples for lecture from student assignments. Don't be surprised if something you submit ends up projected on the screen during class. The purpose of this is to demonstrate important concepts and to provide material for discussion, not to embarrass you. I will endeavor to use these examples anonymously by removing names and any other identifying features.

Late work

You should plan on submitting all work by the due date, but I know that sometimes this is difficult. Therefore, you get two "late days" that may be used on homework assignments during the term. Each allows you to submit one homework 24 hours late without penalty. They can be used for the same or different assignments. After these two days, assignments lose 10% of their points for each 24 hours they are late. Late submissions will not be accepted once solutions have been posted so let me know if you intend to work on something past its normal deadline. Individual extensions beyond these two days will require extraordinary circumstances.

Extra credit

I assign extra credit problems infrequently. I will however give extra credit for attending colloquium talks sponsored by the CS department and submitting a short writeup about the talk. Give a quick summary and any impressions you had in a couple of paragraphs (~1 page). It doesn't have to be brilliant prose; the main purpose is for me to see what YOU got out of the talk. This offer applies to any qualifying talk you are not otherwise getting credit to attend and is due within a week of the talk (slight extensions possible, but I want you to still remember the talk...).

Flunk day

If flunk day falls on the day something is due or the day before, that assignment is extended by one day. Flunk day also acts as a free "late day".

Absences

Regular attendance is expected, but there will not be a specific penalty for missing lecture. You are responsible for your own education. This means that you need to find someone to turn in homework if you are absent on the due date and you must find a way to learn the material covered during absences. In addition, please send me an email if you will be missing class so I know what is going on.

Policy on Collaboration

Exams in this class must be completed individually. You are allowed to talk with your classmates about homework. When you do this, however, you must do two things:

  1. First of all, you must acknowledge all collaborators by adding a note to your solution describing who helped you and how.
  2. Secondly, you must avoid "collaborations" where one person gives the solution to another. When working together, each person should contribute ideas. If one person is helping another, the helper can explain concepts and guide the "helpee" toward a solution, but cannot tell them how to solve the problem. In all collaborations, everyone is expected to understand the entire solution and each individual must write up their solution separately.

The same policies apply to getting help from inanimate sources. If you use the web or a textbook other than the one we're using, you must cite this source. As in collaborations with another person, you are expected to write you own solution; do not copy text or code from any source. In addition, you may look at other sources for examples or conceptual help, but not actual solutions. Some problems assigned for this class may have been previously assigned to other classes, but you are expected not to deliberately seek solutions. (If you come across one accidently, let me know and I will give you a modified assignment.) Please feel free to contact me if you have any questions about this policy.

Grading

At the end of the term, all of your work will combined into an overall percentage in the class based on the following weights:
Homework45%
Midterm25%
Final30%

The range of scores mapping to each grade will be determined at the end of the term. The mapping will not be stricter than the "standard" 90/80/70/60 and may be more generous. In general, spend your time learning the material rather than worrying about your grade, but feel free to talk with me if you are concerned about it.