703.608.0975 rick@warrenworks.com

IT 315

Operating Systems and Virtualization

marrymount-logo-half

College of Business, Innovation, Leadership, and Technology (BILT)
School of Technology & Innovation

IT-315

Operating Systems and Virtualization

Fall 2025

COURSE SYLLABUS

Course Type:

Classroom

Course Catalog Description:

This course covers the functions of modern operating systems, including their application in virtualized and cloud environments. Students work with Microsoft Windows and Unix/Linux operating systems in stand-alone, networked, and virtualized configurations. Concurrency and the ability to manage multiple users, multiple tasks, and multiple cloud processes are discussed. The course also explores how the operating system manages its hardware resources, including memory, file systems across multiple storage types, and networks. Students must achieve a minimum grade of C. Prerequisite: IT 205 with a grade of C or higher. (3)

Broad Purpose of Course:

The primary purpose of this course is to enable students to …

Instructor:

Rick Miller, MS Computer Science
California State University Long Beach
Phone: (703) 608-0975
email: richmill@marymount.edu
website: warrenworks.com

Class Hours:

Class Meets In Person

Location Dates & Time
Ballston Center, Room 4010 Thursday — 6:45pm – 9:30pm

 

Required Text:

Modern Operating Systems, 5th Edition
Andrew Tannebaum, Herbert Bos
ISBN-13: 978-0-13-761887-3
 

 

 

Office Hours:

  • During on-campus meeting dates either before, during, or after class
  • Via phone or Zoom anytime by appointment

Important Dates To Remember:

Event Date
First Day of This Class 16 January 2025
Midterm TBD
Final TBD
Last Day of This Class 1 May 2025

Complete Fall 2025 Academic Calendar

Course Objectives:

Upon successful completion of this course students will be expected to:

  • Understand the role and purpose of an operating system:
    • Explain the primary functions of an OS, such as process management, memory management, file systems, and device management.
  • Explain process management concepts:
    • Describe the process lifecycle, process scheduling, and the differences between processes and threads.
  • Analyze CPU scheduling algorithms:
    • Evaluate and compare different CPU scheduling algorithms (e.g., FCFS, SJF, Round Robin, Priority Scheduling) in terms of performance metrics like throughput, turnaround time, and CPU utilization.
  • Understand inter-process communication (IPC):
    • Describe methods for IPC, such as message passing and shared memory, and identify their use cases and advantages.
  • Implement synchronization mechanisms:
    • Understand and apply synchronization techniques like semaphores, mutexes, and condition variables to solve critical section problems.
  • Understand deadlock and its prevention, avoidance, and detection:
    • Define deadlock, understand its conditions, and describe strategies for handling deadlock in an operating system.
  • Analyze memory management techniques:
    • Understand and compare memory allocation strategies, such as paging, segmentation, and virtual memory.
  • Implement memory management algorithms:
    • Apply algorithms for memory allocation (e.g., First Fit, Best Fit, and Worst Fit) and page replacement algorithms (e.g., FIFO, LRU, and Optimal).
  • Understand file system management:
    • Describe how operating systems manage files, including file organization, file access methods, and file system structure.
  • Design and implement basic file systems:
    • Design simple file systems, including implementing directories, file allocation methods, and understanding file system operations like creation, deletion, and modification.
  • Understand input/output (I/O) systems:
    • Explain the role of device drivers, buffering, and interrupt handling in I/O systems, and discuss how I/O operations are managed by the OS.
  • Study storage management:
    • Understand the concepts of disk scheduling algorithms (e.g., FCFS, SSTF, SCAN) and the layout of data on physical storage devices.
  • Explore security and protection mechanisms:
    • Describe the basic principles of operating system security, including authentication, access control, encryption, and protection against malicious software.
  • Understand OS virtualization and containers:
    • Explain the concepts of virtualization, hypervisors, and containerization, and compare them in terms of resource management and efficiency.
  • Study multi-core and parallel processing:
    • Analyze the challenges and techniques involved in managing multi-core processors, including load balancing and parallel execution.
  • Understand OS architecture and design principles:
    • Explore different OS architectures (monolithic, microkernel, hybrid) and evaluate their trade-offs in terms of performance, scalability, and security.
  • Learn about system calls and OS interfaces:
    • Understand how system calls enable applications to interact with the OS, and learn how to write programs that interact with system services.
  • Implement a basic shell and command interpreter:
    • Design and implement a simple shell, understanding how commands are parsed, executed, and managed within the operating system.
  • Understand OS performance evaluation:
    • Identify metrics used to evaluate OS performance, including CPU utilization, throughput, response time, and efficiency.
  • Investigate real-time operating systems:
    • Understand the unique requirements and scheduling techniques used in real-time operating systems (RTOS), including hard and soft real-time systems.

 

Major Topics

  • Operating System Fundamentals
  • History of Operating Systems
  • Computer Hardware
  • Operating System Landscape
    • Different Types of Operating Systems
  • Operating System Concepts
  • System Calls
  • Operating System Structure
  • C Programming Language
  • Processes and Threads
  • Event-Driven Servers
  • Synchronization and Interprocess Communication
  • Scheduling 
  • Memory Management
  • File Systems
  • Input/Output

 

  • Deadlocks
  • Virtualization and the Cloud
  • Virtual Machines
  • Hypervisors
  • Multi-Processor Systems
  • Security
  • Linux
  • MacOS
  • Windows 10 & 11
  • Operating System Design
  • Performance

 

 

 

 

 

Grading:

Your grade is based on your performance on assigned projects, exams, class engagement, and class attendance record.

Assignment Grade Percentage
Quizes 20%
Midterm 20%
Final 20%
Engagement 20%
Attendance (Missed Classes)
3 (2 summer) Drop one letter grade
6 (4 summer) Drop two letter grades
8+ (5+ summer) Fail

Note: Class attendance is applied to your course performance. Example: If you’re traking a ‘C’, missing 3 classes will drop that to an ‘F’. There is no ‘C’ in a graduate course.

Caution to International Students — Think long and hard before traveling outside the US during the semester as you may encounter delays with travel visa processing when trying to return.

Extra Credit Policy: In the words of one of my stern California State Long Beach professors: “What makes you think you can do extra credit when you can’t do regular credit?” — You need to hit the deck running on the first day of class and keep up with the reading and assignments. Programming requires time so plan your course load accordingly. I do not offer extra credit.

Academic Integrity: Turn in your own work. I’d rather you struggle with your own code than copy wholesale someone else’s code and pass it off as your own. You will watch a ton of YouTube videos and see lots of code examples online. That’s OK. It’s a great way to learn. You may copy a line or two of code from StackOverflow.com. That’s OK, too. Professional programmers do the same thing. Give credit where credit is due. The number one sign of cheating is turning in an assignment that looks like another student’s assignment and you can’t fully explain how it works or what the code is doing or why you chose a particular approach to solve a problem.

Unauthorized Uses of Artificial Intelligence: Marymount University acknowledges that ChatGPT and other generative artificial intelligence (AI), text generated tools have the capability of dramatically altering the academic environment in both positive and negative ways. The purpose of this section of Marymount’s Academic Integrity Code is to identify both permitted and prohibited intentional uses of AI-generated text tools to support the University’s academic integrity policies in the most productive way possible.

Permitted Uses: 

Educational activities conducted with the advanced written approval of a faculty instructor, in such a way as to facilitate increased knowledge and understanding about the use of AI in business, government, and educational settings.

When permitted, in advance and in writing, by faculty or staff in the conduct of an educational activity as a teaching or learning tool (e.g., tutoring, academic advising, etc.).

As a research tool to assist and enable computer-based internet search activities (e.g., library, database, thesauruses, Grammarly, etc.). Use of AI tools must be formally provided through written approval of the instructor.

Prohibited Uses:

For the development and/or submission of drafts or final versions of any paper, report, or other work research papers submitted in lieu of original student work without instructor permission. This definition includes but is not limited to doctoral dissertations, masters’ theses, and undergraduate written assignments, whether in full or in part. It also includes both graded and ungraded academic work. The improper usage of generative artificial intelligence tools falls within the university’s standard definition for plagiarism: Representing the works of another as one’s own.

Class Schedule: (Note: Material Compressed Into 10-Weeks During Summer Sessions)

Week Topics Covered Notes
1
2

 

 

 

 

 

 

 

 

 

3
4

 

5

 

 

6
7
8 Midterm Exam 
9
10
11

 

12
13

 

14

 

15

 

 

 

 

 

16