在操作系統中,操作系統將內存,網絡,文件系統抽象爲資源的統一抽象表示。
1、什麼是進程
進程就是進入內存中正在執行的程序。把進程當做一組元素組成的實體。進程包括兩個部分,一部分是代碼部分,另一部分是代碼相關的數據集合。
進程控制塊:
每一個進程,在內核中都對應着一個進程控制塊。進程控制塊中保存着進程的所有控制信息。
2、進程狀態
進程的創建和終止:現在的操作系統都支持透明的對進程的創建和終止。比如在linux中一個進程可以用fock函數實現對進程的創建。
進程狀態模型:
新建、退出、就緒、運行、阻塞
當進程需要io等待等事件的時候,需要將進程進入阻塞狀態,事件完成後,再進入就緒狀態,在就緒隊列中排隊。
3、進程描述:
操作系統的控制結構:操作系統中有四張表,分別管理着進程,內存,io設備和文件。
4、進程控制
進程的創建:
(1)給進程分配唯一的進程描述符(2)給進程分配內存空間(3)初始化進程控制塊(4)設置正確的連接(5)創建或者擴充其他數據結構
5、多線程
進程是資源的分配單位,而一個進程中可以有多個線程同時運行。線程成爲了操作系統調度的單位。