進程與程序的區別:
程序是靜態的,進程是動態的
程序是永久的,進程是暫時存在的
程序是指令的集合,進程是包括了正文段、用戶數據段和進程控制塊的實體
程序是一個名詞。進程是一個動詞,是一段過程。
進程與程序的聯繫:
進程是程序的一次執行,進程總是對應至少一個特定的程序,執行程序的代碼
一個程序可以對應多個進程。同一個程序可以在不同的數據集合上運行,因而構成若干個不同的進程
線程與進程的區別:
進程是進行資源分配和獨立執行的基本單位,線程爲獨立調度和分派的單位。
系統在運行的時候會爲每個進程分配不同的內存空間;而對線程而言,除了CPU外,系統不會爲線程分配內存(線程所使用的資源來自其所屬進程的資源),線程組之間只能共享資源。
線程與進程的聯繫:
爲了進一步提高程序的併發性,減少系統開銷,在操作系統中引入線程的概念。
線程是進程中的一個實體,將進程的任務劃分爲更小、具有獨立功能的單位,以線程的形式來併發執行,以提高程序併發放執行的程度。
線程與進程一樣,也有就緒、阻塞和執行3種基本狀態。