Operating Systems

Principles and Implementation

January 30, 2019
Koya University
Computer Engineering Dept.
BSc
2019
4 mins read

General Information

  • University: Koya University
  • Department: Computer Engineering Dept.
  • My Status: Assistant Lecturer
  • Level: BSc
  • Year: 2019

Course Description

This course provides a comprehensive introduction to operating system principles, design, and implementation using MINIX as a practical example. Students will explore the fundamental concepts that underlie modern operating systems, including process management, memory management, file systems, and I/O operations.

The curriculum covers both theoretical concepts and practical implementation aspects, enabling students to understand how operating systems manage hardware resources and provide services to application programs. Through hands-on experience with MINIX, students will gain insight into real operating system internals and learn how theoretical concepts translate into actual system code.

This course is essential for students pursuing careers in systems programming, embedded systems, or any field requiring deep understanding of computer system architecture and resource management.

Prerequisites

  • Computer Architecture fundamentals
  • Programming in C (or equivalent)
  • Data Structures and Algorithms
  • Assembly language basics (recommended)

Course Objectives

Upon completion of this course, students will be able to:

  • Understand the fundamental principles and components of operating systems.
  • Analyze and explain process management, scheduling, and synchronization mechanisms.
  • Comprehend memory management techniques including virtual memory systems.
  • Design and implement basic operating system components.
  • Understand file system organization and I/O management.
  • Analyze operating system performance and optimization strategies.
  • Apply operating system concepts to solve real-world computing problems.

Course Outline

Module 1: Introduction to Operating Systems

  • Definition and evolution of operating systems
  • Operating system functions and services
  • System architecture and components
  • Operating system types and classifications
  • MINIX operating system overview

Module 2: Computer System Overview

  • Computer system organization
  • Hardware-software interface
  • System calls and interrupts
  • Boot process and system initialization
  • System architecture fundamentals

Module 3: Process Description and Control

  • Process concept and process states
  • Process control block (PCB) structure
  • Process creation and termination
  • Process hierarchy and relationships
  • Process management in MINIX

Module 4: Threads, SMP, and Microkernels

  • Thread concepts and implementation
  • Multithreading models and benefits
  • Symmetric multiprocessing (SMP)
  • Microkernel architecture principles
  • Thread management in modern systems

Module 5: Concurrency: Mutual Exclusion and Synchronization

  • Critical section problem
  • Mutual exclusion algorithms
  • Semaphores and monitors
  • Producer-consumer problem
  • Dining philosophers problem

Module 6: Concurrency: Deadlock and Starvation

  • Deadlock conditions and prevention
  • Deadlock avoidance algorithms
  • Deadlock detection and recovery
  • Starvation and aging techniques
  • Resource allocation strategies

Module 7: Memory Management

  • Memory management requirements
  • Partitioning and paging techniques
  • Segmentation and virtual memory
  • Memory allocation algorithms
  • Memory protection mechanisms

Module 8: Virtual Memory

  • Virtual memory concepts
  • Page replacement algorithms
  • Working set and thrashing
  • Memory-mapped files
  • Virtual memory implementation

Module 9: Uniprocessor Scheduling

  • Scheduling criteria and algorithms
  • First-come-first-served (FCFS)
  • Shortest job first (SJF)
  • Round-robin scheduling
  • Priority and multilevel scheduling

Module 10: Multiprocessor and Real-Time Scheduling

  • Multiprocessor scheduling challenges
  • Load balancing techniques
  • Real-time scheduling algorithms
  • Rate monotonic and earliest deadline first
  • Real-time system considerations

Module 11: I/O Management and Disk Scheduling

  • I/O hardware and software
  • I/O buffering and caching
  • Disk scheduling algorithms
  • RAID systems and storage management
  • Device drivers and I/O subsystems

Module 12: File Management

  • File system concepts and organization
  • File allocation methods
  • Directory structures and implementation
  • File system reliability and recovery
  • Modern file system features

Textbooks

  • [Recommended] “Operating System Concepts” by Abraham Silberschatz, Peter B. Galvin, and Greg Gagne
  • [Optional] “Operating Systems: Design and Implementation” by Andrew S. Tanenbaum and Albert S. Woodhull

Assessment

  • Midterm Exam (20%)
  • Activities and Projects (30%)
    • Programming Assignments (15%)
    • System Analysis Projects (15%)
  • Final Exam (50%)