2. 系統調用

一、操作系統接口

​ 操作系統接口是連接操作系統和應用軟件的函數,表現爲系統調用

二、系統調用

2.1 什麼是系統調用

​ 根據進程訪問資源的特點,可以把進程在系統上的運行分爲兩個級別:

  • 用戶態:可以直接讀取用戶程序的數據的進程;
  • 內核態:可以訪問計算機任何資源的進程

​ 凡是與系統態級別的資源有關的操作(如文件管理、進程控制、內存管理等)都必須通過系統調用方式向操作系統提出服務請求,並由操作系統代爲完成。

​ 系統調用功能大致分類:

  • 設備管理:完成設備的請求、釋放、啓動等功能;
  • 文件管理:完成文件的讀、寫、創建和刪除等功能;
  • 進程控制:完成進程的創建、撤銷、阻塞和喚醒等功能;
  • 進程通信:完成進程間消息傳遞或信號傳遞等功能;
  • 內存管理:完成內存分配、回收以及獲取作業佔用內存區大小及地址等功能。

2.2 系統調用的實現

​ 內存被硬件分割成兩部分:內核態和用戶態
在這裏插入圖片描述

​ 用戶態的應用程序不能進入內核態,因爲內核中保存了操作系統的重要信息,比如 Linux 的 root 密碼,如果被用戶程序直接訪問,很容易引起災難;

​ 操作系統保證用戶態的應用程序不能進入內核態的方法:通過比較 DPL(目標特權級別) 和 CPL(當前特權級別) 的大小

​ 系統調用如何進入內核態:硬件提供了主動進入內核的方法——中斷:中斷指令將 CPL 改成 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章