




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一章 操作系統引論1設計現代OS的主要目標是什么?答:(1)有效性 (2)方便性 (3)可擴充性 (4)開放性2OS的作用可表現在哪幾個方面?答:(1)OS作為用戶與計算機硬件系統之間的接口;(2)OS作為計算機系統資源的管理者;(3)OS實現了對計算機資源的抽象。3為什么說OS實現了對計算機資源的抽象?答:OS首先在裸機上覆蓋一層I/O設備管理軟件,實現了對計算機硬件操作的第一層次抽象;在第一層軟件上再覆蓋文件管理軟件,實現了對硬件資源操作的第二層次抽象。OS 通過在計算機硬件上安裝多層系統軟件,增強了系統功能,隱藏了對硬件操作的細節,由它們共同實現了對計算機資源的抽象。4試說明推動多道批
2、處理系統形成和發展的主要動力是什么?答:主要動力來源于四個方面的社會需求與技術發展:(1)不斷提高計算機資源的利用率;(2)方便用戶;(3)器件的不斷更新換代;(4)計算機體系結構的不斷發展。5何謂脫機I/O和聯機I/O?答:脫機I/O 是指事先將裝有用戶程序和數據的紙帶或卡片裝入紙帶輸入機或卡片機,在外圍機的控制下,把紙帶或卡片上的數據或程序輸入到磁帶上。該方式下的輸入輸出由外圍機控制完成,是在脫離主機的情況下進行的。而聯機I/O方式是指程序和數據的輸入輸出都是在主機的直接控制下進行的。7實現分時系統的關鍵問題是什么?應如何解決?答:關鍵問題是當用戶在自己的終端上鍵入命令時,系統應能及時接收
3、并及時處理該命令,在用戶能接受的時延內將結果返回給用戶。解決方法:針對及時接收問題,可以在系統中設置多路卡,使主機能同時接收用戶從各個終端上輸入的數據;為每個終端配置緩沖區,暫存用戶鍵入的命令或數據。針對及時處理問題,應使所有的用戶作業都直接進入內存,并且為每個作業分配一個時間片,允許作業只在自己的時間片內運行,這樣在不長的時間內,能使每個作業都運行一次。8為什么要引入實時OS?答:實時操作系統是指系統能及時響應外部事件的請求,在規定的時間內完成對該事件的處理,并控制所有實時任務協調一致地運行。引入實時OS 是為了滿足應用的需求,更好地滿足實時控制領域和實時信息處理領域的需要。9什么是硬實時任
4、務和軟實時任務?試舉例說明。答:硬實時任務是指系統必須滿足任務對截止時間的要求,否則可能出現難以預測的結果。舉例來說,運載火箭的控制等。軟實時任務是指它的截止時間并不嚴格,偶爾錯過了任務的截止時間,對系統產生的影響不大。舉例:網頁內容的更新、火車售票系統。12試從交互性、及時性以及可靠性方面,將分時系統與實時系統進行比較。答:(1)及時性:實時信息處理系統對實時性的要求與分時系統類似,都是以人所能接受的等待時間來確定;而實時控制系統的及時性,是以控制對象所要求的開始截止時間或完成截止時間來確定的,一般為秒級到毫秒級,甚至有的要低于100微妙。(2)交互性:實時信息處理系統具有交互性,但人與系統
5、的交互僅限于訪問系統中某些特定的專用服務程序。不像分時系統那樣能向終端用戶提供數據和資源共享等服務。(3)可靠性:分時系統也要求系統可靠,但相比之下,實時系統則要求系統具有高度的可靠性。因為任何差錯都可能帶來巨大的經濟損失,甚至是災難性后果,所以在實時系統中,往往都采取了多級容錯措施保障系統的安全性及數據的安全性。13OS有哪幾大特征?其最基本的特征是什么?答:并發性、共享性、虛擬性和異步性四個基本特征;最基本的特征是并發性。14處理機管理有哪些主要功能?它們的主要任務是什么?答:處理機管理的主要功能是:進程管理、進程同步、進程通信和處理機調度;進程管理:為作業創建進程,撤銷已結束進程,控制進
6、程在運行過程中的狀態轉換。進程同步:為多個進程(含線程)的運行進行協調。通信:用來實現在相互合作的進程之間的信息交換。處理機調度:(1)作業調度。從后備隊里按照一定的算法,選出若干個作業,為他們分配運行所需的資源(首選是分配內存)。(2)進程調度:從進程的就緒隊列中,按照一定算法選出一個進程,把處理機分配給它,并設置運行現場,使進程投入執行。15內存管理有哪些主要功能?他們的主要任務是什么?答:內存管理的主要功能有:內存分配、內存保護、地址映射和內存擴充。內存分配:為每道程序分配內存。內存保護:確保每道用戶程序都只在自己的內存空間運行,彼此互不干擾。地址映射:將地址空間的邏輯地址轉換為內存空間
7、與對應的物理地址。內存擴充:用于實現請求調用功能,置換功能等。16設備管理有哪些主要功能?其主要任務是什么?答:主要功能有: 緩沖管理、設備分配和設備處理以及虛擬設備等。主要任務: 完成用戶提出的I/O 請求,為用戶分配I/O 設備;提高CPU 和I/O 設備的利用率;提高I/O速度;以及方便用戶使用I/O設備.17文件管理有哪些主要功能?其主要任務是什么?答:文件管理主要功能:文件存儲空間的管理、目錄管理、文件的讀/寫管理和保護。文件管理的主要任務:管理用戶文件和系統文件,方便用戶使用,保證文件安全性。18是什么原因使操作系統具有異步性特征?答:操作系統的異步性體現在三個方面:一是進程的異步
8、性,進程以人們不可預知的速度向前推進,二是程序的不可再現性,即程序執行的結果有時是不確定的,三是程序執行時間的不可預知性,即每個程序何時執行,執行順序以及完成時間是不確定的。20在微內核OS中,為什么要采用客戶/服務器模式?答:C/S 模式具有獨特的優點:數據的分布處理和存儲。便于集中管理。靈活性和可擴充性。易于改編應用軟件。21試描述什么是微內核OS。答:(1)足夠小的內核;(2)基于客戶/服務器模式;(3)應用機制與策略分離原理;(4)采用面向對象技術。23何謂微內核技術?在微內核中通常提供了哪些功能?答:把操作系統中更多的成分和功能放到更高的層次(即用戶模式)中去運行,而留下一個盡量小的
9、內核,用它來完成操作系統最基本的核心功能,稱這種技術為微內核技術。在微內核中通常提供了進程(線程)管理、低級存儲器管理、中斷和陷入處理等功能。24微內核操作系統具有哪些優點?它為何能有這些優點?答:(1)提高了系統的可擴展性;(2)增強了系統的可靠性;(3)可移植性;(4)提供了對分布式系統的支持(5)融入了面向對象技術第二章 進程管理1. 什么是前趨圖?為什么要引入前趨圖?答:前趨圖(Precedence Graph)是一個有向無循環圖,記為DAG(Directed AcyclicGraph),用于描述進程之間執行的前后關系。2. 畫出下面四條語句的前趨圖:S1=a:=x+y; S2=b:=
10、z+1; S3=c:=a b; S4=w:=c+1;答:其前趨圖為:3. 什么程序并發執行會產生間斷性特征?答:程序在并發執行時,由于它們共享系統資源,為完成同一項任務需要相互合作,致使這些并發執行的進程之間,形成了相互制約關系,從而使得進程在執行期間出現間斷性。4程序并發執行時為什么會失去封閉性和可再現性?答:程序并發執行時,多個程序共享系統中的各種資源,因而這些資源的狀態由多個程序改變,致使程序運行失去了封閉性,也會導致其失去可再現性。5在操作系統中為什么要引入進程概念?它會產生什么樣的影響?答:為了使程序在多道程序環境下能并發執行,并對并發執行的程序加以控制和描述,在操作系統中引入了進程
11、概念。影響: 使程序的并發執行得以實行。6試從動態性,并發性和獨立性上比較進程和程序?答:(1)動態性是進程最基本的特性,表現為由創建而產生,由調度而執行,因得不到資源而暫停執行,由撤銷而消亡。進程有一定的生命期,而程序只是一組有序的指令集合,是靜態實體。(2)并發性是進程的重要特征,同時也是OS 的重要特征。引入進程的目的正是為了使其程序能和其它進程的程序并發執行,而程序是不能并發執行的。(3)獨立性是指進程實體是一個能獨立運行的基本單位,也是系統中獨立獲得資源和獨立調度的基本單位。對于未建立任何進程的程序,不能作為獨立單位參加運行。7試說明PCB 的作用,為什么說PCB 是進程存在的惟一標
12、志?答:PCB 是進程實體的一部分,是操作系統中最重要的記錄型數據結構。作用是使一個在多道程序環境下不能獨立運行的程序,成為一個能獨立運行的基本單位,成為能與其它進程并發執行的進程。OS是根據PCB對并發執行的進程進行控制和管理的。8試說明進程在三個基本狀態之間轉換的典型原因。答: (1)就緒狀態執行狀態:進程分配到CPU資源;(2)執行狀態就緒狀態:時間片用完;(3)執行狀態阻塞狀態:I/O請求;(4)阻塞狀態就緒狀態:I/O完成.9為什么要引入掛起狀態?該狀態有哪些性質?答:引入掛起狀態處于五種不同的需要: 終端用戶需要,父進程需要,操作系統需要,對換需要和負荷調節需要。處于掛起狀態的進程
13、不能接收處理機調度。10在進行進程切換時,所要保存的處理機狀態信息有哪些?答:進行進程切換時,所要保存的處理機狀態信息有:(1)進程當前暫存信息;(2)下一指令地址信息;(3)進程狀態信息;(4)過程和系統調用參數及調用地址信息。11試說明引起進程創建的主要事件。答:引起進程創建的主要事件有:用戶登錄、作業調度、提供服務、應用請求。12試說明引起進程被撤銷的主要事件。答:引起進程被撤銷的主要事件有:正常結束、異常結束(越界錯誤、保護錯、非法指令、特權指令錯、運行超時、等待超時、算術運算錯、I/O 故障)、外界干預(操作員或操作系統干預、父進程請求、父進程終止)。13在創建一個進程時所要完成的主
14、要工作是什么?答:(1)OS 發現請求創建新進程事件后,調用進程創建原語Creat();(2)申請空白PCB;(3)為新進程分配資源;(4)初始化進程控制塊;(5)將新進程插入就緒隊列.14在撤銷一個進程時所要完成的主要工作是什么?答:(1)根據被終止進程標識符,從PCB 集中檢索出進程PCB,讀出該進程狀態。(2)若被終止進程處于執行狀態,立即終止該進程的執行,置調度標志真,指示該進程被終止后重新調度。(3)若該進程還有子進程,應將所有子孫進程終止,以防它們成為不可控進程。(4)將被終止進程擁有的全部資源,歸還給父進程,或歸還給系統。(5)將被終止進程PCB 從所在隊列或列表中移出,等待其它
15、程序搜集信息。15試說明引起進程阻塞或被喚醒的主要事件是什么?答:a. 請求系統服務;b. 啟動某種操作;c. 新數據尚未到達;d. 無新工作可做.17為什么進程在進入臨界區之前應先執行“進入區”代碼?而在退出前又要執行“退出區”代碼?答:為了實現多個進程對臨界資源的互斥訪問,必須在臨界區前面增加一段用于檢查欲訪問的臨界資源是否正被訪問的代碼,如果未被訪問,該進程便可進入臨界區對資源進行訪問,并設置正被訪問標志,如果正被訪問,則本進程不能進入臨界區,實現這一功能的代碼為進入區代碼;在退出臨界區后,必須執行退出區代碼,用于恢復未被訪問標志,使其它進程能再訪問此臨界資源。18. 同步機構應遵循哪些
16、基本準則?為什么?答:同步機構應遵循的基本準則是:空閑讓進、忙則等待、有限等待、讓權等待原因:為實現進程互斥進入自己的臨界區。19. 試從物理概念上說明記錄型信號量wait 和signal。答:wait(S):當S.value0 時,表示目前系統中這類資源還有可用的。執行一次wait 操作,意味著進程請求一個單位的該類資源,使系統中可供分配的該類資源減少一個,因此描述為S.value:=S.value-1;當S.value1) then block(W, L)unlock(W): W:=W-1;if(W0) then wakeup(W, L)例子:Var W:semaphore:=0;begi
17、nrepeatlock(W);critical sectionunlock(W);remainder sectionuntil false;end27試利用記錄型信號量寫出一個不會出現死鎖的哲學家進餐問題的算法.答:Var chopstick:array0,4 of semaphore;所有信號量均被初始化為1,第i 位哲學家的活動可描述為:RepeatWait(chopsticki);Wait(. chopstick(i+1) mod 5);Ea.t ;Signal(chopsticki);Signal(chopstick(i+1) mod 5)Ea.t ;Think;Until false
18、;28在測量控制系統中的數據采集任務,把所采集的數據送一單緩沖區;計算任務從該單緩沖中取出數據進行計算.試寫出利用信號量機制實現兩者共享單緩沖的同步算法。答:a. Var mutex, empty, full: semaphore:=1, 1, 0;gather:beginrepeatgather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false;endcompute:beginrepeatwait(full);wait(mutex);nextc:=buffer;
19、signal(mutex);signal(empty);compute data in nextc;until false;endb. Var empty, full: semaphore:=1, 0;gather:beginrepeatgather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;endcompute:beginrepeatwait(full);nextc:=buffer;signal(empty);compute data in nextc;until false;end29畫圖說明管程由哪幾
20、部分組成,為什么要引入條件變量?答:管程由四部分組成:管程的名稱;局部于管程內部的共享數據結構說明;對該數據結構進行操作的一組過程;對局部于管程內部的共享數據設置初始值的語句;當一個進程調用了管程,在管程中時被阻塞或掛起,直到阻塞或掛起的原因解除,而在此期間,如果該進程不釋放管程,則其它進程無法進入管程,被迫長時間地等待。為了解決這個問題,引入了條件變量condition。30如何利用管程來解決生產者與消費者問題?答:首先建立一個管程,命名為ProclucerConsumer,包括兩個過程:(1)Put(item)過程。生產者利用該過程將自己生產的產品放到緩沖池,用整型變量count 表示在緩
21、沖池中已有的產品數目,當countn 時,表示緩沖池已滿,生產者須等待。(2)get(item)過程。消費者利用該過程從緩沖池中取出一個產品,當count0時,表示緩沖池中已無可取的產品,消費者應等待。PC 管程可描述如下:type producer-consumer =monitorVar in,out,count:integer;buffer:array0,n-1of item;notfull,notempty:condition;procedure entry dot(item)beginif count=n then not full.wait;buffer(in):=nextp;in
22、:=(in+1)mod n;count:=count+1;if notempty.queue then notempty.signal;endprocedure entry get(item)beginif count=0 then not full.wait;nextc:=buffer(out);out:=(out+1)mod n;count:=count-1;if notfull.quene then notfull.signal;endbegin in:=out:=0;count:=0end在利用管程解決生產者一消費者問題時,其中的生產者和消費者可描述為:producer: beginp
23、epeatproduce an inem in nestpPC.put(item);until false;endconsumer: beginrepeatPC.get(item);consume the item in enxtc;until false;end31什么是AND信號量?試利用AND信號量寫出生產者一消費者問題的解法。答:為解決并行帶來的死鎖問題,在wait 操作中引入AND 條件,其基本思想是將進程在整個運行過程中所需要的所有臨界資源,一次性地全部分配給進程,用完后一次性釋放。解決生產者消費者問題可描述如下:var mutex,empty,full: semaphore:=1
24、,n,0;buffer: array0,.,n-1 of item;in,out: integer:=0,0;beginparbeginproducer: beginrepeatproduce an item in nextp;wait(empty);wait(s1,s2,s3,.,sn); /s1,s2,.,sn為執行生產者進程除empty 外其余的條件wait(mutex);buffer(in):=nextp;in:=(in+1) mod n;signal(mutex);signal(full);signal(s1,s2,s3,.,sn);until false;endconsumer:
25、beginrepeatwait(full);wait(k1,k2,k3,.,kn); /k1,k2,.,kn 為執行消費者進程除full 外其余的條件wait(mutex);nextc:=buffer(out);out:=(out+1) mod n;signal(mutex);signal(empty);signal(k1,k2,k3,.,kn);consume the item in nextc;until false;endparendend32什么是信號量集?試利用信號量集寫出讀者一寫者問題的解法。答:對AND信號量加以擴充,形成的信號量集合的讀寫機制。解法:Var RN integer
26、;L,mx: semaphore:=RN,1;beginparbeginreader:beginrepeatSwait(L,1,1);Swait(mx,1,1);perform read operation;Ssignal(L,1);until falseendwriter:beginrepeatSwait(mx,1,1;L,RN,0);perform write operation;Ssignal(mx,1);until falseendparendend33試比較進程間的低級與高級通信工具。答:用戶用低級通信工具實現進程通信很不方便,效率低,通信對用戶不透明,所有操作都必須由程序員來實現,
27、而高級通信工具彌補了這些缺陷,用戶直接利用操作系統提供的一組通信命令,高效地傳送大量的數據。34當前有哪幾種高級通信機制?答:共享存儲器系統、消息傳遞系統以及管道通信系統。35消息隊列通信機制有哪幾方面的功能?答:(1)構成消息(2)發送消息(3)接收梢息(4)互斥與同步。36為什么要在OS 中引入線程?答:在操作系統中引入線程,則是為了減少程序在并發執行時所付出的時空開銷,使OS具有更好的并發性,提高CPU的利用率。進程是分配資源的基本單位,而線程則是系統調度的基本單位。37試說明線程具有哪些屬性?答:(1)輕型實體(2)獨立調度和分派的基本單位(3)可并發執行(4)共享進程資源。38. 試
28、從調度性,并發性,擁有資源及系統開銷方面對進程和線程進行比較。答:(1)調度性。線程在OS 中作為調度和分派的基本單位,進程只作為資源擁有的基本單位。(2)并發性。進程可以并發執行,一個進程的多個線程也可并發執行。(3)擁有資源。進程始終是擁有資源的基本單位,線程只擁有運行時必不可少的資源,本身基本不擁有系統資源,但可以訪問隸屬進程的資源。(4)系統開銷。操作系統在創建、撤消和切換進程時付出的開銷顯著大于線程。39. 為了在多線程OS 中實現進程之間的同步與通信,通常提供了哪幾種同步機制?答:同步功能可以控制程序流并訪問共享數據,從而并發執行多個線程。共有四種同步模型:互斥鎖、讀寫鎖、條件變量
29、和信號。40用于實現線程同步的私用信號量和公用信號量之間有何差別?答:(1)私用信號量。當某線程需利用信號量實現同一進程中各線程之間的同步時,可調用創建信號量的命令來創建一個私用信號量,其數據結構存放在應用程序的地址空間中。(2)公用信號量。公用信號量是為實現不同進程間或不同進程中各線程之間的同步而設置的。其數據結構是存放在受保護的系統存儲區中,由OS為它分配空間并進行管理。41何謂用戶級線程和內核支持線程?答:(1)用戶級線程:僅存在于用戶空間中的線程,無須內核支持。這種線程的創建、撤銷、線程間的同步與通信等功能,都無需利用系統調用實現。用戶級線程的切換通常發生在一個應用進程的諸多線程之間,
30、同樣無需內核支持。(2)內核支持線程:在內核支持下運行的線程。無論是用戶進程中的線程,還是系統線程中的線程,其創建、撤銷和切換等都是依靠內核,在內核空間中實現的。在內核空間里還為每個內核支持線程設置了線程控制塊,內核根據該控制塊感知某線程的存在并實施控制。42試說明用戶級線程的實現方法。答:用戶級線程是在用戶空間中的實現的,運行在“運行時系統”與“內核控制線程”的中間系統上。運行時系統用于管理和控制線程的函數的集合。內核控制線程或輕型進程LWP可通過系統調用獲得內核提供服務,利用LWP進程作為中間系統。43試說明內核支持線程的實現方法。答:系統在創建新進程時,分配一個任務數據區PTDA,其中包
31、括若干個線程控制塊TCB空間。創建一個線程分配一個TCB,有關信息寫入TCB,為之分配必要的資源。當PTDA中的TCB 用完,而進程又有新線程時,只要所創建的線程數目未超過系統允許值,系統可在為之分配新的TCB;在撤銷一個線程時,也應回收線程的所有資源和TCB。第三章 處理機調度與死鎖1高級調度與低級調度的主要任務是什么?為什么要引入中級調度?答:高級調度的主要任務是根據某種算法,把外存上處于后備隊列中的那些作業調入內存。低級調度是保存處理機的現場信息,按某種算法先取進程,再把處理器分配給進程。引入中級調度的主要目的是為了提高內存利用率和系統吞吐量。使那些暫時不能運行的進程不再占用內存資源,將
32、它們調至外存等待,把進程狀態改為就緒駐外存狀態或掛起狀態。2何謂作業、作業步和作業流?答:作業包含通常的程序和數據,還配有作業說明書。系統根據該說明書對程序的運行進行控制。批處理系統中是以作業為基本單位從外存調入內存。作業步是指每個作業運行期間都必須經過若干個相對獨立相互關聯的順序加工的步驟。作業流是指若干個作業進入系統后依次存放在外存上形成的輸入作業流;在操作系統的控制下,逐個作業進程處理,于是形成了處理作業流。3在什么情況下需要使用作業控制塊JCB?其中包含了哪些內容?答:每當作業進入系統時,系統便為每個作業建立一個作業控制塊JCB,根據作業類型將它插入到相應的后備隊列中。JCB 包含的內
33、容通常有:1) 作業標識2)用戶名稱3)用戶賬戶4)作業類型(CPU繁忙型、I/O 芳名型、批量型、終端型)5)作業狀態6)調度信息(優先級、作業已運行)7)資源要求8)進入系統時間9) 開始處理時間10) 作業完成時間11) 作業退出時間12) 資源使用情況等4在作業調度中應如何確定接納多少個作業和接納哪些作業?答:作業調度每次接納進入內存的作業數,取決于多道程序度。應將哪些作業從外存調入內存,取決于采用的調度算法。最簡單的是先來服務調度算法,較常用的是短作業優先調度算法和基于作業優先級的調度算法。5試說明低級調度的主要功能。答:(1)保存處理機的現場信息(2)按某種算法選取進程(3)把處理
34、機分配給進程。6在搶占調度方式中,搶占的原則是什么?答:搶占的原則有:時間片原則、優先權原則、短作業優先權原則等。7在選擇調度方式和調度算法時,應遵循的準則是什么?答:(1)面向用戶的準則:周轉時間短、響應時間快、截止時間的保證、優先權準則。(2)面向系統的準則:系統吞吐量高、處理機利用率好、各類資源的平衡利用。8在批處理系統、分時系統和實時系統中,各采用哪幾種進程(作業)調度算法?答:批處理系統的調度算法:短作業優先、優先權、高響應比優先、多級反饋隊列調度算法。分時系統的調度算法:時間片輪轉法。實時系統的調度算法:最早截止時間優先即EDF、最低松弛度優先即LLF算法。9何謂靜態和動態優先級?
35、確定靜態優先級的依據是什么?答:靜態優先級是指在創建進程時確定且在進程的整個運行期間保持不變的優先級。動態優先級是指在創建進程時賦予的優先權,可以隨進程推進或隨其等待時間增加而改變的優先級,可以獲得更好的調度性能。確定進程優先級的依據:進程類型、進程對資源的需求和用戶要求。10試比較FCFS和SPF兩種進程調度算法。答:相同點:兩種調度算法都可以用于作業調度和進程調度。不同點:FCFS調度算法每次都從后備隊列中選擇一個或多個最先進入該隊列的作業,將它們調入內存、分配資源、創建進程、插入到就緒隊列。該算法有利于長作業/進程,不利于短作業/進程。SPF算法每次調度都從后備隊列中選擇一個或若干個估計
36、運行時間最短的作業,調入內存中運行。該算法有利于短作業/進程,不利于長作業/進程。11在時間片輪轉法中,應如何確定時間片的大小?答:時間片應略大于一次典型的交互需要的時間。一般應考慮三個因素:系統對相應時間的要求、就緒隊列中進程的數目和系統的處理能力。12通過一個例子來說明通常的優先級調度算法不能適用于實時系統?答:實時系統的調度算法很多,主要是基于任務的開始截止時間和任務緊急/松弛程度的任務優先級調度算法,通常的優先級調度算法不能滿足實時系統的調度實時性要求而不適用。13為什么說多級反饋隊列調度算法能較好地滿足各方面用戶的需求?答:(1)終端型作業用戶提交的作業大多屬于較小的交互型作業,系統
37、只要使這些作業在第一隊列規定的時間片內完成,終端作業用戶就會感到滿足。(2)短批處理作業用戶,開始時像終端型作業一樣,如果在第一隊列中執行一個時間片段即可完成,便可獲得與終端作業一樣的響應時間。對于稍長作業,通常只需在第二和第三隊列各執行一時間片即可完成,其周轉時間仍然較短。(3)長批處理作業,它將依次在第1,2,n個隊列中運行,然后再按輪轉方式運行,用戶不必擔心其作業長期得不到處理。所以,多級反饋隊列調度算法能滿足多用戶需求。14為什么在實時系統中,要求系統(尤其是CPU)具有較強的處理能力?答:實時系統中通常有著多個實時任務。若處理機的處理能力不夠強,有可能因為處理機忙不過來而使某些實時任
38、務得不到及時處理,導致發生難以預料的后果。15按照調度方式可將實時調度算法分為哪幾種?答:可分為非搶占式和搶占式兩種算法。而非搶占式算法又分為非搶占式輪轉和優先調度算法;搶占式調度算法又分為基于時鐘中斷的搶占式優先權和立即搶占式優先權調度算法。16什么是最早截止時間優先調度算法?舉例說明。答:根據任務的開始截止時間確定的任務優先級調度算法。截止時間越早則優先級越高。該算法要求在系統中保持一個實時任務就緒隊列,該隊列按各任務截止時間的先后排序。舉例:非搶占式調度方式用于非周期實時任務。圖3-9 是將該算法用于非搶占調度方式之例。該例中具有四個非周期任務,它們先后到達。系統首先調度任務1執行,在任
39、務1執行期間,任務2、3又先后到達。由于任務3的開始截止時間早于任務2,故系統在任務1后將調度任務3執行。在此期間又到達作業4,其開始截止時間仍是早于任務2的,故在任務3執行完后,系統又調度任務4執行,最后才調度任務2執行。圖3-9 EDF算法用于非搶占調度的調度方式17什么是最低松弛度優先調度算法?舉例說明之。答:該算法是根據任務緊急(或松弛)的程度,來確定任務的優先級。任務的緊急程度愈高,為該任務所賦予的優先級就愈高,以使之優先執行。例如,一個任務在200 ms 時必須完成,而它本身所需的運行時間就有100 ms,因此,調度程序必須在100 ms 之前調度執行,該任務的緊急程度(松弛程度)
40、為100 ms。又如,另一任務在400 ms 時必須完成,它本身需要運行 150 ms,則其松弛程度為 250 ms。18何謂死鎖?產生死鎖的原因和必要條件是什么?答:死鎖是指多個進程在運行過程中因爭奪資源而造成的一種僵局,當進程處于這種僵持狀態時,若無外力作用,它們都將無法再向前推進。產生死鎖的原因為競爭資源和進程間推進順序非法。其必要條件是:互斥條件、請求和保持條件、不剝奪條件、環路等待條件。19在解決死鎖問題的幾個方法中,哪種方法最易于實現?哪種方法使資源利用率最高?答:解決死鎖的四種方法即預防、避免、檢測和解除死鎖中,預防死鎖最容易實現;避免死鎖使資源的利用率最高。20請詳細說明可通過
41、哪些途徑預防死鎖。答:(1)擯棄“請求和保持”條件,就是如果系統有足夠資源,便一次性把進程需要的所有資源分配給它;(2)擯棄“不剝奪”條件,就是已經擁有資源的進程,當它提出新資源請求而不能立即滿足時,必須釋放它已保持的所有資源,待以后需要時再重新申請;(3)擯棄“環路等待”條件,就是將所有資源按類型排序標號,所有進程對資源的請求必須嚴格按序號遞增的次序提出。21在銀行家算法的例子中,如果P0發出請求向量由Request(0,2,0)改為Request(0,1,0),問系統可否將資源分配給它?(此答案有點問題,需重新考慮)答:(1)可以。銀行家算法各種資源數量分別為10、5、7,在T0時刻的資源
42、分配如圖所示:(2)具體分析如下: Requst0(0,1,0)=Need0(7,4,3); Requst0(0,1,0)=Available(2,3,0);系統先假定可為P0分配資源,并修改Available0,Allocation0和Need0向量,由此形成的資源變化情況如下圖所示:(3)P0請求資源:P0發出請求向量Requst0(0,1,0),系統按銀行家算法進行檢查: Requst0(0,1,0)=Need0(7,4,3); Requst0(0,1,0)=Available(2,3,0); 系統暫時先假定可為P0分配資源,并修改有關數據,如下圖所示綜上所述系統可以將資源分配給它。22
43、銀行家算法中出現以下資源分配,試問(1)該狀態是否安全?(2)若進程P2 提出Request(1,2,2,2)后,系統能否將資源分配給它?試問: (1)該狀態是否安全?(2)若進程P2提出請求Request(1,2,2,2)后,系統能否將資源分配給它?(參考答案有錯)答: (1)安全,因為存在安全序列P0,P3,P4,P1,P2(2)系統能分配資源,分析如下。 Request(1,2,2,2) = Need2(2,3,5,6); Request(1,2,2,2) = Available2(1,3,5,4)改成Available2(1,6,2,2); 系統先假定可為P2分配資源,并修改Avail
44、able2,Allocation2和Need2向量,由此形成的資源變化情況如下圖所示: 再利用安全性算法檢查此時系統是否安全。如下圖由此進行的安全性檢查得知,可以找到一個安全序列P2,P0,P1,P3,P4。第四章 存儲器管理1為什么要配置層次式存儲器?答:設置多個存儲器可以使存儲器兩端的硬件能并行工作;采用多級存儲系統,特別是Cache 技術,是減輕存儲器帶寬對系統性能影響的最佳結構方案;在微處理機內部設置各種緩沖存儲器,減輕對存儲器存取的壓力。增加CPU中寄存器數量大大緩解對存儲器壓力。2可采用哪幾種方式將程序裝入內存?它們分別適用于何種場合?答: (1)絕對裝入方式,只適用于單道程序環境
45、。(2)可重定位裝入方式,適用于多道程序環境。(3)動態運行時裝入方式,用于多道程序環境;不允許程序運行時在內存中移位置。3何謂靜態鏈接?何謂裝入時動態鏈接和運行時的動態鏈接?P120答:靜態鏈接是指在程序運行前,先將各目標模塊及它們所需的庫函數,鏈接成一個完整的裝配模塊,以后不再拆開的鏈接方式。裝入時動態鏈接是指將用戶源程序編譯后得到的一組目標模塊,在裝入內存時采用邊裝入邊鏈接的鏈接方式。運行時動態鏈接是指對某些目標模塊的鏈接,是在程序執行中需要該目標模塊時,才對它進行的鏈接。4在進行程序鏈接時,應完成哪些工作?答:由鏈接程序Linker將編譯后形成的一組目標模塊,以及它們需要的庫函數鏈接在
46、一起,形成一個完整的裝入模塊Load Module。主要工作是修改程序內的相對地址和修改目標程序中的外部調用標號。5在動態分區分配方式中,應如何將各空閑分區鏈接成空閑分區鏈?答:在每個分區的起始部分,設置一些控制分區分配的信息,以及用于鏈接各分區所用的前向指針;在分區尾部設置一個后向指針,通過前后向鏈接指針,將所有空閑分區鏈成一個雙向鏈。當分區分配出去后,把狀態位由“0”改為“1”。6為什么要引入動態重定位?如何實現?答:在程序執行過程中,每當訪問指令或數據時,將要訪問的程序或數據的邏輯地址轉換成物理地址,引入了動態重定位;具體實現方法是在系統中增加一個重定位寄存器,用來裝入程序在內存中的起始
47、地址,程序執行時,真正訪問的內存地址是相對地址與重定位寄存器中的地址相加之和,從而實現動態重定位。7在采用首次適應算法回收內存時,可能出現哪幾種情況?應怎樣處理這些情況?答:在采用首次適應算法回收內存時可能出現4種情況:(1)回收區前鄰空閑區。將回收區與前鄰空閑區合并,將前鄰空閑區大小修改為兩者之和。(2)回收區后鄰空閑區。將兩區合并,改后鄰空閑區始址為回收區始址,大小為兩者之和。(3)回收區前后均鄰空閑區。將三個分區合并,修改前鄰空閑區大小為三者之和。(4)回收區前后均不鄰空閑區。為回收區設置空閑區表項,填入回收區始址和大小并插入空閑區隊列。9分區存儲管理中常用那些分配策略?比較它們的優缺點
48、。答:分區存儲管理中的常用分配策略:首次適應算法、循環首次適應算法、最佳適應算法、最壞適應算法。首次適應算法優缺點:保留了高址部分的大空閑區,有利于后來的大型作業分配;低址部分不斷被劃分,留下許多難以利用的小空閑區,每次查找都從低址開始增加了系統開銷。循環首次適應算法優缺點:內存空閑分區分布均勻,減少了查找系統開銷;缺乏大空閑分區,導致不能裝入大型作業。最佳適應算法優缺點:每次分配給文件的都是最適合該文件大小的分區,內存中留下許多難以利用的小空閑區。最壞適應算法優缺點:剩下空閑區不太小,產生碎片幾率小,對中小型文件分配分區操作有利;存儲器中缺乏大空閑區,對大型文件分區分配不利。10在系統中引入
49、對換后可帶來哪些好處?答:交換技術將暫不需要的作業移到外存,讓出內存空間以調入其它作業,交換到外存的作業也可以被再次調入。目的是解決內存緊張問題,帶來的好處是進一步提高了內存利用率和系統吞吐量。11為實現對換,系統應具備哪幾方面的功能?答:系統應具備三方面功能:對換空間管理,進程換出,進程換入。12在以進程為單位進行對換時,每次是否都將整個進程換出?為什么?答:在以進程為單位進行對換時,并非每次都將整個進程換出。這是因為:(1)從結構上講,進程由程序段、數據段和進程控制塊組成的,其中進程控制塊總有部分或全部常駐內存,不被換出。(2)程序段和數據段可能正被若干進程共享,此時它們也不能換出。13為實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年初級銀行從業資格之初級個人理財考前沖刺模擬試卷B卷含答案
- 社團活動精細化管理計劃
- 2025年公寓的標準租賃合同
- 2025合同管理的核心原則與實踐合同法
- 2025租房合同范本「正式版」
- 學習方式變革與推廣計劃
- 機車雙機重聯連接總風管得原因
- 貨車內循環和外循環的詳細說明
- 上門喂養寵物協議合同樣本
- 出國干活簽合同標準文本
- 山東省臨沂市河東區2023-2024學年七年級下學期期中測試歷史試題
- 江蘇省昆山、太倉、常熟、張家港市2023-2024學年下學期七年級數學期中試題
- MOOC 敦煌文學藝術-浙江師范大學 中國大學慕課答案
- MOOC 大地測量學基礎-南京信息工程大學 中國大學慕課答案
- 運輸安保工作方案
- 生物地球化學性疾病試題
- 休閑與旅游農業課件
- 產品驗證報告
- 電影項目融資計劃書
- 感覺障礙護理課件
- 中醫禁食療法專家共識
評論
0/150
提交評論