CSC-4210 Operating Systems
Spring 2021
Instructor: Roger Shore Class Schedule:
Office Location: Couch Hall 153 MWF 7:50-9:00AM CSC-1720
Telephone: 841-9031 MW 12:05-1:45PM CSC-2410
Office Hours: MTWF 10:00-11:00AM TTh 1:35-3:15PM CSC-4210
T 7:50-9:30AM CSC-1720 Lab
TH 3:30-5:10PM CSC-2410 Lab
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-119-32091-3), 10th Ed., John Wiley and Sons, Inc, 2018
  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. Academic integrity:Unless otherwise instructed, you are expected to work independently on projects and tests. You are responsible for protecting your files and work from access by others. Instances of copying or sharing, or cheating in any way will result in an academic dishonesty charge, which can lead to an F for the assignment and maybe the course. The University Honor Code states: "Every student is honor-bound to refrain from cheating, collusion, plagiarism, . . .to confront a violation, . . . to report a violation of the University Honor Code."
  6. Classroom etiquette:
  7. Lab etiquette:
  8. 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