自考“操作系統(tǒng)原理”復習資料(3)

  • 發(fā)布時間:2024-09-15 16:21:23
  • 來源:本站整理
  • 閱讀:
導讀:
  本章考核知識點:1.多道程序設計 2.進程 3.進程狀態(tài) 4.進程控制塊 5.進程隊列 6.可再入程序 7.中斷及中斷響應 8.中斷優(yōu)先級 9.進程調(diào)度
  自學要求:通過本章學習應該掌握多道程序設計是如何提高計算機系統(tǒng)效率的;進程與程序有什么區(qū)別;進程的基本狀態(tài)以及狀態(tài)變化;進程隊列及進程調(diào)度策略;中斷的作用。
  重點

本章考核知識點:1.多道程序設計 2.進程 3.進程狀態(tài) 4.進程控制塊 5.進程隊列 6.可再入程序 7.中斷及中斷響應 8.中斷優(yōu)先級 9.進程調(diào)度

自學要求:通過本章學習應該掌握多道程序設計是如何提高計算機系統(tǒng)效率的;進程與程序有什么區(qū)別;進程的基本狀態(tài)以及狀態(tài)變化;進程隊列及進程調(diào)度策略;中斷的作用。

重點是:多道程序設計;進程的定義和屬性;進程調(diào)度策略。

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

1、什么是多道程序設計。

讓多個計算問題同時裝入一個計算機系統(tǒng)的主存儲器并行執(zhí)行,這種設計技術稱“ 多道程序設計 ”,這種計算機系統(tǒng)稱“多道程序設計系統(tǒng)” 或簡稱“多道系統(tǒng)”。

存儲保護 :在多道程序設計的系統(tǒng)中,主存儲器中同時存放了多個作業(yè)的程序。為避免相互干擾,必須提供必要的手段使得在主存儲器中的各道程序只能訪問自己的區(qū)域。這樣,每道程序執(zhí)行時,都不會破壞其他各道的程序和數(shù)據(jù)。特別是當某道程序發(fā)生錯誤的時,也不至于影響其它的程序。

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

在多道程序設計的系統(tǒng)中,有三點基本要求:

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

用“程序浮動”技術讓程序能靈活地改變存放區(qū)域且能正確執(zhí)行;

必須對資源按一定的策略分配和調(diào)度。

2、 多道程序設計 利用了系統(tǒng)與外圍設備的并行工作能力,從而提高工作效率。具體表現(xiàn)為:

提高了處理器的利用率;

充分利用外圍設備資源:計算機系統(tǒng)配置多種外圍設備,采用多道程序設計并行工作時,可以將使用不同設備的程序搭配在一起同時裝入主存儲器,使得系統(tǒng)中各外圍設備經(jīng)常處于忙碌狀態(tài),系統(tǒng)資源被充分利用;

發(fā)揮了處理器與外圍設備以及外圍設備之間的并行工作能力;

從總體上說,采用多道程序設計技術后,可以有效地提高系統(tǒng)中資源的利用率,增加單位時間內(nèi)的算題量,從而提高了吞吐率。

3、 多道程序設計 對算題量和算題時間的影響。 采用多道程序設計能改變系統(tǒng)資源的使用情況,提高系統(tǒng)效率。但是應注意以下兩個問題:

可能延長程序的執(zhí)行時間;

并行工作道數(shù)與系統(tǒng)效率不成正比。從表面上看,增加并行工作道數(shù)就可提高系統(tǒng)效率,但實際上并行工作道數(shù)與系統(tǒng)效率是不成正比,因為并行的道數(shù)要根據(jù)系統(tǒng)配置的資源和用戶對資源的要求而定:

(1)主存儲器的大小限制了可同時裝入的程序數(shù)量;

(2)外圍設備的數(shù)量也是一個制約條件;

(3)多個程序同時要求使用同一資源的情況也會經(jīng)常發(fā)生。

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

二、 進程( 領會 )

1、 進程 的定義:把一個程序在一個數(shù)據(jù)集上的一次執(zhí)行稱為一個“進程”。

2、 進程是由 程序 、 數(shù)據(jù)集 和 進程控制塊 三部分組成。

我們舉一個例子,比如在有一個用戶程序notepad.exe(記事本),當它存放在磁盤上時,就是一個程序,在windows操作系統(tǒng)下運行它時,就會在內(nèi)存中建立一個記事本程序的進程,而我們在記事本中編輯的當前文字就是這個進程的數(shù)據(jù)集,操作系統(tǒng)會為當前的進程設置一個進程控制塊。如果我們再打開一個記事本程序的窗口,就會建立另一個進程,此時運行的是同一個程序,但存在兩個進程,第二個窗口中的編輯內(nèi)容就是第二個進程的數(shù)據(jù)集。

3、 進程 與 程序 的區(qū)別及關系。程序是靜止的,進程是動態(tài)的。進程包括程序和程序處理的對象(數(shù)據(jù)集),進程能得到程序處理的結(jié)果。進程和程序并非一一對應的,一個程序運行在不同的數(shù)據(jù)集上就構(gòu)成了不同的進程。通常把進程分為“系統(tǒng)進程”和“用戶進程”兩大類,把完成操作系統(tǒng)功能的進程稱為系統(tǒng)進程,而完成用戶功能的進程則稱為用戶進程。

三、 進程狀態(tài)( 領會 )

1、 進程的 三種基本狀態(tài) .通常,根據(jù)進程執(zhí)行過程中不同時刻的狀態(tài),可歸納為三種基本狀態(tài):

。 等待態(tài) :等待某個事件的完成;

。 就緒態(tài) :等待系統(tǒng)分配處理器以便運行;

。 運行態(tài) :占有處理器正在運行。

2、進程的狀態(tài)變化

進程在執(zhí)行中狀態(tài)會不斷地改變,每個進程在任何時刻總是處于上述三種基本狀態(tài)的某一種基本狀態(tài),進程狀態(tài)之間轉(zhuǎn)換關系如下圖所示:

運行態(tài)→等待態(tài) 往往是由于等待外設,等待主存等資源分配或等待人工干預而引起的。

等待態(tài)→就緒態(tài) 則是等待的條件已滿足,只需分配到處理器后就能運行。

運行態(tài)→就緒態(tài) 不是由于自身原因,而是由外界原因使運行狀態(tài)的進程讓出處理器,這時候就變成就緒態(tài)。例如時間片用完,或有更高優(yōu)先級的進程來搶占處理器等。

就緒態(tài)→運行態(tài) 系統(tǒng)按某種策略選中就緒隊列中的一個進程占用處理器,此時就變成了運行態(tài)。

進程 有 四個基本屬性 :

。多態(tài)性 從誕生、運行,直至消滅。

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

。三種基本狀態(tài) 它們之間可進行轉(zhuǎn)換

。并發(fā)性 并發(fā)執(zhí)行的進程輪流占用處理器

四、進程控制塊( 領會 )

1、 進程控制塊 的基本內(nèi)容。 通常進程控制塊包含四類信息:

。標志信息 含唯一的進程名

。說明信息 有進程狀態(tài)、等待原因、進程程序存放位置和進程數(shù)據(jù)存放位置

?,F(xiàn)場信息 包括通用、控制和程序狀態(tài)字寄存器的內(nèi)容

。管理信息 存放程序優(yōu)先數(shù)和隊列指針

2、 進程控制塊 的作用

進程控制塊(Process Control Block,簡稱PCB),是操作系統(tǒng)為進程分配的用于標志進程,記錄各進程執(zhí)行情況的。進程控制塊是進程存在的標志,它記錄了進程從創(chuàng)建到消亡動態(tài)變化的狀況,進程隊列實際也是進程控制塊的鏈接。操作系統(tǒng)利用進程控制塊對進程進行控制和管理。

進程控制塊的作用有:

(1)記錄進程的有關信息,以便操作系統(tǒng)的進程調(diào)度程序?qū)M程進行調(diào)度。這些信息包括標志信息、說明信息、現(xiàn)場信息和管理信息等;

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

五、進程隊列( 領會 )

1、 進程隊列 的鏈接。

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

2、 進程基本隊列

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

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

3、進程的入隊和出隊。

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

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

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

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

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

六、可再入程序( 識記 )

(1) 什么是 可再入程序 . 一個能被 多個用戶同時調(diào)用 的程序稱做“ 可再入 ”的程序。

(2) 可再入程序的性質(zhì)。

可再入程序必須是純代碼,在執(zhí)行時自身不改變;

一個可再入程序要求調(diào)用者提供工作區(qū),以保證程序以同樣方式為各用戶服務。

編譯程序 和 操作系統(tǒng)程序 通常都是“可再入”程序,能同時被不同用戶調(diào)用而構(gòu)成不同的進程。

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

1、 中斷 的定義。

一個進程占有處理器運行時,由于自身或者外界的原因(出現(xiàn)了事件)使運行被打斷,讓操作系統(tǒng)處理所出現(xiàn)的事件,到適當?shù)臅r候再讓被打斷的進程繼續(xù)運行,這個過程稱為“中斷”。

2、 中斷 的類型。

從中斷事件的性質(zhì)出發(fā),中斷可以分為兩大類:

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

。 自愿性中斷事件 是由正在運行的進程執(zhí)行一條訪管指令用以請求系統(tǒng)調(diào)用而引起的中斷,這種中斷也稱為“訪管中斷”。

自愿中斷 的斷點是確定的,而 強迫性中斷 的斷點可能發(fā)生在任何位置。

3、中斷的響應和處理。

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

處理器每執(zhí)行一條指令后,硬件的中斷位置立即檢查有無中斷事件發(fā)生,若有中斷事件發(fā)生,則暫?,F(xiàn)行進程的執(zhí)行,而讓操作系統(tǒng)的中斷處理程序占用處理器,這一過程稱為“中斷響應”。

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

是否有中斷事件發(fā)生

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

判別強迫性中斷,則要檢查中斷寄存器內(nèi)容。若為0,則無中斷;若非0,則表示有中斷事件發(fā)生。

若有中斷發(fā)生,保護斷點信息

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

當出現(xiàn)中斷事件后,把被中斷進程的PSW保存為舊PSW,即完成斷點信息保護。

啟動操作系統(tǒng)的中斷處理程序工作

中斷裝置通過“交換PSW”過程完成此項任務,即把出現(xiàn)的中斷事件存放到當前PSW中斷碼位置,然后把該當前PSW保存為舊PSW,再把操作系統(tǒng)中斷處理程序的新PSW送到程序狀態(tài)字寄存器中,成為當前的PSW.

中斷處理 ( 軟件即操作系統(tǒng)操作 )

操作系統(tǒng)的中斷處理程序?qū)χ袛嗍录M行處理時,大致要做三方面的工作:

保護被中斷進程的現(xiàn)場信息

把中斷時的通用寄存器,控制寄存器內(nèi)容及舊PSW保存到被中斷進程的進程控制塊中。

分析中斷原因

根據(jù)舊PSW的中斷碼可知發(fā)生該中斷的具體原因。

處理發(fā)生的中斷事件

一般只做一些簡單處理,在多數(shù)情況下把具體的處理交給其他程序模塊去做。

八、 中斷優(yōu)先級和中斷屏蔽( 識記 )

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

2、中斷的嵌套處理

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

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

九、 進程調(diào)度( 領會 )

1、進程調(diào)度的職責。按選定的進程調(diào)度算法從就緒隊列中選擇一個進程,讓它占用處理器。

2、選擇進程調(diào)度算法的幾個準則:

。提高處理器利用率

。增大吞吐量

。減少等待時間

??s短響應時間

3、進程調(diào)度的常用算法: 先來先服務 、 優(yōu)先數(shù)法 、 輪轉(zhuǎn)法 、 分級調(diào)度 .

先來先服務調(diào)度算法 該算法按進程進入就緒隊列的先后次序選擇可以占用處理器的進程。

優(yōu)先數(shù)調(diào)度算法 對每個進程確定一個優(yōu)先數(shù),該算法總是讓優(yōu)先數(shù)最高的進程先使用處理器。對具有相同優(yōu)先數(shù)的進程,再采用先來先服務的次序分配處理器。系統(tǒng)常以任務的緊迫性和系統(tǒng)效率等因素確定進程的優(yōu)先數(shù)。進程的優(yōu)先數(shù)可以固定的,也可隨進程執(zhí)行過程動態(tài)變化。 一個高優(yōu)先數(shù)的進程占用處理器后,系統(tǒng)處理該進程時有兩種方法,一是“非搶占式”,另一種是“可搶占式”。前者是此進程占用處理器后一直運行到結(jié)束,除非本身主動讓出處理器,后者則是嚴格保證任何時刻總是讓優(yōu)先數(shù)最高的進程在處理器上運行。

時間片輪轉(zhuǎn)調(diào)度法 把規(guī)定進程一次使用處理器的最長時間稱為“時間片”。時間片輪轉(zhuǎn)調(diào)度算法讓就緒進程按就緒的先后次序排成隊列,每次總選擇該隊列中第一個進程占用處理器,但規(guī)定只能使用一個時間片,如該進程尚未完成,則排入隊尾,等待下一個供它使用的時間片。各個進程就這樣輪轉(zhuǎn)運行。時間片輪轉(zhuǎn)算法經(jīng)常用于分時操作系統(tǒng)中。

分級調(diào)度算法 由系統(tǒng)設置多個就緒隊列,每個就緒隊列中的進程按時間片輪轉(zhuǎn)法占用處理器,這就是分級調(diào)度算法。

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

若有一個進程從運行態(tài)變成等待態(tài),或完成工作后就撤消,則必定會發(fā)生進程切換。若一個進程從運行態(tài)或等待態(tài)變成就緒態(tài),則不一定發(fā)生進程切換。

相關閱讀