CSE207 Operating System Version No. 1.0 [TLPC 3014]
Prerequisite
A. Essential
i. Data Structures
ii. Computer Architecture and Organization
B. Desirable
i. Unix Programming
ii. Object-oriented Programming/ Structured Programming
iii. Programming experience of at least 5000 lines in C/C++.
Objectives:
• Understand fundamental operating system abstractions such as processes, threads, files, semaphores, IPC abstractions, shared memory regions, etc.,
• Understand how the operating system abstractions can be used in the development of application programs, or to build higher level abstractions,
• Understand how the operating system abstractions can be implemented,
• Understand the principles of concurrency and synchronization, and apply them to write correct concurrent programs/software,
• Understand basic resource management techniques (scheduling or time management, space management) and principles and how they can be implemented. These also include issues of performance and fairness objectives, avoiding deadlocks, as well as security and protection.
Expected Outcome:
Student will be able to
a. Student achieve proficiency in computer science knowledge (fundamentals of programming, computer organization, data structures, software engineering).
b. Students demonstrate ability to design, implement and evaluate a computer-based system, process, components, or program to meet desired needs.
c. Students demonstrate ability in applying their major knowledge to practical problems.
----------------------------------------------------------------------------------------------------------------------------
Module I: Introduction :
Operating system and functions, Classification of Operating systems- Batch, Interactive, Time sharing, Real Time System, Multiprocessor Systems, Multiuser Systems, Multiprocess Systems, Multithreaded Systems, Operating System Structure- Layered structure,System Components, Operating System services, Reentrant Kernels, Monolithic and Microkernel Systems.
Module II: Concurrent Processes:
Process Concept, Principle of Concurrency, Producer / Consumer Problem, Mutual Exclusion, Critical Section Problem, Dekker’s solution, Peterson’s solution,Semaphores, Test and Set operation; Classical Problem in Concurrency- Dining PhilosopherProblem, Sleeping Barber Problem; Inter Process Communication models and Schemes, Process generation.
Module III: CPU Scheduling:
Scheduling Concepts, Performance Criteria, Process States, Process Transition Diagram, Schedulers, Process Control Block (PCB), Process address space, Process identification information, Threads and their management, Scheduling Algorithms, Multiprocessor Scheduling. Deadlock: System model, Deadlock characterization, Prevention,Avoidance and detection, Recovery from deadlock.
Module IV: Memory Management
Memory Management: Basic bare machine, Resident monitor, Multiprogramming with fixedpartitions, Multiprogramming with variable partitions, Protection schemes, Paging,
Segmentation, Paged segmentation, Virtual memory concepts, Demand paging, Performance ofdemand paging, Page replacement algorithms, Thrashing, Cache memory organization, Localityof reference.
Module V: Input/Output
I/O Management and Disk Scheduling: I/O devices, and I/O subsystems, I/O buffering, Disk storage and disk scheduling, RAID. File System: File concept, File organization and access mechanism, File directories, and File sharing, File system implementation issues, File system protection and security.
References
1. Silberschatz, Galvin and Gagne, “Operating Systems Concepts”, Wiley
2. Sibsankar Halder and Alex A Aravind, “Operating Systems”, Pearson Education
3. Harvey M Dietel, “ An Introduction to Operating System”, Pearson Education
4. D M Dhamdhere, “Operating Systems : A Concept based Approach”, 2nd Edition,
------------------------------------------------------------------------------------------------------------------------------
Weekly Lesson Plan