主頁 >  其他 > 作業系統復習要點

作業系統復習要點

2020-12-22 12:15:29 其他

作業系統復習要點

  • 第二章 作業系統的結構和硬體
    • 2.4 中斷及其處理
      • 2.4.1 中斷概念及其型別
      • 2.4.2 向量中斷和探詢中斷
      • 2.4.3 中斷進入
      • 2.4.4 軟體中斷處理程序
  • 第四章 行程及行程管理
    • 4.2 行程概念
      • 4.2.1 行程定義
      • 4.2.2 行程的狀態及變遷
      • 4.2.2 行程控制塊
    • 4.3 行程控制
      • 4.3.1 行程控制的概念
      • 4.3.2 行程的創建與撤銷
      • 4.3.2 行程等待與喚醒
    • 4.4 行程之間的約束關系
      • 4.4.1 行程競爭與合作
      • 4.4.2 行程互斥的概念
      • 4.4.2 行程同步的概念
    • 4.5 同步機構
      • 4.5.1 鎖和上鎖、開鎖操作
      • 4.5.2 信號燈和P、V操作
    • 4.6 行程互斥與同步的實作
      • 4.6.1 上鎖原語和開鎖原語實作行程互斥
      • 4.6.2 信號燈實作行程互斥
      • 4.6.3 行程同步的實作
      • 4.6.4 生產者——消費者問題
    • 4.8 執行緒概念及特點
      • 4.8.1 執行緒的概念
      • 4.8.1 執行緒的特點與狀態
  • 第五章 資源分配與調度
    • 5.1 資源管理概述
      • 5.1.1&&5.1.2
    • 5.2 資源管理的機制和策略
      • 5.2.1&&5.2.2
    • 5.3 死鎖
      • 5.3.1 死鎖的定義與例子
      • 5.3.2 引起死鎖的原因和必要條件
      • 5.3.3 系統模型和死鎖的處理
      • 5.3.4 解決死鎖問題的策略
      • 5.3.5 死鎖的預防
      • 5.3.6 死鎖的避免
      • 5.3.7 死鎖的檢測與忽略
  • 第六章 處理機調度
    • 6.1 處理機的多級調度
    • 6.2 作業調度
      • 6.2.1 作業的狀態
      • 6.2.2 作業調度的功能
      • 6.2.3 作業控制塊
      • 6.2.4 調度演算法性能的衡量
      • 6.2.5 作業調度演算法
  • 第七章 主存管理
    • 7.1 主存管理概述
      • 7.1.1 && 7.1.2
    • 7.2 主存管理的功能
      • 7.2.1 虛擬存盤器
      • 7.2.2 地址映射
      • 7.2.3 主存分配
      • 7.2.4 存盤保護
    • 7.3 磁區存盤管理及存在的問題
      • 7.3.1 動態磁區存盤管理技術
      • 7.3.2 磁區分配機構
      • 7.3.3 磁區分配與放置策略
      • 7.3.4 碎片問題及拼接技術
    • 7.4 頁式存盤管理
      • 7.4.1 頁式系統應解決的問題
      • 7.4.2 頁式地址的變換
      • 7.4.3 請調頁面的機制
      • 7.4.4 淘汰機制與策略
      • 7.4.5 幾種置換演算法
    • 7.5 段氏和段頁式存盤管理
      • 7.5.1 段氏地址結構
      • 7.5.2 段氏地址的變換
      • 7.5.3 擴充段表功能
      • 7.5.4 段頁式存盤管理
  • 第八章 設備管理
    • 8.1 設備管理概述
      • 8.1.1 設備管理的功能
      • 8.1.2 設備獨立性
      • 8.1.3 設備控制塊
    • 8.2 緩沖技術
      • 8.2.1 緩沖概述
      • 8.2.2 常用的緩沖技術
    • 8.3 設備分配
      • 8.3.1 設備分配概述
      • 8.3.2 獨享分配
      • 8.3.3 共享分配
      • 8.3.4 虛擬分配

第二章 作業系統的結構和硬體

2.4 中斷及其處理

2.4.1 中斷概念及其型別

中斷:某個事件(電源掉電、定點加法溢位、I/O傳輸結束等)發生時,系統終止現行程式的運行,引出處理該事件的程式對事件進行處理,處理完畢后回傳斷點繼續執行的程序
在這里插入圖片描述中斷型別:
按中斷功能分:

  1. 輸入輸出中斷
  2. 外中斷
  3. 機器故障中斷
  4. 程式性中斷
  5. 訪管中斷

按中斷方式分:

  1. 強迫性中斷:輸入輸出中斷、外中斷、機器故障中斷、程式性中斷
  2. 自愿中斷:訪管中斷

按中斷來源分:

  1. 中斷:處理機外部事件引起的中斷,例:時鐘、磁盤、終端
  2. 俘獲:處理機內部事件引起的中斷,例:非法指令、地址越界、浮點溢位、tmp指令,

2.4.2 向量中斷和探詢中斷

向量中斷:當中斷發生時,由中斷源自己引導處理機進入中斷服務程式的中斷程序

中斷向量:該型別中斷的中斷服務例行程式的入口地址和處理器狀態字

兩類不同的中斷機制:向量中斷、探尋中斷

2.4.3 中斷進入

現場:在中斷的那一時刻能確保程式繼續運行的有關資訊

保護現場:當中斷發生時,必須立即把現場資訊保存在主存里,這一作業程序稱為保護現場

恢復現場:在程式重新運行之前,把保留的該程式現場資訊從主存中送至指令計數器、通用暫存器或一些特殊暫存器中,這些作業稱為恢復現場

中斷回應:中央處理機發現已有中斷請求時,中斷現行程式執行,并引出中斷處理程式的程序

  • 中斷回應程序:
    ①保留程式斷點及處理機有關資訊
    ②自動轉入相應的中斷處理程式執行
  • 中斷回應硬體支持:指令計數器、處理器狀態暫存器、中斷向量表、系統堆疊

2.4.4 軟體中斷處理程序

①保留被中斷程式的現場
②進入相應的中斷服務流程
③恢復被中斷程式的現場

第四章 行程及行程管理

4.2 行程概念

4.2.1 行程定義

行程:一個程式在給定活動空間和初始環境下,在一個處理機上執行的程序(運行→暫停→運行)

行程和程式的區別:
① 程式是靜態的概念,行程是動態的概念
②行程是一個能獨立運行的單位,能與其他行程并行的活動
③行程是競爭系統資源的基本單位
④關聯:行程一定包含一個程式,一個程式可以對應多個行程

4.2.2 行程的狀態及變遷

多任務系統中行程的基本狀態:
①就緒狀態(ready):行程已獲得除CPU之外的運行所必需的資源,一旦得到CPU的控制權,立即就可以運行
②運行狀態(running):該行程已獲得運行所必須的資源,它的程式正在處理機上運行
③等待狀態(wait):行程正等待著某一事件的發生而暫時停止執行,若此時CPU給它控制權也無法執行

行程狀態的變遷(紅線可以無,實際狀態變遷為黑線標注的箭頭)
在這里插入圖片描述

4.2.2 行程控制塊

行程控制塊:描述行程與其它行程、系統資源的關系以及行程在各個不同時期所處狀態的資料結構,稱為行程控制塊PCB

行程的組成:程式與資料、PCB(行程控制塊)

行程控制塊的主要內容:
①行程識別符號:行程符號名或內部id號
②行程當前狀態:行程處于何種狀態
③當前佇列指標:該項登記了處于同一狀態的下一個行程的PCB地址
④行程優先級:反映了行程要求CPU的緊迫程度
⑤CPU現場保護區:當行程由于某種原因釋放處理機時,CPU現場資訊被保存在PCB的該區域
⑥通信資訊:行程間進行通信時所記錄的有關資訊
⑦家族聯系:本行程與家族的聯系
⑧占用資源清單

行程控制塊的組織——行程佇列結構
在這里插入圖片描述

4.3 行程控制

4.3.1 行程控制的概念

行程控制的職責:對系統中的行程實施有效的管理,負責行程狀態的改變

行程狀態的變化:
在這里插入圖片描述
常用的行程控制原語:創建原語、撤銷原語、等待原語、喚醒原語

4.3.2 行程的創建與撤銷

  1. 行程創建:create{name,priority}
    name:被創建行程的識別符號
    priority:優先級
    在這里插入圖片描述
  2. 行程撤銷:kill(或exit)
    在這里插入圖片描述

4.3.2 行程等待與喚醒

  1. 行程等待:susp(chan)
    chan:行程等待的原因/事件
    在這里插入圖片描述
  2. 行程喚醒:wakeup(chan)
    chan:行程等待的原因/事件
    在這里插入圖片描述

4.4 行程之間的約束關系

4.4.1 行程競爭與合作

行程之間的相互制約關系:
①由于競爭系統資源而引起的間接相互制約關系(競爭系統資源)——由作業系統的資源分配功能來解決
②由于行程之間存在共享資料而引起的直接相互制約關系(行程協作),包括資訊共享和并行處理——由作業系統提供的同步機構來解決

4.4.2 行程互斥的概念

互斥:在作業系統中,當某一行程正在訪問某一存盤區域時,就不允許其它行程來讀出或者修改該存盤區的內容,否則,就會發生后果無法估計的錯誤,行程間的這種相互制約關系稱為互斥,
(1)臨界資源:一次僅允許一個行程使用的資源
注意:

  • 例1:行程共享列印機
  • 例2:行程共享公共變數

硬體:輸入機、列印機、磁帶機
軟體:公用變數、資料、表格、佇列
(2)臨界區:行程中對公共變數(或存盤區)進行審查與修改的程式段,稱為相對于該公共變數的臨界區

4.4.2 行程同步的概念

行程同步:并發行程在一些關鍵點上可能需要互相等待與互通訊息,這種相互制約的等待與互通訊息稱為行程同步

同步的例子:
(1)病員就診的同步關系
(2)計算行程與列印行程共享單緩沖區的同步問題

4.5 同步機構

4.5.1 鎖和上鎖、開鎖操作

上鎖原語:

演算法 lock
輸入:鎖變數w
輸出:無
{
	test:
	if(w==1)
		goto test;
		else w=1;
}

開鎖原語:

演算法:unlock
輸入:鎖變數w
{
	w=0;
}

改進后的上鎖原語:

演算法 lock
輸入:鎖變數w
輸出:無
{
	while(w==1){
		保護現行行程的CPU現場;
		將現行行程的PCB插入w的等待佇列;
		置該行程為"等待"狀態
		轉行程調度
	}
	w=1;
}

改進后的開鎖原語:

演算法 lock
輸入:鎖變數w
輸出:無
{
	if(w等待佇列不空){
		移出等待佇列首元素;
		將該行程的PCB插入就緒佇列;
		置該行程為"就緒"狀態;
	}
	w=0;
}

4.5.2 信號燈和P、V操作

1.信號燈:一個確定的二元組(s,q),s:一個非負初值的整型變數,q:一個初始狀態為的佇列

一個信號燈的建立必須經過說明,即說明信號燈s的意義和初值(初值不能為負值),每個信號燈都有一個佇列,在建立信號燈時,佇列為空當信號燈的值≥0時,表示綠燈,行程可以繼續當信號燈的值<0時,表示紅燈,行程被阻,s的值可以改變以反映資源或并發行程狀態的改變,信號燈的值只能通過P、V操作原語改變,在用戶給出信號燈初值后,信號燈在行程同步程序中的值不能被用戶程式直接修改,信號燈的取值范圍負整數值、零、正整數值

P、V操作:
(1)P操作
動作:
①s值減1
②若相減結果≥0,則行程繼續執行
③若相減結果<0,該行程被封鎖,并把它插入到信號燈的等待佇列中,然后轉行程調度程式

演算法 p
輸入:變數s
輸出:無
{
	s--;
	if(s<0){
		保留呼叫行程CPU現場;
		將該行程的PCB插入s的等待佇列;
		置該行程為"等待"狀態;
		轉行程調度;
	}
}

(2)V操作
動作:
①s值加1
②若相加結果>0,則行程繼續執行
③若相加結果≤0,從信號燈等待佇列移出一個行程,解除它的等待狀態然后回傳本行程繼續執行

演算法 v
輸入:變數s
輸出:無
{
	s++;
	if(s<=0){
		移出等待佇列首元素;
		將該行程的PCB插入就緒佇列;
		置該行程為"就緒"狀態
	}
}

4.6 行程互斥與同步的實作

4.6.1 上鎖原語和開鎖原語實作行程互斥

在用戶程式中,訪問臨界資源的前后必須增加上鎖原語和開鎖原語,任何欲進入臨界區的行程,必須先執行上鎖原語,若上鎖原語順利進行,則行程可以進入臨界區,在完成對臨界資源的訪問后再執行開鎖原語,以釋放臨界資源,

4.6.2 信號燈實作行程互斥

對于兩個并發行程,互斥信號燈的值僅取1、0、-1三個值
若mutex=1,表示沒有行程進入臨界區
若mutex=0,則表示有一個行程進入臨界區
若mutex=-1,表示一個行程進入臨界區,另一個行程等待進入

4.6.3 行程同步的實作

行程流圖:圖的連接描述了行程間開始和結束的次序的次序約束

順序:
順序
并行:
在這里插入圖片描述
共享緩沖區的合作行程同步:
在這里插入圖片描述
(1)分析同步關系:
①當buf內有新資料時,IOP行程才能列印;當buf內有空位置時,CP行程才能把下一個計算結果資料送入buf
②當CP行程把計算結果送入buf時,要給IOP發訊息,當IOP行程將buf中的資料取出后,要給CP發訊息

(2)設定兩個信號燈Sa和Sb,Sa表示緩沖區是否有可列印的結果,賦予初值為0(原因:列印行程在執行前先執行P(Sa)操作,若P操作后Sa結果小于0,則無可列印的結果,行程被阻;反之,若Sa為0,則證明有可列印的結果,則繼續執行列印操作);Sb表示緩沖區有無空位置存放新的資訊,賦予初值為1(原因:當計算出來的結果要放入緩沖區之前,需要做一步P(Sb)操作判斷緩沖區是否有空位置,若P操作后的Sb為0,則可以繼續,反之,若Sb為負數,則行程被阻,等待列印行程從緩沖區取走資訊后將它喚醒),列印行程將緩沖區資料取走后,便對Sb進行V(Sb)操作,告知緩沖區資訊已被取走,可以存放新的資訊,
在這里插入圖片描述

4.6.4 生產者——消費者問題

生產者:當有界緩沖區無空位置,要等待;向有界緩沖區放入物品后,要發訊息
消費者:當有界緩沖區無物品,要等待;從有界緩沖區取出物品,要發訊息

生產者——消費者問題解法:
(1)信號燈設定:

  • Sb:表示慷訓沖區的數目,初值=n
    Sa:表示滿緩沖區(即資訊)的數目,初值=0(兩個同步信號燈)
  • mutex:表示有界緩沖區是否被占用,初值=1(一個互斥信號燈)
    (2)同步描述:
    在這里插入圖片描述

4.8 執行緒概念及特點

4.8.1 執行緒的概念

執行緒可以用一個現場(context)來表示,現場由程式計數器、暫存器組和所要求的狀態字符組成

執行緒可以這樣描述:
①執行緒是行程中的一條執行路徑
②它有自己私用的堆疊和處理機執行環境
③它共享父行程的主存
④它是單個行程所創建的許多個同時存在的執行緒中的一個

行程與執行緒區別:行程是任務調度單位,也是系統資源的分配單位;而執行緒是行程中的一條執行路徑,當系統支持多執行緒處理時,執行緒是任務調度的單位,但不是系統資源的分配單位

4.8.1 執行緒的特點與狀態

執行緒的狀態變遷:
在這里插入圖片描述

第五章 資源分配與調度

5.1 資源管理概述

5.1.1&&5.1.2

作業系統對資源區分兩種不同的概念
①物理資源——系統中那些物理、可實際使用的資源
②虛擬資源——邏輯資源,是經過作業系統改造的、用戶看到的,使用方便的虛資源

目的:①方便用戶使用 ②資源可動態分配,提高資源利用率

5.2 資源管理的機制和策略

5.2.1&&5.2.2

資源分配策略:在眾多個請求者中選一個滿足條件的請求者原則

資源分配策略具體如何體現?
體現在資源請求佇列的排序原則上
(1)先請求先服務策略
①排序原則——按請求的先后次序排序:每一個新產生的請求均排在資源請求佇列的隊尾,
②資源可用時的處理:資源可用時,取資源請求佇列隊首元素,將該資源分配給請求者,
(2)優先調度策略
①排序原則——按請求的優先級高低排序

  • 對每一個行程制定一個優先級
  • 按優先級的高低排序——每一個新產生的請求按對應行程的優先級高低插入到佇列的相應位置,

(3)針對設備特性的調度策略
調度目標:當有大量的I/O請求時,降低完成這些I/O服務的總時間

如何確定移動臂磁盤組中磁盤塊的物理位置

5.3 死鎖

5.3.1 死鎖的定義與例子

死鎖:兩個或多個并發行程中,如果每個行程持有某種資源而又都等待著別的行程釋放它或它們現在保持著的資源,否則就不能向前推進,此時稱這一組行程為死鎖,

5.3.2 引起死鎖的原因和必要條件

引起死鎖的原因:
①系統資源不足
②行程推進順序非法

產生死鎖的必要條件
①互斥條件——涉及的資源是非共享的,即為臨界資源
②不剝奪條件——行程所獲得的資源在未使用完畢之前,不能被其它行程強行奪走
③部分分配——行程每次申請它所需要的一部分資源,在等待新資源的同時,行程繼續占用已分配到的資源
④環路條件——存在一種行程的回圈鏈,鏈中的每一個行程已獲得的資源同時被鏈中下一個行程所請求

5.3.3 系統模型和死鎖的處理

(1)資源請求矩陣:
在時刻t資源請求矩陣
d(t)=
d11 d12 … d1m
d21 d22 … d2m
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
dn1 dn2 … dnm

dij表示行程pi還需要j類資源的數目

(2)資源分配矩陣:
在時刻t資源分配矩陣
a(t)=
a11 a12 … a1m
a21 a22 … a2m
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
an1 an2 … anm

aij表示行程pi已占用j類資源的數目

(3)什么情況下系統是安全的
當行程請求某類資源時,行程對該類資源的最大需求量小于當前時刻系統所擁有的該類資源的數目,那么滿足行程的這次請求,系統是安全的

系統的安全狀態描述:按某種順序,并發行程都能達到獲得全部資源而順序完成的序列稱為安全序列,能找到安全序列的狀態為安全狀態,

5.3.4 解決死鎖問題的策略

為了使系統不發生死鎖,必須要破壞產生死鎖的四個必要條件之一

①采用資源靜態分配方法預防死鎖
②采用資源動態分配、有控分配方法來避免死鎖
③當死鎖發生時檢測出死鎖,并設法修復
④忽略死鎖,一旦發生死鎖便重啟系統(這種方法被絕大多數作業系統所采用)

5.3.5 死鎖的預防

死鎖的預防分為靜態預防動態避免

死鎖的靜態預防就是采用資源預先分配方式,系統在應用程式進入系統前分配它所需要的所有資源,當資源一旦分配給該應用程式后,在其整個運行期間這些資源為它獨占,

5.3.6 死鎖的避免

死鎖的動態避免就是采用資源動態分配的方式
有序資源分配方法:系統中所有資源都給一個唯一的編號,所有分配請求必須以上升的次序進行,當遵守上升次序的規則時,若資源可用,則予以分配;否則,請求者等待,
銀行家演算法:申請者事先說明對各類資源的最大需求量,在行程活動期間動態申請某類資源時,由系統審查現有該類資源的數目是否能滿足當前行程的最大需求量,如能滿足就予以分配,否則拒絕,

例:
擁有某類資源10個,現有P、Q、R共享該類資源,申請該類資源的需求量如下,

行程最大需求量已占有資源現申請資源個數
P841
Q421
R921

已占有的資源總數:4+2+2=8個
還剩下的資源數:10-8=2個
計算行程還需要的資源數:
P:8-4=4個
Q:4-2=2個
R:9-2=7個
∵現擁有2個剩余資源數
又∵Q還需要的資源數為2×1=2個(乘的1為現申請的資源個數)
∴只有Q符合條件,分配給Q

5.3.7 死鎖的檢測與忽略

第六章 處理機調度

6.1 處理機的多級調度

(1)批處理系統中的處理機調度
分兩級:作業調度和行程調度

作業調度:又稱為宏觀調度,任務——對存放在輔存設備上的大量作業,以一定的策略進行挑選,分配主存等必要的資源,建立作業對應的行程,使其投入運行,

行程調度:微觀調度,任務——對進入主存的所有行程,確定哪個行程在什么時候獲得處理機,使用多長時間

(2)多任務系統中的處理機調度
多任務系統包括:分時作業系統、個人計算機作業系統

多任務系統中最小活動單位:行程

多任務系統中的行程調度:系統提供行程調度程式,其功能是當處理機空閑時,以某種策略選擇一個就緒行程去運行,并分配處理機時間
(3)多執行緒系統中的處理機調度
處理機的分配單位:執行緒

多執行緒系統中的執行緒調度:系統提供執行緒調度程式,其功能是當處理機空閑時,以某種策略選擇一個就緒執行緒去運行,并分配處理機時間

6.2 作業調度

6.2.1 作業的狀態

作業的狀態:
后備狀態:作業所需的程式、資料、操作說明書已存放在磁盤上,等待調度
執行狀態:作業所需的資訊已進入主存,開始運行
完成狀態:作業計算完成,退出系統

作業狀態的變遷:
在這里插入圖片描述

6.2.2 作業調度的功能

6.2.3 作業控制塊

作業名——作業的名字
資源要求——容量、外部設備等
資源使用情況——已經占用的主存的地址、大小、 哪臺設備等
作業型別——控制方式、作業型別
作業優先級——占用CPU、占用系統運行的優先級
作業狀態——后備、執行、完成狀態

6.2.4 調度演算法性能的衡量

周轉時間 ti:一個作業提交給計算機系統到該作業的結果回傳給用戶所需要的時間,說明作業 i 在系統中停留時間的長短
ti公式ti = tci - tsi
ti:作業 i 的周轉時間
tci:作業 i 的完成時間
tsi:作業 i 的提交時間

平均周轉時間 t :(周轉時間 t 時間越短越好)
t = 1 n ∑ i = 1 n t i t=\frac{1}{n} \quad\sum_{i=1}^n t_i\quad t=n1?i=1n?ti?

帶權周轉時間 wi :一個作業的周轉時間與其運行時間的比值,(說明作業 i 在系統中相對等待時間)
w i = t i t r i w_i=\frac{t_i}{tri} \quad wi?=triti??
wi :作業 i 的帶權周轉時間
tri :作業 i 的實際執行時間

平均帶權周轉時間 w :
w = 1 n ∑ i = 1 n w i w=\frac{1}{n} \quad\sum_{i=1}^n w_i\quad w=n1?i=1n?wi?

6.2.5 作業調度演算法

例:

作業提交時間執行時間開始時間完成時間周轉時間帶權周轉時間
18.002.00----
28.500.50----
39.000.10----
49.500.20----

(1)先來先服務調度演算法(FCFS)
①策略:按作業來到的先后次序進行調度
②特點:簡單、易實作

解:

作業提交時間執行時間開始時間完成時間周轉時間帶權周轉時間
18.002.008.0010.002.001
28.500.5010.0010.502.004
39.000.1010.5010.601.6016
49.500.2010.6010.801.306.5

平均周轉時間 t = 1.725
平均帶權周轉時間 w = 6.875

(2)短作業優先調度演算法
①策略:按作業運行時間的長短進行調度
②特點:易實作,效率較高

解:
①8.00時刻作業1來到,正常執行

作業提交時間執行時間開始時間完成時間周轉時間帶權周轉時間
18.002.008.0010.002.001
28.500.50----
39.000.10----
49.500.20----

②按執行時間選擇作業3(優先選擇執行時間短的執行)

作業提交時間執行時間開始時間完成時間周轉時間帶權周轉時間
18.002.008.0010.002.001
28.500.50----
39.000.1010.0010.101.1011
49.500.20----

③重復②的程序,因為0.20<0.50,選擇作業4

作業提交時間執行時間開始時間完成時間周轉時間帶權周轉時間
18.002.008.0010.002.001
28.500.50----
39.000.1010.0010.101.1011
49.500.2010.1010.300.804

④最后運行作業2

作業提交時間執行時間開始時間完成時間周轉時間帶權周轉時間
18.002.008.0010.002.001
28.500.5010.3010.802.304.6
39.000.1010.0010.101.1011
49.500.2010.1010.300.804

最后得出,
平均周轉時間 t = 1.55
平均帶權周轉時間 w= 5.15

比較(1)(2)的 t 和 w ,明顯短作業優先調度演算法先來先服務調度演算法好,但短作業優先調度演算法存在缺陷,即若有一個長作業有可能永遠得不到調度,

第七章 主存管理

7.1 主存管理概述

7.1.1 && 7.1.2

物理地址:計算機主存單元的真實地址
主存空間:物理地址的集合所對應的空間
邏輯地址:用戶的程式地址(指令地址或運算元地址)
程式地址空間:用戶程式所有的邏輯地址集合對應的空間

存盤空間就是系統擁有的主存空間,若主存由m個存盤單元,則存盤單元編號是0~(m-1),

程式的地址空間由程式的地址結構決定
①程式的一維地址結構:確定線性地址空間中的指令地址或運算元地址只需要一個資訊
②程式的二維地址結構(一個程式由若干個分段組成,每個分段是一個連續的地址區,則程式的地址空間由若干個分段組成):確定地址空間中的指令地址或運算元地址需要兩個資訊,一個是該資訊所在的分段,另一個是該資訊在段內的偏移量

7.2 主存管理的功能

7.2.1 虛擬存盤器

虛擬存盤器:由作業系統和硬體相配合實作的主存和輔存之間資訊的動態調度,這樣的計算機系統為用戶提供了一個其存盤容量比實際主存大得多的存盤器

實作虛擬存盤器的物質基礎:
①有相當容量的輔存——足以存放應用程式的虛地址空間
②有一定容量的主存——存放進入主存的多行程的資訊
③地址變換機構

7.2.2 地址映射

地址映射:將程式地址空間中使用的邏輯地址變成主存中的物理地址的程序

動態地址映射:在程式執行期間,隨著每條指令和資料的訪問自動連續地進行地址映射
動態地址映射硬體支持:重定位暫存器

7.2.3 主存分配

主存分配功能包括:
①制定分配策略、構造分配用的資料結構,
②回應主存分配請求、
③決定用戶程式的主存位置并將程式裝入記憶體

主存管理存盤器的策略:
①放置策略
②調入策略
③淘汰策略

7.2.4 存盤保護

存盤保護:有硬體(軟體配合)保證每個程式只能在給定的存盤區域內活動

7.3 磁區存盤管理及存在的問題

7.3.1 動態磁區存盤管理技術

7.3.2 磁區分配機構

在這里插入圖片描述
在這里插入圖片描述
flag:分配標志,空閑區為0,分配區為非0數值
size:磁區大小,
next:勾鏈字,空閑區中,指向下一個空閑磁區分配區中,為0

7.3.3 磁區分配與放置策略

常用的放置策略:首次適應演算法、最佳適應演算法、最壞適應演算法
(1)首次適應演算法:將輸入的程式放置到主存里第一個足夠入它的地址最低的空閑區中
空閑區佇列結構:空閑區地址由高到低排序
特點:盡可能利用存盤器中低地址的空閑區,而盡量保存高地址的空閑區

在這里插入圖片描述
(2)最佳適應的演算法:將輸入的程式放置到主存中與它所需大小最接近的空閑區中
空閑區的佇列結構:空閑區大小由小到大排序
特點:盡可能利用存盤器中小的空閑區,而盡量保存大的空閑區
在這里插入圖片描述
(3)最壞適應演算法:將輸入的程式放置到主存中與它所需大小差距最大的空閑區中
空閑區佇列結構:空閑區大小由大到小排序
特點:盡可能利用存盤器中大的空閑區
在這里插入圖片描述

7.3.4 碎片問題及拼接技術

拼接技術:移動存盤器中某些已分配區中的資訊,使本來分散的空閑區連成一個很大的空閑區
在這里插入圖片描述
拼接技術缺點:
①消耗系統資源
②當系統進行拼接時,它必須停止所有其他的作業
③拼接需要消耗大量的系統資源

7.4 頁式存盤管理

7.4.1 頁式系統應解決的問題

頁面:程式的地址空間被等分成大小相等的片,成為面
主存塊:主存被分成大小相等的片

7.4.2 頁式地址的變換

頁表:為了實作從地址空間到物理主存的映像,系統建立了頁與主存塊之間對應關系的資料結構,該頁面稱為頁面映像表,簡稱頁表

頁表組成:高速緩沖存盤器、主存區

當CPU給出的地址長度為16位,頁面大小為1KB時,在分頁系統中地址結構的格式為:
在這里插入圖片描述
頁號6位,頁內位移10位
虛存大小:210 × 26 = 216

當CPU給出的地址長度為32位,頁面大小為4KB時,在分頁系統中地址結構的格式為:
在這里插入圖片描述
頁號20位,頁內位移12位
虛存大小:220 × 212 = 232

頁式地址變換步驟:(詳細見課本)
①CPU給出運算元地址(為2500)
②由分頁機構自動把邏輯地址分為兩部分,得到頁號p和頁內相對位移w(p=2,w=452,轉換成二進制)
③根據頁表始址暫存器指示的頁表始地址,以頁號為索引,找到第2頁對應的塊號(為7)
④將塊號b和頁內位移量w拼接在一起,就形成了訪問主存的物理地址(7×1024+452=7620)

7.4.3 請調頁面的機制

擴充頁表功能:
在這里插入圖片描述
中斷位 i ——標識該頁是否在主存,若i=1,表示該頁不在主存;若i=0,表示該頁在主存
輔存地址——該頁面在輔存的位置

7.4.4 淘汰機制與策略

淘汰策略:用來選擇淘汰哪一頁的規則叫置換策略,也叫淘汰演算法
在這里插入圖片描述

參考位——表示該頁最近是否被訪問,若為0,該頁沒有被訪問;若為1,該頁已被訪問
改變位——表示該頁是否被修改,若為0,該頁未被修改;若為1,該頁已被修改

在這里插入圖片描述

7.4.5 幾種置換演算法

(1)先進先出演算法(FIFO演算法):總是選擇在主存中居留時間最長(即最早進入主存)的一頁淘汰,
思路:
建立一個頁面進入主存的先后次序表
建立一個替換指標,指向最早進入主存的頁面
當需要置換一頁時,選擇替換指標指向的那一頁,然后調整替換指標的內容

① 頁號表實作:
頁號表記錄頁面進入主存先后次序:2→4→5→1
在這里插入圖片描述
當要調入第6頁時,將第2頁改為6,替換指標指向第4頁
在這里插入圖片描述

②存盤分塊表實作:
存盤分塊表記錄頁面進入主存先后次序:4→5→1→2
在這里插入圖片描述
替換指標內的數為所要替換的塊號
指標指向先后次序的下一個頁號,值為該頁號所對應的塊號

當要調入第8頁時,置換第4頁,先后次序:5→1→2→8
得到:
在這里插入圖片描述

(2)最久未使用淘汰演算法(LRU演算法):選擇最長時間未被使用的淘汰
①用頁號堆疊實作最久未使用演算法:
頁面訪問軌跡:4→5→1→2→5→6
頁號堆疊中,堆疊頂是剛被訪問過的頁號
在這里插入圖片描述
②LRU近似演算法
在這里插入圖片描述

7.5 段氏和段頁式存盤管理

7.5.1 段氏地址結構

7.5.2 段氏地址的變換

7.5.3 擴充段表功能

7.5.4 段頁式存盤管理

第八章 設備管理

8.1 設備管理概述

8.1.1 設備管理的功能

設備分類:
①存盤設備:存盤資訊的設備,又叫塊設備,如磁盤、磁鼓
②輸入輸出設備:將資訊從計算機外部輸入到機內或反之,又叫字符設備,如鍵盤、顯示幕、列印機
③通信設備:負責計算機之間的資訊傳輸,如調制解調器、網卡等

設備功能:
①狀態跟蹤
②設備分配
③設備控制

8.1.2 設備獨立性

設備獨立性:用戶在程式中使用的設備與實際使用的設備無關,也就是在用戶程式中僅使用邏輯設備名

邏輯設備名:用戶自己指定的設備名(或設備號),它是暫時的、可更改的

物理設備名:系統提供的設備的標準名稱,它是永久的,不可更改的

邏輯設備描述器:記錄了邏輯設備與物理設備的對應關系,內容包括——設備邏輯名、設備物理名、設備控制塊dcb指標、設備描述器佇列指標

在用戶程式中定義邏輯設備:
使用高級語言提供的指派陳述句,通過指派一個邏輯設備名(通道號)來定義一個設備或檔案
如:fd1=open("/dev/ip" , mode)
n=write(fd1,buf1,count)
第一個陳述句是將fd1(檔案描述符)與列印機ip以一定的模式(讀或寫)鏈接
第二個陳述句在列印機上輸出n個位元組的資訊

設備獨立性優點:
①方便用戶
②提高設備利用率
③提高系統可適應性和可擴展性

8.1.3 設備控制塊

設備控制塊:系統為每一臺設備配置了一個用來記錄設備的硬體特性、連接和使用情況的資料結構

設備控制塊的內容
設備名
設備屬性
指向命令轉換表的指標
在I/O總線上的設備地址
設備狀態
當前用戶行程指標
I/O請求佇列指標

8.2 緩沖技術

8.2.1 緩沖概述

緩沖:緩沖技術是兩種不同速度的設備之間傳輸資訊時平滑傳輸程序的常用手段

緩沖類別:
①緩沖器
②軟體緩沖

緩沖技術解決的問題:
①解決速度差異的問題
②協調傳輸資料大小不一致的問題
③應用程式的拷貝語意問題

8.2.2 常用的緩沖技術

常用的緩沖技術:
①雙緩沖
②緩沖池:由主存中的一組緩沖區組成,每個緩沖區的大小一般等于物理記錄的大小

8.3 設備分配

8.3.1 設備分配概述

外部設備分兩類:
獨占設備——一般采用靜態分配
共享設備——一般采用動態分配

I/O設備分配演算法:
①先請求先服務:設備請求佇列按行程發出此I/O請求的先后次序排序
②優先級最高者優先:設備請求佇列按行程發出此I/O請求的優先級高低排序

常用的設備分配技術:獨享分配、共享分配、虛擬分配

8.3.2 獨享分配

8.3.3 共享分配

8.3.4 虛擬分配

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/238549.html

標籤:其他

上一篇:【STM32單片機學習】第三課:開發板介紹和編程環境搭建

下一篇:JS資料型別檢測typeof、instanceof、constructor、Object.prototype.toString.call(val)的區別

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more