- 操作系統中主要操作硬件的,主要可以分爲內存管理、文件管理、進程管理、設備管理幾個模塊。
內存管理
- 內存分配調用: 包括靜態分配方式、動態分配方式;
- 內存保護:確保每個程序在自己的內存空間運行、互不干擾。方法是使用界限寄存器或存儲保護鍵;
- 地址映射:實現程序的邏輯地址與存儲器的物理地址之間的映射功能;
- 內存擴充:從邏輯上擴充物理內存,以允許比物理內存更大的程序在機器內運行,爲此操作系統必須具有:請求調入功能與置換功能。
進程管理
- 進程控制:包括進程創建、進程撤銷、進程阻塞、進程喚醒;
- 進程協調:由於進程運行的異步性,因此進程同步的任務是對諸進程的運行協調,包括兩種方式:進程互斥方式與進程同步方式;
- 進程通信:主要完成同一臺機器上不同進程間通信和不同機器上進程間的通信,以共同完成一相同的任務;
- 進程調度:操作系統按照一定的規則對等待運行的多道程序進行調度,以保證每個程序都能有機會得到運行,並最終完成。
文件管理
- 文件存儲空間的管理:爲每一文件分配必要的外存空間。爲提高外部存儲空間的利用率,系統應設置相應的數據結構,用於記錄文件存儲空間的使用情況;
- 目錄管理:爲了方便對用戶的文件進行管理,對文件系統建立一定結構的目錄結構,同時要求快速的目錄查詢手段;
- 文件的讀、寫管理和存取控制:利用一定的系統調用對文件進行讀寫操作。同時,爲防止系統中的文件被非法訪問和竊取,文件系統中必須提供有效存取控制功能;
設備管理
- 緩衝管理:管理各種類型的緩衝區,如字符緩衝區和塊緩衝區,以緩和CPU和I/O速度不匹配的矛盾,最終達到提高CPU和I/O設備的利用率,進而提高系統吞吐量的目的;
- 設備分配:根據用戶的I/O請求,爲之分配其所需要的設備;
- 設備處理:又稱爲設備驅動程序,任務是實現CPU和設備控制器之間的通信;
- 設備獨立性和虛擬設備:一方面保證用戶程序獨立於物理設備,另一方面保證多個進程能併發地共享同一個設備。
操作系統接口
-
命令接口:以命令形式呈現在用戶面前,方便用戶直接或間接控制自己的作業
-
程序接口:爲應用程序使用系統功能而設置,是應用程序取得操作系統服務的唯一途徑。由一系列系統調用組成,每一個系統調用都是一個能完成特定功能的子程序。
-
圖形接口:採用了圖形化的操作界面,將各種應用程序和文件,直觀、逼真地表示出來。
-
根據上圖可以看出,malloc庫函數是調用系統調用的sbrk實現的,由此可知,有些庫函數也會通過系統調用去操作硬件來實現其功能,其中printf就是通過write系統調用實現的,但也不全是,像strcpy和atoi等庫函數就不會。
-
-
這個圖上一節的圖片有一定的意思,可以看到Application可以直接調用System Call。