關於作業系統的一些事,你應該要知道~

操作系統的運行機制

  • 計算機系統中,通常CPU執行兩種不同性質的程序:一種是操作系統內核程序;另一種是用戶自編程序或系統外層的應用程序。對操作系統而言,這兩種程序的作用不同,前者是後者的管理者,因此“管理程序”要執行一些特權指令,而“被管理程序”出於安全考慮不能執行這些指令。所謂特權指令,是指計算機中不允許用戶直接使用的指令,如I/O指令、 置中斷指令,存取用於內存保護的寄存器、送程序狀態字到程序狀態字寄存器等指令。操作系統在具體實現上劃分了用戶態(目態)和核心態(管態),以嚴格區分兩類程序。
  • 現代計算機幾乎都是層次結構,操作系統的各項功能分別設置在不同層次上,一些與硬件關聯較緊密的模塊,諸如時鐘管理、中斷處理、設備驅動等處於最底層。其次是運行頻率較髙的程序,諸如進程管理、存儲器管理和設備管理等。這兩部分內容構成了操作系統的內核。這部分內容的指令操作工作在核心態。

  • 內核一般包括四個方面的內容:
  1. 時鐘管理:

在計算機的各種部件中,時鐘是最關鍵的設備。

時鐘的第一功能是計時,操作系統需要通過時鐘管理,向用戶提供標準的系統時間。另外,通過時鐘中斷的管理,可以實現進程的切換。諸如,在分時操作系統中,釆用時間片輪轉調度的實現;在實時系統中,按截止時間控制運行的實現;在批處理系統中,通過時鐘管理來衡量一個作業的運行程度等。因此,系統管理的方方面面無不依賴於時鐘。
  1. 中斷機制
引入中斷技術的初衷是提高多道程序運行環境中CPU的利用率,而且主要是針對外部設備的。
  1. 原語

按層次結構設計的操作系統,底層必然是一些可被調用的公用小程序,它們各自完成一個規定的操作。其特點是:

1.它們處於操作系統的最底層,是最接近硬件的部分。

2.這些程序的運行具有原子性——其操作只能一氣呵成

3.這些程序的運行時間都較短,而且調用頻繁。
  1. 系統控制的數據結構及處理

系統中用來登記狀態信息的數據結構很多,比如作業控制塊、進程控制塊(PCB)、設備控制塊、各類鏈表、消息隊列、緩衝區、空閒區登記表、內存分配表等。為了實現有效的管理,系統需要一些基本的操作,常見的操作有以下三種:

1.進程管理:進程狀態管理、進程調度和分派、創建與撤銷進程控制塊等。

2.存儲器管理:存儲器的空間分配和回收、內存信息保護程序、代碼對換程序等。

3.設備管理:緩衝區管理、設備分配和回收等。

中斷和異常的概念

  • 當中斷或異常發生時,運行用戶態的CPU會立即進入核心態,這是通過硬件實現的.
  • 中斷(Interruption),也稱外中斷,指來自CPU執行指令以外的事件的發生,如設備發出的I/O結束中斷,表示設備輸入/輸出處理已經完成,希望處理機能夠向設備發下一個輸入 / 輸出請求,同時讓完成輸入/輸出後的程序繼續運行。時鐘中斷,表示一個固定的時間片已到,讓處理機處理計時、啟動定時運行的任務等。這一類中斷通常是與當前程序運行無關的事件,即它們與當前處理機運行的程序無關。
  • 異常(Exception),也稱內中斷、例外或陷入(Trap),指源自CPU執行指令內部的事件,如程序的非法操作碼、 地址越界、算術溢出、虛存系統的缺頁以及專門的陷入指令等引起的事件。對異常的處理一般要依賴於當前程序的運行現場,而且異常不能被屏蔽,一旦出現應立即處理。關於內中斷和外中斷的聯繫與區別如圖1-2所示。
關於操作系統的一些事,你應該要知道~

圖1-2 內中斷和外中斷的聯繫與區別

系統調用

  • 所謂系統調用就是用戶在程序中調用操作系統所提供的一些子功能,系統調用可以被看做特殊的公共子程序。系統中的各種共享資源都由操作系統統一掌管,因此在用戶程序中,凡是與資源有關的操作(如存儲分配、進行I/0傳輸以及管理文件等),都必須通過系統調用方式向操作系統提出服務請求,並由操作系統代為完成。通常,一個操作系統提供的系統調用命令有幾十乃至上百條之多。

  • 這些系統調用按功能大致可分為如下幾類:
  • 設備管理。完成設備的請求或釋放,以及設備啟動等功能。
  • 文件管理。完成文件的讀、寫、創建及刪除等功能。
  • 進程控制。完成進程的創建、撤銷、阻塞及喚醒等功能。
  • 進程通信。完成進程之間的消息傳遞或信號傳遞等功能。
  • 內存管理。完成內存的分配、回收以及獲取作業佔用內存區大小及始址等功能。
  • 系統調用運行在系統的核心態。通過系統調用的方式來使用系統功能,可以保證系統的穩定性和安全性,防止用戶隨意更改或訪問系統的數據或命令。系統調用命令是由操作系統提供的一個或多個子程序模塊實現的。
  • 操作系統的運行環境可以理解為:用戶通過操作系統運行上層程序(如系統提供的命令解釋程序或用戶自編程序),而這個上層程序的運行依賴於操作系統的底層管理程序提供服務支持,當需要管理程序服務時,系統則通過硬件中斷機制進入核心態,運行管理程序;也可能是程序運行出現異常情況,被動地需要管理程序的服務,這時就通過異常處理來進入核心態。當管理程序運行結束時,用戶程序需要繼續運行,則通過相應的保存的程序現場退出中斷處理程序或異常處理程序,返回斷點處繼續執行。

  • 由用戶態轉向核心態的例子:
  • 用戶程序要求操作系統的服務,即系統調用。
  • 發生一次中斷。
  • 用戶程序中產生了一個錯誤狀態。
  • 用戶程序中企圖執行一條特權指令。
  • 從核心態轉向用戶態由一條指令實現,這條指令也是特權命令。一般是中斷返回指令。
關於操作系統的一些事,你應該要知道~


分享到:


相關文章: