Program Information Technolog
Course Code ITec2022
Course Title: Operating Systems
Contact Hours
Lecture Tutorial Lab/Practical Home Study Total
(per week)
3 0 3 6 12
Course Objective
The course introduces students to basics of operating system design principles and
components, and their functions. It will also discuss memory management, processor
management, process management and deadlocks, concurrency control, scheduling and
dispatching, device management, file systems, file management, security and protection, and
system performance evaluation. In addition, students will be introduced with different operating
systems, and they will see their similarities and differences
Chapter 1: History and overview
1.1. Indicate some reasons for studying operating systems
1.2. Describe the purpose of an operating system
1.3. Functionality of a typical operating system
1.4. Describe the meaning of concurrency and the reasons for its importance
1.5. Describe the manner and importance of memory management
1.6. Describe the manner and importance of device management
1.7. Explore some additional resources associated with operating systems
1.8. Explain the purpose and role of operating systems in computer engineering
Chapter 2: Design principles
2.1. Mechanisms to support client-server models, hand-held devices
2.2. Design issues (efficiency, robustness, flexibility, portability, security, compatibility)
2.3. Influences of security, networking, multimedia, windows
2.4. Structuring methods (monolithic, layered, modular, micro-kernel models)
2.5. Abstractions, processes, and resources
2.6. Concepts of application program interfaces (APIs) specific to operating systems
2.7. Applications needs and the evolution of hardware/software techniques
2.8. Device organization
2.9. Interrupts: methods and implementations
2.10.Concept of user/system state and protection, transition to kernel mode
Chapter 3: Design principles
3.1. States and state diagrams
3.2. Structures (ready list, process control blocks, and so forth)
3.3. Dispatching and context switching
3.4. The role of interrupts
3.5. Concurrent execution: advantages and disadvantages
3.6. The “mutual exclusion” problem and some solutions
3.7. Deadlock: causes, conditions, prevention
3.8. Models and mechanisms (semaphores, monitors, condition variables, rendezvous)
3.9. Producer-consumer problems and synchronization
3.10.Multiprocessor issues (spin-locks, reentrancy)
Chapter 4: Scheduling and dispatch
4.1. Preemptive and non-preemptive scheduling
4.2. Schedulers and policies
4.3. Processes and threads
4.4. Deadlines and real-time issues
Chapter 5: Memory management
5.1. Review of physical memory and memory
5.2. management hardware
5.3. Overlays, swapping, and partitions
5.4. Paging and segmentation
5.5. Placement and replacement policies
5.6. Working sets and thrashing
5.7. Caching
Chapter 6: Device management
6.1. Characteristics of serial and parallel devices
6.2. Abstracting device differences
6.3. Buffering strategies
6.4. Direct memory access
6.5. Recovery from failures
Chapter 7: Security and protection
7.1. Overview of system security
7.2. Policy/mechanism separation
7.3. Security methods and devices
7.4. Protection, access, and authentication
7.5. Models of protection
7.6. Memory protection
7.7. Encryption
7.8. Recovery management
Chapter 8: File systems
8.1 Files: data, metadata, operations, organization, buffering, sequential, non sequential
8.2 Directories: contents and structure
8.3 File systems: partitioning, mount/unmount, and virtual file systems
8.4 Standard implementation techniques
8.5 Memory-mapped files
8.6 Special-purpose file systems
8.7 Naming, searching, access, backups
Software Requirements:- UNIX/Linux operation systems
Text Reference:
Andrew S. Tanenbaum (1992) Modern Operating Systems. Prentice-Hall International Inc
Operating Systems, 4th edition by W. Stalling (editor) Prentice-Hall 2001
Distributed Systems: Concepts and Design (3rd edition), George Coulouris, Jean
Dollimore and Tim Kindberg, Addison Wesley Longman, 2000
Distributed Programming with Java, Qusay H. Mahmoud, Manning Publications Co.,
2000
Distributed Systems: Principles and Paradigms, Andrew S.
Tanenbaum and Maarten van Steen, Prentice-Hall, 2002.
Assessment ----- As per the BiT Legislative