Introduction to Operating Systems

Course
Identifier: 
COM S 3520

Offered during Fall and Spring Semesters each year.

  1. Credits and contact hours: 3 credits, 4 contact hours
  2. Instructor’s or course coordinator’s name: Matthew Tancreti
  3. Text book, title, author, and yearOperating Systems Concepts, 10th edition, Silberschatz
  4. Other supplemental materials: None

Specific course information

  1. Brief description of the content of the course: Survey of operating system, networking and parallel programming issues. Introduction of processes, threads, process synchronization, deadlocks, memory, file systems, networking, security threats and encryption. Programming projects.
  2. Prerequisites or co-requisites: COM S 321 or CprE 381 and COM S 327 or CprE 288; ENGL 250
  3. Required, elective, or selected elective? Required

Specific goals for the course

  1. Specific outcomes of instruction:
  • An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs. (2)
  • An ability to engage in continuing professional development.
  • An ability to apply design and development principles in construction of software systems of varying complexity. (6)

Brief list of topics to be covered

  • Overview of Operating Systems (2 lectures)
  • Processes (4 lectures)
  • Threads and concurrency (2 lectures)
  • CPU Scheduling (5 lectures)
  • Synchronization (8 lectures)
  • Deadlocks (3 lectures)
  • Main Processes (4 lectures)
  • Memory (2 lectures)
  • Virtual Memory (5 lectures)
  • File-Systems (4 lectures)
  • Protection and Security (2 lectures + Reading assignment)
    • Foundational concepts in security
    • Authentication and authorization, access control
    • Web security, platform security
    • Threats and attacks, denial of service
  • Networking and Communications (2 lectures)
    • Network terminology
    • Applications such as client/server, peer-to-peer, cloud, etc.
  • Distributed Systems (2 lectures)
    • Distributed concurrency and atomicity
    • Need for resource allocation
    • Deadlock, starvation
    • Mutual exclusion, race conditions, semaphores