婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 簡(jiǎn)要剖析Linux系統(tǒng)的進(jìn)程管理機(jī)制

簡(jiǎn)要剖析Linux系統(tǒng)的進(jìn)程管理機(jī)制

熱門(mén)標(biāo)簽:高德地圖標(biāo)注技術(shù) 滴滴洗衣店地圖標(biāo)注 慶陽(yáng)便宜外呼系統(tǒng)報(bào)價(jià) 靈圖uu電子服務(wù)區(qū)地圖標(biāo)注 如何在地圖標(biāo)注多個(gè)位置 大眾點(diǎn)評(píng)公寓式酒店地圖標(biāo)注 微信地圖標(biāo)注在哪 天地圖標(biāo)注線(xiàn) 辦理400電話(huà)怎么申請(qǐng)

一 、進(jìn)程的概念和分類(lèi)
1.進(jìn)程的概念
Linux是一個(gè)多用戶(hù)多任務(wù)的操作系統(tǒng)。
多用戶(hù)是指多個(gè)用戶(hù)可以在同一時(shí)間使用同一個(gè)linux系統(tǒng);
 多任務(wù)是指在Linux下可以同時(shí)執(zhí)行多個(gè)任務(wù),更詳細(xì)的說(shuō),linux采用了分時(shí)管理的方法,所有的任務(wù)都放在一個(gè)隊(duì)列中,操作系統(tǒng)根據(jù)每個(gè)任務(wù)的優(yōu)先級(jí)為每個(gè)任務(wù)分配合適的時(shí)間片,每個(gè)時(shí)間片很短,用戶(hù)根本感覺(jué)不到是多個(gè)任務(wù)在運(yùn)行,從而使所有的任務(wù)共同分享系統(tǒng)資源,這就是多任務(wù)的概念。
上面說(shuō)的是單CPU多任務(wù)操作系統(tǒng)的情形,在這種環(huán)境下,雖然系統(tǒng)可以運(yùn)行多個(gè)任務(wù),但是在某一個(gè)時(shí)間點(diǎn),CPU只能執(zhí)行一個(gè)進(jìn)程,而在多CPU多任務(wù)的操作系統(tǒng)下,由于有多個(gè)CPU,所以在某個(gè)時(shí)間點(diǎn)上,可以有多個(gè)進(jìn)程同時(shí)運(yùn)行。
進(jìn)程的的基本定義是:在自身的虛擬地址空間運(yùn)行的一個(gè)獨(dú)立的程序,從操作系統(tǒng)的角度來(lái)看,所有在系統(tǒng)上運(yùn)行的東西,都可以稱(chēng)為一個(gè)進(jìn)程。
需要注意的是:程序和進(jìn)程的關(guān)系可以是多對(duì)多關(guān)系!
    
2.進(jìn)程的分類(lèi)
 按照進(jìn)程的功能和運(yùn)行的程序分類(lèi),進(jìn)程可劃分為兩大類(lèi):
l) 系統(tǒng)進(jìn)程:可以執(zhí)行內(nèi)存資源分配和進(jìn)程切換等管理工作;而且,該進(jìn)程的運(yùn)行不受用戶(hù)的干預(yù),即使是root用戶(hù)也不能干預(yù)系統(tǒng)進(jìn)程的運(yùn)行。
2) 用戶(hù)進(jìn)程:通過(guò)執(zhí)行用戶(hù)程序、應(yīng)用程序或內(nèi)核之外的系統(tǒng)程序而產(chǎn)生的進(jìn)程,此類(lèi)進(jìn)程可以在用戶(hù)的控制下運(yùn)行或關(guān)閉。
針對(duì)用戶(hù)進(jìn)程,又可以分為交互進(jìn)程、批處理進(jìn)程和守護(hù)進(jìn)程三類(lèi)。
3) 交互進(jìn)程:由一個(gè)shell終端啟動(dòng)的進(jìn)程,在執(zhí)行過(guò)程中,需要與用戶(hù)進(jìn)行交互操作,可以運(yùn)行于前臺(tái),也可以運(yùn)行在后臺(tái)。
4) 批處理進(jìn)程:該進(jìn)程是一個(gè)進(jìn)程集合,負(fù)責(zé)按順序啟動(dòng)其他的進(jìn)程。
5) 守護(hù)進(jìn)程:守護(hù)進(jìn)程是一直運(yùn)行的一種進(jìn)程,經(jīng)常在linux系統(tǒng)啟動(dòng)時(shí)啟動(dòng),在系統(tǒng)關(guān)閉時(shí)終止。它們獨(dú)立于控制終端并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。例如httpd進(jìn)程,一直處于運(yùn)行狀態(tài),等待用戶(hù)的訪(fǎng)問(wèn)。還有經(jīng)常用的crond進(jìn)程,這個(gè)進(jìn)程類(lèi)似與windows的計(jì)劃任務(wù),可以周期性的執(zhí)行用戶(hù)設(shè)定的某些任務(wù)。
 3.進(jìn)程的屬性
(1)進(jìn)程的幾種狀態(tài)

(2)進(jìn)程之間的關(guān)系
 在linux系統(tǒng)中,進(jìn)程ID(用PID表示)是區(qū)分不同進(jìn)程的唯一標(biāo)識(shí),它們的大小是有限制的,最大ID為32768,用UID和GID分別表示啟動(dòng)這個(gè)進(jìn)程的用戶(hù)和用戶(hù)組。所有的進(jìn)程都是PID為1的init進(jìn)程的后代,內(nèi)核在系統(tǒng)啟動(dòng)的最后階段啟動(dòng)init進(jìn)程,因而,這個(gè)進(jìn)程是linux下所有進(jìn)程的父進(jìn)程,用PPID表示父進(jìn)程。所以如果init進(jìn)程被kill,則意味著所有進(jìn)程就kill,那系統(tǒng)會(huì)重啟或關(guān)閉

 舉例:ps命令輸出的httpd進(jìn)程信息:

相對(duì)于父進(jìn)程,就存在子進(jìn)程,一般每個(gè)進(jìn)程都必須有一個(gè)父進(jìn)程,父進(jìn)程與子進(jìn)程之間是管理與被管理的關(guān)系,當(dāng)父進(jìn)程停止時(shí),子進(jìn)程也隨之消失,但是子進(jìn)程關(guān)閉,父進(jìn)程不一定終止。
如果父進(jìn)程在子進(jìn)程退出之前就退出,那么所有子進(jìn)程就變成的一個(gè)孤兒進(jìn)程,如果沒(méi)有相應(yīng)的處理機(jī)制的話(huà),這些孤兒進(jìn)程就會(huì)一直處于僵死狀態(tài),資源無(wú)法釋放,此時(shí)系統(tǒng)默認(rèn)將init進(jìn)程作為它們的父進(jìn)程。

    二、 進(jìn)程管理命令
    Linux下,監(jiān)控和管理進(jìn)程的命令有很多,下面我們以ps、top、pstree、lsof四個(gè)最常用的指令介紹如果有效的監(jiān)控和管理linux下的各種進(jìn)程。
    (1)利用ps命令監(jiān)控系統(tǒng)進(jìn)程
ps是linux下最常用的進(jìn)程監(jiān)控命令,重點(diǎn)講述如何利用ps指令監(jiān)控和管理系統(tǒng)進(jìn)程。
舉例:
下面是apache進(jìn)程的輸出信息

其中,UID是用戶(hù)的ID標(biāo)識(shí)號(hào),PID是進(jìn)程的標(biāo)識(shí)號(hào),PPID表示父進(jìn)程,STIME表示進(jìn)程的啟動(dòng)時(shí)間,TTY表示進(jìn)程所屬的終端控制臺(tái),TIME表示進(jìn)程啟動(dòng)后累計(jì)使用的CPU總時(shí)間,CMD表示正在執(zhí)行的命令。并且root的PPID為1,即為Init的ID.
   
   另一種指令方式查看子進(jìn)程與父進(jìn)程的對(duì)應(yīng)關(guān)系:

其中,%CPU表示進(jìn)程占用的CPU百分比,%MEM表示進(jìn)程占用內(nèi)存的百分比,VSZ表示進(jìn)程虛擬大小,RSS表示進(jìn)程的實(shí)際內(nèi)存(駐留集)大小(單位是頁(yè))。
    STAT表示進(jìn)程的狀態(tài),進(jìn)程的狀態(tài)有很多種:用“R”表示正在運(yùn)行中的進(jìn)程,用“S”表示處于休眠狀態(tài)的進(jìn)程,用“Z”表示僵死進(jìn)程,用“”表示優(yōu)先級(jí)高的進(jìn)程,用“N”表示優(yōu)先級(jí)較低的進(jìn)程,用“s”表示父進(jìn)程,用“+”表示位于后臺(tái)的進(jìn)程。START表示啟動(dòng)進(jìn)程的時(shí)間。
    這個(gè)例子將進(jìn)程之間的關(guān)系用樹(shù)形結(jié)構(gòu)形象的表示出來(lái),可以很清楚的看到,第一個(gè)進(jìn)程為父進(jìn)程,而其它進(jìn)程均為子進(jìn)程。同時(shí)從這個(gè)輸出還可以看到每個(gè)進(jìn)程占用CPU、內(nèi)存的百分比,還有進(jìn)程所處的狀態(tài)等等。
    (2)利用pstree監(jiān)控系統(tǒng)進(jìn)程
pstree命令以樹(shù)形結(jié)構(gòu)顯示程序和進(jìn)程之間的關(guān)系,使用格式如下:

復(fù)制代碼
代碼如下:

pstree [-acnpu] [PID>/user>]

具體選項(xiàng)內(nèi)容可用pstree --help來(lái)查看,由于顯示結(jié)果的樹(shù)形結(jié)構(gòu)太長(zhǎng),就不再貼圖.      
pstree清楚的顯示了程序和進(jìn)程之間的關(guān)系,如果不指定進(jìn)程的PID號(hào),或者不指定用戶(hù)名稱(chēng),則將以init進(jìn)程為根進(jìn)程,顯示系統(tǒng)的所有程序和進(jìn)程信息,若指定用戶(hù)或PID,則將以用戶(hù)或PID為根進(jìn)程,顯示用戶(hù)或PID對(duì)應(yīng)的所有程序和進(jìn)程。
    (3)利用top監(jiān)控系統(tǒng)進(jìn)程
     top命令是監(jiān)控系統(tǒng)進(jìn)程必不可少的工具,與ps命令相比,top命令動(dòng)態(tài)、實(shí)時(shí)的顯示進(jìn)程狀態(tài),而ps只能顯示進(jìn)程某一時(shí)刻的信息,同時(shí),top命令提供了一個(gè)交互界面,用戶(hù)可以根據(jù)需要,人性化的定制自己的輸出,更清楚的了解進(jìn)程的實(shí)時(shí)狀態(tài)。
    下面是top的顯示信息

通過(guò)動(dòng)態(tài)信息可以看出一個(gè)進(jìn)程從上次更新到現(xiàn)在占用cpu時(shí)間,占用物理內(nèi)存(%MEM),從進(jìn)程啟動(dòng)到現(xiàn)在占用cpu總時(shí)間(TIME+)等。通過(guò)了解這些信息,可以使系統(tǒng)管理員掌握每個(gè)進(jìn)程對(duì)系統(tǒng)CPU、物理內(nèi)存的使用狀況。
 
    (4)利用lsof監(jiān)控系統(tǒng)進(jìn)程與程序
lsof全名list opened files,也就是列舉系統(tǒng)中已經(jīng)被打開(kāi)的文件,通過(guò)lsof,我們就可以根據(jù)文件找到對(duì)應(yīng)的進(jìn)程信息,也可以根據(jù)進(jìn)程信息找到進(jìn)程打開(kāi)的文件。
lsof指令功能強(qiáng)大,這里介紹“-c,-g,-p,-i”這四個(gè)最常用參數(shù)的使用。更詳細(xì)的介紹請(qǐng)參看manlsof或者lsof --help。
1) lsoffilename:顯示使用filename文件的進(jìn)程。
2)lsof -c abc:顯示abc進(jìn)程現(xiàn)在打開(kāi)的文件
3)lsof -g gid:顯示指定的進(jìn)程組打開(kāi)的文件情況,使用進(jìn)程組ID即GID
4)lsof -p PID:PID是進(jìn)程號(hào),通過(guò)進(jìn)程號(hào)顯示程序打開(kāi)的所有文件及相關(guān)進(jìn)程,例如,想知道init進(jìn)程打開(kāi)了哪些文件的話(huà),可以執(zhí)行“lsof-p  1”命令
5)lsof-i :通過(guò)監(jiān)聽(tīng)指定的協(xié)議、端口、主機(jī)等信息,顯示符合條件的進(jìn)程信息。
例如:
 顯示系統(tǒng)中tcp協(xié)議對(duì)應(yīng)的25端口進(jìn)程信息:

復(fù)制代碼
代碼如下:

[root@localhost ~]# lsof-i tcp:25

顯示系統(tǒng)中80端口對(duì)應(yīng)的進(jìn)程信息:

復(fù)制代碼
代碼如下:

[root@localhost ~]# lsof-i :80

 (5) 計(jì)劃任務(wù)
計(jì)劃任務(wù)就是提前設(shè)定的一系列命名,來(lái)在特定時(shí)間里自動(dòng)完成,比如一些自動(dòng)備份,自動(dòng)關(guān)系,自動(dòng)發(fā)郵件,廣播之類(lèi)
計(jì)劃任務(wù)有三個(gè)比較重要的命令
1)at安排作業(yè)在某一時(shí)刻執(zhí)行一次
2)Batch安排作業(yè)在系統(tǒng)負(fù)載不重時(shí)執(zhí)行一次
3)Cron安排周期性運(yùn)行的作業(yè)
(6)結(jié)束進(jìn)程
Kill -1重啟進(jìn)程
kill 進(jìn)程號(hào)   結(jié)束進(jìn)程
kill -9強(qiáng)制結(jié)束進(jìn)程
(7) 設(shè)置程序的優(yōu)先級(jí)
Niec :指定程序運(yùn)行優(yōu)先級(jí)別

復(fù)制代碼
代碼如下:

Nice -n command

     Renice:改變一個(gè)正在運(yùn)行的進(jìn)程的優(yōu)先級(jí)別

復(fù)制代碼
代碼如下:

Renice -n pid

優(yōu)先級(jí)取值范圍為(-20,19)
(8)進(jìn)程的掛起和恢復(fù):
掛起:Ctrl+Z
終止:Ctrl+C
進(jìn)程的恢復(fù):
恢復(fù)到前臺(tái)繼續(xù)運(yùn)行:fg
恢復(fù)到后臺(tái)繼續(xù)運(yùn)行:bg
查看被掛起的進(jìn)程:jobs

標(biāo)簽:臺(tái)州 海東 孝感 優(yōu)質(zhì)穩(wěn)定 九江 玉樹(shù) 昌都 哈密

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《簡(jiǎn)要剖析Linux系統(tǒng)的進(jìn)程管理機(jī)制》,本文關(guān)鍵詞  簡(jiǎn)要,剖析,Linux,系統(tǒng),的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《簡(jiǎn)要剖析Linux系統(tǒng)的進(jìn)程管理機(jī)制》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于簡(jiǎn)要剖析Linux系統(tǒng)的進(jìn)程管理機(jī)制的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 微山县| 湘阴县| 灵川县| 金华市| 青田县| 彩票| 蛟河市| 化隆| 长海县| 攀枝花市| 班戈县| 荥经县| 合阳县| 长泰县| 平邑县| 永顺县| 镇沅| 大理市| 黄骅市| 长兴县| 威海市| 荣成市| 新龙县| 大理市| 西乡县| 两当县| 临夏市| 沧州市| 商洛市| 蒙山县| 庆元县| 丹东市| 九寨沟县| 马鞍山市| 漳浦县| 文山县| 南皮县| 宁城县| 阳谷县| 惠来县| 柳林县|