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