作業系統學習筆記(一) 緒論

2021-09-21 01:21:03 字數 3901 閱讀 3563

專用暫存器

程式計數器儲存了將要取出的下一條指令的記憶體位址

堆疊指標指向記憶體中當前棧的頂端

程式狀態字psw這個暫存器包含了條件碼位、cpu優先順序、模式(使用者態或核心態),以及其他各種控制位。使用者程式通常讀入整個psw,但只對其中少量字段寫入,在系統呼叫和io中,psw的作用很重要

流水線與超標量cpu

在多數的流水線設計中,一旦一條指令被取進流水線中,它就必須被執行完畢,即便前一條取出的指令是條件轉移。

超標量設計中,通常有多個執行單元。兩個或更多的指令被同時指出、解碼並裝入暫存緩衝區,直至它們執行完畢。只要有乙個執行單元空閒,就檢查保持緩衝區是否還有可處理的指令,如果有,就把指令從緩衝區中移出並執行。存在乙個問題:程式的指令經常不按順序執行。多數情況下,硬體負責保證這種運算的結果與順序執行指令時的結果相同。

典型訪問時間

典型容量

1ns暫存器

<1kb

2ns快取記憶體

4mb10ns

主存10ms

磁碟磁軌碟片上的圓環

柱面不同碟片上的磁軌

扇區磁軌上的不同區間,典型值為512位元組

裝置受裝置控制器控制,而作業系統通過驅動程式控制裝置控制器,驅動程式一般在核心態執行,需要將驅動程式裝入作業系統中。有三個途徑:

1 將核心與裝置驅動程式重新連線,重新啟動 如unix

2 在乙個作業系統檔案中設定乙個入口,該檔案通知作業系統需要乙個裝置驅動程式,重啟系統。系統啟動時即可裝在裝置驅動程式。如windows

3 熱插拔 如usb\

實現輸入和輸出的三種方式:

1 忙等待 需要佔據cpu,cpu一直輪詢裝置知道對應的io操作完成

2 中斷的方式

關於中斷

3 dma

dma直接記憶體訪問原理是指外部設不通過cpu而直接與系統記憶體交換資料的接**術。採用中斷傳送有它的缺點,對於乙個高速i/o裝置,以及批量交換資料的情況,只能採用dma方式,才能解決效率和速度問題。dma在外設與記憶體間直接進行資料交換,而不通過cpu,這樣資料傳送的速度就取決於儲存器和外設的工作速度

通常系統的匯流排是由cpu管理的。在dma方式時,就希望cpu把這些匯流排讓出來,即cpu連到這些匯流排上的線處於第三態–高阻狀態,而由dma控制器接管,控制傳送的位元組數,判斷dma是否結束,以及發出dma結束訊號。dma控制器必須有以下功能:

1. 能向cpu發出系統保持(hold)訊號,提出匯流排接管請求;

2. 當cpu發出允許接管訊號後,負責對匯流排的控制,進入dma方式;

3. 能對儲存器定址及能修改位址指標,實現對記憶體的讀寫操作;

4. 能決定本次dma傳送的位元組數,判斷dma傳送是否結束

5. 發出dma結束訊號,使cpu恢復正常工作狀態。

快取記憶體、記憶體、pcie、pci、usb、scsi、sata和dmi

p18pci匯流排使用並行傳輸,是共享匯流排架構,多個裝置使用一條匯流排,由仲裁器決定那個裝置可以使用匯流排;而pcie使用序列傳輸,使用分離的端到端的鏈路

程序基本上是容納執行乙個程式所需要的所有資訊的容器

在讀寫檔案之前,首先要開啟檔案,檢查其訪問許可權,若許可權許可,系統將返回乙個小整數,成為檔案描述符,供後續操作使用。若禁止訪問,系統返回乙個錯誤碼

特殊檔案提供特殊檔案是為了是io裝置看起來像檔案一般,這樣就使得操作io裝置跟操作檔案一樣,使用相同的系統呼叫。有兩類特殊檔案:塊特殊檔案,如磁碟等,字元特殊檔案,如印表機、其他接收或輸出字元流的裝置。按照慣例,特殊檔案儲存在/dev目錄中

異常控制流是機制,中斷是技術

陷阱通常由處理器正在執行的現行指令引起,而中斷則是由與現行指令無關的中斷源引起的。陷阱處理程式提供的服務為當前程序所用,而中斷處理程式提供的服務則不是為了當前程序的。中斷是由硬體引起的,而異常是由軟體引起的;中斷是非同步的,而異常是同步的。

中斷

外部中斷

外部中斷是由外部裝置引發的中斷,而引發中斷的裝置被稱為中斷源,中斷源大致可以分為以下幾種

1 定時器、計時器

2 鍵盤

3 內部實時時鐘

4 通用介面

5 ps/2滑鼠

6 協處理器

7 ide/sate硬碟

8 串列埠

9 並口

10 軟盤…

內部中斷

和外部中斷相對的就是內部中斷。從cpu的角度看,外部中斷是乙個非同步事件,它可能在任何時候傳送,而內部中斷是乙個同步事件,它是執行某條指令時產生的

內部中斷可以大致分為以下幾種

異常(faults)

cpu在指令執行時產生的,異常是可以修復的。當異常發生時,壓入堆疊的是產生異常的"那條指令",當cpu執行異常處理程式結束後,將"重新執行那一條指令"。

1.1) 缺頁異常: 14: #pf

1.2) 保護錯誤(記憶體或其他保護檢查): 13: #gp

1.3) 堆疊段錯誤(堆疊操作或者載入ss): 12: #ss

1.4) 段不存在(載入段暫存器後訪問段): 11: #np

1.5) 除法錯誤(div/idiv指令): 0: #de

1.6) 越界: 5:

br#1.7) 無效操作碼(無效操作指令): 6: #ud

1.8) 對齊校驗(記憶體訪問): 17: #ac

陷阱(traps)

在cpu執行陷阱指令後,立刻通過中斷描述表執行預定的陷阱處理例程。陷阱處理例程執行結束後,將返回陷阱指令的"下一條指令"繼續執行。

2.1)系統呼叫(system call)

系統呼叫是一種軟中斷,軟中斷是一條cpu指令,用以自陷乙個中斷。由於軟中斷指令通常要執行乙個切換cpu至核心態(kernel mode/ring 0)的子例程,它常被用作實現系統呼叫(system call)

這是最常使用到的中斷,我們在程式設計中使用到的api最終都會通過系統呼叫這種內部中斷來進行ring3到ring0的切換

2.2)單步異常(除錯異常): 1: #db

用於單步執行、記憶體斷點

2.3)int3(斷點異常): 3: #bp

2.4)溢位(指令int0): 4: #of

終止(aborts)

3.1) 雙重錯誤(所有能產生異常、nmi、或者intr的指令): 8: #df\

疑問點計算機使用陷阱而不是一條指令來執行系統呼叫??

每個執行緒在作業系統看來就像是單個的cpu??

補充知識點

程序的三段

堆疊空閒區

資料正文

作業系統學習筆記一

一 使用者介面 使用者命令 指計算機使用者要求計算機系統為其工作的指示。命令的表示形式 字元形勢,選單形勢,圖形形勢 命令的使用方式 離線使用方式,聯機使用方式 二 作業系統的概念 作業系統是計算機系統中各類資源的管理者,負責分配 以及控制系統中的各種軟體硬體資源,同時跟蹤資源的使用情況 滿足資源請...

作業系統學習筆記(一)

1.3虛擬 1.4非同步 2.os的目標和功能 2.2.使用者與計算機之間的介面 2.3擴充機器 3.發展與分類 4.執行機制 5體系結構 作業系統 operating system,os 是指控制和管理整個計算機系統的硬體和軟體資源,合理的組織 排程計算機的工作和資源的分配,進而為使用者和其他軟體...

作業系統學習筆記 一 作業系統概述

作業系統的基本功能 終端分類 併發是指巨集觀上在一段時間內能同時執行多個程式,而並行則指同一時刻能執行多個指令。並行需要硬體支援,如多流水線 多核處理器或者分布式計算系統。作業系統通過引入程序和執行緒,使得程式能夠併發執行。共享是指系統中的資源可以被多個併發程序共同使用。有兩種共享方式 互斥共享和同...