進程與線程
- 進程:https://baike.baidu.com/item/%E8%BF%9B%E7%A8%8B/382503
- 線程:https://baike.baidu.com/item/%E7%BA%BF%E7%A8%8B/103101
- 進程:資源分配的基本單位。線程:獨立運行和調度的基本單位。
- 進程由程序、數據和進程控制塊(PCB)三部分組成。線程由程序、數據和線程控制塊(TCB)三部分組成。
- 一個線程只能屬於一個進程,而一個進程可以有多個線程,但至少有一個線程。
- 資源:同一進程的所有線程共享該進程的所有資源。 同一進程中的多個線程共享代碼段(代碼和常量),數據段(全局變量和靜態變量),擴展段(堆存儲)。但是每個線程擁有自己的棧段,棧段又叫運行時段,用來存放所有局部變量和臨時變量。
- 通信:進程間通信--IPC方法包括管道(PIPE)、消息排隊、旗語、共用內存以及套接字(Socket)。線程間可以直接讀寫進程數據段(如全局變量)來進行通信——需要進程同步和互斥手段的輔助,以保證數據的一致性。
- 調度:在同一進程中,線程的切換不會引起進程的切換,在由一個進程中的線程切換到另一個進程中的線程時,將會引起進程的切換。同時線程上下文切換比進程上下文切換要快得多。
- PCB:進程標識符信息(唯一的標識符),處理機狀態信息(通用寄存器,指令寄存器,程序狀態字PSW,用戶棧指針),進程調度信息(進程狀態,進程優先級)
- TCB:用於指示被執行指令序列的程序計數器、保留局部變量、少數狀態參數和返回地址等的一組寄存器和堆棧。
- 控制:進程控制是進程管理中最基本的功能。它用於創建一個新進程,終止一個已完成的進程,或者去終止一個因出現某事件而使其無法運行下去的進程,還可負責進程運行中的狀態轉換。
本系列文章目的爲個人準備面試的簡單總結,文中多有不足,敬請批評指正!