⑴ 信號量的物理意義是當信號量值大於零時表示有什麼 ;當信號量值小於零時,其絕對值為多少 。
信號量
Semaphore 類表示一個命名信號量(系統范圍)或本地信號量。Windows 信號量是計數信號量,可用於控制對資源池的訪問。
管理受限資源
線程通過調用 WaitOne 方法來進入信號量,此方法是從 WaitHandle 類派生的。當調用返回時,信號量的計數將減少。當一個線程請求項而計數為零時,該線程會被阻止。當線程通過調用 Release 方法釋放信號量時,將允許被阻止的線程進入。針對讓被阻止的線程進入信號量,不存在保證的順序(例如 FIFO 或 LIFO)。
線程可以通過重復調用 WaitOne 方法來多次進入信號量。若要釋放信號量,線程可以調用 Release 方法重載相同的次數,也可以調用 Release 方法重載並指定要釋放的項數。
信號量和線程標識
Semaphore 類不對向 WaitOne 和 Release 方法發出的調用強制線程標識。例如,信號量的一個常用方案包括一個生產者線程和一個使用者線程,其中一個線程總是增加信號量計數,而另一個線程總是減少信號量計數。
編程人員應負責確保線程釋放信號量的次數不會過多。例如,假定信號量的最大計數為二,線程 A 和線程 B 都進入信號量。如果線程 B 中發生了一個編程錯誤,導致它調用 Release 兩次,則兩次調用都會成功。這樣,信號量的計數就已經達到了最大值,所以,當線程 A 最終調用 Release 時,將引發 SemaphoreFullException。
命名信號量
Windows 操作系統允許信號量具有名稱。命名信號量在整個系統范圍都有效。即,創建命名信號量後,所有進程中的所有線程都是可見的。因此,命名信號量可用於同步進程的活動以及線程的活動。
您可以使用可用於指定名稱的一個構造函數來創建表示命名系統信號量的 Semaphore 對象。
⑵ 信號量的物理意義
你說的是操作系統的信號量嗎?他其實一個數據結構罷了
⑶ 計算機組成原理中信號量的物理意義是什麼
是什麼信號,你所說的是不是輻射噢,
能不能請樓主詳細說明一下阿,
要是輻射的話,鍵盤和滑鼠的輻射最高了其次是主機然後是顯示器.
鍵盤是>1000赫兆 滑鼠有600到700
主機400左右, 顯示器往往是人們認為最高的
但是它其實是最低的, 想減低輻射的話你可以買一碰仙人掌放在電腦附近, 它可以很有效的減少輻射噢,
說了半天`還是不知道你問題是問什麼
說清楚點啦,
⑷ 整型信號量的物理含義
Dijkstra把整型信號量定義為一個整形量,除初始化外,通過兩個標準的原子操作(Atomic Operation)wait(s)和signal(s)來訪問.這兩個操作很長時間以來,一直被分別稱為P、v操作.wait和signal操作可描述為:
wait(s):while s≤0 do no_op:
s:=s-1;
signal(s):s:=s+1;
wait(s)和signal(s)是兩個原子操作,因此,它們在執行時是不可中斷的.亦即產生一個進程在修改某信號量時,沒有其他進程可同時對該信號量進行修改.此外,在wait操作中,對s值的測試和做s:=s-1操作時,都不可中斷.
信號量的物理意義如下:
(1) 若信號量s為正值,則該值等於在封鎖進程之前對信號量s可施行的P操作數,亦即等於s所代表的實際使用的物理資源個數.
(2) 若信號量s為負值,則其絕對值等於登記排列在該信號量s隊列之中等待進程的個數,亦即恰好等於對信號量s實施P操作而被封鎖起來並進入信號量s隊列的進程數.
(3) 通常P操作意味著請求一個資源,V操作意味著釋放一個資源.在一定條件下,P操作代表掛起進程操作,而V操作代表喚醒被掛起進程的操作.
⑸ 信號量的物理意義
信號量(Semaphore),有時被稱為信號燈,是在多線程環境下使用的一種設施,是可以用來保證兩個或多個關鍵代碼段不被並發調用。在進入一個關鍵代碼段之前,線程必須獲取一個信號量;一旦該關鍵代碼段完成了,那麼該線程必須釋放信號量。其它想進入該關鍵代碼段的線程必須等待直到第一個線程釋放信號量。為了完成這個過程,需要創建一個信號量VI,然後將Acquire Semaphore VI以及Release Semaphore VI分別放置在每個關鍵代碼段的首末端。確認這些信號量VI引用的是初始創建的信號量。
以一個停車場的運作為例。簡單起見,假設停車場只有三個車位,一開始三個車位都是空的。這時如果同時來了五輛車,看門人允許其中三輛直接進入,然後放下車攔,剩下的車則必須在入口等待,此後來的車也都不得不在入口處等待。這時,有一輛車離開停車場,看門人得知後,打開車攔,放入外面的一輛進去,如果又離開兩輛,則又可以放入兩輛,如此往復。
在這個停車場系統中,車位是公共資源,每輛車好比一個線程,看門人起的就是信號量的作用。
分類
整型信號量(integer semaphore):信號量是整數
記錄型信號量(record semaphore):每個信號量s除一個整數值s.value(計數)外,還有一個進程等待隊列s.L,其中是阻塞在該信號量的各個進程的標識
二進制信號量(binary semaphore):只允許信號量取0或1值
每個信號量至少須記錄兩個信息:信號量的值和等待該信號量的進程隊列。它的類型定義如下:(用類PASCAL語言表述)
semaphore = record
value: integer;
queue: ^PCB;
end;
其中PCB是進程式控制制塊,是操作系統為每個進程建立的數據結構。
s.value>=0時,s.queue為空;
s.value<0時,s.value的絕對值為s.queue中等待進程的個數;
⑹ 操作系統題目
1,D 2,B 3,C 4,C 5,B
1,p,v操作是信號量的原子操作,是指wait(),signal()操作,具有不可再分性,是信號量的原語操作
.因此選D.
2,信號量的值為1,表示開始系統有兩個可用的資源,現在變成-1,則表示有一個資源正在等待,因此選B。
4,人們把在每個進程中訪問臨界資源的那段代碼稱為臨界區,因此選C。
5,兩個並發進程,mutex的初值為1,表示有一個可用資源,現在為0,即表示有一個資源進入臨界區,因此選B。
⑺ 信號量的物理意義是當信號量值大於零時表示有什麼 ;當信號量值小於零時,其絕對值為多少 。
信號量的物理意義是當信號量值大於零時表示可用資源的數目;當信號量值小於零時,其絕對值為因請求該資源而被阻塞的進程數目 。
在進入一個關鍵代碼段之前,線程必須獲取一個信號量;一旦該關鍵代碼段完成了,那麼該線程必須釋放信號量。其它想進入該關鍵代碼段的線程必須等待直到第一個線程釋放信號量。
(7)信號量的物理含義是什麼擴展閱讀:
抽象的來講,信號量的特性如下:信號量是一個非負整數(車位數),所有通過它的線程/進程(車輛)都會將該整數減一(通過它當然是為了使用資源),當該整數值為零時,所有試圖通過它的線程都將處於等待狀態。
在信號量上兩種操作: Wait(等待) 和 Release(釋放)。當一個線程調用Wait操作時,它要麼得到資源然後將信號量減一,要麼一直等下去(指放入阻塞隊列),直到信號量大於等於一時。Release(釋放)實際上是在信號量上執行加操作,對應於車輛離開停車場,該操作之所以叫做「釋放」是因為釋放了由信號量守護的資源。
⑻ 同步信號量的值有什麼含義。
同步信號量的值含義有:
1、信號量(semaphore)的數據結構為一個值和一個指針,指針指向等待該信號量的下一個進程。信號量的值與相應資源的使用情況有關。
當它的值大於0時,表示當前可用資源的數量;當它的值小於0時,其絕對值表示等待使用該資源的進程個數。注意,信號量的值僅能由PV操作來改變。
2、一般來說,信號量S>=0時,S表示可用資源的數量。執行一次P操作意味著請求分配一個單位資源,因此S的值減1。
當S<0時,表示已經沒有可用資源,請求者必須等待別的進程釋放該類資源,它才能運行下去。而執行一個V操作意味著釋放一個單位資源,因此S的值加1;若S<0,表示有某些進程正在等待該資源,因此要喚醒一個等待狀態的進程,使之運行下去。
信號量(Semaphore)是Java多線程兵法中的一種JDK內置同步器,通過它可以實現多線程對公共資源的並發訪問控制。
一個線程在進入公共資源時需要先獲取一個許可,如果獲取不到許可則要等待其它線程釋放許可,每個線程在離開公共資源時都會釋放許可。
信號量的主要應用場景是控制最多N個線程同時地訪問資源,其中計數器的最大值即是許可的最大值N。
以停車場為例,假設停車場一共有8個車位,其中6個車位已被停放,然後來了兩輛汽車,此時因為剛好剩下兩個車位所以這兩輛車都能停放。接著又來了一輛車,現在已經沒有空位了所以只能等待其它車離開。
⑼ 誰有操作系統復習題啊
操作系統作業
第一章 序言
1. 選擇題
1.1 ( )不是一個操作系統環境。 A.賽揚(celeron) B.Windows CE C.Linux D.Solaris。
1.2 批處理操作系統的缺點是( ) A.系統吞吐量小 B.CPU利用率低 C.系統開銷小 D.缺少交互能力
1.3 批處理操作系統的目的是( )
A.提高系統與用戶的交互性 B.提高系統資源利用率 C.提高系統吞吐率 D.降低用戶作業的周轉時間
1.4 實時操作系統必須在( )時間內響應一個新任務。A.一個機器周期 B.被控對象規定 C.任意周期 D.時間片
1.5 下列系統中,( )是實時系統。 A.火炮的自動化控制系統B.辦公自動化系統C.管理信息系統D.計算機集成製造系統
1.6 如果分時操作系統的時間片一定,那麼( ) ,則響應時間越長。A. 用戶數越少B. 用戶數越多C. 內存越少 D. 內存越多
1.7 分時系統通常採用( )策略為用戶服務。 A. 可靠性和靈活性 B. 時間片輪轉 C. 時間片加權分配 D. 短作業優先
1.8 多道批處理系統中引入了多道程序設計技術。為了充分提高各種資源的利用率,作業的類型最好是( )
A. 短作業型 B. 計算型,即其CPU計算的工作量重於I/O的工作量
C. I/O型,即其I/O的工作量重於CPU計算的工作量 D. 計算與I/O均衡型
2.填空題
2.1 在分時系統中,影響響應時間的主要因素有___ __、__ _。
2.2 設計實時系統時應特別強調系統的_ _和_ _。
2.3 操作系統的特徵主要有:__ ___、_ _、_ _及 。
2.4 多道程序設計的特點是多道、 和 。
2.5 現代操作系統的兩個最基本的特性是程序的 與系統資源的 。
3. 判斷題
3.1 操作系統的主要作用是管理系統資源和提供用戶界面。( )
4.簡答題
4.1 並發與並行有何區別?
4.2 多道程序設計的主要優點是什麼?
4.3 多用戶分時系統如何保證系統的交互性?
第二章 操作系統結構
1. 選擇題
1.1 用戶使用操作系統通常有四種介面:終端命令、圖形界面、系統調用和( )。
A.高級指令 B. 宏命令 C. 匯編語言 D. 作業控制語言
1.2 操作系統在執行系統調用時會產生一種中斷,這種中斷稱為( )。A.系統中斷 B. I/O中斷 C. 程序性中斷 D. 軟中斷
1.3 在下列操作中,不必將控制進入操作系統的操作是( )。A.中斷 B. 鍵盤命令 C. 系統調用 D. 程序調用
1.4 ( )中斷是正在運行的進程所期待的自願中斷事件。A.程序 B. I/O C. 時鍾 D. 訪管
1.5 當用戶程序執行訪管指令時,系統( )。A. 維持在目態 B. 維持在管態 C. 從管態到目態 D. 從目態到管態
2.填空題
2.1 根據中斷信號的來源,可分把中斷為 和 二大類,屬於第一類的中斷有 ,屬於第二類的中斷有 。
2.2 根據中斷信號的含義和功能,可把中斷分為以下五類:機器故障中斷、I/O中斷、外中斷、 和 。
2.3 用戶程序是通過使用_ __產生中斷進入系統內核的。 2.4 系統調用與一般過程的主要區別是_ _。
2.5 特權指令可以在中央處理器處於 時予以執行。
3. 判斷題
3.3 特權指令僅允許在管態下執行。( ) 3.4 斷點與恢復點是一致的。( )
3.5 就執行效率而言,解釋程序要比編譯程序好一些。( ) 3.6 解釋程序是用來逐句分析執行源程序的系統軟體。( )
3.8 命令處理程序執行完上一條命令後才接著處理下一條命令。( ) 3.9 中斷向量是指中斷處理程序入口地址。( )
3.10 用戶程序有時也可以在核心態下運行. ( )
4.簡答題
4.1 什麼是中斷與中斷系統? 4.2 什麼是管態與目態?
4.3 什麼是(外)中斷?什麼是異常? 4.4系統調用與一般用戶函數調用的區別?
5.問答題
5.1 根據中斷信號的含義與功能,中斷可以分為哪幾類?
第三章 進程與處理機管理
1. 選擇題
1.1 從作業提交到作業完成的時間間隔是( )。A. 響應時間 B. 周轉時間 C. 運行時間 D. 等待時間
1.2 既考慮作業等待時間,又考慮作業執行時間的調度演算法是( )。
A. 優先數調度 B. 先來先服務 C. 短作業優先 D. 最高響應比優先
1.3 一個進程被喚醒意味著( )。A. 進程重新佔有CPU B. 進程變為執行狀態C. PCB移到等待隊列首 D. 進程變為就緒狀態
1.4 在下列事件中不立即進入進程調度程序進行調度的是( )。A. 等待I/O B. 時間片到 C. 進程執行完 D. 輸入新作業
1.5 UNIX系統的進程調度策略是基於( )。A. 時間片調度 B. 先來先調度 C. 短進程優先調度 D. 動態優先調度
1.6 如下所述的工作中,( )不是創建進程所必須做的。
A. 為進程分配CPU B. 為進程分配內存C. 建立一個PCB D. 將PCB鏈入就緒隊列
1.7 進程管理中,在( )情況下,進程的狀態由等待變為就緒。
A. 進程被調度 B. 等待某一事件 C. 時間片用完 D. 等待的事件發生
1.8 當作業調度程序將某作業調入內存並建立一個相應進程時,該進程的狀態處於( )。
A. 等待狀態 B. 後備狀態 C. 就緒狀態 D. 執行狀態
1.9 系統處理某一緊急任務時,應選擇( )。A. 最高響應比優先 B. 優先數調度 C. 短作業優先 D. 先來先服務
1.10 在下列狀態中不是屬於進程狀態的是( )。A. 等待狀態 B. 後備狀態 C. 就緒狀態 D. 執行狀態
1.11 在單處理機上執行多道程序,是在( )進行的。A. 同一時刻 B. 某一時刻 C. 同一時間間隔內 D. 某一時間間隔內
1.12 如下的進程狀態變化,不可能發生的是( )。A. 運行->就緒 B. 運行->等待 C. 等待->就緒 D. 等待->運行
1.13 當作業處於( )狀態時,已處於進程管理之下。A. 等待 B. 後備 C. 執行 D. 完成
1.14 當某進程被調度建立一個相應的進程並分配到必要的資源,該進程的狀態是( )。
A. 等待狀態 B. 後備狀態 C. 就緒狀態 D. 執行狀態
2.填空題
2.1 一個用作業說明書組織的批處理作業,其作業體一般由_ _ 、_ _和_ _組成。
2.2 按作業到達時間的先後進行調度稱為__ 調度演算法,按作業執行時間的長短進行調度稱為__ __調度演算法,既考慮到等待時間又考慮到執行時間的調度演算法稱為__ __調度演算法。
2.3 操作系統內核的主要功能是__ __。
2.4 系統中用以表徵進程的數據結構是_ _,表徵「作業」的數據結構是_ 。
2.5 進程的基本狀態有 。 2.6 進程的基本屬性有__ __。
2.7 並行性是指兩個或多個事件在_ __發生;並發性是指兩個或多個事件在 _ 發生。
2.8 處於執行狀態的進程被高優先順序進程剝奪時,其狀態變為__ __。
2.9 進程映象由_ __、_ __和_ __組成。
2.10 當系統建立一個進程時,系統就為其建立一個_ __,當進程被撤銷時就將其收回。
2.11 在時間片調度演算法中,如果時間片過大,則該調度演算法就會退化為__ _。
3. 判斷題
3.1 程序的並發與系統資源的共享是現代操作系統的兩個基本特性。( )
3.2 當後備狀態的作業被高級調度程序選中進入內存後,其相應的進程處於執行狀態。( )
3.3 一個作業的處理由一個相應的進程來完成。( )
3.4 進程的就緒隊列也是一個在一個時刻只允許一個進程訪問的臨界資源。( )
3.5 進程與程序是一 一對應的。( )
3.6 進程由執行狀態變為等待狀態是因為等待I/O操作完成、等待其他進程發來消息,等待
獲取某個資源的使用等。( ) 3.7 進程由程序、數據和進程式控制制塊組成。( )
3.8 實時系統中進程調度應採用非剝奪式調度方式。( ) 3.9 一個進程只能執行一個程序代碼。( )
3.10 操作系統中,第一個進程是在系統初啟時由初始化程序生成的。( )
3.11 作業調度程序也可以作為一個進程運行。( ) 3.12 進程式控制制塊中的所有信息必須常駐內存. ( )
4.問答題
4.1 進程式控制制塊PCB的作用是什麼?它主要包含哪些內容? 4.2 簡述創建進程的大致過程。
4.3 進程和線程的主要區別是什麼? 4.4 試從動態性、並發性、獨立性三個方面比較程序與進程。
4.5 試說明進程在三個基本狀態之間轉換的典型原因。 4.6 掛起狀態具有那些性質?
4.7 引起進程阻塞或被喚醒的主要事件是什麼?
5. 計算題
5.1 假設在單處理機上中有五個進程P1,P2,P3,P4,P5幾乎同時創建,其運行時間(單位:ms)分別為10,1,2,1,5,其優先數分別為3,5,1,2,4(1為最低優先順序)。系統時間片為1ms。試計算分別採用下列調度演算法時進程的平均周轉時間。(1)HPF(高優先順序調度演算法) (2)RR(時間片輪轉調度演算法),輪轉順序為P1,P2,P3,P4,P5。
5.2設單道批處理系統中有作業J1,J2,J3,J4,其提交時間分別為8.5,8.0,9.0,9.1;其運行時間分別為0.5, 1.0,0.2,0.1。試計算分別採用FCFS、SJF和HRF調度演算法時的平均周轉時間。
第四章 進程同步與通信、進程死鎖
1. 選擇題
1.1 在同步控制中,所謂的臨界區是指( )。A.一個緩沖區 B. 一段共享數據區 C. 一段程序 D. 一個互斥的硬體資源
1.2 對於兩個並發進程,設互斥信號量為mutex,若mutex=0,則表示( )。
A. 沒有進程進入臨界區 B. 一個進程進入臨界區 C. 一個進入另一個等待 D. 二個進程進入臨界區
1.3 在生產者-消費者問題中,設置信號量empty以確保生產者進程能向緩沖區存入信息,設置信號量full以確保消費者進程能從緩沖區中取出信息,當生產者進程向緩沖區存入信息後應執行以下的那一種PV操作( B )。
A. P(empty) B. V(full) C. P(full) D. V(empty)
1.4 若信號量s的初值為3,且有4個進程共享某臨界資源,則s的取值范圍是( )。A. [-3,3] B. [-1,3] C. [0,3] D. [-4,3]
1.5 為了防止死鎖某系統採用一次性分配全部資源的方法,這種方法是破壞了產生死鎖的那一個必要條件( )。
A. 互斥資源 B. 佔有等待 C. 循環等待 D. 非剝奪式分配
1.6 在解決死鎖的方法中屬於死鎖防止的策略是( )。A. 死鎖檢測法 B. 資源分配圖化簡C. 銀行家演算法 D. 資源有序分配法
1.7 Dijkstra提出的銀行家演算法是具有代表性的( )演算法。A. 預防死鎖 B. 避免死鎖 C. 檢測死鎖 D. 解除死鎖
1.8 系統中有3個並發進程都需要同類資源4個,則系統不會發生死鎖的最少資源數是( )A. 8 B. 9 C. 10 D. 11
1.9 某系統中有同類互斥資源m個,可並發執行且共享該類資源的進程有n個,每個進程申請該類資源的最大量為x(n≤x≤m),當不等式( )成立時,系統一定不發生死鎖。A. nx+1≤m B. nx≤m C. m(x-1)+1≤n D. m-nx+(n-1)≥0
2.填空題
2.1 一次僅允許一個進程使用的資源叫 ,訪問這種資源的那段程序稱為 。
2.2 信號量的物理意義是:信號量大於零表示_ _,信號量小於零其絕對值表示__ _。
2.3 有n個進程共享同一臨界資源,若使用信號量機制實現對臨界資源的互斥訪問,則信號量的變化范圍是_ _。
2.4 如果信號量的當前值為-4,則表示系統中在該信號量上有 個等待進程。
2.5 進程間的制約關系可分為兩類:_ __和_ _,其中_ _指合作進程之間具有一定的邏輯關系;_ __指進程間在使用共享資源方面的約束關系。
2.6 原語在執行過程中必須___ _。
2.7 從資源分配的角度看,P操作意味著向系統_ _資源,V操作意味著向系統__ _資源。
2.8 死鎖的必要條件是:__ __、__ _、_ __、_ __。 2.9 死鎖的充要條件是: 。
2.10 一次性分配進程所需的全部資源,這種預防死鎖的方法破壞了產生死鎖四個必要條件中的__ __條件。
2.11 採用 資源循序分配法,可以破壞產生死鎖四個必要條件中的__ __條件。
2.12 產生死鎖的主要原因是___ __、___ __和資源分配不當。
3. 判斷題
3.1 進程的同步與互斥是進程的二種狀態。( ) 3.2 所有進程都掛起時, 系統陷入死鎖. ( )
3.3 如果信號量S的當前值為-5, 則表示系統中共有5個等待進程. ( )
3.4 系統出現死鎖與資源的分配策略有關,與進程執行的相對速度無關。( )
3.5 一旦出現死鎖, 所有進程都不能運行。( ) 3.6 參與死鎖的進程至少有兩個已經佔有資源. ( )
3.7 有m個進程的操作系統出現死鎖時, 死鎖進程的個數為1<k≤m. ( ) 3.8 系統處於不安全狀態不一定是死鎖狀態. ( )
4.簡答題
4.1無忙等待的P、V操作是怎樣定義的?
4.2多個進程對信號量S進行了5次 P操作,2次V操作後,現在信號量的值是 -3,與信號量S相關的處於阻塞狀態的進程有幾個?信號量的初值是多少?
5.綜合題
5.1 假設三個並發進程P,Q,R。P和Q共享緩沖區A(有m個單元),Q和R共享緩沖區B(有n個單元),進程P負責從輸入設備上讀入信息並寫入緩沖區A,進程Q從緩沖區A讀出信息,加工後寫入緩沖區B,進程R負責從緩沖區B讀出信息並列印,寫出模擬P,Q,R三進程的並發程序。
5.2 設某系統中有4個並發進程P1、P2、P3、P4合作完成某一任務,P1執行完後才能執行P2和P3,P2和P3執行完後才能執行P4,試畫出優先圖描述這4個進程間的關系,然後用PV操作實現。
5.3 某高校招生大廳只能容納150人,當少於150人時,學生可以進入大廳辦理入學手續;否則,需在外等候。若將每一個學生作為一個進程,請用P、V操作編程。
5.4兩雙胞胎兄弟共同使用一個銀行帳號,約定每次限存或限取100元。設存錢與取錢兩個進程是並發的,存錢進程與取錢進程的程序如下所示。假如最初帳戶上有200元,哥哥第一次存錢時,弟弟取錢。請問最後帳號money可能出現的值是多少?如何用PV操作實現兩並發進程的正確執行?
int money=200;
// Parbegin和Parend之間的程序並發執行
Parbegin
void Save( ) //存錢
{ int m1;
m1=money;
m1=m1+100;
money=m1;
}
void Take( ) //取錢
{ int m2;
m2=money;
if(m2>=100){
m2=m2-100;
money=m2;
}
}
Parend;
5.5 化簡下列資源分配圖,說明有無進程處於死鎖狀態?
5.6 一個計算機系統中擁有8個USB口,現有P個進程競爭使用,每個進程要求兩台,試問,P的值如何選取時系統中絕對不會出現死鎖?
5.7 某系統有165個存儲單元。設四個進程p1、p2、p3、p4對存儲單元的最大需求數分別為70、35、25、100,在T0時刻,四個進程已分配的存儲單元數分別為25、15、15、25。試用銀行家演算法說明系統在T0時刻是否存在安全序列。
第五章 存儲管理
1. 選擇題
1.1 MS-Dos操作系統的命令處理程序分為常駐、暫駐二部分,其暫駐部分存放在主存中的高地址區域,以便用戶區可向該區域擴展,這種存儲管理技術稱為( )。A. 虛存管理 B. 交換 C. 覆蓋 D. 重定位
1.2 在虛擬存儲管理中,為了避免不必要的信息寫入,在頁表中須設置( )。A. 主存塊號 B. 輔存地址 C. 訪問位 D. 修改位
1.3 在頁面淘汰演算法中,淘汰駐留集中下次訪問離當前訪問的頁面最遠的頁面,這種頁面淘汰演算法稱為( )。
A. OPT演算法 B. FIFO演算法 C. LRU演算法 D. WS演算法
1.4 一個目標程序所限定的存儲范圍稱為該程序的( D )。A. 名空間 B. 地址空間 C. 物理空間 D. 符號空間
1.5 分段管理中,( )。
A.段與段之間必定連續 B. 以段為單位分配,段內連續 C. 段與段之間必定不連續 D. 以段為單位分配,每段等長
1.6 在下列存儲管理方式中,不要求連續空間且不要求作業全部裝入的管理方式是( )。
A. 單道連續 B. 請求式分頁管理 C. 分頁管理 D. 可變式分區管理
1.7 能夠實際增加存儲單元的存儲擴充方式是( )。A. 覆蓋技術 B. 交換技術 C. 物理擴充 D. 虛存技術
1.8 LRU頁面淘汰演算法選擇( )頁面作為淘汰頁面。A. 最先進入 B 訪問次數最少 C. 此前最長時間未訪問 D 此後最長時間未訪問
1.9 在存儲管理中,所謂的虛擬存儲技術是指( )的技術。A. 擴充邏輯空間B. 擴充內存空間C. 擴充外存空間D. 擴充存儲空間
1.10 採用( ),目標程序可以不經任何改動而裝入內存。A. 靜態重定位 B. 動態重定位 C.交換技術 D. 覆蓋技術
1.11 在下列概念中,與虛存有關的概念是( )。A. 最佳適應 B. 覆蓋技術 C. 動態可變 D. 抖動
1.12 要求存儲分配時地址連續的管理方式是( )。A. 分區管理 B. 段式管理 C. 分頁管理 D. 段頁式管理
1.13 將暫不執行的進程映象移到外存,讓出內存空間另作它用的技術是( )。A. 覆蓋技術B. 交換技術C. 物理擴充 D. 虛存技術
1.14 在下列存儲管理方法中,屬於連續分區管理方法的是( )。A. 頁式 B. 段式 C. 虛擬方法 D. 可變分區
1.15 為了使大作業可在小的主存空間中運行,可採用的技術是 A. 頁式管理B. 段式管理C. 請求式分頁管理 D. 可變式分區管理
1.16 程序的( )原理是虛擬存儲管理系統的基礎。A. 動態性 B. 虛擬性 C. 局部性 D. 全局性
2.填空題
2.1 可變分區法管理中, 法採用按起始地址的遞增順序排列空區。 __ _法採用按空塊長度的遞增順序排列空區。
2.2 為了提高內存的使用效率,將暫不執行的進程映象移到外存,當具備執行條件時再將它調入內存,這種存儲管理技術稱為 。
2.3 在程序開始裝入時先裝入部分模塊,當程序運行過程中調用另一模塊時再從外存調入到同一內存區域,這種存儲管理技術稱為_ __。
2.4 在頁式管理系統中,用戶程序中使用的地址稱為__ __,由系統將它轉化為___ _。
2.5. 用戶編程時使用 地址,處理機執行程序時使用 地址。
2.6 分頁管理是把內存分為大小相等的區,每個區稱為__ _,而把程序的邏輯空間分為若干__ _,頁的大小與頁幀的大小相等。
2.7 在分頁存儲管理中,為了加快地址變換速度,頁面大小的值應取_ __。
2.8 在請求式分頁系統中,被調出的頁面又立刻被調入,這種頻繁的調頁現象稱為_ _。
2.9 採用可變式分區法管理主存,存儲空間存在_ ,可用 方法消除。
2.10 分段管理中,若邏輯地址中的段內地址大於段表中該段的段長,則發生_ 。
2.11 段頁式存儲管理中,每道程序都有一個 表和若干個 表。
2.12 頁式管理系統的地址結構由__ __和_ __組成。
2.13 分段管理中的地址映射過程是:首先找到該作業段表的__ ___,然後根據邏輯地址中的_ 去查找段表得到該段的內存開始地址,再與邏輯地址中的__ __相加得到物理地址。
2.14 存儲管理的任務是_ _、_ __、_ _和_ __。
2.15 _ _也稱為__ _不是把一個進程映象的所有頁面一次性全部裝入內存,而只裝入一部分,其餘部分在執行中動態調入。
2.16 在段頁式管理中,邏輯地址由__ __、_ _、__ 三部分組成。
3. 判斷題
3.1 可共享的程序代碼被稱為可重入代碼或純代碼,運行過程中不能被改變。( )
3.2 高速小容量聯想存儲器用於減少地址變換中訪問主存的次數。( )
3.3 在可變式分區存儲管理中,要求用戶的一道作業必須放在一片連續的存儲空間中。( )
3.4 缺頁時,淘汰駐留內存時間最長的頁面是比較合理的。( )
3.5 動態重定位可使目標程序不經任何改動就可裝入內存,且可任意浮動。( )
3.6 虛擬存儲器空間實際上就是輔存空間。( ) 3.7 請求式分頁系統中,不要求進程映象一次全部裝入內存。( )
3.8 簡單分頁管理控制簡單,但易產生系統抖動。( ) 3.9 在分區存儲管理中,一道作業必須存放在連續區域中。( )
3.10 請求式分頁系統用時間換取空間,這是請求式分頁管理方式的缺點。( )
3.11 頁面替換演算法都滿足:『存儲塊數越多,缺頁中斷就越少』的規律。( )
3.12 段式管理中,若邏輯地址中的段內地址小於段表中該段的段長,則發生越界中斷。( )
3.13 頁式存儲管理方式比段式存儲管理方式更易於實現保護和共享。( )
3.14 段式管理以段為單位分配內存,段內連續,但段間不一定連續。( )
3.15 虛存空間定義越大,則相應的效率就越高。( ) 3.16 虛擬存儲系統可以在每一台計算機上實現. ( )
4.簡答題
4.1 交換技術與虛存中使用的調入調出技術有何相同和不同之處? 4.2 什麼是抖動現象?
4.3 段頁式存儲系統中,若不考慮聯想存儲器,為了獲得一條指令或數據,需訪問幾次內存?
4.4何謂虛擬存儲器,並舉一例說明操作系統如何實現虛擬內存的?
5.綜合題
5.1 某虛擬存儲器,用戶編程空間32個頁面,每頁1KB,主存為8KB,假定某時刻用戶的第2,3,5,7頁分配的物理塊號分別為6,7,4,2,問:虛地址0F80(十六進制)所對應的物理地址為多少?邏輯地址的有效位是多少?物理地址需要多少位?
5.2 在某個採用頁式存儲管理的系統中,現有J1、J2和J3共3個作業同駐主存。其中J2有4個頁面,被分別裝入到主存的第3、4、6、8頁幀中。假定頁面大小為1024位元組,
主存容量為10kB位元組。(1) 設每個頁表項只由頁號和頁幀號組成,試寫出J2的頁表。 (2) 當J2在CPU上運行時,執行到其地址空間第500號處遇到一條傳送指令: MOV 2100, 3100
請計算MOV指令中兩個操作數(十進制數)的物理地址?
5.3 某採用頁式虛擬存儲管理的系統,接收了一個共7頁的作業,作業執行時依次訪問的頁號為1、2、3、4、2、1、5、6、2、1、2、3、7、4、3、2、6。設駐留集大小為4,若分別採用FIFO和LRU頁面替換策略,求作業訪問上述頁號產生多少次頁故障?寫出依次產生頁故障後應淘汰的頁。
5.4 在一虛存系統中,採用LRU淘汰演算法,每個進程可有3個頁幀內存空間,每頁可存放200個整數。其中第一頁存放程序,且假定程序已經在內存。下列程序A和程序B用二維整型數組A[100,100]存儲數據,分別就程序A和程序B的執行過程計算缺頁數。
程序A: for(int i=1; i<=100; i++) for(int j=1; j<=100;j++) A[i,j]=0;
程序B: for(int j=1; j<=100; j++) for(int i=1; i<=100;i++) A[i,j]=0;
5.5 現有一個分頁式管理系統,其頁表設置在內存中,若對內存的一次存取需要1.5us,則訪問一次邏輯地址的存取的等效訪問時間時間是多少?現有一聯想存儲器,其平均命中率為80%,當頁表項在聯想存儲器中時其查找時間忽視不計,試問採用聯想存儲器時的存取的等效訪問時間為多少?若命中率為90%,則等效訪問時間又為多少?
⑽ 兩個進程在進行互斥操作中的P操作和V操作的物理意義是什麼
進程管理
l 程序順序執行與並發執行比較
順序執行
並發執行
程序順序執行
間斷執行,多個程序各自在「走走停停」種進行
程序具有封閉性
程序失去封閉性
獨享資源
共享資源
具有可在現性
失去可再現性
有直接和簡接的相互制約
l 多道程序設計概念及其優點
1. 多道程序設計:是在一台計算機上同時運行兩個或更多個程序。
2. 多道程序設計的特點:多個程序共享系統資源、多個程序並發執行
3. 多道程序設計的優點:提高資源利用率、增加系統吞吐量
l 什麼是進程,進程與程序的區別和關系
1. 進程的引入:
由於多道程序的特點,程序具有了並行、制約和動態的特徵,就使得原來程序的概念已難以刻劃和反映系統中的情況了。
2. 進程:程序在並發環境下的執行過程。
3. 進程與程序的主要區別:
1) 程序是永存的,進程是暫時的
2) 程序是靜態的觀念,進程是動態的觀念
3) 進程由三部分組成
程序
數據
進程式控制制塊(描述進程活動情況的數據結構)
4) 進程和程序不是一一對應的
Ø 一個程序可對應多個進程即多個進程可執行同一程序
Ø 一個進程可以執行一個或幾個程序
4. 程序與進程的類比
程 序
進 程
唱歌的曲譜或音樂樂器的樂譜
演出或演奏
劇本
演出
菜譜
烹調
5. 進程特徵:動態性、並發性、調度性、非同步性、結構性
l 進程的基本狀態及其轉換
1. 進程基本狀態:
1) 運行態(Running):進程正在佔用CPU;
2) 就緒態(Ready):進程具備運行條件,但尚未佔用CPU;
3) 阻塞態(Blocked):進程由於等待某一事件不能享用CPU。
2. 進程狀態轉換:
l 進程是由哪些部分組成, 進程式控制制塊的作用
1. 進程的組成:由程序、數據集合和PCB三部分組成。
2. 進程式控制制塊的作用:進程式控制制塊是進程組成中最關鍵的部分。
1) 每個進程有唯一的PCB。
2) 操作系統根據PCB對進程實施控制和管理。
3) 進程的動態、並發等特徵是利用PCB表現出來的。
4) PCB是進程存在的唯一標志。
l PCB組織方式
線性隊列、鏈接表、索引表
l UNIX進程管理命令:
l UNIX進程管理命令:
1. ps--顯示進程狀態
功能:檢查系統中當前存在的進程狀態。
例如
$ ps 顯示與控制中斷相關進程的基本信息
2. sleep--使進程睡眠
功能:使進程暫停執行一段時間,其參數單位是秒。
例如
$ sleep 60 將等待60秒後,才重新回到$提示符
3. &--後台命令符
功能:命令行末尾加上&字元,此命令進程將在後台執行。
例如
$ ls –l/usr& 創建一個顯示目錄命令進程,它在後台執行,即沒有前台進程運行時它才得以運行
4. wait--等待後台進程結束
功能:等待後台進程結束。
例如
$ wait 2080 等待PID為2080的後台進程終止
5. kill--終止進程
功能:終止一個進程執行。
例如 (在超級用戶方式下)
# kill 678 停止PID為678的進程運行
6. nice--設置優先順序
功能:是以不同的優先順序執行一條命令
例如
普通用戶只能降低優先順序:
$ nice –n 10 cc f1.c 執行cc f1.c命令時的nice值為30(即20+10)
超級用戶(root)可以提高進程的優先順序(即:增量值可取不小於-20的負數)
# nice -n -10 vi abc 執行vi abc (編輯命令)的nice值為10(即20-10)
l 進程的同步與互斥
1. 同步:是進程間共同完成一項任務時直接發生相互作用的關系。
2. 互斥:排它性訪問即競爭同一個物理資源而相互制約。
l 什麼是臨界資源、臨界區?
1. 臨界資源:一次僅允許一個進程使用的資源。
2. 臨界區:在每個進程中訪問臨界資源的那段程序。
3. 互斥進入臨界區的准則:
1) 如果有若干進程要求進入空閑的臨界區,一次僅允許一個進程進入。
2) 任何時候,處於臨界區內的進程不可多於一個。如已有進程進入自己的臨界區,則其它所有試圖進入臨界區的進程必須等待。
3) 進入臨界區的進程要在有限時間內退出,以便其它進程能及時進入自己的臨界區。
4) 如果進程不能進入自己的臨界區,則應讓出CPU,避免進程出現「忙等」現象。
l 信號量
1. 信號量定義:
信號量(信號燈)=<信號量的值,指向PCB的指針>
2. 信號量的物理意義:
大於0:表示當前資源可用數量
1) 信號量的值
小於0:其絕對值表示等待使用該資源的進程個數
2) 信號量初值為非負的整數變數,代表資源數。
3) 信號量值可變,但僅能由P、V操作來改變。
l P,V操作原語
1. P操作原語P(S) :
1) P操作一次,S值減1,即S=S-1(請求分配一資源);
2) 如果S≥0,則該進程繼續執行;
如果S<0表示無資源,則該進程的狀態置為阻塞態,把相應的PCB連入該信號量隊列的末尾,並放棄處理機,進行等待(直至另一個進程執行V(S)操作)。
2. V操作原語(荷蘭語的等待)V(S) :
1) V操作一次,S值加1,即S=S+1(釋放一單位量資源);
2) 如果S>0,表示有資源,則該進程繼續執行;
如果S≤0,則釋放信號量隊列上的第一個PCB所對應的進程(阻塞態改為就緒態),執行V操作的進程繼續執行。
l 進程間簡單同步與互斥的實現
1. 用P,V原語實現互斥的一般模型:
設互斥信號量mutex初值為1
2. 用P、V原語操作實現簡單同步的例子
供者和用者對緩沖區的使用關系如下圖:
S1緩沖區是否空(0表示不空,1表示空),初值S1=0;
S2緩沖區是否滿(0表示不滿,1表示滿),初值S2=0;
3. 生產者---消費者問題(OS典型例子)
mutex互斥信號量,初值為1;full滿緩沖區數,初值為0;empty空緩沖區數,初值為N;
4. 應用舉例
[例1] 設系統中只有一台列印機,有三個用戶的程序在執行過程中都要使用列印機輸出計算結果。設每個用戶程序對應一個進程。問:這三個進程間有什麼樣的制約關系?使用P、V操作寫出這些進程使用列印機的演算法。
[解]
由於列印機是一種臨界資源,故三個進程只能互斥使用這台列印機。設三個進程分別為PA、PB和PC,互斥信號量mutex初值為1,執行過程如下:
[例2] 判斷下面的同步問題的演算法是否正確?若有錯,請指出錯誤原因並予以改正。
1) 設A、B兩進程共用一個緩沖區Q,A向Q寫入信息,B則從Q讀出信息,演算法框圖如圖所示。
註:信號量S的初值為0
[解] 該演算法不正確。因為A、B兩個進程共用一個緩沖區Q,如果A先運行,且信息數量足夠多,則緩沖區Q中的信息就會發生後面的沖掉前面的,造成信息丟失,B就不能從Q中讀出完整的信息。改正如下:
A、B兩進程同步使用緩沖區Q,應設定兩個信號量:
empty 表示緩沖區Q為空,初值為1;full表示緩沖區Q已滿,初值為0
演算法框圖如下:
2) 設A、B為兩個並發進程,它們共享一臨界資源。其運行臨界區的演算法框圖如圖所示。
[解] 該演算法不正確。因為A、B兩個進程並發執行,且共享一臨界資源,故A、B應互斥地使用該臨界資源,即在某一時刻只允許一個進程進入該臨界資源,無時序關系。
改正演算法:A、B二進程應互斥進入臨界區,設定一信號量mutex,初值為1。
[例2] 設有一台計算機,有兩個I/O通道,分別接一台卡片輸入機和一台列印機。卡片機把一疊卡片逐一輸入到緩沖區B1中,加工處理後再搬到緩沖區B2中,並在列印機上印出,問:
1) 系統要設幾個進程來完成這個任務?各自的工作是什麼?
2) 這些進程間有什麼樣的相互制約關系?
3) 用P、V操作寫出這些進程的同步演算法。
[解]
1) 系統可設三個進程來完成該任務:Read進程負責從卡片輸入機上讀入卡片信息,輸入到緩沖區B1中;Get進程負責從緩沖區B1中取出信息,進行加工處理,之後將結果送到緩沖區B2中;Print進程負責從緩沖區B2中取出信息,並在列印機上列印輸出。
2) 操作過程:
? Read進程受Get進程的影響,B1緩沖區中放滿信息後Read進程要等待get進程將其中信息全部取走後才能讀入信息;
? Get進程受Read進程和Print進程的約束:B1緩沖區中信息放滿後,Get進程才可從中取走信息,且B2緩沖區信息被取空後Get進程才能將加工結果送入其中;
? Print進程受Get進程的約束,B2緩沖區中信息放滿後Print進程方可取出信息進行列印輸出。
3) 信號量的含義及初值:
? B1full——緩沖區B1滿,初值為0
? B1empty——緩沖區B1空,初值為0
? B2full——緩沖區B2滿,初值為0
? B2empty——緩沖區B2空,初值為0
4) 操作框圖如下:
l 進程簡單通信
分類
低級通信機構
高級通信機構
特點
傳遞信息量非常有限
通信的效率低
方便高效地交換大量信息
應用
互斥和同步機構
共享存儲器
消息傳遞
管道文件