作業系統原理3——多道程式

來源:互聯網
上載者:User

本章考核知識點:1.多道程式設計 2.進程 3.進程狀態 4.進程式控制制塊 5.進程隊列 6.可再入程式 7.中斷及中斷響應 8.中斷優先順序 9.進程調度
  自學要求:通過本章學習應該掌握多道程式設計是如何提高電腦系統效率的;進程與程式有什麼區別;進程的基本狀態以及狀態變化;進程隊列及進程調度策略;中斷的作用。

  重點是:多道程式設計;進程的定義和屬性;進程調度策略。

  一、 多道程式設計( 領會 )

  1、什麼是多道程式設計。

  讓多個計算問題同時裝入一個電腦系統的主儲存空間並存執行,這種設計技術稱“ 多道程式設計 ”,這種電腦系統稱“多道程式設計系統” 或簡稱“多道系統”。

  儲存保護 :在多道程式設計的系統中,主儲存空間中同時存放了多個作業的程式。為避免相互幹擾,必須提供必要的手段使得在主儲存空間中的各道程式只能訪問自己的地區。這樣,每道程式執行時,都不會破壞其他各道的程式和資料。特別是當某道程式發生錯誤的時,也不至於影響其它的程式。

  程式浮動 :在多道程式設計系統中,對程式有一些特殊要求,也就是說,程式可以隨機地從主存的一個地區移動到另一個地區,程式被移動後仍絲毫不影響它的執行,這種技術稱為“程式浮動”。

  在多道程式設計的系統中,有三點基本要求:

  用“儲存保護”的方法保證各道程式互不侵犯;

  用“程式浮動”技術讓程式能靈活地改變存放地區且能正確執行;

  必須對資源按一定的策略分配和調度。

  2、 多道程式設計 利用了系統與外圍裝置的並行工作能力,從而提高工作效率。具體表現為:

  提高了處理器的利用率;

  充分利用外圍裝置資源:電腦系統配置多種外圍裝置,採用多道程式設計並行工作時,可以將使用不同裝置的程式搭配在一起同時裝入主儲存空間,使得系統中各外圍裝置經常處於忙碌狀態,系統資源被充分利用;

  發揮了處理器與外圍裝置以及外圍裝置之間的並行工作能力;

  從總體上說,採用多道程式設計技術後,可以有效地提高系統中資源的利用率,增加單位時間內的算題量,從而提高了吞吐率。

  3、 多道程式設計 對算題量和算題時間的影響。 採用多道程式設計能改變系統資源的使用方式,提高系統效率。但是應注意以下兩個問題:

  可能延長程式的執行時間;

  並行工作道數與系統效率不成正比。從表面上看,增加並行工作道數就可提高系統效率,但實際上並行工作道數與系統效率是不成正比,因為並行的道數要根據系統配置的資源和使用者對資源的要求而定:

  (1)主儲存空間的大小限制了可同時裝入的程式數量;

  (2)外圍裝置的數量也是一個制約條件;

  (3)多個程式同時要求使用同一資源的情況也會經常發生。

  總之,多道程式設計能提高系統資源的使用效率,增加單位時間的算題量;但是對每個計算問題來說,從算題開始到全部完成所需要的時間可能延長,另外在確定並行工作道數時應綜合系統的資源配置和使用者對資源的要求。

  二、 進程( 領會 )

  1、 進程 的定義:把一個程式在一個資料集上的一次執行稱為一個“進程”。

  2、 進程是由 程式 、 資料集 和 進程式控制制塊 三部分組成。

  我們舉一個例子,比如在有一個使用者程式notepad.exe(記事本),當它存放在磁碟上時,就是一個程式,在windows作業系統下運行它時,就會在記憶體中建立一個記事本程式的進程,而我們在記事本中編輯的當前文字就是這個進程的資料集,作業系統會為當前的進程設定一個進程式控制制塊。如果我們再開啟一個記事本程式的視窗,就會建立另一個進程,此時啟動並執行是同一個程式,但存在兩個進程,第二個視窗中的編輯內容就是第二個進程的資料集。

  3、 進程 與 程式 的區別及關係。程式是靜止的,進程是動態。進程包括程式和程式處理的對象(資料集),進程能得到程式處理的結果。進程和程式並非一一對應的,一個程式運行在不同的資料集上就構成了不同的進程。通常把進程分為“系統進程”和“使用者進程”兩大類,把完成作業系統功能的進程稱為系統進程,而完成使用者功能的進程則稱為使用者進程。

  三、 進程狀態( 領會 )

  1、 進程的 三種基本狀態 .通常,根據進程執行過程中不同時刻的狀態,可歸納為三種基本狀態:

  。 等待態 :等待某個事件的完成;

  。 就緒態 :等待系統分配處理器以便運行;

  。 運行態 :佔有處理器正在運行。

  2、進程的狀態變化

  進程在執行中狀態會不斷地改變,每個進程在任何時刻總是處於上述三種基本狀態的某一種基本狀態,進程狀態之間轉換關係如所示:

  運行態→等待態 往往是由於等待外設,等待主存等資源分派或等待人工幹預而引起的。

  等待態→就緒態 則是等待的條件已滿足,只需分配到處理器後就能運行。

  運行態→就緒態 不是由於自身原因,而是由外界原因使運行狀態的進程讓出處理器,這時候就變成就緒態。例如時間片用完,或有更高優先順序的進程來搶佔處理器等。

  就緒態→運行態 系統按某種策略選中就緒隊列中的一個進程佔用處理器,此時就變成了運行態。

  進程 有 四個基本屬性 :

  。多態性 從誕生、運行,直至消滅。

  。多個不同的進程可以包括相同的程式

  。三種基本狀態 它們之間可進行轉換

  。並發性 並發執行的進程輪流佔用處理器

  四、進程式控制制塊( 領會 )

  1、 進程式控制制塊 的基本內容。 通常進程式控制制塊包含四類資訊:

  。標誌資訊 含唯一的進程名

  。說明資訊 有進程狀態、等待原因、進程程式存放位置和進程資料存放位置

  。現場資訊 包括通用、控制和程式狀態字寄存器的內容

  。管理資訊 存放程式優先數和隊列指標

  2、 進程式控制制塊 的作用

  進程式控制制塊(Process Control Block,簡稱PCB),是作業系統為進程分配的用於標誌進程,記錄各進程執行情況的。進程式控制制塊是進程存在的標誌,它記錄了進程從建立到消亡動態變化的狀況,進程隊列實際也是進程式控制制塊的連結。作業系統利用進程式控制制塊對進程進行控制和管理。

  進程式控制制塊的作用有:

  (1)記錄進程的有關資訊,以便作業系統的進程發送器對進程進行調度。這些資訊包括標誌資訊、說明資訊、現場資訊和管理資訊等;

  (2)標誌進程的存在,進程式控制制塊是進程存在的唯一標誌

  五、進程隊列( 領會 )

  1、 進程隊列 的連結。

  在多道程式設計的系統中往往會同時建立多個 進程 .在單一處理器的情況下,每次只能讓一個進程運行,其他的進程處於就緒狀態或等待狀態。為了便於管理,經常把處於相同狀態的進程連結在一起,稱“進程隊列”,由於 進程式控制制塊 能標誌進程的存在和動態刻畫進程的特性,因此, 進程隊列 可以用 進程式控制制塊 的串連來形成。連結的方式有兩種:單向連結和雙向連結。

  2、 進程基本隊列

  就緒隊列 :由若干就緒進程按一定次序連結起來的隊列。

  等待隊列 :把等待資源或等待某些事件的進程排列的隊列

  3、進程的入隊和出隊。

  出隊和入隊 :當發生的某個事件使一個進程的狀態發生變化時,這個進程就要退出所在的某個隊列而排入到另一個隊列中去。

  出隊 :一個進程從所在的隊列退出的操作稱為出隊

  入隊 :一個進程排入到一個指定的隊列的操作稱為入隊。

  系統中負責進程入隊和出隊的工作稱為隊列管理。

  無論單向連結還是雙向連結,解決入,出隊問題,都是首先找到該隊列的隊首指標,沿鏈找出要入隊的進程以及它要插入的位置,或找出要出隊的進程,然後修改本進程指標(入隊情況)和相鄰進程的有關指標值即可。

  六、可再入程式( 識記 )

  (1) 什麼是 可再入程式 . 一個能被 多個使用者同時調用 的程式稱做“ 可再入 ”的程式。

  (2) 可再入程式的性質。

  可再入程式必須是純程式碼,在執行時自身不改變;

  一個可再入程式要求調用者提供工作區,以保證程式以同樣方式為各使用者服務。

  編譯器 和 作業系統程式 通常都是“可再入”程式,能同時被不同使用者調用而構成不同的進程。

  七、中斷及中斷響應( 領會 )

  1、 中斷 的定義。

  一個進程佔有處理器運行時,由於自身或者外界的原因(出現了事件)使運行被打斷,讓作業系統處理所出現的事件,到適當的時候再讓被打斷的進程繼續運行,這個過程稱為“中斷”。

  2、 中斷 的類型。

  從中斷事件的性質出發,中斷可以分為兩大類:

  。 強迫性中斷事件 包括硬體故障中斷,程式性中斷,外部中斷和輸入輸出中斷等

  。 自願性中斷事件 是由正在啟動並執行進程執行一條訪管指令用以請求系統調用而引起的中斷,這種中斷也稱為“訪管中斷”。

  自願中斷 的斷點是確定的,而 強迫性中斷 的斷點可能發生在任何位置。

  3、中斷的響應和處理。

  中斷響應 (硬體即中斷裝置操作)

  處理器每執行一條指令後,硬體的中斷位置立即檢查有無中斷事件發生,若有中斷事件發生,則暫停現行進程的執行,而讓作業系統的中斷處理常式佔用處理器,這一過程稱為“中斷響應”。

  中斷響應過程中,中斷裝置要做以下三項工作:

  是否有中斷事件發生

  判別自願性中斷,只要檢查作業碼是否為訪管指令。

  判彆強迫性中斷,則要檢查中斷寄存器內容。若為0,則無中斷;若非0,則表示有中斷事件發生。

  若有中斷髮生,保護斷點資訊

  每個程式都有一個程式狀態字(PSW)來反映本狀態的執行狀態,如基本狀態、中斷碼和中斷屏蔽位等內容。處理器設有一個“程式狀態字寄存器”用來存放當前運行程式的PSW.程式狀態字可分為當前PSW、舊PSW和新PSW.

  當出現中斷事件後,把被中斷進程的PSW儲存為舊PSW,即完成斷點資訊保護。

  啟動作業系統的中斷處理常式工作

  中斷裝置通過“交換PSW”過程完成此項任務,即把出現的中斷事件存放到當前PSW中斷碼位置,然後把該當前PSW儲存為舊PSW,再把作業系統中斷處理常式的新PSW送到程式狀態字寄存器中,成為當前的PSW.

  中斷處理 ( 軟體即作業系統操作 )

  作業系統的中斷處理常式對中斷事件進行處理時,大致要做三方面的工作:

  保護被中斷進程的現場資訊

  把中斷時的通用寄存器,控制寄存器內容及舊PSW儲存到被中斷進程的進程式控制制塊中。

  分析中斷原因

  根據舊PSW的中斷碼可知發生該中斷的具體原因。

  處理髮生的中斷事件

  一般只做一些簡單處理,在多數情況下把具體的處理交給其他程式模組去做。

  八、 中斷優先順序和中斷屏蔽( 識記 )

  1、 中斷優先順序 是硬體設計時確定的。中斷裝置按預定的順序來響應同時出現的中斷事件,這個預定的順序稱為“中斷優先順序”。中斷優先順序是按中斷事件的重要性和緊迫程度來確定的 ,是由硬體設計時固定下來的。一般情況下,優先順序的高低順序依次為: 硬體故障中斷 、 自願中斷 、 程式性中斷 , 外部中斷和輸入輸出中斷 .

  2、中斷的嵌套處理

  3、中斷屏蔽的作用。中斷優先順序只是規定了中斷裝置響應同時出現的中斷的次序,當中斷裝置響應了某個中斷後中斷處理常式在進行處理時,中斷裝置也可能去響應另一個中斷事件。因此會出現優先順序低的中斷事件的處理打斷優先順序高的中斷事件的處理,使得中斷事件的處理順序與響應順序不一致,而且會形成多重嵌套處理,使多現場保護、程式返回等工作變的複雜。

  中斷屏蔽技術就是為瞭解決上述問題而提出的在一個中斷處理沒有結束之前不響應其他中斷事件,或者只響應比當前層級高的中斷事件。於是,當中斷裝置檢查到有中斷事件後,便去查看PSW中中斷屏蔽標誌,如果沒有屏蔽就響應該中斷;否則,暫時不響應該中斷,待屏蔽標誌消除後再響應。自願中斷是不能屏蔽的。

  九、 進程調度( 領會 )

  1、進程調度的職責。按選定的進程調度演算法從就緒隊列中選擇一個進程,讓它佔用處理器。

  2、選擇進程調度演算法的幾個準則:

  。提高處理器利用率

  。增大輸送量

  。減少等待時間

  。縮短回應時間

  3、進程調度的常用演算法: 先來先服務 、 優先數法 、 輪轉法 、 分級調度 .

  先來先服務調度演算法 該演算法按進程進入就緒隊列的先後次序選擇可以佔用處理器的進程。

  優先數調度演算法 對每個進程確定一個優先數,該演算法總是讓優先數最高的進程先使用處理器。對具有相同優先數的進程,再採用先來先服務的次序分配處理器。系統常以任務的緊迫性和系統效率等因素確定進程的優先數。進程的優先數可以固定的,也可隨進程執行過程動態變化。 一個高優先數的進程佔用處理器後,系統處理該進程時有兩種方法,一是“非搶佔式”,另一種是“可搶佔式”。前者是此進程佔用處理器後一直運行到結束,除非本身主動讓出處理器,後者則是嚴格保證任何時刻總是讓優先數最高的進程在處理器上運行。

  時間片輪轉調度法 把規定進程一次使用處理器的最長時間稱為“時間片”。時間片輪轉調度演算法讓就緒進程按就緒的先後次序排成隊列,每次總選擇該隊列中第一個進程佔用處理器,但規定只能使用一個時間片,如該進程尚未完成,則排入隊尾,等待下一個供它使用的時間片。各個進程就這樣輪轉運行。時間片輪轉演算法經常用於分時作業系統中。

  分級調度演算法 由系統設定多個就緒隊列,每個就緒隊列中的進程按時間片輪轉法佔用處理器,這就是分級調度演算法。

  4、 進程的切換 進程調度將從就緒隊列中另選一個進程佔用處理器,使一個進程讓出處理器,由另一個進程佔用處理器的過程稱“進程切換”。

  若有一個進程從運行態變成等待態,或完成工作後就撤消,則必定會發生進程切換。若一個進程從運行態或等待態變成就緒態,則不一定發生進程切換。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.