Linux程序的基本認識

2021-10-22 15:38:56 字數 1698 閱讀 6562

linux 是一種動態系統,能夠適應不斷變化的計算需求。linux 計算需求的表現是以程序的通用抽象為中心的。程序可以是短期的(從命令列執行的乙個命令),也可以是長期的(一種網路服務)。因此,對程序及其排程進行一般管理就顯得極為重要。

在使用者空間,程序是由程序識別符號(pid)表示的。從使用者的角度來看,乙個 pid 是乙個數字值,可惟一標識乙個程序。乙個 pid 在程序的整個生命期間不會更改,但 pid 可以在程序銷毀後被重新使用,所以對它們進行快取並不見得總是理想的。

程序是程式的乙個執行的例項;程序是正在執行的程式程序是能分配處理器並由處理器執行的實體;

按核心的觀點來談程序:它所擔當分配系統資源(cpu時間,記憶體)的實體。

首先我們要先了解什麼是作業系統?

作業系統是乙個軟體,管理計算機軟硬體資源的。

作業系統 = 作業系統核心 + 應用程式

作業系統核心使用雙向鍊錶進行組織所有的程序。對於程序而言,作業系統核心通過建立乙個task_struct結構體來描述乙個程序

在 linux 核心內,程序是由相當大的乙個稱為 task_struct 的結構表示的。此結構包含所有表示此程序所必需的資料,此外,還包含了大量的其他資料用來統計(accounting)和維護與其他程序的關係(如父和子)。task_struct 位於 ./linux/include/linux/sched.h(注意./linux/指向核心源**樹)。

1.task_struct結構:

struct task_struct ;
2.task_strcut結構體相關資訊pid:程序識別符號,在當前作業系統中唯一標識乙個程序

程序狀態

r執行狀態(running): 並不意味著程序一定在執行中,它表明程序要麼是在執行中要麼在執行佇列裡。

s睡眠狀態(sleeping): 意味著程序在等待事件完成(這裡的睡眠有時候也叫做可中斷睡眠(interruptible sleep))。

d磁碟休眠狀態(disk sleep)有時候也叫不可中斷睡眠狀態(uninterruptible sleep),在這個狀態的程序通常會等待io的結束。

t停止狀態(stopped): 可以通過傳送 sigstop 訊號給程序來停止(t)程序。這個被暫停的程序可以通過傳送 sigcont 訊號讓程序繼續執行。

x死亡狀態(dead):這個狀態只是乙個返回狀態,你不會在任務列表裡看到這個狀態。

上下文資訊:儲存暫存器中的值  ,當程序被切換到cpu上時,由於暫存器的值不是該程序原有的值,因此需要上下文資訊儲存之前的值。

i/o狀態資訊:包括顯示的i/o請求  分配給程序的i/o裝置和被程序使用的檔案列表 

儲存程序資訊的資料結構叫task_struct,程序的資訊可以通過/proc系統資料夾檢視。某個程序的資料夾名為程序pid號

使用ps -aux等命令可以檢視程序的相關資訊

Linux基本認識

unit 1 linux 的含義 linux 系統是基於 unix 系統開發出來的一種系統,linux 這個詞本身只表示 linux 核心,但實際上人們已經習慣了用 linux 來形容整個基於 linux核心 開源 開源,open source 全稱為開放源 開源就是要使用者利用源 在其基礎上修改和...

Linux基本認識

linux檔案型別 linux檔案許可權 linux 就是一組軟體,而軟體分為作業系統軟體和應用軟體,當然 linux 屬於作業系統軟體。計算機是由一堆硬體組成的,為了有效的控制這些硬體資源,於是乎就有了作業系統的 產生,作業系統除了有效的控制這些硬體資源的分配,並提供計算機運作所需要的功能 如網路...

對Linux系統的基本認識

為了與使用者的應用程式進行互動,核心中提供了一組系統呼叫介面,通過這些介面,應用程式可以訪問系統的硬體和各種作業系統的資源。系統呼叫介面層在使用者應用程式和核心之間新增了乙個中間層。程序管理負責建立和銷毀程序,並處理他們之間的相互聯絡 程序間通訊 同時負責安排排程它們去分享cpu。在程序的世界裡,記...