天天看點

作業系統概論二

1、程式的并行執行發揮了處理器與外圍裝置并行工作的能力,使處理器的效率有所提高。

2、讓多個計算題同時進入一個計算機系統的主存儲器并行執行,這種程式設計方法稱為多道程式設計,這樣的計算機系統稱為多道程式設計系統。

3、對具有處理器與外圍裝置并行工作能力的計算機采用多道程式設計的方法後,能充分發揮處理器的使用效率,增加機關時間内的算題量,但對每一道來說,從開始到全部完成所需的時間比單道執行所需的時間可能要延長。

4、把一個程式在一個資料集上的一次執行稱為一個程序(Process)。是以,程式是靜止的,程序是動态的。

5、為什麼要引入程序?

答:(1)提高資源的使用率;(2)正确描述程式的執行情況。

6、程序和程式的差別與聯系:(1)程式隻是一組指令的有序集合,它本身沒有任何運動的含義,它隻是一個靜态的實體。而程序是程式在某資料集上的一次執行,是一個動态實體,它有自己的生命周期。(2)程序和程式并不是一一對應的。一個程式執行在不同的資料集上就形成不同的程序,可以用程序控制塊來唯一地标示每個程序。而程序沒有和資料産生直接的聯系,即使是執行不同的資料程式,指令的集合依然是一樣的。是以無法唯一的辨別出這些運作在不同資料集上的程式。一個程序肯定有一個與之對應的程式,而且隻有一個。而一個程式可能沒有與之對應的程序(因為它沒有執行),也有可能有多個程序與之對應(運作在幾個不同的資料集)

7、程序的四個屬性:(1)程序是動态的,它包含了資料和運作在資料集上的程式;(2)多個程序可以含有相同的程式;(3)多個程序可以并發執行;(4)程序的三種基本狀态:等待态、就緒态、運作态。

8、程序的三種基本狀态:(1)等待态:等待某一事件;

                     (2)就緒态:等待系統配置設定處理器以便運作;

                     (3)運作态:正在占有處理器運作

9、程序的三種特性:(1)動态性:程序是程式的一次執行過程,在執行過程中程序狀态不斷發生變化;

                 (2)并發性:若幹程序是可同時執行的,它們輪流占用處理器交替執行;

                 (3)異步性:程序的執行速度取決于自身與外界原因以及程序排程政策,是以以不可預知的速度向前推進。

10、為了能差別各個不同的程序,記錄各個程序執行時的情況,對每一個程序都設定一個“程序控制塊”(Process Control Block,縮寫為PCB)在計算機系統中,程序控制塊就是對程序管理和排程的資訊集合。

11、程序控制塊包含四類資訊:(1)辨別資訊。用于辨別一個程序。

                         (2)說明資訊。用于說明程序情況。

                         (3)現場資訊。用于保留目前運作程序暫時讓出處理器時存放在處理器中的各種資訊,以便能在繼續運作時得以恢複。

                         (4)管理資訊。用于管理程序。

12、程序是由程式、資料和程序控制塊三部分組成。

13、作業系統中往往設計一些能完成特定功能且不可中斷的過程,這些不可中斷的過程稱為原語。

14、用于控制程序的原語有:(1)建立原語:為一個程式配置設定一個工作區和建立一個程序控制塊,并置該程序為就緒态;

                        (2)撤銷原語:一個程序完成工作後,收回它的工作區和程序控制塊;

                        (3)阻塞原語:程序運作過程中發生等待事件時,把程序狀态改為等待态;

                        (4)喚醒原語:當程序等待的事件發生時,把程序的狀态改為就緒态。

15、在多道程式設計系統中,往往會同時建立多個程序,這些被建立的若幹就緒程序可按一定次序排成隊列,稱為就緒隊列。

16、為了便于控制和管理,程序的隊列可以通過對程序控制塊的連結來形成。

17、程序的基本隊列有:就緒隊列、等待隊列等。一個程序從所在的隊列中退出稱為出隊;一個程序排入到一個指定的隊列中稱為入隊;系統中負責程序入隊和出隊的工作稱為隊列管理。

18、由于某些事件的出現,中止現行程序的運作,而由作業系統去處理出現的事件,待适當的時候讓被中止的程序繼續運作,這個過程稱為中斷;引起中斷的事件稱為中斷源;對出現的事件進行處理的程式稱為中斷處理程式。

19、中斷類型有:(1)硬體故障中斷;(2)程式中斷;(3)外部中斷;(4)輸入/輸出中斷;(5)訪管中斷。前面四類中斷不是正在運作的程序所期待的,而是由于外界的原因迫使正在運作的程序被打斷,是以稱為強迫性中斷事件;第五類中斷是正在運作的程序所期待的,它表示正在運作的程序對作業系統有某種需求,故稱為自願性中斷事件,在小型和微型機中稱為系統調用。

20、由硬體的中斷裝置暫停現行程序的運作,而讓作業系統的中斷處理程式占用處理器的這一過程稱為中斷響應;自願性中斷事件是由處理器執行指令時根據指令中的操作碼捕俘到的,強迫性中斷事件是由硬體的中斷裝置發現的;通常在處理器執行完一條指令後,硬體的中斷裝置立即檢查有無強迫性中斷事件發生。

21、在單處理器的計算機系統中,整個系統設定一個用來存放目前運作程序的PSW的寄存器,該寄存器稱為程式狀态字寄存器。

程式狀态字:目前PSW:正在占用處理器的程序的PSW;

           新PSW:中斷處理程式的PSW;

           舊PSW:被中斷程序的PSW。

22、中斷處理程式對中斷事件的處理可以分為兩步進行:第一步是保護好被中斷程序的現場資訊,即把被中斷程序的通用寄存器和控制寄存器内容以及被中斷程序的舊PSW儲存起來,這些資訊可以儲存在被中斷程序的程序控制塊中。其目的是保證被中斷者再次運作時能使被中斷時的情況繼續運作;第二步是根據舊PSW中訓示的中斷事件進行具體處理。在多數情況下,中斷處理程式隻需做一些保護現場、分析事件性質等原則性的處理,而具體的處理可由适當地例行程式來完成。

23、在作業系統中,把磁盤上用來存放作業資訊的專用區域稱為輸入井。把在輸入井中等待處理的作業稱為後備作業。

24、從輸入井中選取後備作業裝入主存儲器的工作稱為作業排程。作業排程的必要條件是系統現有的尚未配置設定的資源可以滿足被選作業的資源要求。

25、從就緒程序中選取一個程序,讓它占用處理器的工作稱為程序排程。對任何一個作業來說,隻有先被作業排程選中才有機會去競争處理器,并且僅當被程序排程選中時才能占用處理器。

26、作業排程算法的原則:(1)公平性:對使用者公平,不能無故或無限制地拖延一個作業的執行;

                      (2)平衡資源使用:盡可能地使系統資源都處于忙碌;

                      (3)極大的流量:在機關時間内為盡可能多的作業服務,保證計算機系統的吞吐能力。

27、一些常用的作業排程算法:(1)先來先服務算法:按照作業進入輸入井的先後次序來挑選作業先進入的且滿足條件的作業優先被挑選。

                          (2)計算時間短的作業優先算法:要求使用者對自己的作業需要計算的時間做一個估計,時間短的優先。缺點:一是以使用者估計時間為标準,可能會故意把時間估計的短一些;二是由于不斷有新作業進入輸入井,會造成進入時間早但要求計算時間長的作業等待過長的時間。

                          (3)響應比高者優先算法:響應比=等待時間/計算時間

                          (4)優先級排程算法

                          (5)均衡排程算法

28、我們把一個程序讓出處理器有另一個程序占用處理器的過程稱為程序切換。在下列情況下均會引起程序的切換:(1)一個程序從運作狀态變成等待狀态;

                    (2)一個程序從運作狀态變成就緒狀态;

                    (3)一個程序從等待狀态變成就緒狀态;

                    (4)一個程序完成工作後被撤銷。

29常用的程序排程算法有:(1)先來先服務排程算法;

                       (2)最高優先級排程算法:①非搶占式:一旦某個高優先級的程序占有了處理器就一直運作下去,不管此時是否有更高優先級的程序就緒,隻要它的工作沒結束或沒出現等待時間,那麼它總是能占有處理器運作,直至由于它自身的原因主動讓出處理器時,再由程序排程重新選擇一個具有高優先級的程序使用處理器;

②搶占式:在這種方式下,嚴格保證任何時刻總是讓具有最高優先級的程序在處理器上運作。這種搶占式的優先級排程算法在實時系統中很有用。

                       (3)時間片輪轉排程算法:時間片是指允許程序一次占用處理器的最長時間。時間片輪轉排程算法把就緒程序按就緒的先後次序排成隊列,排程時總是選擇就緒隊列中的第一個程序,讓它占用處理器但規定它一次連續占用處理器的時間不能超過預定的時間片。

   在分時作業系統中,經常采用時間片輪轉排程算法。

   時間片取值的大小關系到計算機系統的效率和使用者的滿意度。是以時間片的值應根據程序要求系統給出應答的時間和進入系統的程序數來決定。

   在采用時間片輪轉排程算法時,可對每個程序規定相同的時間片也可對不同的程序規定不同的時間片。

30、線程:在現代作業系統中,把使用者的一個計算問題或一個應用問題作為一個程序,把該程序中可以并發執行的各部分分别作為線程,線程就是程序中可以獨立執行的子任務,一個程序中可以有一個或多個線程,每個線程都應有一個唯一的辨別符和一張線程描述表。線程描述表用來記錄線程執行時的現場資訊及狀态等。

31、采用多線程技術有明顯的優越性:(1)減少了程序也就節省了配置設定程序控制塊和工作區的開銷;

                                (2)建立線程需為線程建立一張“線程描述表”,以記錄線程的活動情況,但不需要另行配置設定資源,建立速度快;

                                (3)線程間的資訊傳遞在同一主存空間(程序所擁有的主存空間)中進行,不需要額外的通信機制,且傳遞速度快;

                                (4)線程能獨立執行,能充分利用和發揮處理器與外圍裝置并行工作的能力。

32、線程有如下基本屬性:(1)同一程序中的各線程駐留在配置設定給程序的主存位址空間中,且共享該程序的所有資源;

                      (2)一個線程被建立後便開始了它的生命周期,直至執行結束而終止線程在生命期内會經曆等待态、就緒态和運作态等各種狀态變化;

                      (3)線程是處理器的獨立排程機關,多個線程可以并發執行,在單處理器的計算機系統中,各線程交替占用處理器。在多處理器的計算機系統中,各線程可同時占用不同的處理器;

                      (4)不同的線程可以執行相同的程式,即同一個服務程式若被不同使用者調用時作業系統就為它們建立不同的線程。

33、線程往往被稱為輕型程序。在采用線程技術的作業系統中,線程與程序的根本差別是程序是資源配置設定機關,線程是排程、執行機關;每一個程序都有自己的主存空間(不同的程序有不同的主存空間),但同一程序中的各線程共享該程序的主存空間,程序中的所有線程對程序的整個主存空間都有存取權限。