--- tags: 作業系統 --- # CH1-OS介紹 ## 定義 #### 作業系統要: * 能夠管理並分配硬體資源 * 能夠控制APP不會去危害到硬體 ## 為何要使用OS? * Efficiency: 希望能夠更有效率的使用硬體資源,以處理更多的jobs。 * Convinence: 希望能夠更方便的使用PC。 -> 是對立面,因為更方便勢必會有一些沒效率的工作產生。 ## 功能 1. Process管理 (CUP Scheduler) * 創建 / 刪除 / 暫停 / 恢復 Process * Process 的同步 / 通訊 / 死結處理 機制 2. 記憶體管理 其實就是RAM * 分配 / 釋放 記憶體空間 * 追蹤目前記憶體使用了哪個部分、被誰用 * 決定哪個 Process 可以進入或離開記憶體 3. Storage管理 (File System) 其實就是HD * 檔案的存取權控制 * 創建 / 刪除 檔案&資料夾 * 把檔案映射到輔助記憶體 4. I/O系統 * 針對I/O的記憶體管理 * 一般驅動程式(driver)介面 5. **安全性(保護)** 見下方 # CH1-OS的保護 ## CPU 保護: 利用 **Timer** 防止 Process 進入無窮迴圈、或沒有回傳占用 CPU 太久,一段時間就會產生 Interupt。 **Timer**的設定也是特權指令。 ## 記憶體保護: 利用 **base and limit register (hardware support)** 防止 Process 存取到其他 Process 的記憶體空間。   **base and limit register**的設定也是特權指令。 ## IO保護: 要確保APP不能直接控制IO,IO設備都是需要透過**特權指令**操控。 :::info **Dual-Mode**: 會分 User mode(1) 和 Kernel mode(0),User mode 呼叫 System Call 的同時也會丟 intereupt 來轉成 Kernel mode 以執行**特權指令**。 ::: # CH1-OS的種類 ## 批次處理(Batch) X交談式 用卡片等等。 CPU一次只能處理一個任務,並且處理完就清除所有資料。 優點: 專注在一個任務。 缺點: CPU與IO速度差太多,CPU會閒置。 ## 多元系統(Multi-programing) 有了記憶體管理、CPU排程、IO系統。 IO-bound 優先於 CPU-bound。 * Job可以堆疊在記憶體。 * CPU可以決定要執行哪個Job。 * IO不需要CPU介入,當IO做完事情才會通知CPU (Spooling)。 =>因此 CPU 可以一直有事情做,能提高 CPU 使用效率  ``進行IO請求/完成,或是高優先權process插隊才會切換process`` ## 分時系統(Time-sharing) V交談式 把每個job切時間排隊來達成看起來像同時進行的效果。 ``timer計時結束才會切換process`` **CPU-bound > IO-bound**: 因為 real-time system 會需要在指定時間內完成,而 I/O-bound 的程式可能會佔用 CPU 資源導致無法迅速回應。 **實作**: 透過 Round Robin CPU 排程、Spooling、虛擬記憶體等 :::info 假設有一 real-time 系統,該系統有 4 個定時的 events,每秒發生的頻率分別式 2 次、4 次、10 次、5 次,完成這些 events 需要的時間分別是 100ms、60ms、20ms、50ms,現在想要加入一個需要 30ms 的 event,請問此 event 發生的頻率一秒最多幾次(請取整數),此系統方可順利將所有的 events 完成? Ans: 就是問多了一個30ms的event後,這個event在1秒內可以被執行幾次 2 x 100 + 4 x 50 + 10 x 20 + 5 x 50 = 850ms 1sec - 850ms = 150 ms 150 / 30 = 5次 ::: ## 單處理器系統(Single-processor) 就是一顆CPU ## 多處理器系統(Multi-processor) / Tightly coupled / Paralle System 就是多顆CPU。 **==優缺點==** 優點:省錢、提升Throughput、提升可靠性 缺點:設計較複雜 **==記憶體的處理方式分為兩種==** **SMP(對稱式Multi-processor)** CPU 們自己 Schdule 自己。 資料共享因此需要處理<font color="red">**同步化**</font>的問題,最常見的 OS。 **AMP(非對稱式Multi-processor)** 會有一個 master 去 Schedule Process 要進入哪個 slave CPU 資料不一定要全部同步,如大公司Google就放棄同步,因為太困難且客戶端不一定需要。 **==兩種實作架構==** **UMA(Uniform Memory Access)**``SMP 採用的架構``  **NUMA(Non-Uniform Memory Access)**``AMP 採用的架構,其實就是多個SMP組成``  :::info 對大公司來說能夠提高效能,但要注意避免像斜對角這樣需要多條線的存取。 ::: ## 分散式系統(Distributed) / Loosely coupled 就是從一台電腦變成多台電腦組成,通過實體的線或網路來溝通。 能夠提升**可靠度**、**Load Balance**、**資源共享**、**容易擴展**。  其實對稱式、非對稱式就跟p2p, c/s一樣,只是變成內網。 ## 即時作業系統(Real-time) 在 deadline 之前一定要做完。 | 類型 | 描述 | 例子 | | -------- | -------- | -------- | | Soft | 不強制一定要做完,可以先產出低品質的東西。 | 線上直播 | | Hard | 一定要做完,不能容忍。 | 國防系統 | ### 設計重點: 1. 排程透過優先級進行搶佔,讓重要的工作可以按時完成 2. 不採用虛擬記憶體禍福主記憶體,以保證執行速度 3. 採用優先級中斷架構,以保證優先權低的不會中斷優先權高的,而優先權高的可以中斷優先權低的以插隊。 ## 嵌入式作業系統(Embedded)/手持式作業系統(Handheld) 會設計特定的OS以符合不同產品的需求。 ### 特點: 1. 記憶體空間較少 2. 處理器較慢 3. 顯示空間較小 ### 設計重點: 1. 程式碼要精簡 2. 硬體設備的延遲要控制好 3. 排程透過優先級進行搶占 4. 避免虛擬記憶體和 I/O 操作 ---  
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up