CS385 - Syllabus

Instructor Dr. Jakob Eriksson <jakob@uic.edu>
Meets 3:30-4:45 pm TR, in F6 LC
Office hours Tue 4:45-5:45 pm, Wed 2-3 pm (in SEO 1135)
 
Teaching Assistant Sepideh Roghanchi <srogha2@uic.edu>
Teaching Assistant Timothy Merrifield <tmerri4@uic.edu>
TA Office Hours Mon. 11 am-12 pm, Thurs. 2-3 pm (in ERF 2054)
Lab Phone 312-413-2103

OVERVIEW

By the end of this course, you will have a good understanding of the main elements that work together to form an Operating System (OS). You will have significant experience with C programming for low-level OS development, and some additional exposure to low-level application development. You will have acquired familiarity with standard tools for revision control, debugging, and system diagnostics.

While the class combines theory and practice, there will be a focus on practical demonstrations in lecture and extensive hands-on programming experience. Plan to spend 10 +/- 5 hours per week on homework programming, depending on your current proficiency.

MATERIALS

xv6 rev 7 source code
This is required reading, and should be brought to exams and class for reference. Printed copies will be handed out in class.

xv6 a simple, Unix-like teaching operating system
Russ Cox, Frans Kaashoek, and Robert Morris
This is a commentary to accompany the xv6 source code. It also covers some OS concepts.

Operating Systems - Principles and Practice 2/e
Anderson and Dahlin
Recursive Books.
This textbook is brand new, could be a little slow to ship. Order early.

(optional) The C Programming Language
Kernighan and Ritchie
Prentice Hall
All assignments are done in C. This is an excellent (and classic) introduction to the language.

additional materials will be supplied throughout the course in the form of web page URLs, likely drawn from MIT course 6.828 references.

PREREQUISITES

This class is programming intensive, with all assignments done in C. Basic C and systems programming skills will not be taught in this class, as CS361 is a required prerequisite.

EVALUATION

Evaluation will be done through 1 midterm (20 points), 1 final (30 points) and 10 homeworks (50 points). Grades will be based on a relative curve, determined after the final exam. Grad student results will not be used when determining the curve.

ACADEMIC INTEGRITY

Consulting with your classmates on assignments is encouraged, except where noted. However, turn-ins are individual, and copying code from your classmates is considered plagiarism. For example, give the question "how did you do X?", a great response would be "I used function Y, with W as the second argument. I tried Z first, but it doesn't work". An inappropriate response would be "here is my code, look for yourself".

To avoid suspicion of plagiarism, you must specify your sources together with all turned-in materials. List classmates you discussed your homework with and webpages from which you got inspiration or copied (short) code snippets. All students are expected to understand and be able to explain their turned-in materials. Plagiarism and cheating, as in copying the work of others (including material found online), paying others to do your work, etc, is obviously prohibited, is grounds for failing the course, and will be reported.

TOPICS COVERED (DRAFT)

  1. Purpose, Function and Structure of an OS
    1. Boot
    2. User / Supervisor modes, privileged instructions
    3. System Calls
    4. Processes and Context Switching
  2. Process Management
    1. Process Creation
    2. Processes vs. Threads
    3. CPU Scheduling
  3. Concurrency
    1. Interrupts, multiprocessing, simultaneous multithreading
    2. Synchronization mechanisms
    3. Race conditions and deadlocks
  4. Memory Management
    1. Virtual vs. physical memory
    2. Kernel memory allocators
    3. Virtual memory and paging hardware
    4. Swapping / page replacement
  5. Storage Management
    1. File systems
    2. Mass storage devices
  6. I/O and Device Drivers
  7. Authentication and Protection
 
Copyright 2014 The Board of Trustees
of the University of Illinois.webmaster@cs.uic.edu
WISEST
Helping Women Faculty Advance
Funded by NSF