# Operating System 筆記(第一章 - 簡介)(Chapter 1 - Introduction) ###### tags: `Operating System` `筆記` `2019` `作業系統` `第一章` # Table Of Content [TOC] --- # Chapter 1 基本概念 ## OS 功能 OS 主要有以下兩個功能: 1. 資源分配者 2. 監控使用者程式的執行,以防止不正常的運作造成對系統的危害 一個標準 PC 的作業系統應該提供以下的功能: - 行程管理(Processing management) - 記憶體管理(Memory management) - 檔案系統(File system) - 網路通訊(Networking) - 安全機制(Security) - 使用者介面(User interface) - 驅動程式(Device drivers) --- ## OS 區分 ### 系統大小區分 1. 大型電腦 : - IBM OS/360 2. 個人電腦 : - Windows - Linux - BSD - Mac OS X 3. 嵌入式 : - VxWorks - eCos - Symbian OS - Palm OS ### 電腦的演進區分 1. batch - 單一指令。 - 簡單。 2. Multi-programming - 多工。 - 資源分配。 3. Time-sharing - 分時。 - 資源分配。 - 互動。 ### 單一電腦區分 1. Single-core - 單一核心。 2. Multi-core - 多核心。 3. Multi-processor - 可加上例如 GPU、加速卡。 - 不一定只有 CPU。 ### 分散電腦區分 1. Cluster - 多台電腦在一起。 - 區域網路的方式。 - 比較近。 - 管理者、OS 是單一的。 2. Distributed - 分散是系統。 - 資料中心、雲端計算等等的。 --- ## 多工技術 ### SMP Symmetric multiprocessor system(SMP) 由 OS 決定,每個 Core 都是平等的。 技術分為兩種: 1. Uniform-memory-access(UMA) - 統一記憶體存取架構,物理記憶體被均勻共用。 2. Nonuniform-memory-access(NUMA) - 非統一記憶體存取架構,共用的記憶體物理上是分散式。 ### AMP - Asymmetric multiprocessor system(AMP) - 有 Master 的 CPU,由 Matser 分配指令,只做管理不做計算。 --- ## I/O ### Buffering 是記憶體中的一個空間,將 I/O 的資料先收集至 buffer 中。 等待至 CPU 可運算的資料量時,CPU 再將資料由 buffer 中一次取出計算。 在 CPU 開始計算的同時,I/O 則可繼續收集資料,達到 CPU 與 I/O 可同時運行的目的。 ### SPOOL SPOOL 全名『Simultaneous Peripheral Operations On-Line』 是將磁碟機視為一個大 buffer,資料讀取與寫入時,不直接讀取,而由磁碟機中讀取。 例如有很多筆資料要交給印表機輸出時,可將待印資料的清單放在一個表格中,印表機印完依筆資料後,可直接至表格讀取下一比待印資料,而 CPU 把待印資料的清單放在表格中後,可以去做別的計算,I/O 也可繼續執行。 ### Buffering 與 SPOOL 的不同 - SPOOL 可允許某個工作的 CPU 計算(Computation)與另一個工作的 I/O 操作(Operation)同步執行(Overlay execution)。 - Buffering 只允許許某個工作的 CPU 計算與 I/O 操作同步執行。 --- ## I/O 間傳送的方法 ### Polling - 最簡單的方式讓 I/O 裝置與 CPU 溝通。 - I/O 裝置只要將資訊放進狀態暫存器,CPU 會周期性的檢查並取得資訊來得知需要服務的裝置。 ### Interrupt-driven I/O - 利用 Interrupt 的機制,當一個 I/O 裝置需要服務時,會發出 Interrupt 來通知 CPU(非同步 I/O)。 ### DMA (Direct Memory Access) - 提供一個裝置控制器,讓 I/O 裝置能夠直接在記憶體做資料的傳輸,不需要 CPU 的參與。 ### Cycle Stealing - DMA 向 CPU 竊用機器週期,而直接向記憶體存取資料,因此 CPU 可與週邊裝置的工作同時進行。 -萬一 CPU 與 DMA 對記憶體存取發生衝突,則給 DMA 較高的優先權(執行消耗小的先執行)。 --- ## 電腦系統架構 - 四大部分 ### User(使用者) - 廣泛應用以下的方式都可以被稱做使用者(不一定要是人)。 ### Application - Compiler - Assenbler - Test Rditor - Browser 都是使用者,廣泛來說是 app 都是 User。 只要是需要解決的問題的系統都算是。 ### OS - 溝通 Application 跟 Hardware 的部分,稱做 OS。 - 主要是『控制(Controls)』跟『協調(Coordinates)』。 - 將 Hardware 抽象化,提供 API。 ### Hardware - 提供的資源量,不管硬體驅動。 --- ## Interrupt 現在的電腦都是 Interrupt,而 Interrupt 分為兩個。 ### Hardware - 硬體所產生的。 - 產的出 Interrupt 時 os 會先去察看 Interrupt vector。 - 這些 Interrupt vector 是固定的。 - 每一個 Hardware 都會有一個 Port,而且這些 Port 都有個 Singal number。 - 裝 Driver 的時候就會 Overwriter 到 Interrupt vector pointer 的位子。 - 專有名詞:Singal ### Software - 由軟體產生的,例如 System call、Error。 - System call - 由 Program 所產生的,由程式去 Call OS API。 - Error - 由 OS throw 出來的。 - 專有名詞:Trap ## 儲存系統分成 1. Rigisters 2. Cache 3. Main memory 4. Electronic disk 5. Magnetic disk 6. Optical disk ### 分類法 尤以下三點來做區隔跟分類: 1. 速度。 2. 價格。 3. 揮發性(Volatility)。 - 以 Main memory 為分隔,CPU 能直接訪問的只有 Main memory 以上。 - 以下的被稱做 Secondary storage,容量大、不揮發。 --- ## Protection 作業系統有 Protection(保護)是系統使用穩定的保護,而不是系統安全。 以最單純的 CPU 來說,並無法分別是否是 OS 還是一般使用者發出來的指令。 但其實在實際運作時,有一個 Dual-Mode 會區分是否是由 OS 所發出來的。 在 CPU 的指令集中,有 Privileged instruction(特權指令),必須要由 OS 所發出來,才能執行。 特權指令的種類: ### 保護 I/O - 防止 User 同時或惡意修改 Shared I/O。 - I/O 指令。 ### 保護記憶體 - 已保證程式不會竄改其他人的記憶體空間。 - 與記憶體管理有關的暫存器之修改指令。 - 確保程式使用的記憶體不超過系統上限或者範圍外的空間。 ### 保護 CPU - 防止 CPU 被長期霸佔。 - 與 Timer 設定有關的指令。