COURSE DESCRIPTION

NAME OF INSTITUTION Lahore Garrison University
PROGRAM (S) TO BE EVALUATED Computer Science , Fall 2021
Course Description : The course introduces some fundamental concepts of operating system. This course focuses on the processes, synchronization, scheduling, multi-threaded applications, deadlocks, memory management and file systems. In laboratory assignments of process/thread synchronization, process communication, file systems and scheduling algorithms will be given.
Course Code CSC351
Course Title Operating Systems
Credit Hours 3+1
Prerequisites by Course(s) and Topics None
Assessment Instruments with Weights (homework, quizzes, midterms, final, programming assignments, lab work, etc.) SESSIONAL (Quizzes, Assignments, Presentations) =25 %
Midterm Exam =25 %
Final Exam = 50%
Course Coordinator Lalaen Sultan
URL (if any)
Current Catalog Description
Textbook (or Laboratory Manual for Laboratory Courses) 1. Operating System Concepts by Abraham Silberschatz, Galvin Gagne, 9th Edition. 2. Applied Operating System by Silberschatz, Galvin. 3. Modern Operating System by Tananbam
Reference Material
Course Goals 1. To introduce various basic operational and management functions of an operating system. 2. Master functions, structures and history of operating systems 3. Master understanding of design issues associated with operating systems 4. Master various process management concepts including scheduling, synchronization, deadlocks 5.Be familiar with multithreading.
Course Learning Outcomes (CLOs):
At the end of the course the students will be able to:DomainBT Level*
Explain the basic structure and functioning of operating system. C 2
Point the problems related to process management and synchronization C 2
Apply learned methods to solve basic problems. C 3
Explain the cause and effect related to deadlocks and is able to analyse them related to common circumstances in operating systems. C 2
Explain the basics of memory management, the structure of the most common file-systems in modern operating systems. C 2
Implement the basic scheduling algorithm and Work on Linux Operating System C 5
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain
Topics Covered in the Course, with Number of Lectures on Each Topic (assume 15-week instruction and one-hour lectures)
WeekLectureTopics Covered
Week 1 1 Concepts about software, hardware, memory, users, operating system types, features, uses and functions
2 Introduction and Installation of Virtual Machine and Ubuntu
Week 2 3 GUI interaction of Linux
4 Linux basic commands (Create Directories, Delete Directories and create files on Linux), Linux commands for directories and files
Week 3 5 Compiling and running C code using Gcc & G++ compiler Linux
6 Implementing programs in C/ C++ (Loops, Conditions, Series etc. )
Week 4 7 Process termination using system calls, Inter-process communication
8 Linux based commands Process creation
Week 5 9 Implementing FCFS scheduling algorithm in C/C++
10 Implementing Round Robin scheduling algorithm in C/C++
Week 6 11 Priority algorithm technique implementation in C/C++
12 Non-preemptive SJF algorithm technique implementation in C/C++
Week 7 13 Process synchronization, Threads, Semaphores in C/C++
14 Implementing Synchronization problems in C/C++
Week 8 1 hours Mid Term
Week 9 15 Implementing Producer Consumer problem in C/ C++
16 Implementing Dining Philosophers in C/ C++
Week 10 17 Implementing Banker’s algorithm for deadlock avoidance in C/C++
18 Sleeping Barber Problem in C/C++
Week 11 19 Readers Writers Problem in C/C++
20 Winter Vacations
Week 12 21 Winter Vacations
22 Winter Vacations
Week 13 23 Winter Vacations
24 Winter Vacations
Week 14 25 Paging technique in memory management in C/C++
26 Calculating paging parameters in C/C++
Week 15 27 Calculating paging performance in C/C++
28 Logical to physical address translation in segmentation C/C++
Week 16 29 Demand paging performance program in C/ C++
30 Calculating Bit map overhead in disk free management in C/C++
Week 17 2 hours Final Term
Laboratory Projects/Experiments Done in the Course Implement Scheduling Algorithms and Synchronization problems in Real time applications (C/C++)
Programming Assignments Done in the Course Assignment 1, 2, 3
Instructor Name Lalaen Sultan
Instructor Signature
Date