什麼是系統呼叫,系統呼叫的作用是什麼

2022-12-15 00:26:34 字數 5106 閱讀 6772

1樓:阿炎的情感小屋

作業系統的主要功能是為管理硬體資源和為應用程式開發人員提供良好的環境來使應用程式具有更好的相容性,為了達到這個目的,核心提供一系列具備預定功能的多核心函式,通過一組稱為系統呼叫(system call)的介面呈現給使用者。

系統呼叫把應用程式的請求傳給核心,呼叫相應的的核心函式完成所需的處理,將處理結果返回給應用程式。

擴充套件資料

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

1、程序控制類系統呼叫

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

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

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

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

2、檔案操縱類系統呼叫

(1)建立和刪除檔案

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

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

3、程序通訊類系統呼叫

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

當採用訊息傳遞方式時,通訊前需先開啟一個連線。為此,應由源程序發出一條開啟連線的系統呼叫,而目標程序則應利用接受連線的系統呼叫表示同意進行通訊;

然後,在源和目標程序之間便開始通訊。可以利用傳送訊息的系統呼叫或者用接收訊息的系統呼叫來交換資訊。通訊結束後,還須再利用關閉連線的系統呼叫結束通訊。

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

2樓:附圖影印件

linux核心中設定了一組用於實現各種系統功能的子程式,稱為系統呼叫。

使用者可以通過系統呼叫命令在自己的應用程式中呼叫它們。

從某種角度來看,系統呼叫和普通的函式呼叫非常相似。

區別僅僅在於,系統呼叫由作業系統核心提供,執行於核心態;而普通的函式呼叫由函式庫或使用者自己提供,執行於使用者態。

隨linux核心還提供了一些c語言函式庫,這些庫對系統呼叫進行了一些包裝和擴充套件,因為這些庫函式與系統呼叫的關係非常緊密,所以習慣上把這些函式也稱為系統呼叫。

3樓:lhr123456是我

作業系統的主要功能是為管理硬體資源和為應用程式開發人員提供良好的環境來使應用程式具有更好的相容性,為了達到這個目的,核心提供一系列具備預定功能的多核心函式,通過一組稱為系統呼叫(system call)的介面呈現給使用者。

系統呼叫把應用程式的請求傳給核心,呼叫相應的的核心函式完成所需的處理,將處理結果返回給應用程式。

4樓:封疆大吏

系統呼叫是作業系統提供給程式設計人員的一種服務。由作業系統實現提供的所有系統呼叫所構成的集合即程式介面或應用程式設計介面,是應用程式同系統之間的介面。

作業系統的主要功能是為管理硬體資源和為應用程式開發人員提供良好的環境來使應用程式具有更好的相容性,為了達到這個目的,核心提供一系列具備預定功能的多核心函式,通過一組稱為系統呼叫的介面呈現給使用者。

處理器設有兩種模式:「使用者模式」與「核心模式」,通過一個標籤位來鑑別當前正處於什麼模式。一些i/o操作的指令都被限制在只有核心模式可以執行,因此作業系統有必要提供介面來為應用程式提供諸如讀取磁碟某位置的資料的介面,這些介面就被稱為系統呼叫。

擴充套件資料訪管指令:本身是一條特殊的指令,但不是特權指令。(trap指令)。基本功能:「自願進管」,能引起訪管異常。

檔案讀寫操作:

1、fcntl 檔案控制

2、open 開啟檔案

3、creat 建立新檔案

4、close 關閉檔案描述字

5、read 讀檔案

6、write 寫檔案

5樓:匿名使用者

系統呼叫:由作業系統實現的所有系統呼叫所構成的集合即程式介面或應用程式設計介面。是應用程式同系統之間的介面。作用:實現提供所有系統呼叫構成的集合 。

系統呼叫是受控的核心入口,藉助這一機制,程序可以請求核心以自己的名義去執行某些動作。以應用程式程式設計介面的形式(api),核心提供了一系列服務。這些服務包括建立新錦程、執行i/o、為程序間通訊建立管道等。

系統呼叫把應用程式的請求傳給核心,呼叫相應的的核心函式完成所需的處理,將處理結果返回給應用程式。

6樓:愛畫畫的小笨豬

每個程序的虛擬地址空間可以劃分為兩個部分:使用者空間和核心空間。在使用者態下只能訪問使用者空間;而在核心態下,既可以訪問使用者空間,又可以訪問核心空間。系統呼叫是在核心完成的。

我們用的linux命令呼叫了系統呼叫。命令strace可以看命令都呼叫了什麼系統呼叫。

系統呼叫的實質:為核心函式提供外部介面。進入核心後,不同的系統呼叫會找到各自對應的核心函式,這些核心函式被稱為系統呼叫的「服務例程」。

系統呼叫的執行過程:

當使用者態的程序呼叫一個系統呼叫時,cpu切換到核心態並開始執行一個核心函式。系統呼叫處理

程式執行下列操作:

在核心棧儲存大多數暫存器的內容

呼叫名為系統呼叫服務例程(system call service routine)的相應的c函式來處理系統呼叫

通過ret_from_sys_call(  )函式從系統呼叫返回。

7樓:錦沐暖陽

作業系統的主要功能是為管理硬體資源和為應用程式開發人員提供良好的環境來使應用程式具有更好的相容性,為了達到這個目的,核心提供一系列具備預定功能的多核心函式,通過一組稱為系統呼叫(system call)的介面呈現給使用者。

系統呼叫把應用程式的請求傳給核心,呼叫相應的的核心函式完成所需的處理,將處理結果返回給應用程式。

系統呼叫和普通呼叫的區別:

1、執行狀態不同:系統呼叫的呼叫過程和被呼叫過程執行在不同的狀態,而普通的過程呼叫一般執行在相同的狀態。

2、呼叫方法不同:系統呼叫必須通過軟中斷機制首先進入系統核心,然後才能轉向相應的命令處理程式。普通過程呼叫可以直接由呼叫過程轉向被呼叫過程。

3、返回問題:在採用搶先式排程的系統中,當系統呼叫返回時,要重新進行排程分析――是否有更高優先順序的任務就緒。普通的過程呼叫直接返**用過程繼續執行。

系統功能呼叫:

就是使用者在程式中使用「訪管指令」呼叫由作業系統提供的子功能集合。其中每一個系統子功能稱為一個系統呼叫命令,也叫廣義指令。

8樓:海明威聽海

定義:在計算機中,系統呼叫(英語:system call),又稱為系統呼叫,指執行在使用者空間的程式向作業系統核心請求需要更高許可權執行的服務。

系統呼叫提供了使用者程式與作業系統之間的介面。大多數系統互動式操作需求在核心態執行。如裝置io操作或者程序間通訊。

原理:作業系統中的狀態分為管態(核心態)和目態(使用者態)。特權指令:

一類只能在核心態下執行而不能在使用者態下執行的特殊指令。不同的作業系統特權指令會有所差異,但是一般來說主要是和硬體相關的一些指令。訪管指令:

本身是一條特殊的指令,但不是特權指令。(trap指令)。基本功能:

「自願進管」,能引起訪管異常。

使用者程式只在使用者態下執行,有時需要訪問系統核心功能,這時通過系統呼叫介面使用系統呼叫。

9樓:

在linux的世界裡,我們經常會遇到系統呼叫這一術語,所謂系統呼叫,就是核心提供的、功能十分強大的一系列的函式。這些系統呼叫是在核心中實現的,再通過一定的方式把系統呼叫給使用者,一般都通過門(gate)陷入(trap)實現。系統呼叫是使用者程式和核心互動的介面。

系統呼叫的作用是什麼?

10樓:匿名使用者

1、為了管理硬體資源和為應用程式開發人員提供良好的環境來使應用程式具有更好的相容性,為了達到這個目的,核心提供一系列具備預定功能的多核心函式,通過一組稱為系統呼叫(system call)的介面呈現給使用者。系統呼叫把應用程式的請求傳給核心,呼叫相應的的核心函式完成所需的處理,將處理結果返回給應用程式。

2、具有多工處理的功能,通常靠程序來實現。

3、為了安全問題,一些i/o操作的指令都被限制在只有核心模式可以執行,因此作業系統有必要提供介面來為應用程式提供諸如讀取磁碟某位置的資料的介面,這些介面就被稱為系統呼叫。

4、當作業系統接收到系統呼叫請求後,會讓處理器進入核心模式,從而執行諸如i/o操作,修改基址暫存器內容等指令,而當處理完系統呼叫內容後,作業系統會讓處理器返回使用者模式,來執行使用者**。

什麼是系統呼叫

11樓:葶菲靈霓甜

定義:在計算機中,系統呼叫(英語:system call),又稱為系統呼叫,指執行在使用者空間的程式向作業系統核心請求需要更高許可權執行的服務。

系統呼叫提供了使用者程式與作業系統之間的介面。大多數系統互動式操作需求在核心態執行。如裝置io操作或者程序間通訊。

原理:作業系統中的狀態分為管態(核心態)和目態(使用者態)。特權指令:

一類只能在核心態下執行而不能在使用者態下執行的特殊指令。不同的作業系統特權指令會有所差異,但是一般來說主要是和硬體相關的一些指令。訪管指令:

本身是一條特殊的指令,但不是特權指令。(trap指令)。基本功能:

「自願進管」,能引起訪管異常。

linux作業系統 什麼是系統呼叫?什麼是庫函式?二者有何區別?

12樓:匿名使用者

系統呼叫樓上說的比較詳細了,那我說下庫函式和系統呼叫的區別:

人們在長期程式設計中發現使用系統呼叫有個重大的缺點,那就程式的移植性,比如說:linux系統提供的系統呼叫的函式和windows就不一樣,2者不單單是實現的方式不同,提供給使用者的函式名,引數都不同,這個可以理解。因此一個實現好的程式,利用了linux的系統呼叫譬如說wait4函式,那麼他在windows上編譯是通不過的。

於是人們想了個辦法,就是封裝了windows和linux系統呼叫,給大家一個統一的函式(我習慣叫它介面),那麼這樣程式的移植性問題就解決了。

所以可以這麼認為庫函式是對系統呼叫的封裝(不是所有的庫函式都是),為的是解決一些公共的問題和提供統一的系統呼叫的介面,他和系統呼叫的優缺點就是:系統呼叫速度是明顯要快於庫函式(並不一定全部是,但絕大部分是),但系統呼叫缺乏移植性。庫函式速度要慢,但解決了移植問題。

這些在開發過程中要根據自己的實際情況來決定使用那一個。

庫函式呼叫和系統呼叫的區別是什麼

庫函式是語言本身的一部分,而系統函式是核心提供給應用程式的介面,屬於系統的一部分。函式庫呼叫是語言或應用程式的一部分,而系統呼叫是作業系統的一部分。使用者應用程式訪問並使用核心所提供的各種服務的途徑即是系統呼叫。在核心和使用者應用程式相交界的地方,核心提供了一組系統呼叫介面,通過這組介面,應用程式可...

IP呼叫和普通呼叫有什麼區別,IP呼叫是什麼,與普通呼叫有什麼區別

從兩個方面bai不同角度說明 1 手機du 呼叫所zhi使用話務通道是傳dao統的 網,手機ip呼叫所使用話務通道是互內聯網 2 資費上 前提是該運營商支援ip 手機呼容叫資費較高,手機ip呼叫資費相對低但是通話質量較手機ip呼叫音質要好。你好,ip呼叫並不是ip呼叫中心,ip呼叫只能設定一個手機號...

系統呼叫和程式庫的區別和聯絡,什麼是系統呼叫?它與庫函式有什麼區別和聯絡?

一般沒什麼區別,多數庫函式實際上一般最終都是通過系統呼叫實現的,另外那些庫函式完成字串比較等功能,你自己也可以編寫。使用系統呼叫的好處在於,不增加可執行程式的大小,即使你把系統的功能呼叫完,你的程式也不大。使用系統呼叫的另外一個好處,以後換其它語言寫程式也能很快得心應手。系統呼叫與庫函式和使用程式有...