Operating Systems - Syllabus
Embark on a profound academic exploration as you delve into the Operating Systems course (OS) within the distinguished Tribhuvan university's CSIT department. Aligned with the 2074 Syllabus, this course (CSC259) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60 + 20 + 20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.
This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.
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.
6.1. Classification of IO devices, Controllers, Memory Mapped IO, DMA Operation,
Interrupts
6.2. Goals of IO Software, Handling IO(Programmed IO, Interrupt Driven IO, IO using
DMA), IO Software Layers (Interrupt Handlers, Device Drivers)
6.3. Disk Structure, Disk Scheduling (FCFS, SSTF, SCAN, CSCAN, LOOK, CLOOK), Disk
Formatting (Cylinder Skew, Interleaving, Error handling), RAID
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.
Lab works
Laboratory Work
The laboratory work includes solving problems in operating system. The lab
work should include;
1 Demonstration of basic Linux Commands
2 Process creation and termination, thread creation and termination
3 Simulation of IPC techniques
4 Simulation process Scheduling algorithms
5 Simulation of deadlock avoidance and deadlock detection algorithms
6 Simulation of page replacement algorithms
7 Simulation of File allocation techniques
8 Simulate free space management techniques
9 Simulation of disk scheduling algorithms