OS & ST Syllabus
OS & ST Syllabus
OS & ST Syllabus
COURSE OBJECTIVES:
The course is designed to
• Understand basic concepts and functions of operating systems
• Understand the processes, threads and scheduling algorithms.
• Provide good insight on various memory management techniques
• Expose the students with different techniques of handling deadlocks
• Explore the concept of file-system and its implementation issues
• Familiarize with the basics of the Linux operating system
• Implement various schemes for achieving system protection and security
UNIT-I:
Operating Systems Overview: Introduction, Operating system functions, Operating systems operations,
Computing environments, Open-Source Operating Systems
System Structures: Operating System Services, User and Operating-System Interface, systems calls,
Types of System Calls, system programs, Operating system Design and Implementation, Operating system
structure, Operating system debugging, System Boot.
UNIT-II:
Process Concept: Process scheduling, Operations on processes, Inter-process communication,
Communication in client server systems.
Multithreaded Programming: Multithreading models, Thread libraries, Threading issues, Examples.
Process Scheduling: Basic concepts, Scheduling criteria, Scheduling algorithms, Multiple processor
scheduling, Thread scheduling, Examples.
Inter-process Communication: Race conditions, Critical Regions, Mutual exclusion with busy waiting,
Sleep and wakeup, Semaphores, Mutexes, Monitors, Message passing, Barriers, Classical IPC Problems -
Dining philosophers problem, Readers and writers problem.
UNIT-III:
Memory-Management Strategies: Introduction, Swapping, Contiguous memory allocation, Paging,
Segmentation, Examples.
Virtual Memory Management: Introduction, Demand paging, Copy on-write, Page replacement, Frame
allocation, Thrashing, Memory-mapped files, Kernel memory allocation, Examples.
UNIT-IV:
Deadlocks: Resources, Conditions for resource deadlocks, Ostrich algorithm, Deadlock detection And
recovery, Deadlock avoidance, Deadlock prevention.
File Systems: Files, Directories, File system implementation, management and optimization.
Secondary-Storage Structure: Overview of disk structure, and attachment, Disk scheduling, RAID structure,
Stable storage implementation.
UNIT-V:
System Protection: Goals of protection, Principles and domain of protection, Access matrix, Access
control, Revocation of access rights.
System Security: Introduction, Program threats, System and network threats, Cryptography as a security,
User authentication, implementing security defenses, firewalling to protect systems and networks,
Computer security classification.
TEXT BOOKS:
1. Silberschatz A, Galvin P B, and Gagne G, Operating System Concepts, 9th edition, Wiley, 2016.
2. Tanenbaum A S, Modern Operating Systems, 3rd edition, Pearson Education, 2008.
(Topics: Inter-process Communication and File systems.)
REFERENCE BOOKS:
1. Tanenbaum A S, Woodhull A S, Operating Systems Design and Implementation, 3rd edition, PHI, 2006.
2. Dhamdhere D M, Operating Systems A Concept Based Approach, 3rd edition, Tata McGraw-Hill, 2012.
3. Stallings W, Operating Systems -Internals and Design Principles, 6th edition, Pearson Education, 2009
4. Nutt G, Operating Systems, 3rd edition, Pearson Education, 2004
COURSE OUTCOMES:
After completion of the course, students will be able to
• Realize how applications interact with the operating system
• Analyze the functioning of a kernel in an Operating system.
• Summarize resource management in operating systems
• Analyze various scheduling algorithms
• Examine concurrency mechanism in Operating Systems
• Apply memory management techniques in the design of operating systems
• Understand the functionality of the file system
• Compare and contrast memory management techniques.
• Understand deadlock prevention and avoidance.
• Perform administrative tasks on Linux based systems..
Online Learning Resources:
https://nptel.ac.in/courses/106/106/106106144/
http://peterindia.net/OperatingSystems.html
Course Objectives:
• Introduce the fundamentals of various testing methodologies.
• Describe the principles and procedures for designing test cases.
• Teach debugging methods.
Course Outcomes:
After completion of the course, students will be able to
• Understand the basic testing procedures.
• Develop reliable software
• Design test cases for testing different programming constructs
• Test the applications by applying different testing methods and automation tools
Reference Books:
1. Brian Marick, “The craft of software testing”, Pearson Education.
2. Yogesh Singh, “Software Testing”, Camebridge
3. P.C. Jorgensen, “Software Testing” 3rd edition, Aurbach Publications (Dist.by
SPD).
4. N.Chauhan, “Software Testing”, Oxford University Press.
5. P.Ammann&J.Offutt, “Introduction to Software Testing” , Cambridge Univ.
Press.
6. Perry, “Effective methods of Software Testing”, John Wiley, 2nd Edition, 1999.