COURSE INFORMATION
Course Title: OPERATING SYSTEM DESIGN
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
CEN 805 C 99 - - - 3 7.5
Language: English
Compulsory/Elective: Elective
Classroom and Meeting Time:
Course Description: -
Course Objectives: This course introduces students to the next step in operating system design (after CS 241 or equivalent). Students will understand the main operating system functions in class and analyze their implementation through a series of machine problems that require modifications to operating system code. Students will also be exposed to the concepts of virtual machines and issues of distribution such distributed files systems and map-reduce operators for distributed computation. The course will conclude with a series of advanced topics.
COURSE OUTLINE
Week Topics
1 Introduction to operating systems: Principles and Practice.
2 Kernels & Processes
3 The Kernel Abstraction and Interrupts
4 Programming Interface
5 Concurrency & Threads
6 Synchronization and OS Support for Synchronization
7 Scheduling in Linux and Scheduling Periodic Tasks in Embedded Systems
8 Memory Background and History. MP2 Walkthrough, Q&A
9 Virtual Memory management.
10 Virtual Memory Wrap-Up
11 Emulation-Based Virtualization and Dynamic Binary Translation.
12 File systems: Disk scheduling, File system design and Directory structure, Reliable storage.
13 OS Security Overview. Epic Security Fails in OS History. MP4 Walkthrough and Access Control in Operating Systems
14 Special topics: Security Wrap-Up, Energy + Power Considerations and The Linux Audit System.
Prerequisite(s): Operating system bachelor course. Knowledge of C/C++. Basic knowledge of Linux/POSIX APIs and functions.
Textbook: Operating Systems: Principles & Practice (2nd Edition), Thomas Anderson, Michael Dahlin, 2014 Alternative textbook: Operating Systems: Internals and Design Principles (8th Edition), William Stallings, 2014. Modern Operating Systems (4rd Edition), Andrew S. Tanenbaum, Prentice Hall, 2014. Operating System Concepts (9th edition), Abraham Silberschatz, Peter B. Galvin and Greg Gagne, 2012
Other References: Virtual Machines, James E. Smith and Ravi Nair, Elsevier / Morgan Kaufmann, 2005 Linux Kernel Development (3rd Edition), Robert Love, 2010
Laboratory Work:
Computer Usage:
Others: No
COURSE LEARNING OUTCOMES
1 The students will master the Operating Systems concepts.
2 To be able to design a new operating system.
3 To be able to modify the operating system code in machine problems.
4 Comprehensive understanding of virtualization techniques.
5 The students will be exposed to virtual machine and distributed file systems.
6 Introduction to advanced OS topics: security, energy and power consumption, redundant storage etc.
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Doctorate (PhD) in Computer Engineering Program
1 Engineering graduates with sufficient theoretical and practical background for a successful profession and with application skills of fundamental scientific knowledge in the engineering practice. 5
2 Engineering graduates with skills and professional background in describing, formulating, modeling and analyzing the engineering problem, with a consideration for appropriate analytical solutions in all necessary situations 5
3 Engineering graduates with the necessary technical, academic and practical knowledge and application confidence in the design and assessment of machines or mechanical systems or industrial processes with considerations of productivity, feasibility and environmental and social aspects. 5
4 Engineering graduates with the practice of selecting and using appropriate technical and engineering tools in engineering problems, and ability of effective usage of information science technologies. 5
5 Ability of designing and conducting experiments, conduction data acquisition and analysis and making conclusions. 5
6 Ability of identifying the potential resources for information or knowledge regarding a given engineering issue. 4
7 The abilities and performance to participate multi-disciplinary groups together with the effective oral and official communication skills and personal confidence. 4
8 Ability for effective oral and official communication skills in foreign language. 3
9 Engineering graduates with motivation to life-long learning and having known significance of continuous education beyond undergraduate studies for science and technology. 3
10 Engineering graduates with well-structured responsibilities in profession and ethics. 3
11 Engineering graduates who are aware of the importance of safety and healthiness in the project management, workshop environment as well as related legal issues. 2
12 Consciousness for the results and effects of engineering solutions on the society and universe, awareness for the developmental considerations with contemporary problems of humanity. 1
COURSE EVALUATION METHOD
Method Quantity Percentage
Homework
2
5
Presentation
4
5
Term Paper
1
40
Final Exam
1
30
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 3 48
Hours for off-the-classroom study (Pre-study, practice) 12 6 72
Mid-terms 0
Assignments 1 40 40
Final examination 1 27.5 27.5
Other 0
Total Work Load:
187.5
Total Work Load/25(h):
7.5
ECTS Credit of the Course:
7.5