pchapin's CIS-4020 Operating Systems, Fall 2024


Instructor

Peter Chapin. Office: WIL-414 on the Williston campus. Phone: (802) 879-5974 (voice mail active). Email: peter.chapin@vermontstate.edu. I will usually respond to email within one business day. Email is the best way to contact me. I am also sometimes on the Libera.Chat IRC network under the nickname pcc. Some VTSU students maintain a Discord server for SE/IT classes at Vermont State University. I can usually be found there as pchapin. Use this link to join that system: https://discord.gg/rgk3vDbZwE.

Course Description

This is a course on operating system internals. The focus is on practical topics that are important in real systems. Results of purely theoretical interest will not be emphasized, although some theory will be included in the course to help put the practical issues into their proper perspective. To make the topics more concrete, we will look at the specifics of a real-life operating system: Linux.

A secondary goal of this course is to give you experience browsing and reading a large code base written by others, such as the Linux kernel. In the lab, there will be a significant amount of programming, mostly in C. Some labs will also require you to draw on your system management skills and on your networking knowledge.

The official course outline lists high-level course goals and content. The working course outline and lab summary documents are more detailed than the official outline, but they are works in progress and subject to frequent changes throughout the semester.

Prerequisites

I assume you have some familiarity with operating system concepts such as processes, virtual memory, file systems, and device drivers. These concepts are introduced in, for example, CIS-2010 (Computer Organization) and CIS-2230 (System Administration). In this course, we will explore these topics in much more detail, but it will be helpful if you have at least heard of them before.

In addition, you should know about the classic data structures such as lists, binary trees, and hash tables. Some labs will require you to be familiar with some networking topics. You should also have a basic understanding of basic hardware topics such as interrupts, buses, and memory organization. Finally, you should be comfortable programming in C. Some assembly language may also be required, but it will be introduced as needed.

Resources

The texts are in a curated playlist in the O'Reilly Collection. Use your VSC credentials to access it.

In this class, we will be looking at three different systems:

I have created an email distribution list for the class. I will use this list to distribute announcements and other supplementary materials. Be sure to check your mail regularly (daily) or you might miss something important. If you send a question by email directly to me, I may reply to my distribution list if I think that others would benefit from my answer. If you rather I did not reply to the list, you should say so in your message.

My home page contains various documents of interest.

Grading Policy

I grade on a point system. Each assignment is worth a certain number of points. At the end of the semester, I total all the points you earned and compare that to the total number of possible points. There are two parts to your grade in this course.

  1. Homework. 10 pts/each. There will be approximately eight assignments during the semester for a total of about 80 points. You will usually have one week to do each assignment. I will drop the lowest homework grade.

  2. Labs. 20 pts/each. There will be about eight labs during the course for a total of about 160 points. The exact number of points and the exact requirements for each lab will depend on the lab.

Late Policy

In general, late submissions are not accepted. If something comes up that prevents you from handing in an assignment on time, contact me before the deadline to discuss your issue. Under reasonable circumstances I am usually willing to grant an extension.

Copying Policy

I encourage you to share ideas with your fellow students, so I won't be shocked to learn that you've been talking with someone about an assignment. In fact, if you worked closely with someone else, you should make a note on your submission that mentions the names of your associates.

However, I do ask you to do your own work in your final submissions. The goal is for all the work in your submission to have passed through your brain so that you comprehend it. If in doubt, ask yourself this: if I called you into my office and asked you to explain what you did, would you be able to do so?

If two submissions exhibit what I feel to be "excessive similarity" I will grade the submissions based on merit and then divide the grade by two, assigning half the grade to each submission. If I receive more than two excessively similar submissions, I will divide the grade by the number of such submissions and distribute the result accordingly.

Since "excessive similarity" is a bit subjective, I may only give you a warning if the similarity is not too excessive—especially for a first offense. However, I do keep records on when I find excessive similarity, and I will be much less inclined to be forgiving if I discover it again. If you are concerned about the possibility of submitting something that might be too similar to another student's work, don't hesitate to speak with me first.

If you find material on the Internet or in a book that seems to answer questions I ask in an assignment, you may include such material in your submission provided you properly reference it. If I discover that you have included unreferenced material from such sources, I may not give you any credit for the question(s) answered by such material. You do not need to provide a reference to our text book or to materials I specifically provide in class.

I don't object to you using AI chatbots to research answers to questions on homework assignments or in labs. You are responsible, as always, for the accuracy of whatever you submit. Also, please reword any AI-generated text in your own words. Often, an AI-generated text is overly wordy or includes significant irrelevant material. I may grade you down if your answers wander excessively. I want you to understand what you're saying, so you should be able to filter out excessive and inaccurate chatter from an AI-generated response.

If you do include significant text from an AI chatbot, please include a citation for it as you would for any material taken from another source.

Other Matters

Students with disabilities may request accommodation as provided within federal law. All such requests should be made by first contacting disabilityservices@vermontstate.edu.


Last Revised: 2024-08-12
© Copyright 2024 by Peter Chapin <peter.chapin@vermontstate.edu>