一、進程
1、進程的概念
進程是操作系統實現並發執行的重要手段,也是操作系統為程序提供的重要運行環境抽象。
進程最根本的屬性是動態性和並發性。以下是從不同角度對進程的解釋:
a、進程是程序的一次執行
b、進程是可以與其他計算並發執行的計算
c、進程是一個程序程序及其數據在處理器上順序執行時發生的活動
d、進程是程序在一個數據集合上的運行過程,是系統進行資源分配和調度的一個獨立單位
e、進程是進程實體的一次活動
f、進程是支持程序運行的機制
2、進程的定義
進程是具有一定功能的程序在一個數據結合上的運行過程,它是系統進行資源分配和調度管理的一個可並發執行的基本單位。
3、進程的基本特性
a、動態性:進程的實質是程序的一次執行過程,它由系統創建而產生,能夠被調度而執行,因申請的共享資源被其他進程占用而暫停,完成任務后被撤銷。動態性是進程最重要的特性。
b、獨立性:系統內多個進程可以並發執行,引入進程的目的也是為了使系統某個程序能夠和其他進程並發執行。
c、異步性:進程由於共享資源和協同合作,因此產生了相互制約的關系,進程實體通過進程管理以異步的方式使用處理器和其他資源,系統必須統一調度,依據一定的算法來保證各個進程能夠協同運行並共享處理器和其他資源。
d、結構特性:系統中運行的進程實體通常由程序、數據和一個PCB(進程控制塊)組成。
4、進程的基本狀態和轉換

阻塞——>就緒中的事件發生即事件發生,資源釋放。
二、線程
1、線程的概念
線程是進程中實施調度和分派的基本單位。
操作系統提供現成的目的就是為了方便高效地實現並發處理(進一步提高並發度)。
2、線程分類
線程一般分為用戶級線程和核心級線程。
3、線程池
設計思想:在創建一個進程是,相應地創建若干個線程,將它們放在一個緩沖池中,這些線程在等待工作。當服務器接收到一個請求時,系統就喚醒其中的一個線程,並將請求傳給它,由這個線程進行服務。當完成任務后,線程重新被放入線程池中,等待下面新的請求和服務。如果線程池中沒有可用的線程,服務器就要等待,直到有一個線程被釋放。
三、線程和進程的關系
1、一個進程可以有多個線程,但至少有一個線程;而一個線程只能在一個進程的地址空間內活動。
2、資源分配給進程,同一個進程的所有線程共享該進程所有資源。
3、CPU分配給線程,即真正在處理器運行的是線程。
4、線程在執行過程中需要協作同步,不同進程的線程間要利用消息通信的辦法實現同步。
注:進程是最基本的資源擁有單位和調度單位。
進程間通信方式:(1)消息傳遞(2)共享存儲(3)管道通信
參考書籍 操作系統原理與實踐 鄒鵬 高等教育出版社