操作系統的運行環境


操作系統的運行環境

一、操作系統的運行機制

  計算機系統中,通常CPU執行兩種不同性質的程序,一種是操作系統內核程序;另一種是用戶自編程序或系統外城的應用程序。對操作系統而言,這兩種程序的作用不同,前者是后者的管理者和控制者,因此“管理程序”要執行一些特權指令,而“被管理程序”出於安全性考慮,
不能執行這些指令。所謂特權指令,是指計算集中不允許用戶直接使用的指令,如IO指令、置中斷指令。

  操作系統在具體實現上划分了用戶態和核心態,以嚴格區分兩種類程序。一些與硬件關聯交緊密的模塊,諸如時鍾管理程序、中斷處理程序、設備驅動程序等處於最底層。其次是運行頻率較高的程序,諸如進程管理、存儲器管理和設備管理等。這兩部分內容構成了操作系統的內核。這部分內容的指令操作工作在核心態。內核是計算機上配置的最底層軟件,是計算機功能的眼神。不同系統對內核的定義稍有區
別,大多數操作系統內核包括四個方面的內容。

時鍾管理

  在計算機外部設備中,時鍾是最關鍵的設備。時鍾的第一功能是計時,操作系統需要通過時鍾管理,向用戶提供標准的系統時間。另外,通過時鍾中斷的管理,可以實現進程的切換。諸如:在分時操作系統中,采用時間片輪轉調度的實現;在實時系統中,按截止時間控制運行的實現;在批處理系統中,通過時鍾管理來衡量一個作業的運行程度等。因此,系統管理的方方面面無不依賴於它。

中斷機制

  引入中斷技術的初衷是提高多道程序運行環境中CPU的利用率,而且主要是針對外部設備的。后來的到發展,形成了多種類等,成為操作系統各項操作的基礎。例如鍵盤或鼠標信息的輸入、進程的管理和調度、系統功能的調用、設備驅動、文件訪問等,無不依賴於中斷機制。可以說,現代計算機系統是靠中斷驅動的軟件。

原語

  按層次結構涉及的操作系統,底層必然是一些可被調用的公用小程序,他們各自完成一個規定的操作。其特點是:1.他們處於操作系統的最底層,是最接近硬件的部分。2.這些程序的運行具有原子性——其操作只能一起合成。3.這些程序的運行時間都較短,而且調用頻繁。通常把具有這些特點的程序成為原語。定義源於的直接方法是關閉中斷,讓她的所有動作不可分割的進行完再打開中斷。

  系統中的設備驅動、CPU切換、進程通信等功能中的部分操作都可以定義為原語,使他們成為內核的組成部分。

系統控制的數據結構及處理

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

  1) 進程管理:進程狀態管理、進程調度和分配、創建與撤掉進程控制塊的隊列維護操作等。

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

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

從上述內容可以了解,核心態指令實際上包括系統調用類指令和一些針對時鍾、中斷和原語的操作指令。

二、中斷和異常的概念

  在操作系統中引入核心態和用戶態這兩匯總工作狀態后,就需要考慮這兩種狀態之間如何切換。操作系統內核工作在核心態,而用戶程序工作在用戶態。但系統不允許用戶程序實現核心態的功能,而它們又必須使用這些功能。

  中斷(interruption)也成為外中斷,指來自CPU執行指令以外的事件發生,如設備發出的IO結束中斷,表示設備輸入輸出處理已經完成,希望處理器能夠像設備發出下一個輸入輸出請求,同時讓完成輸入輸出后的程序繼續進行。時鍾中斷,表示一個固定的事件篇已到,讓處理器處理計時、啟動定時運行的任務。這一類中斷通常是與當前運行的程序無關。中斷可細分為硬中斷和軟中斷。硬中斷是硬件產生的;軟中斷是軟件產生的。

  異常(Exception)也成為內中斷、例外或陷入。指源自CPU執行指令內部的時間,如程序的非法操作碼、地址越界、算數一出、虛存系統的缺頁以及專門的陷入指令等引起的時間。對異常的處理一般要依賴與當前程序的運行現場,而且異常不能被屏蔽,一旦出現異常立即處理,而關於內中斷和外中斷的聯系與區別如下:

  這樣,操作系統的運行環境可以理解為:用戶通過操作系統運行上層程序,而這個上層程序的運行以來與操作系統的底層管理程序提供服務支持,當需要管理程序服務時,系統則通過硬件中斷機制進入核心態,運行管理程序;另外也可能是程序運行出現異常情況,被動的需
要管理程序的服務,這是就通過異常處理來進入核心態。當管理程序運行結束時,用戶程序要繼續進行,則通過相應保存程序現場推出中斷處理程序或異常處理程序,返回斷點處繼續執行。在操作系統這一層面上,我們關心的是系統核心態和用戶態的軟件實現和切換,對於硬件層面的具體理解,可以結合“計算機組成原理”課程中有關中斷的內容進行學習。

  下面列舉一些由用戶態轉向核心態的例子:

1) 用戶程序要求操作系統的服務,即系統服務。
2) 發生一次中斷
3) 用戶程序中產生了一個錯誤狀態
4) 用戶程序中企圖執行一條特權指令
5) 從核心態轉向用戶態由一條指令實現,這條指令也是特權指令。一般情況是中斷返回指令。

  注意,由用戶態進入核心態,不僅僅是狀態需要切換,而且,所使用的堆棧也可能需要由用戶堆棧切換為系統堆棧,但這個系統堆棧也是屬於該進程的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM