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: | Domain | BT 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) |
Week | Lecture | Topics 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 |