在linux的核心的五大組成模組中,程序管理模組時非常重要的一部分,它雖然不像記憶體管理、虛擬檔案系統等模組那樣複雜,也不像程序間通訊模組那樣條理化,但作為五大核心模組之一,程序管理對我們理解核心的運作、對於我們以後的程式設計非常重要。同時,作為五大組成模組中的核心模組,它與其他四個模組都有聯絡。下面就對程序模組進行想寫的介紹,首先要了解程序及其相關的概念。其次介紹程序的建立、切換、撤銷等基本操作。除此之外,還給出了linux核心是如何對程序進行排程管理的。
程序:程序可以理解為程式執行的乙個例項,它包括可執行程式以及與其相關的系統資源,比如開啟的檔案、掛起的訊號、核心內部資料、處理器狀態、記憶體位址空間及包含全域性變數的資料段等。從核心的角度看,程序也可以稱為任務。程序描述符:與程序相關的事情非常多,比如程序的狀態、程序的優先順序、程序的位址空間、允許該程序訪問的檔案等等,linux核心為此專門設計了乙個型別為task_struct的結構體,稱之為程序描述符。程序描述符中包含了核心管理程序的所有資訊,可以說,只要得到乙個程序的程序描述符,就可以知道乙個程序的所有資訊。
程序狀
Linux系統程式設計之程序
程序狀態 4 5種 就緒 初始化 執行,掛起 等待 停止 pbc成員 1 程序id 2 程序狀態 3 程序切換需要儲存和恢復的cpu暫存器 4 描述虛擬位址空間資訊 5 描述控制終端的資訊 6 當前工作目錄 7 umask掩碼 8 檔案描述符 9 訊號相關的資訊 10 使用者和使用者組id 11 會...
linux系統程式設計 多程序
最近發現每天都在寫業務 好多基礎的東西都忘了,今天開始每天覆習一點基礎知識。今天先複習多程序 程序是具有一定功能的程式的一次執行活動,是系統資源分配和排程的基本單位 孤兒程序 父程序退出,子程序沒有退出,被init程序收養 init程序 是核心啟動後執行的第乙個程序,是所有孤兒程序的子程序。init...
Linux系統程式設計 程序(一)
目錄 一 什麼是程序 二 程序的 生老病死 三 程序相關函式 當elf格式的可執行程式被執行的時候,程式被載入到記憶體中執行,此時核心產生了乙個名為task struct 的結構體來表示與管理這個程序。其中 一般流程為 父程序呼叫fork函式,生成子程序 使用fork產生的子程序與父程序一模一樣,並...