本書是一部繫統解析操作繫統原理及 openEuler核心技術的著作。為便於讀者高效學習,本書結合openEuler中的實現代碼,詳細介紹操作繫統的基本原理和核心技術。全書分為12章:第1章介紹操作繫統的基本概念、發展歷史、基本功能、設計目標、主流操作繫統、發展趨勢,以及 openEuler操作繫統;第2章介紹鯤鵬處理器的體繫架構、CPU 編程模型、CPU 訪存原理,以及鯤鵬處理器與openEuler;第3章介紹進程的概念、進程的描述、進程的控制、繫統調用、進程切換及線程;第4章介紹調度性能指標、常見的調度算法、多核調度及 CFS調度;第5章介紹虛擬內存、分頁機制、地址轉換加速機制、多級頁表及物理內存擴充機制;第6章介紹互斥與鎖、自旋鎖、同步與信號量、共享內存、消息傳遞等機制及內存屏障技術;第7章介紹文件繫統的基本實現、I/O 性能優化、崩潰一致性及虛擬文件繫統;第8等
第3章 進程與線程 在早期的單道批處理繫統中,計算機一次隻能執行一個程序。該程序接近控制機器,並訪問所有的繫統資源。這種控制方式存在資源浪費、繫統運行效率低等問題。為了提高資源利用率和繫統的吞吐量,現代計算機繫統采用多道程序技術,允許多個程序並發執行,共享繫統資源。在多道程序環境下,由於CPU需要在各程序之間來回切換,程序的執行具有間斷性。此外,由於並發執行的程序共享繫統中的資源,任一程序對這些資源狀態的改變都會影響其他程序的運行環境,即程序之間存在制約關繫。然而,程序隻是對計算任務和數據的靜態描述,無法刻畫並發執行過程帶來的這些新特征。因此,計算機繫統使用進程作為描述程序執行過程且能用來共享資源的基本單位。另外,由於進程的創建和切換開銷較大,為了進一步提高執行效率,操作繫統引入了“線程”的概念。本章先通過程序的並發執行過程等