Linux是一個(gè)多任務(wù)的操作系統(tǒng),系統(tǒng)上同時(shí)運(yùn)行著多個(gè)進(jìn)程,正在執(zhí)行的一個(gè)或多個(gè)相關(guān)進(jìn)程稱為一個(gè)作業(yè)。使用作業(yè)控制,用戶可以同時(shí)運(yùn)行多個(gè)作業(yè),并在需要時(shí)在作業(yè)之間進(jìn)行切換。本章詳細(xì)介紹進(jìn)程管理及作業(yè)控制的命令,包括啟動(dòng)進(jìn)程、查看進(jìn)程、調(diào)度作業(yè)的命令。
進(jìn)程及作業(yè)的概念
Linux是一個(gè)多用戶多任務(wù)的操作系統(tǒng)。多用戶是指多個(gè)用戶可以在同一時(shí)間使用計(jì)算機(jī)系統(tǒng);多任務(wù)是指Linux可以同時(shí)執(zhí)行幾個(gè)任務(wù),它可以在還未執(zhí)行完一個(gè)任務(wù)時(shí)又執(zhí)行另一項(xiàng)任務(wù)。
操作系統(tǒng)管理多個(gè)用戶的請(qǐng)求和多個(gè)任務(wù)。大多數(shù)系統(tǒng)都只有一個(gè)CPU和一個(gè)主存,但一個(gè)系統(tǒng)可能有多個(gè)二級(jí)存儲(chǔ)磁盤和多個(gè)輸入/輸出設(shè)備。操作系統(tǒng)管理這些資源并在多個(gè)用戶間共享資源,當(dāng)您提出一個(gè)請(qǐng)求時(shí),給您造成一種假象,好象系統(tǒng)只被您獨(dú)自占用。而實(shí)際上操作系統(tǒng)監(jiān)控著一個(gè)等待執(zhí)行的任務(wù)隊(duì)列,這些任務(wù)包括用戶作業(yè)、操作系統(tǒng)任務(wù)、郵件和打印作業(yè)等。操作系統(tǒng)根據(jù)每個(gè)任務(wù)的優(yōu)先級(jí)為每個(gè)任務(wù)分配合適的時(shí)間片,每個(gè)時(shí)間片大約都有零點(diǎn)幾秒,雖然看起來很短,但實(shí)際上已經(jīng)足夠計(jì)算機(jī)完成成千上萬的指令集。每個(gè)任務(wù)都會(huì)被系統(tǒng)運(yùn)行一段時(shí)間,然后掛起,系統(tǒng)轉(zhuǎn)而處理其他任務(wù);過一段時(shí)間以后再回來處理這個(gè)任務(wù),直到某個(gè)任務(wù)完成,從任務(wù)隊(duì)列中去除。
Linux系統(tǒng)上所有運(yùn)行的東西都可以稱之為一個(gè)進(jìn)程。每個(gè)用戶任務(wù)、每個(gè)系統(tǒng)管理守護(hù)進(jìn)程,都可以稱之為進(jìn)程。Linux用分時(shí)管理方法使所有的任務(wù)共同分享系統(tǒng)資源。我們討論進(jìn)程的時(shí)候,不會(huì)去關(guān)心這些進(jìn)程究竟是如何分配的,或者是內(nèi)核如何管理分配時(shí)間片的,我們所關(guān)心的是如何去控制這些進(jìn)程,讓它們能夠很好地為用戶服務(wù)。
進(jìn)程的一個(gè)比較正式的定義是:在自身的虛擬地址空間運(yùn)行的一個(gè)單獨(dú)的程序。進(jìn)程與程序是有區(qū)別的,進(jìn)程不是程序,雖然它由程序產(chǎn)生。程序只是一個(gè)靜態(tài)的指令集合,不占系統(tǒng)的運(yùn)行資源;而進(jìn)程是一個(gè)隨時(shí)都可能發(fā)生變化的、動(dòng)態(tài)的、使用系統(tǒng)運(yùn)行資源的程序。而且一個(gè)程序可以啟動(dòng)多個(gè)進(jìn)程。
Linux操作系統(tǒng)包括三種不同類型的進(jìn)程,每種進(jìn)程都有自己的特點(diǎn)和屬性。
交互進(jìn)程——由一個(gè)shell啟動(dòng)的進(jìn)程。交互進(jìn)程既可以在前臺(tái)運(yùn)行,也可以在后臺(tái)運(yùn)行。
批處理進(jìn)程——這種進(jìn)程和終端沒有聯(lián)系,是一個(gè)進(jìn)程序列。
新聞熱點(diǎn)
疑難解答
圖片精選