一、CPU 管理的直觀想法
CPU 的工作原理就是取指執行,但如果遇到 IO 操作,那麼 CPU 將等待 IO 的完成,IO 操作的速度很慢,V(cpu) :V(IO) = 10^6:1,也就是說,執行一個 IO 操作,CPU 能執行 10^6 條指令,所以爲了充分利用 CPU,就要在 IO 的時候運行其它程序。
這裏引出了一個概念,併發:併發是 CPU 交替執行多個程序。
爲了完成在運行着的程序之間切換,就必須保存程序的狀態,所以這裏就引出了進程的概念,進程相較於程序而言是有狀態的,進程的狀態在 PCB 中保存。
所以,CPU 管理就是要管理多個進程如何合理有序的運行。
二、多進程圖像
2.1 什麼是多進程圖像
多進程圖像就是指在多個進程同時推進的時候,操作系統應該能夠把這些進程記錄好,按照合理地次序推進(資源分配、任務調度),爲了完成多進程圖像,需要解決如下問題:
- 多進程如何組織
- 多進程如何交替
- 多進程如何解決訪問內存的衝突
- 多進程如何協作
2.2 多進程圖像:多進程如何組織
多進程是通過 PCB 隊列來組織的,PCB 是進程控制塊,操作系統通過 PCB 來感知進程存在的。在 PCB 中保存了進程的信息,其中一個重要的信息就是進程狀態
進程狀態:新建態、就緒態、運行態、阻塞態、終止態
2.3 多進程圖像:多進程如何交替
隊列操作 + 調度 + 切換
**調度:**使用調度算法實現,如 FIFO、Priority
切換:切換分爲三步,① 把當前運行的進程的信息從 CPU 中保存到 PCB 中 ② 把待運行的進程信息從 PCB 中加載到 CPU 中 ③切換頁表(這裏又涉及到了虛擬內存)
2.4 多進程圖像:多進程如何解決訪問內存的衝突
多個進程可能同時要求訪問相同的內存,這樣就會引起衝突,所以爲了避免衝突,就要引入內存管理的概念,在內存管理中有一部分知識就是使用內存映射表解決了衝突。
2.5多進程圖像: 多進程如何協作
多個進程可能需要互相協作,最經典的就是生產者消費者問題,爲了實現進程的協作,需要解決的問題是進程間通信和同步。
三、總結
學習進程管理,就是要學習多進程圖像:多進程如何組織、進程調度、進程協作、內存管理。