SEMESTER: VI
Modern Operating Systems and Real-Time Systems
Course Code Credits 03
Hours/Week (L-T-P) 3-0-0 CIE Marks 50
Total Hrs. 39 SEE Marks 50
Exam Hrs. 03 Course Type Core Elective
COURSE OUTCOMES
1. Understanding of Operating System Principles: Students will demonstrate a comprehensive understanding of
fundamental operating system principles, including process management, memory management, file systems, and I/O
systems, as well as their roles and functionalities within computing environments.
2. Ability to Analyze and Design Real-Time Systems: Students will be able to analyze real-time system requirements,
design real-time operating systems architectures, and apply appropriate scheduling algorithms to ensure timely and
predictable responses to events and tasks.
3. Proficiency in System Implementation and Optimization: Students will gain proficiency in implementing and
optimizing operating system components, such as file systems, memory management systems, and I/O systems,
utilizing advanced techniques for efficient resource utilization and performance enhancement.
4. Application of Advanced Synchronization Techniques: Students will demonstrate the ability to apply advanced
synchronization techniques, including mutexes, semaphores, monitors, and condition variables, to manage concurrent
processes, prevent deadlocks, and ensure data integrity in multi-threaded and distributed computing environments.
5. Integration of Emerging Technologies and Trends: Students will understand the integration of emerging
technologies such as cloud computing, edge computing, Internet of Things (IoT), and quantum computing with
operating systems, and evaluate their impact on system design, security, and real-time performance requirements.
They will also be able to apply security measures and best practices to mitigate threats and vulnerabilities in modern
computing environments.
COURSE CONTENTS
UNIT -1- (8 Hrs)
Introduction to Operating Systems
Overview of Operating Systems: Definition and Purpose, Evolution of Operating Systems, Classification (Batch, Time-
sharing, Real-Time, Distributed)
Basic Operating System Concepts: Processes and Threads, Memory Management, File Systems, I/O Systems
Operating System Architecture: Kernel Architecture, System Calls and API, User Mode vs. Kernel Mode, System Structures
and Components
Text 1: Ch 1,2
UNIT -2- (8 Hrs)
Processes, Threads, and Memory Management
Processes and Threads: Process States and Lifecycle, Process Scheduling Algorithms, Thread Management and
Synchronization, Inter-Process Communication (IPC)
Memory Management: Memory Hierarchy, Virtual Memory Concepts, Page Replacement Algorithms, Memory
Protection and Allocation Strategies
Text 1: Ch 3, 4, 9, 10
UNIT -3- (8 Hrs)
File Systems, I/O Systems, and Advanced Synchronization
File Systems: Organization and Structure, File Operations and Directory Structures, File System Implementation and
Optimization, Distributed File Systems
I/O Systems: I/O Devices and Control, I/O Buffering and Caching, Disk Scheduling Algorithms, Device Drivers and
Communication
Advanced Synchronization Techniques: Mutex and Semaphore Concepts, Monitors and Condition Variables, Deadlock
Resolution and Prevention
Text 1: Ch 12, 14, 17
UNIT -4- (8 Hrs)
Real-Time Systems
Real-Time Systems Fundamentals: Characteristics of Real-Time Systems, Real-Time Scheduling Algorithms, Hard and Soft
Real-Time Systems
Real-Time Operating Systems (RTOS): Features and Requirements, RTOS Architectures, Task Scheduling, Resource
Management
Real-Time System Design and Analysis: Modelling Real-Time Systems, Timing Constraints and Deadlines, Performance
Analysis and Optimization, Fault Tolerance and Reliability
Text 2: Ch 1, 4, 6
UNIT -5- (8 Hrs)
Practical Applications and Emerging Trends
Case Studies and Practical Applications: Real-Time Systems in Various Industries, Embedded Systems and their Role
Security in Operating Systems: Security Models and Mechanisms, Threats and Vulnerabilities, Best Practices
Emerging Trends: Cloud Computing and Operating Systems, Edge Computing and Real-Time Systems, Internet of Things
(IoT) and Operating Systems, Quantum Computing and its Impact
Books : R1, R2 & R3
TEXTBOOKS
SINO Textbook Title Author(s) Publisher(s)
Edition/Year of Publication
Units
T1 Operating System Concepts Abraham Silberschatz, Wiley 10th Edition, 2021
Peter B. Galvin
T2 Real-Time Concepts for Qing Li with Caroline CMP Books 1st Edition, 2010
Embedded Systems Yao
REFERENCE BOOKS
R1 Real-Time Systems Design Phillip A. Laplante Wiley 4th Edition, 2011
and Analysis
R2 Operating System Security Trent Jaeger Morgon and 1st Edition, 2008
Claypool
R3 Operating Systems: Internals William Stallings Pearson 9th Edition, 2019
and Design Principles
COURSE ASSESSMENT METHOD:
CIE:
1. Test: 30 marks ( 40% of MSE 1 + 40% of MSE 2+ 20% of MSE 3 )
2. LA1: 10 marks
3. LA2: 10 marks
4.
SEE:
1. Two Questions are to be set from each unit, carrying 20 Marks each.
PEDAGOGY
1. Blackboard Teaching
2. PowerPoint Presentations (Wherever required)
3. Regular activity
4. Regular review of students by asking questions based on topics covered in the class.
CO-PO-PSO MAPPING
CO/PO PO PO PO PO PO PO PO PO PO PO PO PO PSO PSO BT
1 2 3 4 5 6 7 8 9 10 11 12 1 2
CO1 3 3 2 2 3 3 2
CO2 3 3 2 2 3 3 3
CO3 3 3 3 3 3 2 3 3 3
CO4 3 3 3 2 3 3 3
CO5 3 3 3 3 2 3 3 3
SEMESTER: V
OBJECT-ORIENTED PROGRAMMING USING C++
Course Code 21ECG53 Credits 04
Hours/Week (L-T-P) 3-0-2 CIE Marks 50
Total Hrs. 39 hrs +13 hrs SEE Marks 50
Exam Hrs. 03 Course Type Core
COURSE OUTCOMES
Students will be able
1. To understand how C++ improves C with object-oriented features.
2. To learn how to write inline functions for efficiency and performance and how to design C++ classes for code reuse.
3. Apply the object initialization and destroy concept using constructors and destructors.
4. To learn how inheritance and virtual functions implement dynamic binding with polymorphism.
5. Demonstrate how to control errors with exception handling and templates in c++
COURSE CONTENTS
UNIT -1- (7 Hrs+ 4 Hrs)
Introduction to Object-Oriented Programming
Object-oriented paradigm-Differences between Object Oriented Programming and Procedure oriented programming, Basic concepts of
Object-Oriented Programming, Benefits of OOP,
What is C++, Application of C++, A simple C++ program, namespace, an example with class, Structure of C++ program, creating and
compiling the source file
Tokens, Keywords, Identifiers and Constants, Basic Data type, User-defined data type, storage class, derived data types, symbolic
constants, type compatibility, declaration variables, dynamic initialization of variables, reference variables, operators in C++, control
structures
Chapter 1: 1.3,1.4,1.5,1.6, Chapter 2, Chapter 3
Lab
1. Write a program to display the following output using a single cout statement
Maths = 90
Physics = 77
Chemistry = 69
2. Write a program to read two numbers from the keyboard and display the larger value on the screen.
3. Write a program to read the values a, b and c and display x, where x = a / b 3c. Test the program for the following values: (a)
a = 250, b = 85, c = 25 (b) a = 300, b = 70, c = 70
4. Write a function using reference variables as arguments to swap the values of a pair of integers.
5. Write a program to print the following outputs using for loops
1
22
333
4444
5555
6. An election is contested by five candidates. The candidates are numbered 1 to 5 and the voting is done by marking the
candidate number on the ballot paper. Write a program to read the ballots and count the vote cast for each candidate using an
array variable count. In case, a number read is outside the range 1 to 5, the ballot should be considered as a <spoilt ballot=
and the program should also count the numbers of <spoilt ballots
7. An electricity board charges the following rates to domestic users to discourage large consumption of energy:
For the first 100 units 3 60P per unit
For the first 200 units 3 80P per unit
For the first 300 units 3 90P per unit All users are charged a minimum of Rs. 50.00.
If the total amount is more than Rs. 300.00 then an additional surcharge of 15% is added. Write a program to read the names
of users and number of units consumed and print out the charges with names
UNIT -2- (8 Hrs+ 3 Hrs )
Functions in C++:
Main Function, Function Prototyping, call and return by reference, Inline function, default arguments, recursion function
overloading, math library function
Classes and Objects: Specifying a class, defining member functions, C++ program with a class, Making an Outside function
inline, Nesting of member functions, Private member functions, Arrays within a Class, Memory Allocation for Objects, Static
Data Members, Static Member functions, Array of Objects, Objects as function arguments, Returning objects, Const Member
functions
Chapter 4: 4.1-4.7, 4.9,4.10,4.12
Chapter 5: 5.1-5.17
Lab
1. Write a program to read a matrix of size m*n from the keyboard and display the same on the screen using function
2. Write a function power() to raise a number m to power n. The function takes a double value for m and int value for n and
returns the result correctly. Use a default value of 2 for n to make the function to calculate the squares when this
argument is omitted. Write a main that gets the values of m and n from the user to test the function.
3. Define a class to represent a bank account. Include the following members:
Data members: 1. Name of the depositor. 2. Account number. 3. Type of account. 4. Balance amount in the account.
Member functions: 1. To assign initial values. 2. To deposit an amount. 3. To withdraw an amount after checking the
balance. 4. To display the name and balance. Write a main program to test the program.
4. Write a class to represent a vector (a series of float values).
Include member functions to perform the following tasks:
(a)To create the vector.
(b)To modify the value of a given element.
(c)To multiply by a scalar value.
(d)To display the vector in the form (10, 20, 30 …) Write a program to test your class.
5. Create two classes DM and DB which store the value of distances. DM stores distances in meters and centimeters and
DB in feet and inches. Write a program that can read values for the class objects and add one object of DM with another
object of DB. Use a friend function to carry out the addition operation. The object that stores the results may be a DM
object or DB object, depending on the units in which the results are required. The display should be in the format of feet
and inches or meters and centimeters depending on the object on display.
UNIT -3- (8 Hrs+2 Hrs )
Constructors: Parameterized Constructors, Multiple Constructors in a class, Constructors with default arguments, Dynamic
initialization of objects, Copy and Dynamic Constructors, Destructors
Operator Overloading: Overloading unary and binary operators – Overloading Using Friend functions, manipulation of Strings using
Operators, other operator overloading, rules for overloading operators
Chapter 6, Chapter 7: Chapter 7.1-7.8
Lab
1. A book shop maintains the inventory of books that are being sold at the shop. The list includes details such as author, title,
price, publisher and stock position. Whenever a customer wants a book, the sales person inputs the title and author and the
system searches the list and displays whether it is available or not. If it is not, an appropriate message is displayed. If it is,
then the system displays the book details and requests for the number of copies required. If the requested copies are available,
the total cost of the requested copies is displayed; otherwise <Required copies not in stock= is displayed. Design a system
using a class called books with suitable member functions and constructors. Use new operator in constructors to allocate
memory space required
2. Create a class FLOAT that contains one float data member. Overload all the four arithmetic operators so that they operate on
the objects of FLOAT.
3. Design a class Polar which describes a point in the plane using polar coordinates radius and angle. A point in polar
coordinates is shown below figure 7.3 Use the overload + operator to add two objects of Polar. Note that we cannot add polar
values of two points directly. This requires first the conversion of points into rectangular coordinates, then adding the
respective rectangular coordinates and finally converting the result back into polar coordinates. You need to use the following
trigonometric formula: x = r * cos(a);
UNIT -4- (8 Hrs+2 Hrs )
Inheritance: Defining derived classes, Single Inheritance, Making a private member inheritable, Multilevel, Multiple
inheritance, Hierarchical inheritance, Hybrid inheritance, Virtual base classes, Abstract classes, Constructors in derived
classes, Member classes - Nesting of classes.
Pointers, Virtual Functions, and Polymorphism: Pointer to objects, this pointer, polymorphism, Pointer to derived Class -
Virtual functions – Pure Virtual Functions, virtual constructors, and destructors
Chapter 8, Chapter 9
Lab
1. Assume that a bank maintains two kinds of accounts for customers, one called as savings and the other as current account.
The savings account provides compound interest and withdrawal facilities but no cheque book facility. The current account
provides cheque book facility but no interest. Current account holders should also maintain a minimum balance and if the
balance falls below this level a service charge is imposed. Create a class account that stores customer name, account number
and type of account. From this derive the classes cur_acct and sav_acct to make them more specific to their requirements.
Include necessary member functions in order to achieve the following tasks:
(a) Accept the deposit from a customer and update the balance.
(b) Display the balance.
(c) Compute and deposit interest.
(d) Permit withdrawal and update the balance.
(e) Check for the minimum balance, impose penalty, necessary and update the balance.
2. An educational institution wishes to maintain a database of its employees. The database is divided into a number of classes
whose hierarchical relationships are shown in following figure. The figure also shows the minimum information required for
each class. Specify all classes and define functions to create the database and retrieve individual information as and when
required
3. Create a base class called shape. Use this class to store two double type values that could be used to compute the area of
figures. Derive two specific classes called triangle and rectangle from the base shape. Add to the base class, a member
function get_data() to initialize base class data members and another member function display_area() to compute and display
the area of figures. Make display_area() as a virtual function and redefine this function in the derived classes to suit their
requirements. Using these three classes, design a program that will accept dimensions of a triangle or a rectangle interactively,
and display the area. Remember the two values given as input will be treated as lengths of two sides in the case of rectangles
and as base and height in the case of triangles, and used as follows:
Area of rectangle = x * y Area of triangle = ½ * x * y
UNIT -5- (8 Hrs+2 Hrs)
Templates: Introduction to Templates, Class Templates, Class Templates with Multiple Parameters, Function Templates, Function
Templates with Multiple Parameters
Exception handling: Basics of Exception Handling, Types of Exception, Exception Handing Mechanism, Throwing and Catching
Mechanism, Rethrowing an Exception, Specifying Exceptions.
Introduction to the standard template library: Introduction, components of STL, containers, algorithms
Chapter 12: 12.1-12.5
Chapter 13: 13.1-13.7
Chapter 14: 14.1-14.4
Lab
1. Write a function template for finding the minimum value contained in an array.
Write a class template to represent a generic vector. Include member functions to perform the following tasks:
(a) To create the vector
(b) To modify the value of a given element
(c) To multiply by a scalar value
(d) To display the vector in the following form (10, 20, 30 …)
2. Write a program to implement the exception handling with multiple catch statements.
3. Write a program to implement the exception handling with re throwing in exception.
4. Write a program to implement the exception handling with the functionality of testing the throw restrictions.
TEXTBOOKS
SINO Textbook Title Author(s) Publisher(s
Edition/Year of Publication
Units )
T1 OBJECT ORIENTED E McGraw 8th Edition / 2021
PROGRAMMING Using C++ Balaguruswam Hill
y Education
REFERENCE BOOKS
R1 Object Oriented Programming Robert Lafore, Galgotia 2010.
using C++ publication
ONLINE RESOURCES (Links to MOOCS, NPTEL, MIT COURSEWARE etc)
Topic/Title Link
NPTEL / Programming in Modern C++ https://onlinecourses.nptel.ac.in/noc23_cs50/preview
COURSE ASSESSMENT METHOD:
CIE:
1. LA1 and LA2 : Placement based questions
2. Three mid-examinations, 30 Marks each will be conducted.
SEE:
Two Questions are to be set from each unit, carrying 20 Marks each. Students have to answer 5 questions selecting one full question
from each unit
PEDAGOGY
1. Blackboard Teaching
2. PowerPoint Presentations (if needed)
3. Regular review of students by asking questions based on topics covered in the class.
CO-PO-PSO MAPPING
CO/PO PO PO PO PO PO PO PO PO PO PO PO PO12 PSO1 PSO2 PSO3 BT
1 2 3 4 5 6 7 8 9 10 11
CO1 2 3 3 2 3
CO2 2 3 3 2 3
CO3 3 3 3 3 2 3
CO4 3 3 3 2 3 2 3
CO5 3 3 3 2 3 2 3