作業系統複習(十八) 作業系統介面

2021-10-23 22:22:39 字數 3133 閱讀 9378

作業系統向使用者提供了兩類介面:使用者介面和程式介面。

使用者介面是為了方便使用者使用計算機資源所建立的使用者和計算機之間的聯絡。也就是說使用者並沒有直接使用計算機資源的許可權,而作業系統有這個許可權,作業系統可以向使用者提供命令、系統呼叫、圖形等形式的介面,完成使用者提交的各類任務。

程式介面由一組系統呼叫命令組成,這是作業系統提供給程式設計人員的介面。使用者通過在程式中使用系統呼叫命令來請求作業系統提供服務。每乙個系統呼叫都是乙個能完成特定功能的子程式。

在linux或unix系統中,一般把簡單命令分為兩類:

系統提供的標準命令,包括呼叫各種語言處理程式、實用程式等,系統管理員可以增添新的系統標準命令。

使用者自定義的命令。

根據命令是否包含在shell內部,即是否常駐記憶體,而分為內部命令和外部命令兩類:

內部命令:少數標準命令,例如改變工作目錄命令cd等,是包含在shell內部,作為內部命令常駐記憶體。

外部命令:大多數命令,如拷貝命令cp,移動命令rm等,均儲存於外存上,即每個命令是存於檔案系統中某個目錄下的單獨程式。此舉好處在於,可以很大程度節省記憶體空間。

簡單命令根據功能不同,分為五類:

進入與退出系統:使用者進入與退出過程是系統直接呼叫login及logout程式完成的。

檔案操作命令:顯示檔案內容cat,複製檔案副本cp,已有檔案改名mv,撤銷檔案rm,確定檔案型別file。

目錄操作命令:建立目錄mkdir,撤銷目錄rmdir,改變工作目錄cd。

系統訪問命令:訪問當前日期和時間date,詢問系統當前使用者who,顯示當前目錄路徑名pwd。

重定向與管道命令:

重定向符號「<」和「>」分別表示輸入轉向與輸出轉向。

例:cat file1 > file2 表示把檔案file1的內容列印輸出到檔案file2上。

wc < file3 表示把檔案file3中讀出的行中的字和字元進行技術。

管道命令符「|」用來連線兩條命令,使其前一條命令的輸出作為後一條命令的輸入。

例: cat file | wc 將使命令cat把檔案file中的資料作為wc命令的計數輸入。

通訊命令:

系統態和使用者態

在實際執行過程中,處理機會在系統態和使用者態間切換。相應地,現代多數os將cpu的指令集分為特權指令和非特權指令兩類。

(1)特權指令。特權指令是指在系統態執行的指令,它對內部空間的訪問範圍基本不受限制,不僅能訪問使用者空間,也能訪問系統空間。

(2)非特權指令。非特權指令是執行在使用者態的指令。應用程式所使用的都是非特權指令,它只能完成一般性的操作和任務,不能對系統中的硬體和軟體直接進行訪問,對記憶體的訪問範圍也侷限於使用者空間。

系統呼叫

系統呼叫本質上是應用程式請求os核心完成某功能時的一種過程呼叫,它與一般的過程呼叫的幾個差別:

執行在不同的系統狀態。一般的過程呼叫其呼叫程式和被呼叫程式執行在相同的狀態——系統態或使用者態,而系統呼叫最大的差別是:呼叫程式是執行在使用者態,而被呼叫程式是執行在系統態。

狀態的轉換。由於系統呼叫的呼叫和被呼叫過程是工作在不同的系統狀態,因而不允許由呼叫過程直接轉向被呼叫過程,需要通過軟中斷機制,先由使用者態轉換為系統態,經核心分析後,才能轉向相應的系統呼叫處理程式。

返回問題。在採用了搶占式(剝奪)排程方式的系統中,在被呼叫過程執行完成後,要對系統中所有要求執行的程序做優先權分析。當呼叫程序仍具有最高優先順序時,才返回到呼叫進行繼續執行;否則,將引起重新呼叫,以便優先權最高的程序優先執行。

巢狀呼叫。像一般過程一樣,系統呼叫也可以巢狀進行,即在乙個被呼叫過程的執行期間,還可以利用系統呼叫命令去呼叫另乙個系統呼叫。

中斷機制:系統呼叫是通過中斷機制實現的,並且乙個作業系統的所有系統呼叫,都通過同乙個中斷入口來實現。

系統呼叫的型別

對於一般通用的os而言,系統呼叫分為三大類:

程序控制類系統呼叫

主要用於對程序控制的系統呼叫有:

(1)建立和終止程序的系統呼叫。

(2)獲得和設定程序屬性的系統呼叫。程序的屬性包括有程序識別符號,程序優先順序,最大允許執行時間等。

(3)等待某事件出現的系統呼叫。

檔案操縱類系統呼叫

(1)建立和刪除檔案

(2)開啟和關閉檔案的系統呼叫

(3)讀和寫檔案的系統呼叫

程序通訊類系統呼叫

在單機處理系統中,os經常採用訊息傳遞方式和共享儲存區方式。

當採用訊息傳遞方式時,通訊前需先開啟乙個連線。為此,應由源程序發出一條開啟連線的系統呼叫,而目標程序則應利用接受連線的系統呼叫表示同意進行通訊;然後,在源和目標程序之間便開始通訊。可以利用傳送訊息的系統呼叫或者用接收訊息的系統呼叫來交換資訊。通訊結束後,還須再利用關閉連線的系統呼叫結束通訊。

使用者在利用共享儲存區進行通訊之前,須先利用建立共享儲存區的系統呼叫來建立乙個共享儲存區,再利用建立連線的系統呼叫將該共享儲存區連線到程序自身的虛位址空間上,然後便可以利用讀和寫共享儲存區的系統呼叫實現相互通訊。

程序控制:

檔案操縱:

程序通訊和資訊保護:unix中提供了乙個用於程序間通訊的軟體包ipc,它由訊息機制、共享儲存器機制和訊號量機制三部分組成。

linux系統在cpu的環境保護模式下提供了四個特權級別,目前核心都只用到了其中的兩個特權級別,分別是「特權級0」(核心態)與「特權級3」(使用者態)。使用者對系統呼叫不能任意攔截和修改,以保證核心的安全性。

系統呼叫是linux核心為使用者態程式提供的主要功能介面。通過系統呼叫,使用者態程序能夠臨時切換到核心態,使用核心態才能訪問的硬體和資源完成特定功能。系統呼叫由linux核心和核心模組實現,核心在處理系統呼叫時還會檢查系統呼叫請求和引數是否正確,保證對特權資源和硬體訪問的正確性。通過這種方式,linux在提供核心和硬體資源訪問介面的同時,保證了核心和硬體資源的使用正確性和安全性。

每個系統呼叫由兩部分組成:

系統呼叫控制程式的工作流程為:

取系統呼叫號,檢驗合法性。

執行int 80h產生中斷。

進行位址空間的轉換,以及堆疊的切換,進入核心態。

進行中斷處理,根據系統呼叫號定位核心函式位址。

根據通用暫存器內容,從使用者棧中取入口引數。

核心函式執行,吧結果返回應用程式。

作業系統複習 作業系統介面

1 作業系統為了方便使用者方便的使用向使用者提供了兩類介面 使用者介面 聯機使用者介面與離線使用者介面 和程式介面 2 程式介面是os專門為使用者程式設定的,它是使用者程式取得os服務的唯一介面。3 系統呼叫提供了使用者程式和作業系統之間的介面,應用程式通過系統呼叫實現與os的通訊並取得服務。由此可...

作業系統 作業系統介面

介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...

作業系統 2 作業系統介面

介面是什麼?使用者用很熟悉的東西進入系統 連線兩個東西 訊號轉換 遮蔽細節.第一部分 作業系統介面 首先從命令列和圖形介面來引入我們作業系統介面的介紹 命令列是一段程式,系統初始化完之後便進入這段程式,這個程式是乙個死迴圈,不斷等待著使用者敲入命令。圖形介面是包括畫圖的c程式 c語言邏輯 重要函式 ...