本章考核知識點(diǎn):1.多道程序設(shè)計 2.進(jìn)程 3.進(jìn)程狀態(tài) 4.進(jìn)程控制塊 5.進(jìn)程隊列 6.可再入程序 7.中斷及中斷響應(yīng) 8.中斷優(yōu)先級 9.進(jìn)程調(diào)度
自學(xué)要求:通過本章學(xué)習(xí)應(yīng)該掌握多道程序設(shè)計是如何提高計算機(jī)系統(tǒng)效率的;進(jìn)程與程序有什么區(qū)別;進(jìn)程的基本狀態(tài)以及狀態(tài)變化;進(jìn)程隊列及進(jìn)程調(diào)度策略;中斷的作用。
重點(diǎn)是:多道程序設(shè)計;進(jìn)程的定義和屬性;進(jìn)程調(diào)度策略。
一、 多道程序設(shè)計( 領(lǐng)會 )
1、什么是多道程序設(shè)計。
讓多個計算問題同時裝入一個計算機(jī)系統(tǒng)的主存儲器并行執(zhí)行,這種設(shè)計技術(shù)稱“ 多道程序設(shè)計 ”,這種計算機(jī)系統(tǒng)稱“多道程序設(shè)計系統(tǒng)” 或簡稱“多道系統(tǒng)”。
存儲保護(hù) :在多道程序設(shè)計的系統(tǒng)中,主存儲器中同時存放了多個作業(yè)的程序。為避免相互干擾,必須提供必要的手段使得在主存儲器中的各道程序只能訪問自己的區(qū)域。這樣,每道程序執(zhí)行時,都不會破壞其他各道的程序和數(shù)據(jù)。特別是當(dāng)某道程序發(fā)生錯誤的時,也不至于影響其它的程序。
程序浮動 :在多道程序設(shè)計系統(tǒng)中,對程序有一些特殊要求,也就是說,程序可以隨機(jī)地從主存的一個區(qū)域移動到另一個區(qū)域,程序被移動后仍絲毫不影響它的執(zhí)行,這種技術(shù)稱為“程序浮動”。
在多道程序設(shè)計的系統(tǒng)中,有三點(diǎn)基本要求:
用“存儲保護(hù)”的方法保證各道程序互不侵犯;
用“程序浮動”技術(shù)讓程序能靈活地改變存放區(qū)域且能正確執(zhí)行;
必須對資源按一定的策略分配和調(diào)度。
2、 多道程序設(shè)計 利用了系統(tǒng)與外圍設(shè)備的并行工作能力,從而提高工作效率。具體表現(xiàn)為:
提高了處理器的利用率;
充分利用外圍設(shè)備資源:計算機(jī)系統(tǒng)配置多種外圍設(shè)備,采用多道程序設(shè)計并行工作時,可以將使用不同設(shè)備的程序搭配在一起同時裝入主存儲器,使得系統(tǒng)中各外圍設(shè)備經(jīng)常處于忙碌狀態(tài),系統(tǒng)資源被充分利用;
發(fā)揮了處理器與外圍設(shè)備以及外圍設(shè)備之間的并行工作能力;
從總體上說,采用多道程序設(shè)計技術(shù)后,可以有效地提高系統(tǒng)中資源的利用率,增加單位時間內(nèi)的算題量,從而提高了吞吐率。
3、 多道程序設(shè)計 對算題量和算題時間的影響。 采用多道程序設(shè)計能改變系統(tǒng)資源的使用情況,提高系統(tǒng)效率。但是應(yīng)注意以下兩個問題:
可能延長程序的執(zhí)行時間;
并行工作道數(shù)與系統(tǒng)效率不成正比。從表面上看,增加并行工作道數(shù)就可提高系統(tǒng)效率,但實(shí)際上并行工作道數(shù)與系統(tǒng)效率是不成正比,因為并行的道數(shù)要根據(jù)系統(tǒng)配置的資源和用戶對資源的要求而定:
(1)主存儲器的大小限制了可同時裝入的程序數(shù)量;
(2)外圍設(shè)備的數(shù)量也是一個制約條件;
(3)多個程序同時要求使用同一資源的情況也會經(jīng)常發(fā)生。
總之,多道程序設(shè)計能提高系統(tǒng)資源的使用效率,增加單位時間的算題量;但是對每個計算問題來說,從算題開始到全部完成所需要的時間可能延長,另外在確定并行工作道數(shù)時應(yīng)綜合系統(tǒng)的資源配置和用戶對資源的要求。
二、 進(jìn)程( 領(lǐng)會 )
1、 進(jìn)程 的定義:把一個程序在一個數(shù)據(jù)集上的一次執(zhí)行稱為一個“進(jìn)程”。
2、 進(jìn)程是由 程序 、 數(shù)據(jù)集 和 進(jìn)程控制塊 三部分組成。
我們舉一個例子,比如在有一個用戶程序notepad.exe(記事本),當(dāng)它存放在磁盤上時,就是一個程序,在windows操作系統(tǒng)下運(yùn)行它時,就會在內(nèi)存中建立一個記事本程序的進(jìn)程,而我們在記事本中編輯的當(dāng)前文字就是這個進(jìn)程的數(shù)據(jù)集,操作系統(tǒng)會為當(dāng)前的進(jìn)程設(shè)置一個進(jìn)程控制塊。如果我們再打開一個記事本程序的窗口,就會建立另一個進(jìn)程,此時運(yùn)行的是同一個程序,但存在兩個進(jìn)程,第二個窗口中的編輯內(nèi)容就是第二個進(jìn)程的數(shù)據(jù)集。
3、 進(jìn)程 與 程序 的區(qū)別及關(guān)系。程序是靜止的,進(jìn)程是動態(tài)的。進(jìn)程包括程序和程序處理的對象(數(shù)據(jù)集),進(jìn)程能得到程序處理的結(jié)果。進(jìn)程和程序并非一一對應(yīng)的,一個程序運(yùn)行在不同的數(shù)據(jù)集上就構(gòu)成了不同的進(jìn)程。通常把進(jìn)程分為“系統(tǒng)進(jìn)程”和“用戶進(jìn)程”兩大類,把完成操作系統(tǒng)功能的進(jìn)程稱為系統(tǒng)進(jìn)程,而完成用戶功能的進(jìn)程則稱為用戶進(jìn)程。
相關(guān)推薦:2010年自考數(shù)據(jù)庫及其應(yīng)用重點(diǎn)知識講解匯總