Course Information
Course title
虛擬機器
Virtual Machines 
Semester
111-2 
Designated for
COLLEGE OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE  GRADUATE INSTITUTE OF COMPUTER SCIENCE & INFORMATION ENGINEERING  
Instructor
黎士瑋 
Curriculum Number
CSIE5310 
Curriculum Identity Number
922 U4140 
Class
 
Credits
3.0 
Full/Half
Yr.
Half 
Required/
Elective
Elective 
Time
Tuesday 7,8,9(14:20~17:20) 
Room
資101 
Remarks
The upper limit of the number of students: 40. 
 
Course introduction video
 
Table of Core Capabilities and Curriculum Planning
Table of Core Capabilities and Curriculum Planning
Course Syllabus
Please respect the intellectual property rights of others and do not copy any of the course information without permission
Course Description

虛擬化技術(Virtualization)在各種計算機系統領域都被用來創新解決問題的方法. 虛擬化是雲端運算(Cloud Computing)平台, 包括Amazon AWS, Google Cloud, 和Microsoft Azure實現上的技術核心, 讓用戶能在一套硬體系統上同時執行多個不同的虛擬機器(Virtual Machines), 大幅提昇伺服器硬體系統的使用效率, 並提供硬體的抽象化(Abstraction), 讓不同用戶的運算和資料有更好的隔離及保護. 虛擬機器監督器(Hypervisor/VM Monitor), 譬如KVM, Xen, Azure, VMware提供了虛擬機器介面的支持以及對系統資源的管理. 近日來容器(Containers)的技術實現了比傳統虛擬機器更輕量化, 更具拓展性的支援; 虛擬化技術也被應用在: 支援程式語言(Programming Language) 上, 包括高階語言虛擬機, 譬如JVM and DVM以有效解決程式移植的問題; 和支援計算機架構(Computer Architecture)上, 讓不相容的執行碼可以跨越平台使用. 這些虛擬化所使用的原理和技術, 被認為是計算機領域的硬體(Hardware), 軟體(Software), 應用(Application)之外的第四個應具備的學科訓練. 本課程將包含了對虛擬化技術的實現以及在各領域的創新應用上的介紹, 以及提供學生對當前虛擬化軟體使用與實作開發的經驗. 

Course Objective
本課程的設計專注在讓學生了解虛擬化基本的原理, 廣泛的應用, 實現的方法和效能的考量, 以及虛擬化技術在各領域的創新應用. 本課程除了基本原理和實作技術, 也搭配業界最新開發系統的實例. 
Course Requirement
Systems Programming, Operating Systems, and Computer Architecture. 
Student Workload (expected study time outside of class per week)
 
Office Hours
Thu. 10:00~12:00 Note: 助教 office hours @ R404 in CS Building 章瑋麟 : 14:00 - 15:00, Wednesdays 林稜凱 : 13:00 - 14:00, Fridays 
Designated reading
Virtual Machines: Versatile Platforms for Systems and Processes, James Smith and Ravi Nair, Morgan Kaufmann, 2005  
References
Hardware and Software Support for Virtualization, Edouard Bugnion, Jason Nieh, and Dan Tsafrir, Morgan & Claypool Publishers, 2017 
Grading
   
Progress
Week
Date
Topic
第1週
2/21  Introduction to Virtualization 
第2週
2/28  Holiday. No class. 
第3週
3/7  Systems Virtual Machines: CPU Virtualization 
第4週
3/14  Systems Virtual Machines: Memory Virtualization 
第5週
3/21  Systems Virtual Machines: I/O, Interrupt, Timer Virtualization 
第6週
3/28  Hypervisor Internals: KVM Walkthrough 
第7週
4/4  Virtual Machines Performance, Management, and Nested Virtualization (recorded class) 
第8週
4/11  Virtualization Security 
第9週
4/18  Midterm 
第10週
4/25  Virtualization Security Cont. 
第11週
5/2  Introduction to Containers 
第12週
5/9  Container Implementations: Dockers and Kubernetes 
第13週
5/16  Process Virtual Machines 
第14週
5/23  Process Virtual Machines 
第15週
5/30  Final Presentation 
第16週
6/6  Final Presentation