First Cycle - Faculty of Engineering - Computer Engineering (English)
Y : Year of Study S : Semester
Course Unit Code Course Unit Title Type of Course Y S ECTS
CSE3033 Operating Systems Compulsory 3 5 7
Objectives of the Course
The main objective of this course is to provide an understanding of the fundamental concepts underlying contemporary operating systems. Programming projects aim to provide experience to support basic concepts.
Learning Outcomes
1 To teach basics of UNIX/Linux programming; to provide opportunity of teaching and applying various UNIX system calls in different applications.
2 To teach concepts of memory management techniques including allocation, paging, segmentation and virtual memory.
3 To teach deadlock avoidance, deadlock prevention algorithms and techniques for recovering from deadlocks.
4 To distinguish the main difference between a process and thread; to design and implement applications based ona given thread library.
5 To describe process management, process synchronization and interprocess communication techniques; To design and implement a solution based on appropriate techniques of process synchronization, in case of problem involving with concurrent processes is given
6 To teach fundamental topics and components of an operating system.
Mode of Delivery
Formal Education
Course Contents
In this course, fundamental principles underlying operating systems are presented. Concepts explained include, process management, operations on processes, threads and multithreading; CPU scheduling; mutual exclusion, process synchronization, deadlocks and starvation; memory management, swapping, paging, segmentation and virtual memory; file system structures, allocation methods and directory implementation. Students will have detailed practical experience on LINUX/UNIX programming at weekly lab sessions throughout the semester.
Weekly Detailed Course Contents
Week Theoretical Practice Laboratory
1 Introduction to Operating Systems Linux Commands
2 Operating System Structures, System Calls; Examples on Linux System Calls Shell Programming
3 Process and Process Management Shell Programming
4 Interprocess Communication; Process in Linux Process Management in Linux
5 Threads and Multithreading System Calls and Examples for Process Management
6 CPU Scheduling and Scheduling Algorithms Interprocess Commnucation Techniques in Linux
7 Process Synchronization; Semaphores; Classical Problems of Synchronization Examples of Pipes and FIFOs
8 Midterm Exam Study
9 Midterm Exam
10 Monitors and Synchronization Concepts in Linux Basics of Pthreads Library
11 Deadlocks; Deadlock Prevention Techniques Synchronization Issues for Pthreads Library
12 Deadlock Avoidance and Deadlock Detection Techniques Shared Memory Programming
13 Memory Management Techniques; Paging and Swapping Shared Memory Programming
14 Virtual Memory File System in Linux
15 File System Interface and Implementation Advanced File Handling
16 I / O Systems (Midterm Exam II)
17 Final Exam Study
Recommended or Required Reading
Operating System Concepts, 8th Edition, Silberschatz, Galvin, Gagne, John Wiley, 2008 (textbook)
Operating Systems: Internals and Design Principles, 5th edition, W. Stallings, Prentice Hall (reference)
Practical Unix Programming, K. Robbins and S. Robins, Prentice Hall (reference)
Planned Learning Activities and Teaching Methods
Lecture Notes, Handouts/Additional Material during weekly lab sessions, programming examples.
Term (or Year) Learning Activities60
End Of Term (or Year) Learning Activities40
Term (or Year) Learning ActivitiesQuantityWeight
Midterm Exam280
Homework Exam220
End Of Term (or Year) Learning ActivitiesQuantityWeight
Final Exam175
Project Exam025
Language of Instruction
Work Placement(s)
Workload Calculation
Activities Number Time (hours) Total Work Load (hours)
Theoretical 14 3 42
Applied 14 2 28
Midterm Preparation 1 12 12
Final Preparation 1 8 8
Project 3 25 75
Other 1 10 10
Total 34 60 175
Contribution of Learning Outcomes to Programme Outcomes
PO 1PO 2PO 3PO 4PO 5PO 6PO 7PO 8PO 9PO 10PO 11PO 12PO 13PO 14PO 15PO 16
LO 10000000000000000
LO 20000000000000000
LO 30000000000000000
LO 40000000000000000
LO 50000000000000000