-
使用 pstree 命令檢視程序之間的關係,所有程序都由初始初始化建立,父程序逐個建立子程序。
像這樣的東西(括號中的pid)。
pstree -p
init(1)-+acpid(4555)
atd(18593)
auditd(4256)-+audispd(4258)--4261)
automount(4536)-+4537)..中間省略)。
xfs(4692,xfs)
用命令自己檢查一下,更清楚。
-
每個程序都有乙個父程序,所有程序都形成乙個樹狀結構,以 init 程序為根。
1. 程序組每個程序都屬於乙個程序組,每個程序組可以包含多個程序。 程序組將有乙個程序組領導,領導程序的 PID(請參閱 Linux 程序基礎知識)成為程序組 ID (PGID) 以標識程序組。
2. 會議
此外,如果 shell 支援作業控制,則多個程序組也可以形成乙個會話。 Bash (bourne-again shell) 支援工作控制,而 sh (bourne shell) 不支援。
3、流程組(工作)的概念比較簡單易懂。 然而,會話主要是為終端建立的。 當您開啟多個終端視窗時,您實際上是在建立多個終端會話。 每個會話都有自己的前台和背景工作。
-
不同的程序彼此之間有單獨的空間,乙個程序的不同執行緒彼此共享空間!! 這種本質區別決定了不同的流程執行不同的任務,因為它們有自己的空間; 程序的不同執行緒在任務的某個步驟執行某些操作,因為它們具有相同的空間。
-
在多程序方案中,每個程序都有自己獨立的空間,而在多執行緒方案中,同一程序中的執行緒共享程序的空間位址。 因此,建立新程序所需的時間要少得多,而建立新執行緒所需的時間要少得多。
在系統排程方面,由於程序位址空間是獨立的,執行緒共享位址空間,執行緒之間的切換速度比程序之間的切換速度要快得多。
在通訊機制上,程序之間的資料是相互獨立的,它們之間的通訊必須以特殊的通訊方式進行,並且通訊必須通過作業系統,而執行緒是資料共享。
-
執行緒:是程序中執行的路徑,是系統排程的最小單位。
程序:是乙個正在執行的程式,是系統分配的最小資源單位。
執行緒到程序的關係1.乙個程序可以有多個執行緒,乙個執行緒只能屬於乙個程序。
2.同一程序中的所有執行緒共享同一程序中的所有資源。
3.真正在處理器上執行的是執行緒,而不是程序,執行緒是程序中的執行單元,是程序中的可排程實體。
Linux 執行緒與程序不同程序:優點:多個程序可以同時使用多個CPU,可以同時執行多個操作。
缺點:資源密集型(建立乙個程序來重新開啟記憶體空間)。
程序數越好越好,程序數一般等於CPU數。
執行緒: 優點:共享記憶體,特別是在執行 IO 操作(網路、磁碟)時(CPU 很少用於 IO 操作),並且可以使用多執行緒來執行併發操作。
缺點:搶奪資源。
-
我來這裡是為了了解答案。
-
Linux 核心中定義了以下狀態:
定義任務執行 0 定義任務可中斷 1 定義任務不可中斷 2 定義任務殭屍 4 定義任務已停止 8,其中任務正在執行,程序當前僅等待 CPU 資源。
Task Interruptable 和 Task Uninterruptible 均為阻塞狀態,程序當前正在等待除 CPU 以外的其他系統資源; 前者可以被訊號喚醒,後者不能。
任務殭屍是殭屍狀態,程序已經結束執行,但程序控制塊還沒有登出。
任務已停止是一種掛起狀態,主要用於除錯目的。 程序在接收到 sigstop 訊號時將進入此狀態,並在接收到 sigcont 後再次恢復執行。
酸:HCl、HCO3、HCO3、HCO4、H2SO3、HNO3 鹼:NaOH、KOH、Ca(OH)2、Mg(OH)2、Fe(OH)3 是金屬+氫氧化物的形式。 >>>More