進程和線程的區別

進程:

對應用程序來說,進程就像一個大容器。在應用程序被運行後,就相當於將應用程序裝進容器裏了,你可以往容器里加其他東西(如:應用程序在運行時所需的變量數據、需要引用的DLL文件等),當應用程序被運行兩次時,容器裏的東西並不會被倒掉,系統會找一個新的進程容器來容納它。 

進程是由進程控制塊程序段數據段三部分組成。一個進程可以包含若干線程(Thread),線程可以幫助應用程序同時做幾件事(比如一個線程向磁盤寫入文件,另一個則接收用戶的按鍵操作並及時做出反應,互相不干擾),在程序被運行後中,系統首先要做的就是爲該程序進程建立一個默認線程,然後程序可以根據需要自行添加或刪除相關的線程。
是可併發執行的程序。在一個數據集合上的運行過程,是系統進行資源分配和調度的一個獨立單位,也是稱活動、路徑或任務,它有兩方面性質:活動性、併發性。進程可以劃分爲運行、阻塞、就緒三種狀態,並隨一定條件而相互轉化:就緒--運行,運行--阻塞,阻塞--就緒。 

進程爲應用程序的運行實例,是應用程序的一次動態執行。看似高深,我們可以簡單地理解爲:它是操作系統當前運行的執行程序。在系統當前運行的執行程序裏包括:系統管理計算機個體和完成各種操作所必需的程序;用戶開啓、執行的額外程序,當然也包括用戶不知道,而自動運行的非法程序(它們就有可能是病毒程序)。 
危害較大的可執行病毒同樣以“進程”形式出現在系統內部(一些病毒可能並不被進程列表顯示,如“宏病毒”),那麼及時查看並準確殺掉非法進程對於手工殺毒有起着關鍵性的作用。

進程是程序在計算機上的一次執行活動。當你運行一個程序,你就啓動了一個進程。顯然,程序是 

死的(靜態的),進程是活的(動態的)。進程可以分爲系統進程和用戶進程。凡是用於完成操作系統的各種 

功能的進程就是系統進程,它們就是處於運行狀態下的操作系統本身;用戶進程就是所有由你啓動的進程。進程是操作系統進行資源分配的單位。 

在Windows下,進程又被細化爲線程,也就是一個進程下有多個能獨立運行的更小的單位。
1.進程的引入:
多道程序在執行時,需要共享系統資源,從而導致各程序在執行過程中出現相互制約的關係,程序的執行表現出間斷性的特徵。這些特徵都是在程序的執行過程中發生的,是動態的過程,而傳統的程序本身是一組指令的集合,是一個靜態的概念,無法描述程序在內存中的執行情況,即我們無法從程序的字面上看出它何時執行,何時停頓,也無法看出它與其它執行程序的關係,因此,程序這個靜態概念已不能如實反映程序併發執行過程的特徵。爲了深刻描述程序動態執行過程的性質,人們引入“進程(Process)”概念。 
2.進程的概念:
進程的概念是60年代初首先由麻省理工學院的MULTICS系統和IBM公司的CTSS/360系統引入的。
進程是一個具有獨立功能的程序關於某個數據集合的一次運行活動。它可以申請和擁有系統資源,是一個動態的概念,是一個活動的實體。它不只是程序的代碼,還包括當前的活動,通過程序計數器的值和處理寄存器的內容來表示。
進程是操作系統中最基本、重要的概念。是多道程序系統出現後,爲了刻畫系統內部出現的動態情況,描述系統內部各道程序的活動規律引進的一個概念,所有多道程序設計操作系統都建立在進程的基礎上。
操作系統引入進程的概念的原因:
從理論角度看,是對正在運行的程序過程的抽象;
從實現角度看,是一種數據結構,目的在於清晰地刻劃動態系統的內在規律,有效管理和調度進入計算機系統主存儲器運行的程序。
3.進程的特徵
動態性:進程的實質是程序的一次執行過程,進程是動態產生,動態消亡的。
併發性:任何進程都可以同其他進程一起併發執行
獨立性:進程是一個能獨立運行的基本單位,同時也是系統分配資源和調度的獨立單位;
異步性:由於進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預知的速度向前推進
結構特徵:進程由程序、數據和進程控制塊三部分組成。
4.進程與程序的關係
程序是指令的有序集合,其本身沒有任何運行的含義,是一個靜態的概念。而進程是程序在處理機上的一次執行過程,它是一個動態的概念。
程序可以作爲一種軟件資料長期存在,而進程是有一定生命期的。程序是永久的,進程是暫時的。
進程更能真實地描述併發,而程序不能;進程是由程序和數據兩部分組成的。
進程具有創建其他進程的功能,而程序沒有。
同一程序同時運行於若干個數據集合上,它將屬於若干個不同的進程。也就是說同一程序可以對應多個進程。 
在傳統的操作系統中,程序並不能獨立運行,作爲資源分配和獨立運行的基本單元都是進程。 

Windows XP 常見的進程列表
[編輯本段]

1、最基本的系統進程
這些進程是系統運行的基本條件,有了這些進程,系統才能正常運行。

smss.exeSession Manager 
csrss.exe系統服務器進程
winlogon.exe管理用戶登錄
services.exe 包含很多系統服務
lsass.exe 
管理IP安全策略以及啓動ISAKMP/Oakley(IKE)和IP安全驅動程序。(系統服務)
產生會話密鑰以及授予用於交互式客戶/服務器驗證的服務憑據(ticket)。(系統服務)
svchost.exe包含很多系統服務
SPOOLSV.EXE 將文件加載到內存中以便遲後打印。(系統服務)
explorer.exe資源管理器
internat.exe托盤區的拼音圖標

2、附加的系統進程
這些進程不是必要的,你可以根據需要通過服務管理器來增加或減少
mstask.exe允許程序在指定時間運行。(系統服務)
regsvc.exe許遠程註冊表操作。(系統服務)
winmgmt.exe提供系統管理信息(系統服務)。
inetinfo.exe
通過 Internet 信息服務的管理單元提供 FTP 連接和管理。(系統服務)
tlntsvr.exe
允許遠程用戶登錄到系統並且使用命令行運行控制檯程序。(系統服務)
允許通過Internet信息服務的管理單元管理 Web 和 FTP 服務。(系統服務)

tftpd.exe
實現TFTP Internet標準。該標準不要求用戶名和密碼。遠程安裝服務
的一部分。(系統服務)
termsrv.exe
提供多會話環境允許客戶端設備訪問虛擬的Windows 2000 Professional 桌面會話以及運行在服務器上的基於Windows的程序。(系統服務)
dns.exe應答對域名系統(DNS)名稱的查詢和更新請求。(系統服務)

3、不常用服務
以下服務很少會用到,上面的服務都對安全有害,如果不是必要的應該關掉
tcpsvcs.exe提供在PXE可遠程啓動客戶計算機上遠程安裝 Windows 2000
Professional 的能力。(系統服務)
支持以下 TCP/IP 服務Character Generator,Daytime,Discard,Echo,以及Quote of the Day。(系統服務)
ismserv.exe
允許在Windows Advanced Server站點間發送和接收消息。(系統服務)
ups.exe
管理連接到計算機的不間斷電源(UPS)。(系統服務)
wins.exe
爲註冊和解析NetBIOS型名稱的TCP/IP客戶提供NetBIOS名稱服務。(系統服務)
llssrv.exeLicense Logging Service(system service)
ntfrs.exe在多個服務器間維護文件目錄內容的文件同步。(系統服務)
RsSub.exe 控制用來遠程儲存數據的媒體。(系統服務)
locator.exe管理 RPC 名稱服務數據庫。(系統服務)
lserver.exe註冊客戶端許可證。(系統服務)
dfssvc.exe管理分佈於局域網廣域網邏輯卷。(系統服務)
clipsrv.exe
支持“剪貼簿查看器”,以便可以從遠程剪貼簿查閱剪貼頁面。(系統服務)
msdtc.exe
並列事務,是分佈於兩個以上的數據庫,消息隊列,文件系統,或其它事務保護資源管理器。(系統服務)
faxsvc.exe幫助您發送和接收傳真。(系統服務)
cisvc.exeIndexing Service(system service)
dmadmin.exe磁盤管理請求的系統管理服務。(系統服務)
mnmsrvc.exe
允許有權限的用戶使用NetMeeting遠程訪問Windows桌面。(系統服務)
netdde.exe
提供動態數據交換(DDE)的網絡傳輸和安全特性。(系統服務)
smlogsvc.exe配置性能日誌和警報。(系統服務)
rsvp.exe
爲依賴質量服務(QoS)的程序和控制應用程序提供網絡信號和本地通信控制
安裝功能。(系統服務)
RsEng.exe 
協調用來儲存不常用數據的服務和管理工具。(系統服務)
RsFsa.exe 管理遠程儲存的文件的操作。(系統服務)
grovel.exe 
掃描零備份存儲(SIS)捲上的重複文件,並且將重複文件指向一個數據存
儲點,以節省磁盤空間。(系統服務)
SCardSvr.exe 
對插入在計算機智能卡閱讀器中的智能卡進行管理和訪問控制。(系統服務)
snmp.exe
包含代理程序可以監視網絡設備的活動並且向網絡控制工作站彙報。(系
統服務)
snmptrap.exe
接收由本地或遠程SNMP代理程序產生的陷阱消息,然後將消息傳遞到運行在這臺計算機上SNMP管理程序。(系統服務)
UtilMan.exe 從一個窗口中啓動和配置輔助工具。(系統服務)
msiexec.exe
依據.MSI文件中包含的命令來安裝、修復以及刪除軟件。(系統服務)

線程:
線程 
開放分類: 編程、CPU、計算機軟件

是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程自己不擁有系統資源,只擁有一點在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創建和撤消另一個線程,同一進程中的多個線程之間可以併發執行。由於線程之間的相互制約,致使線程在運行中呈現出間斷性。線程也有就緒、阻塞和運行三種基本狀態。 
線程是程序中一個單一的順序控制流程.在單個程序中同時運行多個線程完成不同的工作,稱爲多線程. 
線程和進程的區別在於,子進程和父進程有不同的代碼和數據空間,而多個線程則共享數據空間,每個線程有自己的執行堆棧程序計數器爲其執行上下文.多線程主要是爲了節約CPU時間,發揮利用,根據具體情況而定. 線程的運行中需要使用計算機的內存資源和CPU
線程的週期 
新建 就緒 運行 阻塞 死亡 
線程調度優先級 
有線程進入了就緒狀態,需要有線程調度程序來決定何時執行,根據優先級來調度. 
線程組
每個線程都是一個線程組的一個成員,線程組把多個線程集成一個對象,通過線程組可以同時對其中的多個線程進行操作.在生成線程時必須將線程放在指定的線程組,也可以放在缺省的線程組中,缺省的就是生成該線程的線程所在的線程組.一旦一個線程加入了某個線程組,不能被移出這個組. 
守護線程 
是特殊的線程,一般用於在後臺爲其他線程提供服務.
發佈了24 篇原創文章 · 獲贊 11 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章