CSC-4210 Operating Systems
Spring 2018
Instructor: Roger Shore Class Schedule:
Office Location: Congdon Hall 150 MW 12:05-1:45AM CSC-2310
Telephone: 841-9031 TTh 3:30-5:10PM CSC-4210
Office Hours: TTH 8-10AM TBA CSC-4610
MWF 2-3:30PM
E-Mail: Web site:

Course Description: An introduction to the various components of an operating system, including schedulers, memory management, interrupt handling, resource allocation, security and protection. Examples presented will be based on UNIX and other popular operating systems. Each student will participate in projects that involve kernel modifications, shell scripting, and simulations of components within the operating system.

Prerequisites: CSC-1720 or CSC-2710

Course Materials:

  1. Silberschatz, Galvin, and Gagne, Operating System Concepts (978-1-118-06333-0), 9th Ed., John Wiley and Sons, Inc, 2013
  2. You will need to setup an AWS account, I'll provide instructions to get needed credits so there is no cost to you. Also, while it is not a requirement, it would be nice if you had a functioning laptop available during class. See the projects section below for reasons.

Course Objectives:
Class Preparation: It is assumed that you will read the assigned chapters. Although the material may be summarized, lectures will be used mainly to further demonstrate other approaches to problem solving and to answer specific questions.

Projects: There will be a variety of projects during the semester. Each project in the series will involve some aspect of an Operating System. For some of the projects, you will be altering a linux kernel (I do not have access to the Windows Kernel). If you are unaware, Linux kernels can be download and modified. These projects will involve altering the kernel then compiling, installing and hopefully booting the kernel to validate the edits made to the kernel. For this reason, you will need to setup a virtual box (or vmplayer) on your laptop and an AWS account to test your kernel. Potential project titles are:
  1. Shell Program
  2. System Calls
  3. Synchronization Mechanisms
  4. Process communication
  5. Device Drivers
  6. File Systems
  7. File I/O
  8. I/O redirection and pipes

Grading of projects will be based on the number of projects completed during the semester. So, use the following grading scheme for the overall project grade:

  1. 5 projects completed - grade C
  2. 8 projects completed - grade B
  3. 12 projects completed - grade A
Course Policy:
  1. Attendance: Attendance will be taken daily at the beginning of class. You are expected to be present in every class meeting. If absent from class, you are responsible for all lectures, in-class exercises, assignments, and handouts. Caution: Being absent from class does not change the due date of assignments.
  2. Grades: Your final grade will be determined as follows:
    Component 5-12 Programimg Projects 2-3 Major Tests Cumulative Final Exam Total
    You must score at least the minimum of a category to be given the associated grade, i.e. an average of 80 is a B- not a C+.
  3. Make-Up test will not be given. Unless prior arrangements have been made with excusable reasons, NO make-up test will be given. If you miss a test your final grade will be used in place of the missed grade. This means the percentage of the final exam will increase. If you miss the final exam, you will receive an F for the course.
  4. Assignments: Assignments, quizzes, and class work sheets will assist you in the understanding of the material presented during class. These will appear in almost every class meeting during the semester. Items completed during class cannot be made up therefore the lowest two grades will be dropped to allow for an occasional absence. Programming assignments will have gracious due dates. You must turn in the assignment by the due date for full credit.
  5. Classroom etiquette:
  6. Lab etiquette:
  7. Students with Disabilities: Students who require classroom accommodations due to a diagnosed disability must submit the appropriate documentation to Disability Support in the Office of Academic Development, 4th Floor Smith Library. Student’s need for accommodations must be made at the beginning of a course. Accommodations are not retroactive.
Course Topics:
  1. Overview
    1. Introduction
      • Definition
      • History
      • Types
      • System Calls
      • The shell
  2. Process Management
    1. Process
      • Process Concept
      • Process Scheduling
      • Types
      • Interprocess Communication
    2. Threads
      • Overview
      • Multithreading Models
      • Examples
    3. CPU Scheduling
      • Basic Concepts
      • Scheduling Algorithms
      • Threading and Multiple-Processor Scheduling
    4. Process Synchronization
      • Background
      • The Critical-Section Problem
      • Peterson's Solution
      • Semaphores
      • Classical Problems
      • Monitors
    5. Deadlocks
      • System Model
      • Deadlock characterization
      • Prevention
      • Avoidance
      • Detection
      • Recovery
  3. Memory Management
    1. Main Memory
      • Memory allocation
      • Paging and the Page Table
      • Page replacement
      • Segmentation
    2. Virtual Memory
      • Background
      • Demand Paging
      • Copy-on-Write
      • Page Replacement
      • Allocation of Frames
      • Thrashing
      • Memory-Mapped Files
  4. Storage Management
    1. File-System Interface
      • File Concept
      • Directories and Disk Structure
      • Security
      • File sharing
    2. File-System Implementation
      • File-System Structure and Implementation
      • Directory Implementation
      • Allocation Methods
      • Free-Space Management
      • NFS
    3. Mass-Storage Structure
      • Overview
      • Disk Structure/Attachment/Scheduling/Management
      • RAID Structure
    4. Input/Output Systems
      • Types of devices
      • Application I/O Interface
      • Kernel I/O Subsystem
      • Transforming I/O Requests to Harware Operations
      • Memory-mapped I/O
  5. Protection and Security
  6. The Linux System
  7. Windows 7