top of page

Operating Systems

Course Outline

​

I. Introduction to Operating Systems
A. Overview of Operating Systems
B. History and Evolution of Operating Systems
C. Roles and Functions of Operating Systems


II. Operating System Structures
A. System Components and Services
B. System Calls and Programs
C. Operating System Design and Implementation


III. Processes and Threads
A. Concept of Processes and Threads
B. Process Scheduling and Operations
C. Inter-Process Communication


IV. CPU Scheduling
A. Basics of CPU Scheduling
B. Scheduling Criteria and Algorithms
C. Multiple-Processor Scheduling


V. Process Synchronization and Deadlocks
A. Critical-Section Problem and Solutions
B. Synchronization Mechanisms and Tools
C. Deadlocks: Prevention, Avoidance, and Detection


VI. Memory Management
A. Logical and Physical Address Space
B. Contiguous and Non-Contiguous Memory Allocation
C. Virtual Memory Management: Paging, Segmentation, and Segmentation with Paging

 

VII. File-System Interface and Implementation
A. File Concept, Access Methods, and Directory Structure
B. File-System Mounting and Protection
C. File-System Implementation, Allocation Methods, and Free-Space Management

 

VIII. I/O Systems and Secondary Storage
A. I/O Hardware and Its Interface
B. Disk Structure, Disk Scheduling and Management
C. RAID and Disk Attachment


IX. Security and Protection
A. Principles of Security and Protection Mechanisms
B. User Authentication and Access Control
C. Security Issues, Threats, and Defenses


X. Distributed Systems and Networking
A. Distributed Operating System Structures and Models
B. Network Structures, Topologies, and Protocols
C. Distributed File Systems and Synchronization in Distributed Systems


XI. Advanced Topics (Optional)
A. Real-Time Systems
B. Multimedia Systems
C. Cloud and Virtualization
D. Green Computing

​

Textbook: "Operating System Concepts" by Abraham Silberschatz, Peter B. Galvin, Greg Gagne.

1: Introduction to Operating Systems

​

We will discuss the overview of operating systems, their history, evolution, roles, and functions.

​

A. Overview of Operating Systems

​

An operating system (OS) is an essential component of a computer system that manages hardware and software resources and provides various services for computer programs. Essentially, it acts as an interface between the user and the hardware, making it easier for the user to interact with the system and run applications.

​

Operating systems come in various forms, from those in traditional computers (like Windows, macOS, or Linux) to those in mobile devices (like Android or iOS) and even embedded systems in various devices.

 

B. History and Evolution of Operating Systems

​

Operating systems have come a long way since the early days of computing:

  1. First Generation (1940s - 1950s): Early computers didn't have operating systems. The programmer interacted directly with the hardware, which was time-consuming and complex.

  2. Second Generation (late 1950s - 1960s): Batch operating systems were introduced to automate the sequential processing of jobs.

  3. Third Generation (1960s - 1970s): Multiprogramming and time-sharing operating systems allowed multiple programs to run concurrently, increasing CPU utilization.

  4. Fourth Generation (1970s - today): With the rise of personal computing, user-friendly, interactive OSes with graphical user interfaces (GUIs) became popular, including Unix, Windows, and macOS.

  5. Fifth Generation (2000s - today): Mobile and cloud-based operating systems (like Android, iOS, Chrome OS, etc.) have emerged due to the proliferation of smartphones and the Internet.

 

C. Roles and Functions of Operating Systems

​

An operating system has multiple roles and functions:

  • Process Management: The OS manages processes in the system, including the allocation of resources, scheduling, and coordination of concurrent processes.

  • Memory Management: The OS is responsible for managing the system's memory, including keeping track of each byte in a system's memory and which process is using it.

  • File System Management: The OS provides a way for programs and users to create, write, read, and delete files.

  • Device Management: The OS manages device communication via their respective drivers.

  • Security and Access Control: The OS ensures that unauthorized users do not access the system.

  • User Interface: Almost all operating systems have a user interface (UI). It could be command-line-based (like Unix/Linux shell) or graphical (like Windows or macOS).

​

For example, when you open a program such as Microsoft Word, the operating system is responsible for loading it into memory, scheduling its tasks, ensuring it doesn't interfere with other running programs, saving the work to a file system when you click 'save', and more.

bottom of page