進程控制開發(fā)之:Linux進程概述
7.1.3Linux下進程的模式和類型
在Linux系統(tǒng)中,進程的執(zhí)行模式劃分為用戶模式和內核模式。如果當前運行的是用戶程序、應用程序或者內核之外的系統(tǒng)程序,那么對應進程就在用戶模式下運行;如果在用戶程序執(zhí)行過程中出現(xiàn)系統(tǒng)調用或者發(fā)生中斷事件,那么就要運行操作系統(tǒng)(即核心)程序,進程模式就變成內核模式。在內核模式下運行的進程可以執(zhí)行機器的特權指令,而且此時該進程的運行不受用戶的干擾,即使是root用戶也不能干擾內核模式下進程的運行。
用戶進程既可以在用戶模式下運行,也可以在內核模式下運行,如圖7.3所示。
圖7.3用戶進程的兩種運行模式
7.1.4Linux下的進程管理
Linux下的進程管理包括啟動進程和調度進程,下面就分別對這兩方面進行簡要講解。
1.啟動進程
Linux下啟動一個進程有兩種主要途徑:手工啟動和調度啟動。手工啟動是由用戶輸入命令直接啟動進程,而調度啟動是指系統(tǒng)根據(jù)用戶的設置自行啟動進程。
(1)手工啟動。
手工啟動進程又可分為前臺啟動和后臺啟動。
n 前臺啟動是手工啟動一個進程的最常用方式。一般地,當用戶鍵入一個命令如“ls-l”時,就已經啟動了一個進程,并且是一個前臺的進程。
n 后臺啟動往往是在該進程非常耗時,且用戶也不急著需要結果的時候啟動的。比如用戶要啟動一個需要長時間運行的格式化文本文件的進程。為了不使整個shell在格式化過程中都處于“癱瘓”狀態(tài),從后臺啟動這個進程是明智的選擇。
(2)調度啟動。
有時,系統(tǒng)需要進行一些比較費時而且占用資源的維護工作,并且這些工作適合在深夜無人值守的時候進行,這時用戶就可以事先進行調度安排,指定任務運行的時間或者場合,到時候系統(tǒng)就會自動完成這一切工作。
使用調度啟動進程有幾個常用的命令,如at命令在指定時刻執(zhí)行相關進程,cron命令可以自動周期性地執(zhí)行相關進程,在需要使用時讀者可以查看相關幫助手冊。
2.調度進程
調度進程包括對進程的中斷操作、改變優(yōu)先級、查看進程狀態(tài)等,在Linux下可以使用相關的系統(tǒng)命令實現(xiàn)其操作,在表7.1中列出了Linux中常見的調用進程的系統(tǒng)命令,讀者在需要的時候可以自行查找其用法。
表7.1 Linux中進程調度常見命令
選項 | 參數(shù)含義 |
ps | 查看系統(tǒng)中的進程 |
top | 動態(tài)顯示系統(tǒng)中的進程 |
nice | 按用戶指定的優(yōu)先級運行 |
renice | 改變正在運行進程的優(yōu)先級 |
kill | 向進程發(fā)送信號(包括后臺進程) |
crontab | 用于安裝、刪除或者列出用于驅動cron后臺進程的任務。 |
bg | 將掛起的進程放到后臺執(zhí)行 |
linux相關文章:linux教程
pid控制器相關文章:pid控制器原理
評論