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