為什麼引入進程
程式的順序執行
程式的順序執行:在任何時刻,機器只執行一個操作,只有在前一個操作執行完後,才能執行後繼操作。它具有以下特別:資源獨占性,封閉性。即程式在運行時獨占全機資源。因此,這些資源的狀態只能由這個運行的程式決定和改變。由於順序程式的封閉性和可再現性, 為程式設計師調試程式帶來了很大方便。但由於資源的獨占性,使得系統資源利用率非常低。
多道程式設計
多道程式設計:同一時刻記憶體中存放了多個作業,處理器交替運行不同的作業。提高了系統的效率,尤其是資源利用率。使得程式可以並發執行,即計算機同時運行幾個程式, CPU要不斷地在幾個程式之間切換。在並發執行時,多個程式共享系統中的各種資源,因而這些資源的狀態將由多個程式來改變,致使程式的運行失去了封閉性。程式的並發執行使得程式的執行情況不可預見,其結果不再唯一,成為一個動態的過程。而程式是一個靜態的概念,不再能切實反映程式執行的各種特徵(獨立性、並發性、動態性)。
進程的產生
是為了描述系統中各並發活動而引入的。
區別
與執行緒的區別
那進程與
執行緒的區別到底是什麼?進程是執行
程式的實例。例如,當你運行
記事本程式(Notepad)時,你就創建了一個用來容納組成Notepad.exe的
代碼及其所需調用
動態程式庫的進程。每個進程均運行在其專用且受保護的
地址空間內。因此,如果你同時運行
記事本的兩個拷貝,該
程式正在使用的數據在各自實例中是彼此獨立的。在
記事本的一個拷貝中將無法看到該
程式的第二個實例打開的數據。
以
沙箱為例進行闡述。一個進程就好比一個
沙箱。
執行緒就如同
沙箱中的孩子們。孩子們在沙箱子中跑來跑去,並且可能將沙子攘到別的孩子眼中,他們會互相踢打或撕咬。但是,這些
沙箱略有不同之處就在於每個沙箱完全由
牆壁和頂棚封閉起來,無論箱中的孩子如何狠命地攘沙,他們也不會影響到其它沙箱中的其他孩子。因此,每個進程就像一個被保護起來的
沙箱。未經許可,無人可以進出。
在Windows下,進程又被細化為
執行緒,也就是一個進程下有多個能獨立運行的更小的單位。
與程式的區別
進程是
程式在計算機上的一次執行活動。當你運行一個
程式,你就啟動了一個進程。顯然,
程式是死的(靜態的),進程是活的(動態的)。進程可以分為系統進程和用戶進程。凡是用於完成作業系統的各種功能的進程就是系統進程,它們就是處於運行狀態下的
作業系統本身;用戶進程就是所有由你啟動的進程。進程是作業系統進行資源分配的
單位。
進程的特點
動態性
進程是程式的一次執行過程,是臨時的,有生命期的。
獨立性
進程是系統進行資源分配和調度的一個獨立單位。
並發性
多個進程可在處理機上交替執行。
結構性
系統為每個進程建立一個進程控制塊。
協作
實際上
執行緒運行而進程不運行。兩個進程彼此獲得專用數據或
記憶體的唯一途徑就是通過協定來共享記憶體塊。這是一種協作策略。下面讓我們分析一下
任務管理器里的進程選項卡。
主要過程
這裡的進程是指一系列進程,這些進程是由它們所運行的可執行
程式實例來識別的,這就是進程選項卡中的第一列給出了
映射名稱的原因。請注意,這裡並沒有
進程名稱列。進程並不擁有獨立於其所歸屬實例的
映射名稱。換言之,如果你運行5個
記事本拷貝,你將會看到5個稱為Notepad.exe的進程。它們是如何彼此區別的呢?其中一種方式是通過它們的進程ID,因為每個進程都擁有其獨一無二的編碼。該進程ID由Windows NT或Windows 2000生成,並可以循環使用。因此,進程ID將不會越編越大,它們能夠得到循環利用。 第三列是被進程中的
執行緒所占用的
CPU時間百分比。它不是CPU的編號,而是被進程占用的CPU時間百分比。此時我的系統基本上是空閒的。儘管系統看上去每一秒左右都只使用一小部分CPU時間,但該
系統空閒進程仍舊耗用了大約99%的CPU時間。
第四列,CPU時間,是CPU被進程中的
執行緒累計占用的小時、分鐘及秒數。請注意,我對進程中的
執行緒使用占用一詞。這並不一定意味著那就是進程已耗用的CPU時間總和,因為,如我們一會兒將看到的,NT計時的方式是,當特定的時鐘間隔激發時,無論誰恰巧處於當前的
執行緒中,它都將計算到CPU周期之內。通常
情況下,在大多數NT系統中,時鐘以10毫秒的間隔運行。每10毫秒NT的心臟就跳動一下。一些
驅動程式代碼片段運行並顯示誰是當前的
執行緒。讓我們將CPU時間的最後10毫秒記在它的帳上。因此,如果一個
執行緒開始運行,並在持續運行8毫秒後完成,接著,第二個執行緒開始運行並持續了2毫秒,這時,時鐘激發,請猜一猜這整整10毫秒的
時鐘周期到底記在了哪個執行緒的帳上?答案是第二個執行緒。因此,NT中存在一些固有的不準確性,而NT恰是以這種方式進行計時,實際
情況也如是,大多數32位作業系統中都存在一個基於間隔的計時機制。請記住這一點,因為,有時當你觀察
執行緒所耗用的CPU總和時,會出現儘管該執行緒或許看上去已運行過數十萬次,但其CPU時間占用量卻可能是零或非常短暫的現象,那么,上述解釋便是原因所在。上述也就是我們在
任務管理器的進程選項卡中所能看到的基本信息列。
進程舉例
概況
下列進程是系統運行的基本條件,有了這些進程,系統才能正常運行!
Windows進程
產生會話
密鑰以及授予用於互動式客戶/伺服器驗證的服務憑據(ticket)。(系統服務)
附加進程
(這些進程不是必要的,你可以根據需要通過
服務管理器來增加或減少):
允許通過 Internet 信息服務的管理單元管理 Web 和 FTP 服務。(系統服務)
tftpd.exe實現 TFTP Internet 標準。該標準不要求用戶名和密碼。遠程安裝服務的一部分。(系統服務)
termsrv.exe提供多會話環境允許
客戶端設備訪問虛擬的 Windows 2000 Professional
桌面會話以及運行在伺服器上的基於 Windows 的
程式。(系統服務)
以下服務很少會用到,上面的服務都對安全有害,如果不是必要的應該關掉
tcpsvcs.exe提供在 PXE 可遠程啟動客戶
計算機上遠程安裝 Windows 2000 Professional 的能力。(系統服務)
支持以下 TCP/IP 服務:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(系統服務)
ismserv.exe允許在 Windows Advanced Server 站點間傳送和接收訊息。(系統服務)
grovel.exe 掃描零
備份存儲(SIS)卷上的重複檔案,並且將重複檔案指向一個數據存儲點,以節省磁碟空間。(系統服務)
SCardSvr.exe 對插入在計算機
智慧卡閱讀器中的智慧卡進行管理和訪問控制。(系統服務)
UtilMan.exe 從一個視窗中啟動和配置
輔助工具。(系統服務)
Win7 進程
系統進程
System Idle Process
System
smss.exe
csrss.exe
wininit.exe
winlogon.exe
services.exe
lsass.exe
lsm.exe
svchost.exe
MsMpEng.exe
SearchIndexer.exe
wlanext.exe
conhost.exe
spoolsv.exe
LogonUI.exe
stacsv64.exe (IDT Audio)
用戶進程
iexplorer.exe
dwm.exe
taskhost.exe
explorer.exe
igfxsrvc.exe
sidebar.exe
hkcmd.exe (hot key支持)
sttray64.exe (IDT PC Audio)
utility.exe (Lenovo Battery Management Software)
msseces.exe (Microsoft Security Client User Interface)
服務進程
svchost.exe
NisSrv.exe
WUDFHost.exe
PresentationFontCache.exe
audiodg.exe
wmpnetwk.exe
另外,在64位系統下運行的32位進程名為abcdef *32的形式,如svchost.exe *32 (前面那個是星號,不是和諧號)
系統進程查看
查看系統進程的話 需要調用任務管理器右鍵單擊系統列(就是桌面最底下那一條) 點擊啟動任務管理器上面有進程選項
關於進程的話,我們都知道電腦上所有一切都是程式在運行而程式呢,根據我個人膚淺的理解阿,它並不是一個作為一個整體在運行的而是由一個或多個進程分工完成所以你看任務管理器上 在進程前面還有一項是應用程式這兩個是相關的
至於administrator就是指管理員了所有的應用程式都是經過管理員允許才運行的所以看到那么多用戶名為管理員的進程
關於這些是做什麼的,裡面很大一部分都是作業系統運行需要的進程因此這些進程輕易不要動 結束任務後可能造成一些自己無法解決的麻煩比如你結束explorer.exe試試 可能桌面上就什麼都沒了你想動的話 就動前面一項 應用程式或者右擊你想要動的那一項 點擊轉到進程這樣也是比較安全的做法