進程:程序的一次執行過程。具有獨立功能的程序在某個數據集合上的一次執行過程。是系統資源分配和調度的基本單位。
線程:進程的一個實體。進程中的執行實體或者執行單元。是CPU調度和分配的基本單位。
區別聯系:
1 地址空間和資源:不同的進程的地址空間是獨立的,而同一進程內的線程共享地址空間;進程是擁有資源的基本單位,線程基本上不擁有系統資源(有一點必不可少的資源),但線程可以訪問隸屬于進程的系統資源。
2 分配和調度:進程是資源分配的基本單位,線程是處理機(CPU)調度的基本單位;在同一進程中進行線程的切換不會引起進程的切換,在不同的進程中進行線程的切換會引起進程的切換;
3 并發性:進程之間可以并發執行,多個線程之間也可以并發執行;線程更小,多線程程序并發性更高;
4 系統開銷:創建和撤銷進程時,系統需要分配和回收資源,進程創建和撤銷的開銷遠大于線程;進程的切換涉及當前執行進程CPU環境的保存及新調度的進程的CPU環境的設置,而線程的切換只需要保存和設置少量寄存器的內容,開銷很??;
5通信方面:進程間通信需要進程同步和互斥手段的輔助,以保證數據的一致性,而線程間可以直接讀寫進程數據段(如全局變量)來進行通信。
引入進程的目的,是為了使多道程序并發執行,以提高資源利用率和系統吞吐量;而引入線程,則是為了減小程序在并發執行時所付出的時空開銷,提高操作系統的并發性能。
PCB(process ?control block):進程控制塊,一種數據結構,描述進程的基本情況和運行狀態,進而控制和管理進程;PCB是進程存在的為一標志。
進程的特征:1 動態性, 2 并發性,3獨立性,4異步性,5結構性(進程實體由程序段,數據段和進程控制段)
進程的五種狀態:1 創建 ,2 結束 ,3 運行 ,4 阻塞,5 就緒;
三種基本狀態: 運行,就緒,阻塞
進程間通信:進程之間的消息交換,PV操作低級通信,及高級通信
1 共享存儲:基于存儲區的共享
2 消息傳遞:直接通信(放送進程直接把消息放送給接收進程);間接通信(發送進程把消息發送到某個中間實體中,接收進程從中間實體中取得消息)
3 管道:連接讀進程和寫進程以實現它們之間通信的一個共享文件,pipe文件。
進程的調度:搶占方式和非搶占方式
同步:進程間的一種關系;相互合作,協同工作的進程間的關系;
互斥:進程間因掙用臨界資源而互斥執行的關系;
臨界資源:一次只允許一個進程使用的資源;對臨界資源的訪問需要互斥的進行;
參考網頁:進程和線程管理