国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux進程優先級

2024-08-27 23:56:41
字體:
來源:轉載
供稿:網友
linux 是一個多用戶、多任務的操作系統,系統中通常運行著非常多的進程。但是 CPU 在一個時鐘周期內只能運算一條指令(現在的 CPU 采用了多線程、多核心技術,所以在一個時鐘周期內可以運算多條指令。 但是同時運算的指令數也遠遠小于系統中的進程總數),那問題來了:誰應該先運算,誰應該后運算呢?這就需要由進程的優先級來決定了。

另外,CPU 在運算數據時,不是把一個集成算完成,再進行下一個進程的運算,而是先運算進程 1,再運算進程 2,接下來運算進程 3,然后再運算進程 1,直到進程任務結束。不僅如此,由于進程優先級的存在,進程并不是依次運算的,而是哪個進程的優先級高,哪個進程會在一次運算循環中被更多次地運算。

這樣說很難理解,我們換一種說法。假設我現在有 4 個孩子(進程)需要喂飯(運算),我更喜歡孩子 1(進程 1 優先級更高),孩子 2、孩子 3 和孩子 4 一視同仁(進程 2、進程 3 和進程 4 的優先級一致)?,F在我開始喂飯了,我不能先把孩子 1 喂飽,再喂其他的孩子,而是需要循環喂飯(CPU 運算時所有進程循環運算)。那么,我在喂飯時(運算),會先喂孩子 1 一口飯,然后再去喂其他孩子。而且在一次循環中,先喂孩子 1 兩口飯,因為我更喜歡孩子 1(優先級高),而喂其他的孩子一口飯。這樣,孩子 1 會先吃飽(進程 1 運算得更快),因為我更喜歡孩子 1。

在 Linux 系統中,表示進程優先級的有兩個參數:Priority 和 Nice。還記得 "ps -le" 命令嗎?

[root@localhost ~]# ps -le
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 718 - ? 00:00:01 init
1 S 0 2 0 0 80 0 - 0 - ? 00:00:00 kthreadd
...省略部分輸出...

其中,PRI 代表 Priority,NI 代表 Nice。這兩個值都表示優先級,數值越小代表該進程越優先被 CPU 處理。不過,PRI值是由內核動態調整的,用戶不能直接修改。所以我們只能通過修改 NI 值來影響 PRI 值,間接地調整進程優先級。

PRI 和 NI 的關系如下:

PRI (最終值) = PRI (原始值) + NI

其實,大家只需要記得,我們修改 NI 的值就可以改變進程的優先級即可。NI 值越小,進程的 PRI 就會降低,該進程就越優先被 CPU 處理;反之,NI 值越大,進程的 PRI 值就會増加,該進程就越靠后被 CPU 處理。

修改 NI 值時有幾個注意事項:
  • NI 范圍是 -20~19。
  • 普通用戶調整 NI 值的范圍是 0~19,而且只能調整自己的進程。
  • 普通用戶只能調高 NI 值,而不能降低。如原本 NI 值為 0,則只能調整為大于 0。
  • 只有 root 用戶才能設定進程 NI 值為負值,而且可以調整任何用戶的進程。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和硕县| 贺州市| 伊宁县| 洪江市| 陇西县| 贵定县| 焦作市| 清水县| 肥乡县| 平阳县| 长寿区| 平江县| 永善县| 富宁县| 江北区| 大方县| 丰台区| 且末县| 吴川市| 神农架林区| 山东省| 霍邱县| 拉萨市| 赣州市| 凤城市| 扎兰屯市| 长子县| 剑川县| 搜索| 博兴县| 天水市| 道真| 东乡族自治县| 黎城县| 满城县| 和硕县| 平乡县| 无棣县| 麻栗坡县| 泰宁县| 大渡口区|