Computer Science Department
College of Sciences & Mathematics

CSC331 Syllabus

  1. Course number and name

    CSC331 – Operating Systems

  2. Credits and contact hours

    3 Credit Hours

  3. Instructor’s or course coordinator’s name

    Instructor: Dr. Bin Lu, Associate Professor of Computer Science

  4. Text book, title, author, and year

    Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Operating System Concepts, 9th Edition, John Wiley & Sons, 2012.

  5. Specific course information
    1. brief description of the content of the course (catalog description)

      This course is a general survey of elements of operating systems with in-depth studies of certain features of specific operating systems. Elements of concurrent programming are studied, such as the mutual exclusion problem, semaphores, and monitors. Additionally, the following topics are covered: process scheduling and deadlock avoidance; memory management issues such as paging and segmentation; organization and protection of file systems.

    2. prerequisites or co-requisites

      Prerequisite: CSC 220 (Foundations of Computer Science), CSC 241 (Data Structures and Algorithms), and CSC 242 (Computer Organization).

    3. indicate whether a required, elective, or selected elective course in the program

      Elective course.

  6. Specific goals for the course
    1. specific outcomes of instruction Students will:
      • understand important topics of operating systems
      • demonstrate ability to apply knowledge of computing and mathematics to operating systems
      • demonstrate ability to implement components of operating systems
      • understand the basics of operating systems security
    2. explicitly indicate which of the student outcomes listed in Criterion 3 or any other outcomes are addressed by the course.

      Course addresses Student Outcomes (a) and (c).

  7. Brief list of topics to be covered
    • Introduction to Operating Systems
    • Operating System Structures
    • Processes
    • Threads
    • CPU Scheduling
    • Process Synchronization
    • Deadlocks
    • Exception throwing and handling
    • Memory Management
    • File Systems