新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 【E課堂】線程,進程,程序的區(qū)別

【E課堂】線程,進程,程序的區(qū)別

作者: 時間:2018-03-09 來源:網(wǎng)絡 收藏

  任務是代碼運行的一個映象,從系統(tǒng)的角度看,任務是競爭系統(tǒng)資源的最小運行單元。任務可以使用或等待CPU、I/O設備及內(nèi)存空間等系統(tǒng)資源,并獨立于其它任務,與它們一起并發(fā)運行(宏觀上如此)。VxWorks內(nèi)核使任務能快速共享系統(tǒng)的絕大部分資源。

本文引用地址:http://www.butianyuan.cn/article/201803/376689.htm

  在VxWorks6.4中,是指Rtp,包含任務,任務是調(diào)度的最小單元。

  (有時被稱為重量級進程)是程序的一次執(zhí)行。每個進程都有自己的地址空間,內(nèi)存,數(shù)據(jù)棧以及其它記錄其運行軌跡的輔助數(shù)據(jù)。操作系

  統(tǒng)管理在其上運行的所有進程,并為這些進程公平地分配時間。

  不過各個進程有自己的內(nèi)存空間,數(shù)據(jù)棧等,所以只能使用進程間通訊(IPC),而不能直接共享信息。

  ,有時被稱為輕量級進程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。一個標準的ID,當前指令指針(PC),寄存器集合和堆棧組成。另外,線程是進程中的一個實體,是被系統(tǒng)獨立調(diào)度和分派的基本單位,線程自己不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創(chuàng)建和撤消另一個線程,同一進程中的多個線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程在運行中呈現(xiàn)出間斷性。線程也有就緒、阻塞和運行三種基本狀態(tài)。每一個程序都至少有一個線程,那就是程序本身。

  線程是程序中一個單一的順序控制流程。在單個程序中同時運行多個線程完成不同的工作,稱為多線程。

  線程和進程的區(qū)別在于,子進程和父進程有不同的代碼和數(shù)據(jù)空間,而多個線程則共享數(shù)據(jù)空間,每個線程有自己的執(zhí)行堆棧和程序計數(shù)器為其執(zhí)行上下文。多線程主要是為了節(jié)約CPU時間,發(fā)揮利用,根據(jù)具體情況而定。線程的運行中需要使用計算機的內(nèi)存資源和CPU。

  通常在一個進程中可以包含若干個線程,它們可以利用進程所擁有的資源。在引入線程的操作系統(tǒng)中,通常都是把進程作為分配資源的基本單位,而把線程作為獨立運行和獨立調(diào)度的基本單位。由于線程比進程更小,基本上不擁有系統(tǒng)資源,故對它的調(diào)度所付出的開銷就會小得多,能更高效的提高系統(tǒng)內(nèi)多個程序間并發(fā)執(zhí)行的程度,從而顯著提高系統(tǒng)資源的利用率和吞吐量。

  因而近年來推出的通用操作系統(tǒng)都引入了線程,以便進一步提高系統(tǒng)的并發(fā)性,并把它視為現(xiàn)代操作系統(tǒng)的一個重要指標。

  線程與進程的區(qū)別可以歸納為以下幾點:

  1)地址空間和其它資源(如打開文件):進程間相互獨立,同一進程的各線程間共享。某進程內(nèi)的線程在其它進程不可見。

  2)通信:進程間通信IPC,線程間可以直接讀寫進程數(shù)據(jù)段(如全局變量)來進行通信——需要進程同步和互斥手段的輔助,以保證數(shù)據(jù)的一致性。

  3)調(diào)度和切換:線程上下文切換比進程上下文切換要快得多。

  4)在多線程OS中,進程不是一個可執(zhí)行的實體。

  程序(program)是為實現(xiàn)特定目標或解決特定問題而用計算機語言編寫的命令序列的集合。為實現(xiàn)預期目的而進行操作的一系列語句和指令。一般分為系統(tǒng)程序和應用程序兩大類。計算機中的程序在港澳臺地區(qū)稱為程式。程序就是為使電子計算機執(zhí)行一個或多個操作,或執(zhí)行某一任務,按序設計的計算機指令的集合



關鍵詞: 線程 進程

評論


相關推薦

技術(shù)專區(qū)

關閉