570 likes | 837 Views
電腦系統概論 Computer System Overview. 第 1 章. 作業系統 Operating System. 利用一個或一個以上的處理器( Processor )硬體資源( Hardware Resource ) 為系統使用者提供一組服務 管理輔助記憶體( Secondary Memory )與 I/O (輸入 / 輸出). 基本要素 Basic Elements. 處理器 (Processor) 中央處理器 (Central Processing Unit, CPU) 主記憶體 (Main Memory) 儲存執行中的程式與資料
E N D
作業系統Operating System • 利用一個或一個以上的處理器(Processor)硬體資源(Hardware Resource) • 為系統使用者提供一組服務 • 管理輔助記憶體(Secondary Memory)與I/O(輸入/輸出)
基本要素Basic Elements • 處理器(Processor) • 中央處理器(Central Processing Unit, CPU) • 主記憶體(Main Memory) • 儲存執行中的程式與資料 • 暫存性的(Volatile) • 被稱為真實記憶體(Real Memory)或主要記憶體(Primary Memory)
基本要素-1Basic Elements • I/O模組(I/O Modules) • 電腦對外界輸出或輸入資料 • 輔助記憶體裝置(Secondary Memory): 磁碟 • 通訊設備: 網路 • 終端機 • 系統匯流排(System Bus) • 處理器、主記憶體與I/O模組之間的通訊
處理器Processor • 兩套內部暫存器 • 記憶體位址暫存器 (Memory Address Register, MAR) • 下一次讀寫的記憶體位址 • 記憶體緩衝暫存器 (Memory Buffer Register, MBR) • 將要寫入記憶體的資料 • 剛剛才從記憶體讀入資料 • I/O位址暫存器(I/O Address Register, I/O AR) • I/O緩衝暫存器(I/O Buffer Register, I/O BR)
處理器內的暫存器Processor Registers • 使用者可見的暫存器(User-Visible Registers) • 令程式設計師可以將存取主記憶體的次數減至最少 • 控制與狀態暫存器(Control and Status Registers) • 處理器用它們來控制本身的運作 • 具有特別權限的作業系統常式,利用它們來控制程式的執行
使用者可見的暫存器User-Visible Registers • 可透過機器語言(Machine Language)來參照 • 一般程式都可使用此類暫存器,包括應用程式與系統程式 • 暫存器種類 • 資料(Data Register) • 位址(Address Register) • 索引(Index Register) • 區段指標(Segment Register) • 堆疊指標(Stack Pointer)
使用者可見的暫存器-1User-Visible Registers • 位址暫存器(Address Register) • 索引(Index Register) • 針對一個基底值加上索引值,來計算出有效位址 • 陣列(Array) • 區段指標(Segment Register) • 記憶體被分割為許多區段,存取記憶體時需要使用區段和位移值 • 堆疊指標(Stack Pointer) • 指到堆疊的頂端
資料單位 • 位元 Bit: 0 或 1 兩種值 • 位元組 Byte:8 bits • 字組 Word:與CPU內的資料暫存器相當 • 32 位元電腦: 1 Word = 32 Bits • 64 位元電腦: 1 Word = 64 Bits • 1 K (Kilo) = 210 = 1,024 ≈ 一千 (103) • 1 M (Mega) = 220 = 1,048,576 ≈ 一百萬 (106) • 1 G (Giga) = 230 = 1,073,741,824 ≈ 十億 (109) • 1 T (Tera) = 240 = 1,099,511,627,776 ≈ 一兆 (1012)
堆疊 Stack • 後進先出 LIFO • 兩個動作: • PUSH 推入 • POP 彈出 POP PUSH Stack Pointer
控制與狀態暫存器Control and Status Registers • 程式計數器 (Program Counter, PC) • 內容是將要被擷取的指令位址 • 指令暫存器 (Instruction Register, IR) • 內容是最近一個擷取到的指令 • 程式狀態字組 (Program Status Word, PSW) • 狀態碼(Condition Codes) 或『旗標』(Flags) • 中斷啟動 / 關閉(Interrupt Enable/Disable) • 監督者 / 使用者模式(Kernel Mode/User Mode)
控制與狀態暫存器-1 Control and Status Registers • 狀態碼或旗標(Condition Codes/Flags) • 處理器硬體在運算結束後所設定的位元 • 例如,反映數學運算的結果 • 結果是正數(Number is positive) • 結果是負數(Number is negative) • 結果是零(Number is zero) • 溢位(Overflow)
指令執行 Instruction Execution • 兩個步驟 • 擷取(Fetch):處理器從記憶體中讀取指令 • 執行(Execute):處理器執行每個指令 • 指令週期(Instruction Cycle) • 處理器執行一個指令的過程 • 不斷地重複、循環
指令週期Instruction Cycle Fetch Stage Execution Stage
指令的擷取與執行Instruction Fetch and Execute • 處理器從記憶體擷取一個指令 • 程式計數器 (PC) 的內容: • 下一個要擷取的指令位址 • 程式計數器每次擷取指令後都會加一
指令暫存器Instruction Register • 所擷取的指令被載入指令暫存器(IR) • 分類 • 處理器-記憶體 • 資料在處理器與記憶體之間傳輸 • 處理器-I/O • 資料可以傳送至週邊設備,或接收自週邊設備 • 資料處理 • 對資料執行一些算數或邏輯運算 • 控制 • 更改執行順序
二進位、十進位、十六進位Binary, Decimal, Hexadecimal 十六進位轉二進位再轉十進位:
直接記憶體存取 Direct Memory Access(DMA) • I/O模組直接與記憶體進行資料交換 • 處理器允許I/O模組讀寫記憶體 • 減輕處理器的負擔
中斷Interrupt • 暫時打斷處理器的正常作業,讓處理器去處理緊急事件 • 大多數的I/O裝置速度比處理器慢很多,處理器與I/O裝置來往,浪費很多時間等待 • 設定中斷: • 處理器對I/O裝置說:等你準備好了,再叫我,我先忙別的事情去了 • 發生中斷: • I/O裝置對處理器說:我準備好了,請你快來幫我處理一下
速度上的差異 • CPU:GHz 每秒大約可以執行 1 Giga 個指令 • 硬碟: KHz,和 CPU 差一百萬倍以上 • 硬碟速度的評估: • 傳輸速度:讀取/寫入資料的速度 • 搜尋速度:讀寫臂在磁柱(Cylinder)間移動的速度 • 旋轉時間:磁盤轉半圈所需的時間 • 轉速 7200 RPM,亦即每秒轉 7200 圈,轉半圈約需:60/7200/2 ≈ 0.004 = 4 ms
④準備 I/O ⑤ 傳輸資料 使用者程式一旦寫入指令(WRITE),便開始執行 I/O 程式時,整台電腦都在等 I/O 做完,總共等了 : ④+⑤+④+⑤
X為中斷發生點 使用者執行 WRITE 後,不等 I/O 完畢,立即繼續執行後續的指令。 I/O 程式以中斷的方式,打斷使用者程式的執行,取得CPU的執行時間
I/O 等待時間較長 發生第二個WRITE時,第一個WRITE尚未完成。 必須等待第一個WRITE完畢,才能夠提出第二個WRITE。
中斷處理常式Interrupt Handler • 服務特定I/O裝置的程式 • 通常是作業系統的一部分
加入中斷的指令週期Instruction Cycle with Interrupts Interrupt Stage
加入中斷的指令週期-1Instruction Cycle with Interrupts • 處理器會查看是否有任何中斷發生 • 若沒有任何中斷,則擷取目前程式的下一個指令 • 如果已發生中斷(等待服務),則處理器暫停執行目前的程式,並執行中斷處理常式
Short I/O Wait I/O 等待時間較短
Long I/O Wait I/O 等待時間較長 此時已經執行第二個WRITE,必須等第一個WRITE結束
中斷處理Interrupt Processing • 中斷的發生,觸發許多事件,處理器硬體和軟體都被牽動
多重中斷處理Multiple Interrupts • 當處理器正在處理中斷時,忽略其它送至處理器的中斷信號
多重中斷處理-1Multiple Interrupts • 定義中斷的優先順序等級
多元程式處理Multiprogramming • 處理器有多支程式需要執行 • 程式的執行次序 • 程式優先順序的高低 • 是否正在等待I/O動作完成 • 在中斷處理常式結束時,控制權未必會馬上交回給前一次被中斷的使用者程式 • 等待中的程式不只一支,優先順序較高先執行
記憶體階層架構Memory Hierarchy • 存取時間越快,則每位元的價格就越高 • 容量越大,則每位元的價格越低 • 容量越大,則存取時間越長 • 主記憶體觀察: • 創見 JetRam,規格
深入記憶體階層架構 • 每位元的價格越來越低 • 容量越來越大 • 存取時間越來越長 • 記憶體被處理器存取的頻率越來越低 • 參照區域性(Locality of Reference) • 快取(Cache)
兩層式記憶體架構 • 揮發性(Volatile) • 一旦停止供電,儲存在其中的資料立即消失 • 非揮發性(Non-Volatile) • 即使關掉電源,儲存在其中的資料也不會消失 • 輔助記憶體(Secondary Memory/Auxiliary Memory) • 用來儲存程式與資料檔案
磁碟快取Disk Cache • 用一部份的主記憶體容量當作磁碟資料暫時的緩衝區 • 磁碟所寫入的位址有集中的特性 • 程式要寫出去到磁碟的某些資料,可能很快就會被參考到,此時從磁碟快取讀取會比較快 • 觀察:硬碟規格
快取記憶體Cache Memory • 以額外的高速記憶體提昇系統效能 • 速度快=>貴=>容量小 • 區域性原則(Locality) • 有些處理器將指令快取和資料快取分開
快取記憶體-2Cache Memory • 包含主記憶體某部份的內容 • 處理器先檢查快取 • 如果在快取中找不到,則包含該資料的主記憶體區塊會先被搬移至快取,然後再傳送給處理器 • Cache HIT 需要的資料在快取中找到 • Cache MISS 需要的資料不在快取中