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