Operating Systems - Course Content
Description
Course Description: This course includes the basic concepts of operating system components. It consists of process management, deadlocks and process synchronization, memory management techniques, File system implementation, and I/O device management principles. It also includes case study on Linux operating system.
Course Objectives
- Describe need and role of operating system.
- Understand OS components such a scheduler, memory manager, file
- system handlers and I/O device managers.
- Analyze and criticize techniques used in OS components
- Demonstrate and simulate algorithms used in OS components
- Identify algorithms and techniques used in different components of Linux
Units
Key Topics
-
Definition of Operating System
OP-1.1.1This topic covers the definition and explanation of what an operating system is, its role, and its importance in computer systems.
-
Two Views of Operating System
OP-1.1.2This topic explores the two different perspectives of an operating system: the user view and the system view.
-
Evolution of Operating System
OP-1.1.3This topic discusses the historical development and evolution of operating systems, from early mainframe systems to modern distributed systems.
-
Types of Operating Systems
OP-1.1.4This topic covers the different types of operating systems, including single-user, multi-user, multi-tasking, and real-time systems.
-
System Calls
OP-1.2.1This topic explains the concept of system calls, which are interfaces between the operating system and application programs.
-
Handling System Calls
OP-1.2.2This topic discusses how operating systems handle system calls, including the mechanisms and techniques used to manage system calls.
-
System Programs
OP-1.2.3This topic covers the different types of system programs, including utility programs, language translators, and system utilities.
-
Operating System Structures
OP-1.2.4This topic explores the internal structure of operating systems, including the kernel, device drivers, and system libraries.
-
The Shell
OP-1.2.5This topic explains the role of the shell in operating systems, including its functions and features.
-
Open Source Operating Systems
OP-1.2.6This topic discusses the concept of open-source operating systems, including their advantages, disadvantages, and examples.
Key Topics
-
Project Management Techniques
PR-1This topic covers various project management techniques used to plan, organize, and control projects. It includes developing project management plans and implementing, monitoring, and controlling projects.
-
Collaborative Development Environment
PR-2This topic focuses on creating an environment that fosters collaboration and teamwork. It includes communications planning, organizing and conducting effective meetings, and other collaborative development strategies.
-
Inter Process Communication
PR-3Methods of communication between processes, including race conditions and critical sections.
-
Implementing Mutual Exclusion
PR-4Techniques for achieving mutual exclusion, including busy waiting, sleep and wakeup, semaphores, monitors, and message passing.
-
Classical IPC Problems
PR-5Solutions to classic inter-process communication problems, including producer-consumer, sleeping barber, and dining philosopher problems.
-
Process Scheduling
PR-6Goals and techniques for scheduling processes, including batch, interactive, and real-time systems.
Key Topics
-
Project Management Techniques
PR-1This topic covers various project management techniques used to plan, organize, and control projects. It includes developing project management plans and implementing, monitoring, and controlling projects.
-
Collaborative Development Environment
PR-2This topic focuses on creating an environment that fosters collaboration and teamwork. It includes communications planning, organizing and conducting effective meetings, and other collaborative development strategies.
-
Inter Process Communication
PR-3Methods of communication between processes, including race conditions and critical sections.
-
Implementing Mutual Exclusion
PR-4Techniques for achieving mutual exclusion, including busy waiting, sleep and wakeup, semaphores, monitors, and message passing.
-
Classical IPC Problems
PR-5Solutions to classic inter-process communication problems, including producer-consumer, sleeping barber, and dining philosopher problems.
-
Process Scheduling
PR-6Goals and techniques for scheduling processes, including batch, interactive, and real-time systems.
-
Deadlock Prevention
PR-7This topic covers deadlock prevention techniques, which ensure that deadlocks cannot occur by preventing one of the necessary conditions for deadlock.
-
Deadlock Avoidance
PR-8This topic discusses deadlock avoidance techniques, which ensure that the system will never enter a deadlock state.
-
Deadlock Detection
PR-9This topic explains deadlock detection algorithms, which are used to detect when a deadlock has occurred in a system.
-
Recovery from Deadlock
PR-10This topic covers recovery techniques for deadlocks, including preemption and rollback.
Key Topics
-
Memory Hierarchy
ME-1The organization of memory in a computer system, including main memory, RAM, ROM, and auxiliary memory. This topic covers the memory address map and connection to the CPU.
-
Main Memory
ME-2The primary storage for data and program instructions in a computer system, including RAM and ROM chips.
-
Associative Memory
ME-3A type of memory that uses hardware organization and match logic to perform read and write operations.
-
Cache Memory
ME-4A small, fast memory that stores frequently accessed data, using locality of reference and mapping to improve performance.
-
Auxiliary Memory
ME-5Secondary storage devices, including magnetic disks and magnetic tapes, used to store data and programs when not in use by the CPU.
Key Topics
-
File Concept
FI-1Understanding the concept of a file and its importance in C programming.
-
File Operations
FI-2Opening, closing, naming, and basic operations on files in C.
-
File Input/Output
FI-3Reading data from and writing data to a file in C, including functions such as fgetc(), fputc(), fprintf(), and fscanf().
-
Random Access in Files
FI-4Using functions ftell(), fseek(), and rewind() to access and manipulate file pointers in C.
Key Topics
-
Designing Databases
DE-1This topic covers the fundamentals of designing databases, including the relational database model, normalization, and transforming E-R diagrams into relations.
-
Designing Forms and Reports
DE-2This topic focuses on designing forms and reports, including formatting and assessing usability to create effective user interfaces.
-
Designing Interfaces and Dialogues
DE-3This topic explores the design of interfaces and dialogues, including interaction methods and devices, and designing interfaces and dialogues in graphical environments.
-
Implementation Issues
DE-4Addressing common challenges and considerations that arise during the implementation phase of software development.
-
Open-Source Development
DE-5Exploring the principles, benefits, and best practices of open-source software development.
-
Estimation of Missing Values
DE-6Methods for estimating missing values in experimental designs, including CRD and RBD.
-
Advantages and Disadvantages of CRD and RBD
DE-7Discussion of the benefits and drawbacks of Completely Randomized Design (CRD) and Randomized Block Design (RBD).
-
Latin Square Design (LSD)
DE-8A type of experimental design that accounts for two blocking factors to reduce variability.
-
Statistical Analysis of LSD
DE-9Methods for analyzing data from a Latin Square Design (LSD) experiment.
Key Topics
-
History of Linux
LI-1Overview of the development and evolution of the Linux operating system.
-
Kernel Modules
LI-2Understanding kernel modules, their types, and their role in extending Linux kernel functionality.
-
Process Management
LI-3Managing processes in Linux, including process creation, synchronization, and termination.
-
Scheduling
LI-4Linux scheduling algorithms and their role in allocating system resources to processes.
-
Inter-process Communication
LI-5Methods and mechanisms for communication between processes in Linux.
-
Memory Management
LI-6Linux memory management techniques, including memory allocation, deallocation, and protection.
-
File System Management Approaches
LI-7Different file system management approaches used in Linux, including organization and structure.
-
Device Management Approaches
LI-8Linux device management approaches, including device drivers and hardware interaction.