Operating Systems
Clay Shields, Department of Computer Science, Georgetown University
Assignments, Exams, and Readings
Assignment | Due Date |
---|---|
Homework 1: Familiarization with Unix | January 21, 2015 |
Project: Writing a User Shell, Part 1 | February 4th, 2015 |
Project: Writing a User Shell, Part 2 | February 23rd, 2015 |
Homework 2: Problems posted to Piazza | March 2nd, 2015 |
Midterm Exam | In class, March 18, 2015 |
Project: Scheduling Algorithm Simulation | April 8th, 2015 |
Project: Paging Algorithm Simulation | <\!-- Due Date -\->April 22nd, 2015 |
Homework 3: Problems posted to Piazza | April 27nd, 2015 |
Final Exam | 12:30 - 2:30, Friday, May 4, 2015 - BUT CHECK RESGISTRAR SCHEDULE |
Resources
Textbooks
There are two books for this course.
- Required text:
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. - Recommended text:
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: Monday/Wednesday 3:30-4:30 PM, or just knock on my door.
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.
Policies
All of my courses are conducted under the same set of policies, described on this page.