COMP 3411: Operating Systems

The purpose of this course is to provide students basic knowledge of operating systems, difference between the kernel and user modes, concepts of application program interfaces, methods and implementations of interrupts. Students are introduced to the schedulers, policies, processes, threads, memory management, virtual memory, protection, access control, and authentication. Students learn system calls in different popular operating systems used in the industry.

Objectives

At the successful completion of this course, students will be able to:

  • Explain the objectives and functions of modern operating systems.
  • Describe how computing resources are used by application software and managed by system software.
  • Describe reasons for using interrupts, dispatching, and context switching to support concurrency in an operating system. Evaluate the trade-offs in terms of memory size (main memory, cache memory, auxiliary memory) and processor speed.
  • Articulate the need for protection and security in an operating system.

Course outline

  • Module 1: Introduction, and Computer System Structures (Chapter 1)
  • Module 2: Operating System Structures (Chapter 2)
  • Module 3: Processes (Chapter 3)
  • Module 4: Threads (Chapter 4)
  • Module 5: CPU Scheduling (Chapter 5)
  • Module 6: Synchronization Tools (Chapter 6)
  • Module 7: Synchronization Examples (Chapter 7)
  • Module 8: Deadlocks (Chapter 8)
  • Module 9: Main Memory Management (Chapter 9)
  • Module 10: Virtual Memory (Chapters 10)
  • Module 11: Mass Storage structure (Chapters 11)
  • Module 12: Input/Output (Chapter 12)
  • Module 13: File System Interface (Chapter 13)
  • Module 14: File System Implementation (Chapter 14)

Required text and materials

Silberschatz, A., Galvin, P.B., & Gagne, G. (2018). Operating System Concepts with Java, (10th ed.). John Wiley & Sons.
Type: Enhanced E-Text plus abridged print companion: ISBN: 978-1-119-45633-9-

Additional requirements

Computer with Internet access.

Java Programming Language.

Microsoft Office or other Office software to view Power Point presentations.

Assessments

Please be aware that due to COVID-19 safety guidelines all in-person exams have been suspended. As such, all final exams are currently being delivered through ProctorU, which has an approximate fee of $35 involved. There will be more information in your course shell, on how to apply, if your course has a final exam.

To successfully complete this course, students must obtain 50% or higher on the overall course, and 50% or higher on the final mandatory examination.

Assignment 1: Introduction to Linux 5%
Assignment 2: Unix Processes 5%
Assignment 3: Multithread Programming 9%
Assignment 4: Calculation of CPU Scheduling Algorithms 5%
Assignment 5: Process Synchronization 8%
Assignment 6: Memory Management 8%
Assignment 7: Mass Storage 5%
Assignment 8: File Systems 5%
Final Examination * 50%
Total: 100%

*Mandatory

Open Learning Faculty Member

An Open Learning Faculty Member is available to assist students. Primary communication is through the Learning Environment's "Mail" tool or by phone. Students will receive the necessary contact information at the start of the course.

Search To Top