Operating Systems
Clay Shields, Department of Computer Science, Georgetown University
Assignments, Exams, and Readings
Assignment | Due Date |
---|---|
Homework 1: Familiarization with Unix | January 26, 2022 |
Project 1: Writing a User Shell, Part 1 | February 9th, 2022 |
Project 1: Writing a User Shell, Part 2 | February 23rd, 2022 |
Homework 2: Problems posted to Canvas | March 2nd, 2022 |
Midterm Exam | In class, March 16th, 2022 |
Project 2: Scheduling Algorithm Simulation | |
Project 3: Paging Algorithm Simulation | April 20, 2022 |
Homework 3: Problems posted to Canvas | April 27th, 2022 |
Final Exam | May 6th, 2022, 12:30 to 2:30 - BUT CHECK RESGISTRAR SCHEDULE |
Resources
Textbooks
There are two books for this course. Both are available for
free, at least to Georgetown Students.
- Sort of required texts. These are for students who would
like to refer to readings of material covered in class.
- Operating System Concepts Essentials, 2nd edition. The bookstore may have it; you can find it elsewhere; or it is available online through the Safari Bookshelf, but only 10 people can access this service at any time from GU.
- Operating Systems: Three Easy Pieces. This is a fully-free OS book.
- Recommended texts:
Advanced Programming in the UNIX Environment: Second Edition, available online for GU students via the Safari Bookshelf; again, there is a limit on the number of concurrent users. You do not have to purchase it, but it is a valuable programming reference. - A fun but now dated reading on operating systems. In the Beginning was the Command Line.
Accounts
You will be given an account on a server named mclovin.cs.georgetown.edu. This will be the
official machine for programming assignments. You can work on your
own computer, but your code must work on and be readable on
mclovin. Please note: mclovin is not always backed up properly, so you must
make sure to keep copies of your code in a safe place.
Instructor and Course Information
Instructor
Clay Shields
Office: 323 St Mary's Hall
Office Hours: Wednesday 2:00-4:00 PM, or just knock on my door or email and we can arrange a time.
Contact information here.Course Description
This course studies the software systems that provide the interface between the computer system hardware resources and the users of the system. This interface is composed of a large collection of programs that provide simplified and uniform access to information storage (data and programs on tape, disk, and in memory), processing elements (CPUs and remote computers), input/output devices (telecommunications, keyboards, mice, video displays, printers, etc.), and data acquisition and equipment control devices. Topics include processes and threads of execution, concurrent process synchronization, concurrent access to hardware resources, file systems, memory management and virtual memory, job scheduling, and system modeling and performance evaluation. A variety of example operating systems of different types will be examined and their characteristics compared.Classroom Location
ICC 106
Policies
All of my courses are conducted under the same set of policies, described on this page.