從進程到線程學習記錄

一. 進程

1. 爲何使用進程?

爲了使參與併發執行的每一個程序都能獨立運,而且能夠對併發執行的程序加以描述和控制.併發

2. 進程的定義

1.進程是程序的一次執行
2.進程是再處理機上順序執行所發生的活動.
3進程是系統資源分配和調度的獨立單位.異步

3. 進程的特徵

1.動態性: 建立而產生,調度而執行,撤銷而消亡.具備生命週期.
2.併發性: 與其餘進程實體併發執行.
3.獨立性: 獨立獲取資源和獨立接受調度的基本單位.
4.異步性: 進程各自獨立,不可預知的向前推動.spa

4. 進程的狀態

4.1 三個基本狀態

1.就緒: 進程等待CPU調度,調度即執行
2.執行: 進程的執行狀態.
3.阻塞: 進程發起I/O等操做,即阻塞,可能會設置多個阻塞隊列.線程

4.2 再加兩個狀態:建立和終止

1.建立: 若是建立一個進程時系統資源並不能知足他,因而進程所處的狀態即爲建立狀態.
2.終止: 進程執行完後,PCB釋放後就達到進程生命的結束.指針

4.3 引入掛起操做

掛起操做,須要兩個原語:掛起(Suspend)和 激活(Active)
1.從活動就緒到靜止就緒
2.從活動阻塞到禁止阻塞blog

4.4 三類狀態總結在一張圖上:

進程狀態圖

PCB的組織方式

1.線性方式:線性查找,最慢
2.連接方式:每種狀態:都設置一個頭指針,一共四個鏈表,線性查詢,速度較快.
3.索引方式: 創建索引表,,不一樣狀態對應不一樣索引表,查找速度最快.索引

二. 線程

線程是比進程更小的基本單位.是做爲調度和分派的基本單位.生命週期

1. 引入線程的優點

1.調度的基本單位: 線程切換代價小
2.併發性: 進程內部能夠併發
3.系統開銷: 進程開銷明顯大於線程開銷.隊列

相關文章
相關標籤/搜索