Linux詳解 程序管理

2022-09-19 16:48:11 字數 1922 閱讀 6120

接下來的幾篇部落格,我將主要按照這個思維導圖的劃分去進行講解。

在理解什麼是程序管理之前,我想我們可以先理解一下什麼是管理!

問題:什麼是管理?

管理的過程就是:「先描述,再組織」

【所有事情都可以被分類為:決策 和 執行】

管理的三個角色:

資訊(資料)

-> 資訊量太大怎麼辦?

結論:

問題:什麼是程序?我們該如何理解程序?

把程式載入到記憶體後,它就是程序了。 (方便理解,這裡的定義是不準確的)

前面我們提到了,管理就是要先描述再組織,那麼對程序的管理該如何描述和組織呢?

其實在將程式的**和資料載入到記憶體後,os還會為其建立對應的資料結構-----程序控制塊(process control block).

程序控制塊(pcb)本質就是乙個結構體,它裡面儲存著程序的相關資訊。(所以它可以用來描述程序)

在linux中,程序控制塊的具體名稱是:task_struct

包含於和pid_t getpid(void);

pit_t getppid(void);

在程序切換的時候,當前程序若沒執行結束,則會將cpu中的執行的資訊儲存到上下文資料中。

儲存上下文資訊的目的是為了下一次使用時能恢復到之前的狀態。

在程式被載入到記憶體中時,作業系統會為其建立對應的task_struct結構體用於描述程序的資訊。

由於cpu內部只有一套暫存器,計算時需要將記憶體資料移動到cpu內的暫存器中,形成當前的上下文資料。

當程序被切換時:(被切換的情況:①時間片到了 ②來了更高優先順序的程序,當前程序被搶占了)

因此在程序切換前,會先儲存上下文資訊。以便於下一次恢復上下文。

問題:程序優先順序是什麼?

cpu資源分配的先後順序,就是指程序的優先順序。

問題:為什麼要有優先順序?

存在優先順序後,可以把程序執行到指定的cpu上,這樣一來,就可以把不重要的程序安排到某個cpu上,可以極大地改善系統的整體效能。

問題:怎麼設定/修改優先順序?

利用pri和ni調整優先順序。

在弄清楚pri和ni之前,我們先來熟悉一條linux中的指令!

ps -l     //檢視當前程序的優先順序方面的資訊(主要用來看優先順序的)    //ps -al 也可以

通過這個圖,我們的聚焦點主要集中在我圈出的這幾列。

優先順序的修改都是通過對nice值進行修改,從而間接的修改pri的值的!

這裡我們要介紹一下top命令了!

top		#top命令相當於windows中的任務管理器
概括修改優先順序的流程:

進入top後 —> 按 「r」 —> 輸入程序pid —> 再輸入nice值即可修改    //沒許可權要sudo一下

注意:每次輸入nice值後,都是對基礎 pri 值進行修改的!!!

即:每次調整都是從起始值pri ± nice 值的

我舉個

Linux 程序管理動態程序管理 詳解

訊號種類 kill l列出所有支援的訊號 kill使用訊號控制程序kill 訊號名編號程序優先順序nice linux程序排程及多工 每個cpu在乙個時間點上只能處理乙個程序,通過時間片技術,來同時執行多個程式。pr 系統內定的優先順序值比ni大20 99 39 ni nice優先值可人為變動 20...

Linux 程序詳解

linux核心的七大區間 1.程序管理 程序建立,程序的三種狀態,程序間的排程,排程演算法.2.記憶體管理 段式管理 linux所有段都從0開始 頁式管理 位址偏移量 3.系統呼叫 c語言庫函式的區別 4.網路協議 tcp ip協議 5.ufs 虛擬檔案系統 linux驅動匯流排模型 6.驅動管理 ...

Linux 程序 詳解

程序 已經啟動的可執行程式的執行實力 1.pid 程序的 i d 每乙個新程序都有乙個唯一的pid 2.ppid 父程序的id 3.任何乙個程序都可以建立乙個子程序 4.在redhat 7以上,所有程序的父程序 systemd 在redhat 5,6中,所有程序的父程序 init ps 用於顯示當前...