操作系統-CPU管理(多進程圖像)

  • 本系列博客爲觀看哈工大李治軍老師的操作系統視頻而做的整理總結。
  • 本文爲第三篇,主要CPU管理
    關鍵詞索引:
    併發(執行多道程序)、進程、多進程圖像、PCB(Process Control Block)、進程狀態圖、調度(getNext() )、 進程同步

見後續系列文章

一、直觀設想

在這裏插入圖片描述
程序載入內存,設好PC指針初值後,
CPU從該指針指向的內存地越取指執行,
然後PC指針自動增加,自動執行指令

在這裏插入圖片描述

二、存在的問題與實際管理思想

在這裏插入圖片描述
IO 指令執行非常慢

如果不作額外處理 ,只讓PC自己增加
碰到IO指令時,cpu會等在那裏。 CPU的利用率非常低

在這裏插入圖片描述

類比 燒水 洗衣等同步幹活的事情。
當需要等待的時候,切換過去執行別的事情。

多道程序交替執行
在這裏插入圖片描述
CPU上交替執行多個程序: 併發

在來回切換的過程中,需要有一個記錄,保留場景
(運行的程序和靜態的程序是不一樣的)
在這裏插入圖片描述
描述這個區別, 引出 "進程” 的概念。 (運行中的程序)

進程有開始、結束, 需要有記錄。 (程序是靜態的)

三、多進程圖像

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

有一個cpu , 所以只有一個進程在運行 。 ( 聯繫多核)
在這裏插入圖片描述
多進程如何切換?
隊列操作+調度+切換
在這裏插入圖片描述
schedule() 。 依託於PCB

getNext() 調度 , 有很多種算法 。例: FIFO ,優先級
在這裏插入圖片描述
保存 ,取值 . 此處需要用匯編進行精確控制

在這裏插入圖片描述

要解決該問題,需要限制對100的讀寫。
多進程的地址空間分離。 映射表
多進程涉及到內存管理
在這裏插入圖片描述

在這裏插入圖片描述
如果處理不合理,兩個進程要同時放入一塊內存,衝突,
在這裏插入圖片描述
推進順序不合理會導致執行錯誤
爲了合理推進, 要加鎖
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章