The objective of this course is to 
				introduce and discuss the concepts, structures and mechanisms of 
				modern operating systems. Topics include an overview of 
				operating system fundamentals, process management, 
				multi-threading, concurrency issues, memory management, virtual 
				memory, scheduling techniques, I/O management, file management, 
				security issues, virtual machines, cloud systems, mobile and 
				embedded operating systems. The course focus will be on 
				operating systems internals rather than the operating systems 
				interface. 
				
Computer Organization and Data Stuctures
| William Stallings, Operating Systems, Internals and Design Principles, 9th Edition, Prentice Hall, 2017.(html). | A. Silberschatz, P. B. Galvin and G. Gagne, Operating System Concepts, 10th Edition, John Wiley & Sons, Inc., 2018. (html). | 
 
 | 
- A. Tannenbaum, Modern Operating 
			Systems, 4th Edition, Prentice Hall, 2014.
- T. Anderson and M. 
			Dahlin, Operating Systems: Principles and Practice, 2nd Edition, 
			Recursive Books Ltd. 2014.
			
| Evaluation Tool | Weight in % | 
|---|---|
| Homework Assignments | 8 | 
| Presentations & Labs | 14 | 
| In-term Exams - 2 Midterms | 38 | 
| Final | 40 | 
| WEEK | TOPIC(S) | 
|---|---|
| 1 | Computer System Overview | 
| 2 | Operating System Overview | 
| 3 | Process Description and Control | 
| 4 | Threads | 
| 5 | Concurrency: Mutual Exclusion and Synchronization | 
| 6 | Concurrency: Deadlock and Starvation | 
| 7 | Memory Management | 
| 8 | Exam Week | 
| 9 | Virtual Memory | 
| 10 | Uniprocessor and Multiprocessor Scheduling | 
| 11 | I/O Management, Disk Scheduling and File Management | 
| 12 | Operating System Security | 
| 13 | Virtual Machines and Cloud Operating Systems | 
| 14 | Mobile, Embedded and IoT Operating Systems |