# Course Outline [:point_up:](https://hackmd.io/1SncfOaGQVa2GsSgll8QOQ) 作業系統是一個介於電腦硬體與使用者之間的系統程式,其主要目的在於提供使用者一個能夠更方便而且更有效率地執行程式的環境。本課程將會介紹作業系統的演進以助於更了解作業系統的功能與其實作的方法,並介紹發展作業系統所需要的基本電腦架構以及電腦硬體所提供的各種保護機制。 作業系統需要提供一個良好的執行環境使得程式在執行上更為簡單並且更有效率。因此,作業系統提供了許多服務給應用程式與使用者,例如系統呼叫等。作業系統利用這些服務來建立起與使用者間良好的溝通介面。本課程將詳細探討針對功能劃分出的行程、記憶體等幾類基本服務。 所謂行程是一個執行中的程式,為基本的執行單元。多元程式系統有多個行程一起執行。作業系統需要進行排程來決定什麼時候該由哪個行程執行。不同的系統需求需要使用不同的排程方法來增加系統效能。由於多個行程可能同時存在,因此作業系統必須提供機制讓行程與行程之間能夠交換資料,還需要注意行程之間的同步問題,甚至處理在多執行緒與多核心執行環境下所衍生的相關問題。 記憶體是構成電腦系統的重要部分,也是 CPU 與 I/O 裝置溝通的橋樑。在多元程式的環境下,主記憶體必須同時保存多個行程,以增進 CPU 的使用效率。在記憶體管理方面,作業系統必須要能夠記錄記憶體的使用狀態,並決定要載入哪些行程,以及找尋可用記憶體的策略與當主記憶體被佔滿時的處理策略。 以上為本課程的基本範圍,其他有關於檔案、IO、資訊安全、與分散式系統等由任課老師補充。本課程的目標在於讓修課同學: * 瞭解作業系統的基本概念 * 具備深入研究高等作業系統的能力 * 具備實作與修改作業系統元件的能力 * 具備設計大型軟體系統與團隊合作的能力 ## Course Plan * Part 1 Overview (10%) * Chapter 1 Introduction * Chapter 2 Operating-System Structures * Part 2 Process Management (20%) * Chapter 3 Processes * Chapter 4 Threads & Concurrency * Chapter 5 CPU Scheduling * Part 3 Process Synchronization (25%) * Chapter 6 Synchronization Tools * Chapter 7 Synchronization Examples * Chapter 8 Deadlocks * Part 4 Memory Management (20%) * Chapter 9 Main Memory * Chapter 10 Virtual Memory * Part 5 Storage Management (10%) * Chapter 11 Mass-Storage Structure * Chapter 12 I/O Systems * Part 6 File System (10%) * Chapter 13 File-System Interface * Chapter 14 File-System Implementation * Chapter 15 File-System Internals * Part 7 Security and Protection (0.1%) * Chapter 16 Security * Chapter 17 Protection * Part 8 Advanced Topics (15.0%) * Chapter 18 Virtual Machines * Chapter 19 Network and Distributed Systems * Part 9 Case Studies (0.1%) * Chapter 20 The Linux System * Chapter 21 Windows 10 * Part 10 Appendices (0.1%) * Chapter A Influential Operating Systems * Chapter B Windows 7 * Chapter C BSD Unix * Chapter D The Mach System * Chapter E Exercises ## Schedule (subject to change) | Lecture | Date | Topics (ch:chapter) | Notes | |:------- |:-----:|:----------------------|:--------------- | | 1 | 03/04 | Overview (ch 1) | grouping | | 2 | 03/11 | Overview (ch 2) | Homework 1 due | | 3 | 03/18 | Process Management (ch 3) | | | 4 | 03/25 | Process Management (ch 4) | Announcing project 1 | | 5 | 04/01 | Process Management (ch 5) | Homework 2 due, Self-designed proposal due | | 6 | 04/08 | Process Synchronization (ch 6) | On-line Quiz 0, 10:00-11:00 | | 7 | 04/15 | Process Synchronization (ch 7) | Homework 3 due | | 8 | 04/22 | Midterm (take home) | covering lectures 1-7 | | 9 | 04/29 | Process Synchronization (ch 8) | Project 1 due | | 10 | 05/06 | Memory Management (ch 9) | | | 11 | 05/13 | Memory Management (ch 10) | Announcing project 2 | | 12 | 05/20 | Storage Management (ch 11) | | | 13 | 05/27 | Storage Management (ch 12) | | | 14 | 06/03 | File System (ch 13 14) | | | 15 | 06/10 | File System (ch 15) | | | 16 | 06/17 | Final | covering lectures 9-15 | | | 06/24 | | Project 2 due | | | 07/05 | Grades Due | |