系統呼叫基本概念
系統呼叫時值就是函式呼叫,值時呼叫的函式是系統函式,處於核心態而已。使用者在呼叫系統呼叫時會向核心傳遞一個系統呼叫號,然後系統呼叫處理程式通過此號從系統呼叫表中找到相應的核心函式執行(系統呼叫服務例程),最後返回。
1.系統呼叫號
linux系統有幾百個系統呼叫號,為了唯一的表識每一個系統呼叫,linux為每一個系統呼叫定義了一個唯一的編號,此編號就是系統呼叫號。系統呼叫號的定義在 /usr/include/asm/unistd_32.h 檔案中(版本不同為標頭檔案位置不同)。
由此可見當前系統擁有358個系統呼叫。系統呼叫號的另一個目的是作為系統呼叫表的下標,當用戶空間的程序執行一個系統呼叫時,這個系統呼叫號就被用來指明到底是要執行哪個系統呼叫,系統呼叫號相當關鍵,一旦分配好就不能再有任何改變,否則編譯好的應用程式就會因為呼叫到錯誤的系統呼叫而導致程式崩潰。
2.系統呼叫表
為了把系統呼叫號與相應的服務例程關聯起來,核心利用了一個系統呼叫表,這個系統呼叫表放在sys_call_table陣列中,他是一個函式指標陣列,每一組指標都指向其系統呼叫的封裝例程,有NR_syscalls個表項,第n個表項包含系統呼叫號為n的服務例程的地址。NR_syscalls巨集只是對可實現的系統呼叫最大個數的靜態限制,並不表示實際以實現的系統呼叫個數。這樣我們就可以利用系統呼叫號作為下標,找到其系統呼叫例程。
3.系統呼叫服務例程和系統呼叫處理函式
每一個系統呼叫bar()在核心都有一個對應的核心函式sys_bar(),這個核心函式就是系統呼叫bar()的實現,也就是說在使用者態呼叫bar(),最終會有核心函式sys_bar()為使用者服務,這裡的sys_bar()就是系統呼叫的服務例程。
既然最終還是由核心函式完成,那麼我們為什麼不直接呼叫核心函式呢?這是因為使用者空間無法直接執行核心程式碼,因為核心駐流在受保護的地址空間上,不允許使用者程序在核心地址空間上進行讀寫。所以,應用程式應該以某種方式通知系統,告訴核心自己需要執行一個系統呼叫,而這種機制是通過軟中斷實現的,通過引發一個異常促使系統切換到核心態去執行異常處理程式。此時的異常處理程式就是所謂的系統呼叫處理程式。
相關推薦
系統呼叫基本概念
系統呼叫時值就是函式呼叫,值時呼叫的函式是系統函式,處於核心態而已。使用者在呼叫系統呼叫時會向核心傳遞一個系統呼叫號,然後系統呼叫處理程式通過此號從系統呼叫表中找到相應的核心函式執行(系統呼叫服務例程),最後返回。 1.系統呼叫號 linux系統有幾百個系統呼叫號,為了唯一
文件操作系統入門基本概念
平臺 ext fonts linux文件系統 mark proc文件系統 寫到 write 自動 1、文件管理系統 在大多數應用中,文件是一個核心成分,處理實時應用和一些特殊的應用外,應用程序的輸入都是通過文件的形式來完成的,實際上,所有應用程序的輸出都保存在文件中,這
推薦系統的基本概念及其在各個領域的應用
目的 body area 聲音 文章 幫助 們的 當前 電影 初學推薦系統相關內容,寫寫自己讀《推薦系統實踐》的讀書筆記。 推薦系統: 對用戶來說推薦系統幫助用戶發現自己想要的商品,對於商品來說找到對其感興趣的用戶,前者例如電影,歌曲的推薦,後者例如廣告推送。 產生推薦系統
檔案系統---檔案系統的基本概念
檔案系統 Linux核心的應用層是以 檔案系統 為核心展開,以檔案系統作為整個核心應用層的核心,理由如下: --檔案系統本身具有重大作用: 分散式檔案系統的廣泛應用讓檔案系統成為當前核心應用的熱門 --檔案系統在整個核心架構中具有基礎架構性質:
資料庫系統的基本概念
資料、資料庫、資料庫管理系統、資料庫系統1.資料(Data)是資料庫中儲存的基本物件資料的定義 人們用來反映客觀世界而記錄下來的可以鑑別的符號資料的種類 數值資料: 0-9 非數值資料:字元、文字、聲音、圖形、影象等2.資料庫的定義 資料庫(Data
【GlusterFS學習之一】:GlusterFS分散式檔案系統的基本概念及搭建
最近因為工作的需要在接觸GlusterFS,在未來的一段時間之內應該都要與之打交道,剛剛接觸分散式檔案系統,對很多概念和機制都不是很清楚,通過一段時間的學習有一點淺顯的認識,那麼就把這段時間的瞭解到的
對稱金鑰密碼系統和非對稱金鑰密碼系統的基本概念
最近在學習密碼學,雖然看完了一本很厚的專業書,可是說實話,對裡面的內容有很多還是不能理解的。我一直有這種感覺,當你越想快點了解一件事情的時候,你會發現你越是很難掌握它,這也許就是人們常說的”心急吃不了熱豆腐“吧。也罷,還是應該從最基礎的開始。以下將記錄我學習密
系統呼叫的概念和型別
系統呼叫提供了使用者程式和作業系統核心間的介面。 1.系統態和使用者態 在實際執行過程中,處理機會在系統態和使用者態間切換。相應地,現代多數OS將CPU的指令集分為特權指令和非特權指令兩類。 (1)特權指令。特權指令是指在系統態執行的指令,它對內部空間的訪
許可權系統的基本概念和架構
[toc] # 簡介 許可權系統是我們在系統設計和應用中一種非常常見的系統。一般來說許可權系統的功能分為認證和授權兩種。認證就非常簡單的,驗證完使用者名稱密碼就算認證成功,而授權裡面的套路就很多了,本文將會詳細講解許可權系統中的一些基本概念和設計上面要注意的問題,希望大家能夠喜歡。 # 授權流程 在
作業系統中最基本的概念——庫呼叫和系統呼叫
Unix作業系統設計上的陳述: 理解庫函式的區別和系統呼叫,首先要裡理解Unix的kernel mode和user mode。考慮下面的函式段: int main() { int fd = create("filename",0666); exit(0);
金萬城平臺扣892118碼是數據系統中的基本概念
概念 管理數據 很多 選擇 data 屬性 數據存儲 就是 所有 數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,數據庫有很多種類型,從最簡單的存儲有各種數據的表格到能夠進行海量數據存儲的大型數據庫系統都在各個方面得到了廣泛的應用。 所謂碼就是能唯一標
分散式系統-->(關於系統應用的基本概念)
分散式系統-->(關於系統應用的基本概念) 最近想了一下,個人學習使用了很多很優秀的開源技術,然後也看了一些的書籍,感覺需要去整理一下,然後分享出來,一方面是一個知識總結,第二方面是有一個知識共享,期間會寫一些關於分散式系統的基礎知識,包括分散式系統會遇到的問題,然後是各種分散式應用
大資料之(4)Hadoop生態系統體系架構及基本概念
一、基本概念 機架:HDFS叢集,由分佈在多個機架上的大量DataNode組成,不同機架之間節點通過交換機通訊,HDFS通過機架感知策略,使NameNode能夠確定每個DataNode所屬的機架ID,使用副本存放策略,來改進資料的可靠性、可用性和網路頻寬的利用率。 資料塊(blo
Windows訊息基本概念及訊息系統(第一講)
一、訊息的基本概念 • 訊息(Message)指的就是Windows 作業系統發給應用程式的一個通告,它告訴應用 程式某個特定的事件發生了。比如,使用者單擊滑鼠或按鍵都會引發Windows 系統傳送相應 的訊息。最終處理訊息的是應用程式的視窗函式,如果程式不負責處理的話系統將會作出
資料庫系統原理-第一章 資料庫系統基本概念
目錄 第一章 資料庫系統基本概念 1.1 資料管理技術的發展 1.2 資料描述 1.3 資料抽象的級別 1.4 資料庫管理系統(DBMS) 1.5 資料庫系統(DBS) 第一章 資料庫系統基本概念 1.1 資料管理技術的發展 人工管理階段
訊號系統的一些基本概念
洩露 截斷會使譜分析精度受到影響。如果時域訊號是週期性的,而截斷又按整週期取數,訊號截斷不會產生問題,因為每週期訊號都能代表整個週期訊號變化情況。若不是整週期擷取資料,則截斷將使訊號波形兩端產生突變,所擷取的一段訊號與原訊號有很大不同,對這個被截斷的時域訊號進行譜分析時,本來集中的
資料庫系統概論01-基本概念&特點& 三級模型結構&二級映像
從聯機事務處理(On-Line Transaction Processing,LOTP)到聯機分析處理(On-Line Analysis Processing,OLAP) 從一般企業管理到計算機輔助設計與製作(CAD/CAM)、計算機整合制造系統(CIMS)、電子政務(e-G
linux系統程式設計-程序相關的基本概念
1. 程式和程序 程式:指編譯好的二進位制檔案,在磁碟上,不佔用系統資源(CPU、記憶體)永久的,靜態的。 程序:是抽象的概念,佔用系統資源,在記憶體中執行(程式執行產生程序)暫時的,動態的。 例子:linux同時開兩個終端,分別打開了同一個程式,但是對應的
易學筆記-系統分析師考試-第1章 緒論/1.1 資訊與資訊系統/1.1.1 資訊的基本概念
易學筆記 十年IT經驗個人學習筆記分享: 開發語言:C/C++/JAVA/PYTHON/GO/JSP WEB架構:Servlets/springMVC/springBoot/springClound 容器架構:Docker容器/Docker叢集/Docker與微服務整合/
核心系統涉及的基本概念
1.1 新契約涉及的基本概念 1.壽險危險保額:某一壽險險種身故給付的最高保險金額,又稱死亡保額。 2.意外險保額:某一意外險險種意外身故給付的最高保險金額。 3.重大疾病責任保額:某一包括重疾保險責任險種因重大疾病給付的最高保險金額。 4.人身險保額:壽險危險保額和意外險保額的合計。 5.