課程名稱 |
虛擬機器 Virtual Machines |
開課學期 |
111-2 |
授課對象 |
電機資訊學院 資訊網路與多媒體研究所 |
授課教師 |
黎士瑋 |
課號 |
CSIE5310 |
課程識別碼 |
922 U4140 |
班次 |
|
學分 |
3.0 |
全/半年 |
半年 |
必/選修 |
選修 |
上課時間 |
星期二7,8,9(14:20~17:20) |
上課地點 |
資101 |
備註 |
總人數上限:40人 |
|
|
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
虛擬化技術(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)之外的第四個應具備的學科訓練. 本課程將包含了對虛擬化技術的實現以及在各領域的創新應用上的介紹, 以及提供學生對當前虛擬化軟體使用與實作開發的經驗. |
課程目標 |
本課程的設計專注在讓學生了解虛擬化基本的原理, 廣泛的應用, 實現的方法和效能的考量, 以及虛擬化技術在各領域的創新應用. 本課程除了基本原理和實作技術, 也搭配業界最新開發系統的實例. |
課程要求 |
Systems Programming, Operating Systems, and Computer Architecture. |
預期每週課後學習時數 |
|
Office Hours |
每週四 10:00~12:00 備註: 助教 office hours @ R404 in CS Building
章瑋麟 : 14:00 - 15:00, Wednesdays
林稜凱 : 13:00 - 14:00, Fridays |
指定閱讀 |
Virtual Machines: Versatile Platforms for Systems and Processes, James Smith and Ravi Nair, Morgan Kaufmann, 2005 |
參考書目 |
Hardware and Software Support for Virtualization, Edouard Bugnion, Jason Nieh, and Dan Tsafrir, Morgan & Claypool Publishers, 2017 |
評量方式 (僅供參考) |
|
週次 |
日期 |
單元主題 |
第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 |
|