基礎(chǔ)講解Unix操作系統(tǒng)進(jìn)程
Unix操作系統(tǒng)有很多值得學(xué)習(xí)的地方,這里我們主要介紹Unix操作系統(tǒng)中的進(jìn)程,大家一起來(lái)學(xué)習(xí)下吧!研究進(jìn)程的生命周期,以便您能將所看到的系統(tǒng)上發(fā)生的事情與內(nèi)核中發(fā)生的事情聯(lián)系起來(lái)。
分配給Unix操作系統(tǒng)管理員的許多工作之一是確保用戶的程序正確運(yùn)行。因?yàn)閁nix操作系統(tǒng)上存在其他并發(fā)運(yùn)行的程序,所以此任務(wù)變得更加復(fù)雜。由于種種原因,這些程序可能會(huì)失敗、掛起或行為異常。在構(gòu)建更可靠的系統(tǒng)時(shí),了解 UNIX® 環(huán)境如何創(chuàng)建、管理和銷(xiāo)毀這些作業(yè)是至關(guān)重要的步驟。
開(kāi)發(fā)人員還必須積極了解內(nèi)核如何管理進(jìn)程,因?yàn)榕c系統(tǒng)的其他部分和睦相處的應(yīng)用程序會(huì)占用更少的資源,并且不會(huì)頻繁地給系統(tǒng)管理員帶來(lái)麻煩。由于導(dǎo)致僵死進(jìn)程(將在稍后對(duì)其進(jìn)行描述)而頻繁重新啟動(dòng)的應(yīng)用程序明顯是不可取的。
對(duì)控制進(jìn)程的Unix操作系統(tǒng)調(diào)用的了解可以使開(kāi)發(fā)人員編寫(xiě)能夠在后臺(tái)自動(dòng)運(yùn)行的軟件,而不是需要一個(gè)始終保持在用戶屏幕上的終端會(huì)話。
管理這些Unix操作系統(tǒng)程序的基本構(gòu)件就是進(jìn)程。進(jìn)程是賦予某個(gè)由操作系統(tǒng)執(zhí)行的程序的名稱。如果您熟悉 ps 命令,則您應(yīng)該熟悉進(jìn)程清單。
如清單 1 所示。
清單 1. ps 命令的輸出
- sunbox#ps -ef
- UID PID PPID C STIME TTY TIME CMD
- root 0 0 0 20:15:23 ? 0:14 sched
- root 1 0 0 20:15:24 ? 0:00 /sbin/init
- root 2 0 0 20:15:24 ? 0:00 pageout
- root 3 0 0 20:15:24 ? 0:00 fsflush
- daemon 240 1 0 20:16:37 ? 0:00 /usr/lib/nfs/statd
- ...
前三列對(duì)這里的討論非常重要。***列列出用于運(yùn)行該進(jìn)程的用戶身份,第二列列出進(jìn)程的 ID,第三列列出該進(jìn)程的父進(jìn)程 ID。***一列是進(jìn)程的描述,通常是所運(yùn)行的二進(jìn)制文件的名稱。每個(gè)進(jìn)程都被分配一個(gè)標(biāo)識(shí)符,稱為進(jìn)程標(biāo)識(shí)符(Process Identifier,PID)。進(jìn)程還有父進(jìn)程,在大多數(shù)情況下就是啟動(dòng)它的Unix操作系統(tǒng)進(jìn)程的 PID。
對(duì)Unix操作系統(tǒng)中的進(jìn)程的基本知識(shí)的介紹就到這里。希望對(duì)大家對(duì)Unix操作系統(tǒng)的學(xué)習(xí)有所幫助。
【編輯推薦】