操作系統--課堂問答筆記23--習題答案

課堂筆記學習視頻來自 操作系統
說明:其他”課堂問答筆記“也在”操作系統“專欄

【5-4、5-5】 

1、環形緩衝區的三個指針的作用

答:理解環形緩衝區的一些概念和原理:

1) 多個緩衝區。在環形緩衝中包括多個緩衝區,其每個緩衝區的大小相同。作爲輸入的多緩衝區可分爲三種類型:用於裝輸入數據的空緩衝區R、已裝滿數據的緩衝區G以及計算進程正在使用的現行工作緩衝區C,如圖所示:

 

2)對應3種緩衝區有3個指針:用於指示計算進程下一個可用緩衝區G的指針Nextg、指示輸入進程下次可用的空緩衝區R的指針Nexti、指示計算進程正在使用的緩衝區C的指針Current(當前)。也就是:指針Nextg:指向下一個取數據的緩衝區,指針Nexti:指向下一個放數據的緩衝區,指針Current:目前正在用的緩衝區(可能是正在放數據,也可能是取數據)

3)環形緩衝區的使用:

Getbuf過程——使用(可能是取數據也可能是放數據)緩衝區數據:當計算進程要使用緩衝區中的數據時,可調用Getbuf過程。該過程將由指針Nextg所指示的緩衝區提供給進程使用,相應地,須把它改爲現行工作緩衝區,並令Current指針指向該緩衝區的第一個單元,同時將Nextg移向下一個G緩衝區。類似地,每當輸入進程要使用空緩衝區來裝入數據時,也調用Getbuf過程,由該過程將指針 Nexti所指示的緩衝區提供給輸入進程使用,同時將Nexti指針移向個 R緩衝區。

Releasebuf過程——釋放緩衝區數據:當計算進程把C緩衝區中的數據提取完畢時,便調用Releasebuf過程,將緩衝區C釋放。此時,把該緩衝區由當前(現行)工作緩衝區C改爲空緩衝區R。 類似地,當輸入進程把緩衝區裝滿時,也應調用Releasebuf過程,將該緩衝區釋放,並改爲G緩衝區。

 

2、分析緩衝池四種工作方式

答:緩衝池工作方式見下圖:

 

緩衝池設置了四種工作緩衝區:用於收容輸入數據的工作緩衝區(hin),用於提取輸入數據的工作緩衝區(sin),用於收容輸出數據的工作緩衝區(hout)、用於提取數據的工作緩衝區(sout)。

將緩衝池中具有相同類型的緩衝區鏈接成一個隊列,於是可形成以下三個隊列:空白緩衝隊列emq;輸入隊列inq;輸出隊列outq。

1) 收容輸入:當輸入進程請求輸入數據時,就會從空緩衝隊列emq中取出隊頭的緩衝區,把它作爲“收容輸入數據的工作緩衝區(hin)”,裝滿數據後將緩衝區掛到輸入隊列inq的隊尾。

2) 提取輸入:計算進程如果想要取得一塊輸入數據,從輸入隊列inq隊頭取得一塊滿的輸入緩衝區,把它作爲“提取輸入數據的工作緩衝區(sin)”,緩衝區的數據被讀空後掛到空緩衝區隊列emq末尾。

3) 收容輸出:計算進程想要將準備好的數據裝入緩衝區,從空緩衝隊列emq中取出隊頭的緩衝區,把它作爲“收容輸出數據的工作緩衝區hout”,裝滿數據後掛到輸出隊列的隊尾outq。

4) 提取輸出:輸出進程請求輸出數據,從輸出隊列outq取出隊頭緩衝區,把它作爲“提取輸出數據的工作緩衝區sout”,當數據被讀空後掛到空緩衝隊列emq。

 

3、設備分配用到的數據結構及其作用

答:在用於設備分配的數據結構中,記錄了對設備或控制器進行控制所需的信息。在進行設備分配時需要如下的數據結構。

1) 設備控制表DCT

系統爲每一個設備都配置了一張設備控制表,用於記錄每一個設備的情況:

 

2) 控制器控制表(COCT)。系統爲每一個設備控制器都設置了用於記錄控制器情況的控制器控制表:

 

3) 通道控制表(CHCT)。每個通道都有一張通道控制表:

 

4) 系統設備表(SDT)。這是系統範圍的數據結構,記錄了系統中全部設備的情況,每個設備佔一個表目,其中包括有設備類型、設備標識符、設備控制表及設備驅動程序的入口等項:

 

以上表目中的內容可以不必記住,各表名稱和作用先記住一下。

 

4、設備分配時應考慮的因素

答:系統在分配設備時,應考慮如下幾個因素:

1) 設備的固有屬性

設備的固有屬性可分成三種,對它們應採取不同的分配策略:

(1) 獨佔設備的分配策略。

(2) 共享設備的分配策略。

(3) 虛擬設備的分配策略,虛擬設備屬於可共享的設備,可以將它同時分配給多個進程使用。

2) 設備分配算法

對設備分配的算法,通常只採用以下兩種分配算法:

(1) 先來先服務。(2)優先級高者優先。

3) 設備分配中的安全性

從進程運行的安全性上考慮,設備分配有以下兩種方式:

(1)安全分配方式。(2)不安全分配方式。

 

5、如何理解設備獨立性

答:設備獨立性,也稱爲設備無關性。其基本含義是:應用程序中所用的設備,不侷限於使用某個具體的物理設備。

計算機的外部設備很多,同種類型的設備又有不同廠家、不同型號的產品百。這些產品總會有些細微的差別。這就給應用程序的編寫帶來很大的困難,因爲一個應用程序不可能顧及到所有硬件的兼容性。爲此,操作系統將具體的硬件設備同整個系統隔離開來,對硬件的具體操作、與硬件有關的兼容性問題等統統由設備驅動程序來解決,同時操作系統嚮應用程序提供統一的操作設備的方法,應用程序只需要按套路調用操作系統提供的功能即可,無須關心實際的設備是什麼,這就是設備獨立性(無關性)。這樣,每增添或改動一個系統上的硬件,只需要安裝相應的驅動程序即可。

爲了實現設備獨立性而引入了邏輯設備和物理設備這兩個概念。在應用程序中,使用邏輯設備名稱來請求使用某類設備;而系統在實際執行時,使用物理設備名稱。因此,系統須具有將邏輯設備名稱轉換爲某物理設備名稱的功能,這非常類似於存儲器管理中所介紹的邏輯地址和物理地址的概念。

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