




已閱讀5頁,還剩11頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章 計算機系統概述1.1 列出并簡要地定義計算機的四個主要組成部分。主存儲器,存儲數據和程序;算術邏輯單元,能處理二進制數據;控制單元,解讀存儲器中的指令并且使他們得到執行;輸入/輸出設備,由控制單元管理。1.2 定義處理器寄存器的兩種主要類別。用戶可見寄存器:優先使用這些寄存器,可以使機器語言或者匯編語言的程序員減少對主存儲器的訪問次數。對高級語言而言,由優化編譯器負責決定把哪些變量應該分配給主存儲器。一些高級語言,如C語言,允許程序言建議編譯器把哪些變量保存在寄存器中。控制和狀態寄存器:用以控制處理器的操作,且主要被具有特權的操作系統例程使用,以控制程序的執行。1.3 一般而言,一條機器指令能指定的四種不同操作是什么?處理器寄存器:數據可以從處理器傳送到存儲器,或者從存儲器傳送到處理器。處理器I/O:通過處理器和I/O模塊間的數據傳送,數據可以輸出到外部設備,或者從外部設備輸入數據。數據處理:處理器可以執行很多關于數據的算術操作或邏輯操作。控制:某些指令可以改變執行順序。1.4 什么是中斷?中斷:其他模塊(I/O,存儲器)中斷處理器正常處理過程的機制。1.5 多中斷的處理方式是什么?處理多中斷有兩種方法。第一種方法是當正在處理一個中斷時,禁止再發生中斷。第二種方法是定義中斷優先級,允許高優先級的中斷打斷低優先級的中斷處理器的運行。1.6 內存層次的各個元素間的特征是什么?存儲器的三個重要特性是:價格,容量和訪問時間。1.7 什么是高速緩沖存儲器?高速緩沖存儲器是比主存小而快的存儲器,用以協調主存跟處理器,作為最近儲存地址的緩沖區。1.8 列出并簡要地定義I/O操作的三種技術。可編程I/O:當處理器正在執行程序并遇到與I/O相關的指令時,它給相應的I/O模塊發布命令(用以執行這個指令);在進一步的動作之前,處理器處于繁忙的等待中,直到該操作已經完成。中斷驅動I/O:當處理器正在執行程序并遇到與I/O相關的指令時,它給相應的I/O模塊發布命令,并繼續執行后續指令,直到后者完成,它將被I/O模塊中斷。如果它對于進程等待I/O的完成來說是不必要的,可能是由于后續指令處于相同的進程中。否則,此進程在中斷之前將被掛起,其他工作將被執行。直接存儲訪問:DMA模塊控制主存與I/O模塊間的數據交換。處理器向DMA模塊發送一個傳送數據塊的請求,(處理器)只有當整個數據塊傳送完畢后才會被中斷。1.9 空間局部性和臨時局部性間的區別是什么?空間局部性是指最近被訪問的元素的周圍的元素在不久的將來可能會被訪問。臨時局部性(即時間局部性)是指最近被訪問的元素在不久的將來可能會被再次訪問。1.10 開發空間局部性和時間局部性的策略是什么?空間局部性的開發是利用更大的緩沖塊并且在存儲器控制邏輯中加入預處理機制。時間局部性的開發是利用在高速緩沖存儲器中保留最近使用的指令及數據,并且定義緩沖存儲的優先級。第2章 操作系統概述2.1 操作系統設計的三個目標是什么?方便:操作系統使計算機更易于使用。有效:操作系統允許以更有效的方式使用計算機系統資源。擴展的能力:在構造操作系統時,應該允許在不妨礙服務的前提下有效地開發、測試和引進新的系統功能。2.2 什么是操作系統的內核?內核是操作系統最常使用的部分,它存在于主存中并在特權模式下運行,響應進程調度和設備中斷。2.3 什么是多道程序設計?多道程序設計是一種處理操作,它在兩個或多個程序間交錯處理每個進程。2.4 什么是進程?進程是一個正在執行的程序,它被操作系統控制和選擇。2.5 操作系統是怎么使用進程上下文的?執行上下文又稱為進程狀態,是操作系統用來管理和控制所需的內部數據。這種內部信息和進程是分開的,因為操作系統信息不允許被進程直接訪問。上下文包括操作系統管理進程以及處理器正確執行進程所需要的所有信息,包括各種處理器寄存器的內容,如程序計數器和數據寄存器。它還包括操作系統使用的信息,如進程優先級以及進程是否在等待特定I/O事件的完成。2.6 列出并簡要介紹操作系統的五種典型存儲管理職責。進程隔離:操作系統必須保護獨立的進程,防止互相干涉數據和存儲空間。自動分配和管理:程序應該根據需要在存儲層次間動態的分配,分配對程序員是透明的。因此,程序員無需關心與存儲限制有關的問題,操作系統有效的實現分配問題,可以僅在需要時才給作業分配存儲空間。2.7 解釋實地址和虛地址的區別。虛地址指的是存在于虛擬內存中的地址,它有時候在磁盤中有時候在主存中。實地址指的是主存中的地址。2.8 描述輪循調度技術。輪循調度是一種調度算法,所有的進程存放在一個環形隊列中并按固定循序依次激活。因為等待一些事件(例如:等待一個子進程或一個I/O操作)的發生而不能被處理的進程將控制權交給調度器。2.9 解釋單體內核和微內核的區別。單體內核是一個提供操作系統應該提供的功能的大內核,包括調度、文件系統、網絡、設備驅動程序、存儲管理等。內核的所有功能成分都能夠訪問它的內部數據結構和程序。典型情況下,這個大內核是作為一個進程實現的,所有元素都共享相同的地址空間。微內核是一個小的有特權的操作系統內核,只提供包括進程調度、內存管理、和進程間通信等基本功能,要依靠其他進程擔當起和操作系統內核聯系作用。2.10 什么是多線程?多線程技術是指把執行一個應用程序的進程劃分成可以同時運行的多個線程。第3章 進程描述和控制3.1什么是指令跟蹤?指令跟蹤是指為該進程而執行的指令序列。3.2通常那些事件會導致創建一個進程?新的批處理作業;交互登錄;操作系統因為提供一項服務而創建;由現有的進程派生。(表3.1)3.3對于圖3.6中的進程模型,請簡單定義每個狀態。運行態:該進程正在執行。就緒態:進程做好了準備,只要有機會就開始執行。阻塞態:進程在某些事件發生前不能執行,如I/O操作完成。新建態:剛剛創建的進程,操作系統還沒有把它加入到可執行進程組中。退出態:操作系統從可執行進程組中釋放出的進程,或者是因為它自身停止了,或者是因為某種原因被取消。3.4搶占一個進程是什么意思?處理器為了執行另外的進程而終止當前正在執行的進程,這就叫進程搶占。3.5什么是交換,其目的是什么?交換是指把主存中某個進程的一部分或者全部內容轉移到磁盤。當主存中沒有處于就緒態的進程時,操作系統就把一個阻塞的進程換出到磁盤中的掛起隊列,從而使另一個進程可以進入主存執行。3.6為什么圖3.9(b)中有兩個阻塞態?有兩個獨立的概念:進程是否在等待一個事件(阻塞與否)以及進程是否已經被換出主存(掛起與否)。為適應這種2*2的組合,需要兩個阻塞態和兩個掛起態。3.7列出掛起態進程的4個特點。1.進程不能立即執行。2.進程可能是或不是正在等待一個事件。如果是,阻塞條件不依賴于掛起條件,阻塞事件的發生不會使進程立即被執行。3.為了阻止進程執行,可以通過代理把這個進程置于掛起態,代理可以是進程自己,也可以是父進程或操作系統。4.除非代理顯式地命令系統進行狀態轉換,否則進程無法從這個狀態中轉移。3.8對于哪類實體,操作系統為了管理它而維護其信息表?內存、I/O、文件和進程。3.9列出進程控制塊中的三類信息。進程標識,處理器狀態信息,進程控制信息。3.10為什么需要兩種模式(用戶模式和內核模式)?用戶模式下可以執行的指令和訪問的內存區域都受到限制。這是為了防止操作系統受到破壞或者修改。而在內核模式下則沒有這些限制,從而使它能夠完成其功能。3.11操作系統創建一個新進程所執行的步驟是什么?1.給新進程分配一個唯一的進程標識號。2.給進程分配空間。3.初始化進程控制塊。4.設置正確的連接。5.創建或擴充其他的數據結構。3.12中斷和陷阱有什么區別?中斷與當前正在運行的進程無關的某些類型的外部事件相關,如完成一次I/O操作。陷阱與當前正在運行的進程所產生的錯誤或異常條件相關,如非法的文件訪問。3.13舉出中斷的三個例子。時鐘終端,I/O終端,內存失效。3.14模式切換和進程切換有什么區別?發生模式切換可以不改變當前正處于運行態的進程的狀態。發生進程切換時,一個正在執行的進程被中斷,操作系統指定另一個進程為運行態。進程切換需要保存更多的狀態信息。第4章 線程、對稱多處理和微內核4.1表3.5列出了在一個沒有線程的操作系統中進程控制塊的基本元素。對于多線程系統,這些元素中那些可能屬于線程控制塊,那些可能屬于進程控制塊?這對于不同的系統來說通常是不同的,但一般來說,進程是資源的所有者,而每個線程都有它自己的執行狀態。關于表3.5中的每一項的一些結論如下:進程標識:進程必須被標識,而進程中的每一個線程也必須有自己的ID。處理器狀態信息:這些信息通常只與進程有關。進程控制信息:調度和狀態信息主要處于線程級;數據結構在兩級都可出現;進程間通信和線程間通信都可以得到支持;特權在兩級都可以存在;存儲管理通常在進程級;資源信息通常也在進程級。4.2請列出線程間的模式切換比進程間的模式切換開銷更低的原因。包含的狀態信息更少。4.3在進程概念中體現出的兩個獨立且無關的特點是什么?資源所有權和調度/執行。4.4給出在單用戶多處理系統中使用線程的四個例子。前臺和后臺操作,異步處理,加速執行和模塊化程序結構。4.5哪些資源通常被一個進程中的所有線程共享?例如地址空間,文件資源,執行特權等。4.6列出用戶級線程優于內核級線程的三個優點。1.由于所有線程管理數據結構都在一個進程的用戶地址空間中,線程切換不需要內核模式的特權,因此,進程不需要為了線程管理而切換到內核模式,這節省了在兩種模式間進行切換(從用戶模式到內核模式;從內核模式返回用戶模式)的開銷。2.調用可以是應用程序專用的。一個應用程序可能傾向于簡單的輪詢調度算法,而另一個應用程序可能傾向于基于優先級的調度算法。調度算法可以去適應應用程序,而不會擾亂底層的操作系統調度器。3.用戶級線程可以在任何操作系統中運行,不需要對底層內核進行修改以支持用戶級線程。線程庫是一組供所有應用程序共享的應用級軟件包。4.7列出用戶級線程相對于內核級線程的兩個缺點。1.在典型的操作系統中,許多系統調用都會引起阻塞。因此,當用戶級線程執行一個系統調用時,不僅這個線程會被阻塞,進程中的所有線程都會被阻塞。2.在純粹的用戶級進程策略中,一個多線程應用程序不能利用多處理技術。內核一次只把一個進程分配給一個處理器,因此一次進程中只能有一個線程可以執行。4.8定義jacketing。Jacketing通過調用一個應用級的I/O例程來檢查I/O設備的狀態,從而將一個產生阻塞的系統調用轉化為一個不產生阻塞的系統調用。4.9簡單定義圖4.8中列出的各種結構。SIMD:一個機器指令控制許多處理部件步伐一致地同時執行。每個處理部件都有一個相關的數據存儲空間,因此,每條指令由不同的處理器在不同的數據集合上執行。MIMD:一組處理器同時在不同的數據集上執行不同的指令序列。主/從:操作系統內核總是在某個特定的處理器上運行,其他處理器只用于執行用戶程序,還可能執行一些操作系統實用程序。SMP:內核可以在任何處理器上執行,并且通常是每個處理器從可用的進程或線程池中進行各自的調度工作。集群:每個處理器都有一個專用存儲器,而且每個處理部件都是一個獨立的計算機。4.10 列出SMP操作系統的主要設計問題。同時的并發進程或線程,調度,同步,存儲器管理,可靠性和容錯。4.11 給出在典型的單體結構操作系統中可以找到且可能是微內核操作系統外部子系統中的服務和功能。設備驅動程序,文件系統,虛存管理程序,窗口系統和安全服務。4.12 列出并簡單解釋微內核設計相對于整體式設計的七個優點。一致接口:進程不需要區分是內核級服務還是用戶級服務,因為所有服務都是通過消息傳遞提供的。可擴展性:允許增加新的服務以及在同一個功能區域中提供多個服務。靈活性:不僅可以在操作系統中增加新功能,還可以刪減現有的功能,以產生一個更小、更有效的實現。可移植性:所有或者至少大部分處理器專用代碼都在微內核中。因此,當把系統移植到一個處理器上時只需要很少的變化,而且易于進行邏輯上的歸類。可靠性:小的微內核可以被嚴格地測試,它使用少量的應用程序編程接口(API),這就為內核外部的操作系統服務產生高質量的代碼提供了機會。分布式系統支持:微內核通信中消息的方向性決定了它對分布式系統的支持。面向對象操作系統環境:在微內核設計和操作系統模塊化擴展的開發中都可以借助面向對象方法的原理。4.13 解釋微內核操作系統可能存在的性能缺點。通過微內核構造和發送信息、接受應答并解碼所花費的時間比一次系統調用的時間要多。4.14 列出即使在最小的微內核操作系統中也可以找到的三個功能。低級存儲器管理,進程間通信(IPC)以及I/O和中斷管理。4.15 在微內核操作系統中,進程或線程間通信的基本形式是什么?消息。第5章 并發性:互斥和同步5.1 列出與并發相關的四種設計問題進程間的交互,共享資源之間的競爭,多個進程的同步問題,對進程的處理器時間分配問題5.2 列出并發的三種上下文多個應用程序,結構化應用程序,操作系統結構5.3 執行并發進程的最基本要求是什么?加強互斥的能力5.4 列出進程間的三種互相知道的程度,并簡單地給出各自的定義。進程間互相不知道對方:這是一些獨立的進程,他們不會一起工作。進程間間接知道對方:這些進程并不需要知道對方的進程ID號,但他們共享訪問某些對象,如一個I/O緩沖區。進程間直接知道對方:這些進程可以通過進程ID號互相通信,用于合作完成某些活動。5.5 競爭進程和合作進程進程間有什么區別。競爭進程需要同時訪問相同的資源,像磁盤,文件或打印機。合作進程要么共享訪問一個共有的資源,像一個內存訪問區,要么就與其他進程相互通信,在一些應用程序或活動上進行合作。5.6 列出與競爭進程相關的三種控制問題,并簡單地給出各自的定義。互斥:競爭進程僅可以訪問一個臨界資源(一次僅有一個進程可以訪問臨界資源),并發機制必須滿足一次只有一個進程可以訪問臨界資源這個規則。死鎖:如果競爭進程需要唯一的訪問多于一個資源,并且當一個進程控制著一個進程,且在等待另一個進程,死鎖可能發生。饑餓:一組進程的一個可能會無限期地拒絕進入到一個需要資源,因為其他成員組成壟斷這個資源。5.7 列出對互斥的要求。1.必須強制實施互斥:在具有關于相同資源或共享對象的臨界區的所有進程中,一次只允許一個進程進入臨界區。2.一個在臨界區停止的進程必須不干涉其他進程。3.絕不允許出現一個需要訪問臨界區的進程被無限延遲的情況,即不會餓死或饑餓。4.當沒有進程在臨界區中時,任何需要進入臨界區的進程必須能夠立即進入。5.對相關進程的速度和處理器的數目沒有任何要求和限制。6.一個進程駐留在臨界區中的時間是有限的。5.8 在信號量上可以執行什么操作。1.一個信號量可以初始化成非負數。2.wait操作使信號量減1,如果值為負數,那么進程執行wait就會受阻。3signal操作使信號量增加1,如果小于或等于0,則被wait操作阻塞的進程被解除阻塞。5.9 二元信號量與一般信號量有什么區別。二元信號量只能取0或1,而一般信號量可以取任何整數。5.10 強信號量與弱信號量有什么區別。強信號量要求在信號量上等待的進程按照先進先出的規則從隊列中移出。弱信號量沒有此規則。5.11 .什么是管程。管程是由一個或多個過程,一個初始化序列和局部數據組成的軟件模塊。5.12 對于消息,有阻塞和無阻塞有什么區別?發送者和接收者任一方阻塞則消息傳遞需要等待,都無阻塞則不需等待。5.13 通常與讀者-寫者問題相關聯的有哪些條件?1.任意多的讀進程可以同時讀這個文件2.一次只有一個寫進程可以往文件中寫3.如果一個寫進程正在往文件中寫時,則禁止任何讀進程讀文件。第6章 并發性:死鎖和饑餓6.1 給出可重用資源和可消費資源的例子。可重用資源:處理器,/通道,主存和輔存,設備以及諸如文件,數據庫和信號量之類的數據結構。可消費資源:中斷,信號,消息和/緩沖區中的信息。6.2 可能發生死鎖所必須的三個條件是什么?互斥,占有且等待,非搶占。6.3 產生死鎖的第個條件是什么?循環等待。6.4 如何防止占有且等待的條件?可以要求進程一次性地請求所有需要的資源,并且阻塞這個資源直到所有請求都同時滿足。6.5 給出防止無搶占條件的兩種方法。第一種,如果占有某些資源的一個進程進行進一步資源請求被拒絕,則該進程必須釋放它最初占用的資源,如果有必要,可再次請求這些資源和另外的資源。第二種,如果一個進程請求當前被另一個進程占有的一個資源,則操作系統可以搶占另一個進程,要求它釋放資源。6.6 如何防止循環等待條件?可以通過定義資源類型的線性順序來預防。如果一個進程已經分配到了類型的資源,那么它接下來請求的資源只能是那些排在類型之后的資源類型。6.7 死鎖避免,檢測和預防之間的區別是什么?死鎖預防是通過間接地限制三種死鎖必要條件的至少一個或是直接地限制循環等待的發生來避免死鎖的出現。死鎖避免允許可能出現的必要條件發生,但是采取措施確保不會出現死鎖的情況。而死鎖檢測允許資源的自由分配,采取周期性的措施來發現并處理可能存在的死鎖情況。第7章 內存管理7.1 內存管理需要滿足哪些需求?重定位、保護、共享、邏輯組織和物理組織。7.2 為什么需要重定位進程的能力?通常情況下,并不能事先知道在某個程序執行期間會有哪個程序駐留在主存中。此外還希望通過提供一個巨大的就緒進程池,能夠把活動進程換入和換出主存,以便使處理器的利用率最大化。在這兩種情況下,進程在主存中的確切位置是不可預知的。7.3 為什么不可能在編譯時實施內存保護?由于程序在主存中的位置是不可預測的,因而在編譯時不可能檢查絕對地址來確保保護。并且,大多數程序設計語言允許在運行時進行地址的動態計算(例如,通過計算數組下標或數據結構中的指針)。因此,必須在運行時檢查進程產生的所有存儲器訪問,以便確保它們只訪問了分配給該進程的存儲空間。7.4 允許兩個或多個進程訪問進程的某一特定區域的原因是什么?如果許多進程正在執行同一程序,則允許每個進程訪問該程序的同一個副本要比讓每個進程有自己單獨的副本更有優勢。同樣,合作完成同一任務的進程可能需要共享訪問同一個數據結構。7.5 在固定分區方案中,使用大小不等的分區有什么好處?通過使用大小不等的固定分區:1.可以在提供很多分區的同時提供一到兩個非常大的分區。大的分區允許將很大的進程全部載入主存中。2.由于小的進程可以被放入小的分區中,從而減少了內部碎片。7.6 內部碎片和外部碎片有什么區別?內部碎片是指由于被裝入的數據塊小于分區大小而導致的分區內部所浪費的空間。外部碎片是與動態分區相關的一種現象,它是指在所有分區外的存儲空間會變成越來越多的碎片的。7.7 邏輯地址、相對地址和物理地址間有什么區別?邏輯地址是指與當前數據在內存中的物理分配地址無關的訪問地址,在執行對內存的訪問之前必須把它轉化成物理地址。相對地址是邏輯地址的一個特例,是相對于某些已知點(通常是程序的開始處)的存儲單元。物理地址或絕對地址是數據在主存中的實際位置。7.8 頁和幀之間有什么區別?在分頁系統中,進程和磁盤上存儲的數據被分成大小固定相等的小塊,叫做頁。而主存被分成了同樣大小的小塊,叫做幀。一頁恰好可以被裝入一幀中。7.9 頁和段之間有什么區別?分段是細分用戶程序的另一種可選方案。采用分段技術,程序和相關的數據被劃分成一組段。盡管有一個最大段長度,但并不需要所有的程序的所有段的長度都相等。第8章 虛擬內存8.1 簡單分頁與虛擬分頁有什么區別?簡單分頁:一個程序中的所有的頁都必須在主存儲器中程序才能正常運行,除非使用覆蓋技術。擬內存分頁:不是程序的每一頁都必須在主存儲器的幀中來使程序運行,頁在需要的時候進行讀取。8.2 解釋什么是抖動。虛擬內存結構的震動現象,在這個過程中處理器大部分的時間都用于交換塊,而不是執行指令。8.3 為什么在使用虛擬內存時,局部性原理是至關重要的?可以根據局部性原理設計算法來避免抖動。總的來說,局部性原理允許算法預測哪一個當前頁在最近的未來是最少可能被使用的,并由此就決定候選的替換出的頁。8.4 哪些元素是頁表項中可以找到的元素?簡單定義每個元素。幀號:用來表示主存中的頁來按順序排列的號碼。存在位(P):表示這一頁是否當前在主存中。修改位(M):表示這一頁在放進主存后是否被修改過。8.5 轉移后備緩沖器的目的是什么?轉移后備緩沖器(TLB)是一個包含最近經常被使用過的頁表項的高速緩沖存儲器。它的目的是為了減少從磁盤中恢復一個頁表項所需的時間。8.6 簡單定義兩種可供選擇的頁讀取策略。在請求式分頁中,只有當訪問到某頁中的一個單元時才將該頁取入主存。在預約式分頁中,讀取的并不是頁錯誤請求的頁。8.7 駐留集管理和頁替換策略有什么區別?駐留集管理主要關注以下兩個問題:(1)給每個活動進程分配多少個頁幀。(2)被考慮替換的頁集是僅限在引起頁錯誤的進程的駐留集中選擇還是在主存中所有的頁幀中選擇。頁替換策略關注的是以下問題:在考慮的頁集中,哪一個特殊的頁應該被選擇替換。8.8 FIFO和Clock頁替換算法有什么區別?時鐘算法與FIFO算法很接近,除了在時鐘算法中,任何一個使用位為一的頁被忽略。8.9 頁緩沖實現的是什么?(1)被替換出駐留集的頁不久又被訪問到時,仍在主存中,減少了一次磁盤讀寫。(2)被修改的頁以簇的方式被寫回,而不是一次只寫一個,這就大大減少了I/O操作的數目,從而減少了磁盤訪問的時間。8.10 為什么不可能把全局替換策略和固定分配策略組合起來?固定分配策略要求分配給一個進程的幀的數目是確定的,當一個進程中取入一個新的頁時,這個進程駐留頁集中的一頁必須被替換出來(保持分配的幀的數目不變),這是一種局部替換策略。8.11 駐留集和工作集有什么區別?一個進程的駐留集是指當前在主存中的這個進程的頁的個數。一個進程的工作集是指這個進程最近被使用過的頁的個數。8.12 請求式清除和預約式清除有什么區別?在請求式清除中,只有當一頁被選擇用于替換時才被寫回輔存;在預約式清除中,將這些被修改的多個頁在需要用到它們所占據的頁幀之前成批的寫回輔存。第9章 單處理器調度9.1 簡要描述三種類型的處理器調度。長程調度:決定加入到待執行的進程池中;中程調度:決定加入到部分或全部在主存中的進程集合中;短程調度:決定哪一個可用進程將被處理器執行。9.2 在交互式操作系統中,通常最重要的性能要求是什么?反應時間9.3 周轉時間和響應時間有什么區別?周轉時間是一個要求花費在系統上的包括等待時間和服務時間的總的時間。響應時間對一個交互進程,這是指從提交一個請求到開始接受響應之間的時間間隔。通常進程在處理該請求的同時,就開始給用戶產生一些輸出。9.4 對進程調度,較小的優先級值表示較低的優先級還是較高的優先級?在UNIX和許多其他系統中,大的優先級值表示低優先級進程。許多系統,比如WINDOWS,剛好相反,大數值表示高優先級。9.5 搶占式和非搶占式調度有什么區別?非搶占:在這種情況下,一旦進程處于運行態,他就不斷執行直到終止,或者為等待I/O或請求某些操作系統服務而阻塞自己。搶占:當前正在運行的進程可能被操作系統中斷,并轉移到就緒態。關于搶占的決策可能是在一個新進程到達時,或者在一個中斷發生后把一個被阻塞的進程置為就緒態時,或者基于周期性的時間中斷。9.6 簡單定義FCFS調度。當每個進程就緒后,它加入就緒隊列。當當前正在運行的進程停止執行時,選擇在就緒隊列中存在時間最長的進程運行。9.7 簡單定義輪轉調度以一個周期性間隔產生時鐘中斷,當中斷產生時,當前正在運行的的進程被置于就緒隊列中,然后基于FCFS策略選擇下一個就緒作業運行。9.8 簡單定義最短進程優先調度。這是一個非搶占的策略,其原則是下一次選擇所需處理時間最短的進程。9.9 簡單定義最短剩余時間調度。最短剩余時間是針對SPN增加了搶占機制的版本。在這種情況下,調度器總是選擇預期剩余時間最短的進程。當一個新進程加入到就緒隊列時,他可能比當前運行的進程具有更短的剩余時間,因此,只有新進程就緒,調度器就可能搶占當前正在運行的進程。9.10 簡單定義最高響應比優先調度。在當前進程完成或被阻塞時,選擇R值最大的就緒進程。R=(w+s)/s,w等待處理器的時間,s期待的服務時間。9.1 1簡單定義反饋調度。調度基于搶占原則并且使用動態優先級機制。當一個進程第一次進入系統時,它被放置在RQ0。當它第一次被搶占后并返回就緒狀態時,它被防止在RQ1。在隨后的時間里,每當它被搶占時,它被降級到下一個低優先級隊列中。一個短進程很快會執行完,不會在就緒隊列中降很多級。一個長進程會逐級下降。因此,新到的進程和短進程優先于老進程和長進程。在每個隊列中,除了在優先級最低的隊列中,都使用簡單的FCFS機制。一旦一個進程處于優先級最低的隊列中,它就不可能再降低,但是會重復地返回該隊列,直到運行結束。第10章 多處理器和實時調度10.1 列出并簡單定義五種不同級別的同步粒度。細粒度:單指令流中固有的并行;中等粒度:在一個單獨應用中的并行處理或多任務處理;粗粒度:在多道程序環境中并發進程的多處理;非常粗粒度:在網絡節點上進行分布處理,以形成一個計算環境;無約束粒度:多個無關進程。10.2 列出并簡單定義線程調度的四種技術。加載共享:進程不是分配到一個特定的處理器,而是維護一個就緒進程的全局隊列,每個處理器只要空閑就從隊列中選擇一個線程。這里使用術語加載共享來區分這種策略和加載平衡方案,加載平衡是基于一種比較永久的分配方案分配工作的。組調度:一組相關的線程基于一對一的原則,同時調度到一組處理器上運行。專用處理器分配:在程序執行過程中,每個程序被分配給一組處理器,處理器的數目與程序中的線程的數目相等。當程序終止是,處理器返回到總的處理器池中,可供分配給另一個程序。動態調度:在執行期間,進程中線程的數目可以改變。10.3 列出并簡單定義三種版本的負載分配。先來先服務(FCFS):當一個作業到達時,它的所有線程都被連續地放置在共享隊列末尾。當一個處理器變得空閑時,它選擇下一個就緒線程執行,直到完成或阻塞。最少線程數優先:共享就緒隊列被組織成一個優先級隊列,如果一個作業包含的未調度線程數目最少,則給它指定最高的優先級。具有同等優先級的隊列按作業到達的順序排隊。和FCFS一樣,被調度的線程一直運行到完成或阻塞。可搶占的最少線程數優先:最高的的優先級給予包含的未被調度的線程數目最少的作業。剛到達的作業如果包含的線程數目少于正在執行的作業,它將搶占屬于這個被調度作業的線程。10. 硬實時任務和軟實時任務有什么區別?硬實時任務指必須滿足最后期限的限制,否則會給系統帶來不可接受的破壞或者致命的錯誤。軟實時任務也有一個與之相關聯的最后期限,并希望能滿足這個期限的要求,但是這并不是強制的,即使超過了最后期限,調度和完成這個任務仍然是有意義的。10.5 周期性實時任務和非周期性實時任務有什么區別?非周期任務有一個必須結束或開始的最后期限,或者有一個關于開始時間和結束時間的約束。而對于周期任務,這個要求描述成“每隔周期T一次”或“每隔T個單位”。10.6 列出并簡單定義對實時操作系統的五方面的要求。可確定性:在某中程度上是指它可以按固定的、預先確定的時間或時間間隔執行操作。可響應性:它關注的是在知道中斷之后操作系統未中斷提供服務的時間用戶控制:用戶應該能夠區分硬實時任務和軟實時任務,并且在每一類中確定相對優先級。實時系統還允許用戶指定一些特性,例如使用分頁還是進程交換、哪一個進程必須常駐主存、使用何種磁盤算法、不同的優先級的進程各有哪些權限等。可靠性 :可靠性必須提供這樣一種方式,以繼續滿足實時最后期限。故障弱化操作:故障弱化操作指系統在故障時盡可能多的保存其性能和數據的能力。10.7 列出并簡單定義四類實時調度算法。靜態表驅動法:執行關于可行調度的靜態分析。分析的結果是一個調度,它用于確定在運行時一個任務何時必須開始執行。靜態優先級驅動搶占法:同樣,執行一個靜態分析,但是沒有制定調度,而且用于給任務指定優先級,使得可以使用傳統的優先級驅動的搶占式調度器。基于動態規劃調度法:在運行是動態地確定可行性,而不是在開始運行前離線的確定(靜態)。一個到達的任務,只有當能夠滿足它的時間約束時,才可以被接受執行。可行性分析的結果是一個調度或規劃,可用于確定何時分派這個任務。動態盡力調度法:不執行可行性分析。系統試圖滿足所有的最后期限,并終止任何已經開始運行但錯過最后期限的進程。10.8 關于一個任務的哪些信息在實時調度是非常有用?就緒時間:任務開始準備執行的時間。對于重復或周期性的任務,這實際上是一個事先知道的時間序列。而對于非周期性的任務,或者也事先知道這個時間,或者操作系統僅僅知道什么時候任務真正就緒。啟動最后期限:任務必須開始的時間。完成最后期限:任務必須完成的時間。典型的實時應用程序或者有啟動最后期限,或者有完成最后期限,但不會兩者都存在。處理時間:從執行任務直到完成任務所需的時間。在某些情況下,可以提供這個時間,而在另外一些情況下,操作系統度量指數平均值。其他調度系統沒有使用這個信息。資源需求:任務在執行過程中所需的資源集合(處理器以外的資源)。優先級:度量任務的相對重要性。硬實時任務可能具有絕對的優先級,因為如果錯過最后期限則會導致系統失敗。如果系統無論如何也要繼續運行,則硬實時任務和軟實時任務可以被指定相關的優先級,以指導調度器。子任務結構:一個任務可以分解成一個必須執行的子任務和一個可選的子任務。只有必須執行的子任務擁有硬最后期限。第11章 I/O管理和磁盤調度11.1 列出并簡單定義執行I/O的三種技術。可編程I/O:處理器代表進程給I/O模塊發送給一個I/O命令,該進程進入忙等待,等待操作的完成,然后才可以繼續執行。中斷驅動I/O:處理器代表進程向I/O模塊發送一個I/O命令,然后繼續執行后續指令,當I/O模塊完成工作后,處理器被該模塊中斷。如果該進程不需要等待I/O完成,則后續指令可以仍是該進程中的指令,否則,該進程在這個中斷上被掛起,處理器執行其他工作。直接存儲器訪問(DMA):一個DMA模塊控制主存和I/O模塊之間的數據交換。為傳送一塊數據,處理器給DMA模塊發送請求,只有當整個數據塊傳送完成后,處理器才被中斷。11.2 邏輯I/O和設備I/O有什么區別?邏輯I/O:邏輯I/O模塊把設備當作一個邏輯資源來處理,它并不關心實際控制設備的細節。邏輯I/O模塊代表用戶進程管理的一般I/O功能,允許它們根據設備標識符以及諸如打開、關閉、讀、寫之類的簡單命令與設備打交道。設備I/O:請求的操作和數據(緩沖的數據、記錄等)被轉換成適當的I/O指令序列、通道命令和控制器命令。可以使用緩沖技術,以提高使用率。11.3 面向塊的設備和面向流的設備有什么區別?請舉例說明。面向塊的設備將信息保存在塊中,塊的大小通常是固定的,傳輸過程中一次傳送一塊。通常可以通過塊號訪問數據。磁盤和磁帶都是面向塊的設備。面向流的設備以字節流的方式輸入輸出數據,其末使用塊結構。終端、打印機通信端口、鼠標和其他指示設備以及大多數非輔存的其他設備,都屬于面向流的設備。11.4 為什么希望用雙緩沖區而不是單緩沖區來提高I/O的性能?雙緩沖允許兩個操作并行處理,而不是依次處理。典型的,在一個進程往一個緩沖區中傳送數據(從這個緩沖區中取數據)的同時,操作系統正在清空(或者填充)另一個緩沖區。11.5 在磁盤讀或寫時有哪些延遲因素?尋道時間,旋轉延遲,傳送時間11.6 簡單定義圖11.7中描述的磁盤調度策略。FIFO:按照先來先服務的順序處理隊列中的項目。SSTF:選擇使磁頭臂從當前位置開始移動最少的磁盤I/O請求。SCAN:磁頭臂僅僅沿一個方向移動,并在途中滿足所有未完成的請求,直到它到達這個方向上最后一個磁道,或者在這個方向上沒有其他請求為止。接著反轉服務方向,沿相反方向掃描,同樣按順序完成所有請求。C-SCAN:類似于SCAN,11.7 簡單定義圖7層RAID。0:非冗余1:被鏡像;每個磁盤都有一個包含相同數據的鏡像磁盤。2:通過漢明碼實現冗余;對每個數據磁盤中的相應都計算一個錯誤校正碼,并且這個碼位保存在多個奇偶校驗磁盤中相應的文件。3:交錯位奇偶校驗;類似于第二層,不同之處在于RAID3為所有數據磁盤中同一位置的位的集合計算一個簡單的奇偶校驗位,而不是錯誤校正碼。4:交錯塊分布奇偶校驗;對每個數據磁盤中相應的條帶計算一個逐位奇偶。5:交錯塊分布奇偶校驗;類似于第四層,但把奇偶校驗條帶分布在所有磁盤中。6:交錯塊雙重分布奇偶校驗;兩種不同的奇偶校驗計算保存在不同磁盤的不同塊中。11.8 典型的磁盤扇區大小是多少?512比特第12章 文件管理12.1 域和記錄有什么不同?域(field)是基本數據單位。一個域包含一個值。記錄(record)是一組相關的域的集合 ,它可以看做是應用程序的一個單元。12.2 文件和數據庫有什么不同?文件(file)是一組相似記錄的集合,它被用戶和應用程序看做是一個實體,并可以通過名字訪問。數據庫(database)是一組相關的數據集合,它的本質特征是數據元素間存在著明確的關系,并且可供不同的應用程序使用。12.3 什么是文件管理系統?文件管理系統是一組系統軟件,為使用文件的用戶和應用程序提供服務。12.4 選擇文件組織時的重要原則是什么?訪問快速,易于修改,節約存儲空間,維護簡單,可靠性。12.5 列出并簡單定義五種文件組織。堆是最簡單的文件組織形式。數據按它們到達的順序被采集,每個記錄由一串數據組成。順序文件是最常用的文件組織形式。在這類文件中,每個記錄都使用一種固定的格式。所有記錄都具有相同的長度,并且由相同數目、長度固定的域按特定的順序組成。由于每個域的長度和位置已知,因此只需要保存各個域的值,每個域的域名和長度是該文件結構的屬性。索引順序文件保留了順序文件的關鍵特征:記錄按照關鍵域的順序組織起來。但它還增加了兩個特征:用于支持隨機訪問的文件索引和溢出文件。索引提供了快速接近目標記錄的查找能力。溢出文件類似于順序文件中使用的日志文件,但是溢出文件中的記錄可以根據它前面記錄的指針進行定位。索引文件:只能通過索引來訪問記錄。其結果是對記錄的放置位置不再有限制,只要至少有一個索引的指針指向這條記錄即可。此外,還可以使用長度可變的記錄。直接文件或散列文件:直接文件使用基于關鍵字的散列。12.6 為什么在索引順序文件中查找一個記錄的平均搜索時間小于在順序文件中的平均搜索時間?在順序文件中,查找一個記錄是按順序檢測每一個記錄直到有一個包含符合條件的關鍵域值的記錄被找到。索引順序文件提供一個執行最小窮舉搜索的索引結構。12.7 對目錄執行的典型操作有哪些?搜索,創建文件,刪除文件,顯示目錄,修改目錄。12.8 路徑名和工作目錄有什么關系?路徑名是由一系列從根目錄或主目錄向下到各個分支,最后直到該文件的路徑中的目錄名和最后到達的文件名組成。工作目錄是一個這樣的目錄,它是含有用戶正在使用的當前目錄的樹形結構。12.9 可以授予或拒絕的某個特定用戶對某個特定文件的訪問權限通常有哪些?無(none),知道(knowledge),執行(execution),讀(reading),追加(appending),更新(updating),改變保護(changing protection),刪除(deletion)。12.10 列出并簡單定義三種組塊方式。固定組塊(fixed blocking):使用固定長度的記錄,并且若干條完整的記錄被保存在一個塊中。在每個塊的末尾可能會有一些未使用的空間,稱為內部碎片。可變長度跨越式組塊(variable-length spanned blocking):使用長度可變的記錄,并且緊縮到塊中,使得塊中沒有未使用空間。因此,某些記錄可能會跨越兩個塊,通過一個指向后繼塊的指針連接。可變長度非跨越式組塊(variable-length unspanned blocking):使用可變長度的記錄,但并不采用跨越的方式。如果下一條記錄比塊中剩余的未使用空間大,則無法使用這一部分,因此在大多數塊中都會有未使用的空間。12.11 列出并簡單定義三種文件分配方法。連續分配是指在創建文件時,給文件分配一組連續的塊。鏈式分配基于單個的塊,鏈中的每一塊都包含指向下一塊的指針。索引分配:每個文件在文件分配表中有一個一級索引,分配給該文件的每個分區在索引中都有一個表項。第13章 網 絡13.1 網絡訪問層的主要功能是什么?網絡層主要關注在兩個端系統(服務器、工作站)之間的數據交換,以及端系統間的物理網絡。13.2 傳輸層的任務是什么?傳輸層關注的是數據的可靠性和保證數據能正確到達接收端應用程序。13.3 什么是協議?協議是定義了用來管理兩個單元間進行數據交換的一系列規則的集合。13.4 什么是協議體系結構?這是一種實現通信功能的軟件結構。典型地,協議結構包含了一個分層化的協議集,并且每個層中有一個或多個協議。13.5 什么是TCP/IP?傳輸控制協議/互聯網協議(TCP/IP)是兩個最初為網際互連提供低層支持而設計的協議。TCP/IP協也被廣泛應用于涉及由美國防衛部門和因特爾團體發展的比較廣泛的協議集。13.6 使用套接字接口的目的是什么?套接字接口是一個能夠編寫程序的API,從而利用TCP/IP 協議程序建立一個用戶端和服務器之間的通信。第14章 分布式處理、客戶/服務器和集群14.1 什么是客戶/服務器計算?客戶/服務器計算是一個網絡環境,在這個網絡環境中包含著客戶機和服務器,并由服務器來響應客戶機的請求。14.2 客戶/服務器計算與任何其他形式的分布式數據處理的區別是什么?1、在用戶的本地系統上為該用戶提供界面友好的應用程序,這樣做可使系統具有更高的可靠性。這使得用戶可以在很大程度上控制對計算機的使用方式和時間,并使得部門級管理者具有響應本地需求的能力。2、盡管應用是分散開的,但仍然強調公司數據庫的集中以及很多網絡管理和使用功能的集中。這使公司的管理者能夠對計算信息系統的投資總額進行總體控制,并提供互操作,以使多系統能夠配合起來。同時,減少了各部門和單位在維護這些復雜的計算機設施時的開銷,使他們能夠選擇他們需要的各種類型的機器和接口來訪問那些數據和信息。3、對于用戶組織和廠商來說,他們有一個共同的承諾事項,即使系統開放和模塊化。這意味著用戶在選擇產品和混和使用來自眾多廠商的設備時具有很多選擇。4、網絡互聯是操作的基礎,網絡管理和網絡安全在組織和操作信息系統中具有很高的優先權。14.3 像TCP/IP這樣的通信結構在客戶/服務器計算環境中的作用是什么?它是使客戶端和服務器能夠協同工作的通信軟件。14.4 討論將應用程序定位在客戶上、服務器上或分開定位在客戶和服務器上的基本原理。基于服務器的處理:這種配置的基本原理是用戶工作站最適宜于提供良好的用戶界面,并且數據庫和應用程序很容易在中心系統上維護。盡管用戶獲得了良好界面的好處,但是,這種配置類型并不總能有效提高處理效率或系統支持的實際商業功能上有本質的改變。基于客戶的處理:它使用戶能夠使用適應本地需要的應用。合作處理:這種配置類型可以比其他客戶/服務器方式為用戶提供更高的生產效率和更高的網絡效率。14.5 什么是胖客戶和瘦客戶,兩種方法在基本原理上的差別是什么?胖客戶:這是基于客戶的處理,而大部分的軟件都集中在客戶端。胖客戶模型的主要優點是它充分利用了桌面功能,分擔了服務器上的應用處理并使它們更加有效,不容易產生瓶頸。瘦客戶:這是基于服務器的處理,而大部分的軟件都集中在服務器。這種方式更近似地模擬了傳統的以主機為中心的方式,常常是使將公司范圍的應用程序從大型機環境遷移到分布式環境的途徑。14.6 給出將pros和cons用于胖客戶和瘦客戶策略的建議。胖客戶:胖客戶模型的主要優點是它充分利用了桌面功能,分擔了服務器上的應用處理并使它們更加有效,不容易產生瓶頸。新增加的功能很快就超出了桌面機器的處理能力,迫使公司進行升級。如果模型擴充超出了部門的界限,合并了很多用戶,則公司必須安裝高容量局域網來支持在瘦服務器和胖客戶之間進行大量的傳輸。最后,維護、升級或替換分布于數十臺或數百臺桌面機的應用程序將變得非常困難。瘦客戶:這種方式更近似地模擬了傳統的以主機為中心的方式,常常是使將公司范圍的應用程序從大型機環境遷移到分布式環境的途徑。但是它不能提供和胖客戶策略一樣的靈活性。14.7 解釋三層客戶/服務器體系結構的基本原理。中間層機器基本上是位于用戶客戶和很多后端數據庫服務器之間的網關。中間層機器能夠轉換協議,將對一種類型的數據庫查詢映像為另一種類型數據庫的查詢。另外,中間層機器能夠融合來自不同數據源的結果。最后,中間層機器因介于兩個層次之間而可以充當桌面應用程序和后端應用程序之間的網關。14.8 什么是中間件?中間件是在上層應用程序和下層通信軟件和操作系統之間使用標準的編程接口和協議。它提供統一的方式和方法來跨越各種平臺訪問系統資源。14.9 既然具有像TCP/IP這樣的標準,為什么還需要中間件?TCP/IP不提供API和中間層協定來支持應用于不同的硬件和操作系統的多種應用程序平臺。14.10 列出消息傳遞的阻塞原語和無阻塞原語的優缺點。無阻塞原語為進程提供了對消息傳遞機制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 18910.64-2025液晶顯示器件第6-4部分:測試方法帶動態背光的液晶顯示模塊
- 計算機自動化技術試題及答案
- 材料疲勞壽命評估誤差分析重點基礎知識點
- 行政法學案例探討與答案發布
- 社區火災應急預案論文(3篇)
- 技術員考試準備試題與答案
- 森林火災瞬間應急預案范文(3篇)
- 行政法學動態研究試題及答案
- 風險管理在企業優化決策中的應用試題及答案
- 《環保與生活》課件-第十三篇
- 項目總工程師技術負責人績效考核表
- 2023春國開農業經濟基礎單元自測1-16試題及答案
- 火車廣播詞范本范文
- 國家電網(公共與行業知識)考試高分通關題庫資料800題(附答案)
- 保衛干事事跡材料
- GB/T 6913-2023鍋爐用水和冷卻水分析方法磷酸鹽的測定
- 精神科藥物的合理使用演示
- 礦井巷道斷面圖冊
- 熱風爐安裝使用說明書
- 集團公司全員安全生產職責清單(含目錄)
- 分布式光伏發電項目安裝驗收表
評論
0/150
提交評論