ECE357
Computer Operating Systems, Fall 2024

Some general notes

This page contains lecture notes, problem sets, and some support materials for assignments.

There is no required textbook for this class. However, the following reference book is considered a "bible" of UNIX systems and network programming and may be helpful for at least some of the assignments: Stevens, W. Richard & Rago, Stephen A. Advanced Programming in the UNIX Environment. 3rd ed. Addison-Wesley, 2013.

Copies of problem sets will be posted on this web site. This site will contain some additional supplementary material and code, as needed for the assignments on a case-by-base basis. The due date will appear next to each problem set below, together with any special notes or hints that have cropped up.

Some of the units below will be covered in a single class meeting, but others will span several weeks.

More information about the class content and grading is in the syllabus which you are strongly encouraged to read in its entirety.

Before we begin: Comp Arch is an important prereq. To refresh a few concepts, I have created this Problem Set Zero. It will be graded on a Pass/Needs Improvement/Fail basis and will be due on paper, in class for week 2 (9/11). We'll review it then.

Note: I am leaving the previous year's lecture notes up. However, I will generally be updating them at the conclusion of each unit as material is revised, or questions come up during class that require further clarification. When the notes are updated, I will send an email and I will note it below next to the download link


Unit 1 -- An Introduction to the Operating System


For this unit, read the man pages for the following system calls (man pages section 2): open, close, read, write and the following library functions (section 3): errno,strerror,perror. Chapter 3 of the Stevens book contains useful additional info and examples.
Lecture notes unit #1 minor revisions 9/4/2024
Problem Set #1
Parts 1 and 2 due Wed 9/11 at start of class, on paper. (PS0 also due at the same time)
Part 3 due 5PM Wed 9/18.


Unit 2 -- File Systems / Storage Management


Chapter 4 of the Stevens book contains material relevant to this unit, including sample code which is similar to the assignment.
Lecture notes unit #2

Unit 3 -- Processes: fork, exec, exit, wait. I/O redirection.


Sections 7.1 - 7.6 and Chapter 8 in the Stevens book contain additional information that is useful for Unit 3.
Lecture notes unit #3

Unit 4 -- Signals and Pipes


Section 7.10 of the Stevens book covers setjmp/longjmp. Signals are the entirety of Chapter 10 of the book. Section 15.2 covers pipes.
Lecture notes unit#4.

Midterm

October 23 first half of class, will be reviewed briefly after the class break, then new material. Midterm expected to cover units 1/2/3/4


Unit 5 -- Virtual Memory / User and Kernel Memory Management


Section 14.8 of the Stevens book covers the mmap system call.
Lecture notes unit #5

Unit 6 -- Concurrency and Synchronization


Lecture notes unit #6

Unit 7 -- Kernel Structure, Entrypoints and Control Paths


Lecture notes unit #7


Unit 8 -- Task / Context Switch and scheduling


Lecture notes unit #8