乙個計算問題往往要依照一定的順序執行,執行的順序是由編制的程式確定的。
現在計算機中的硬體都具有處理器與外圍裝置並行工作的能力。程式的並行執行發揮了處理器與外圍裝置並行工作的能力,使處理器的效率有所提高。
讓多個計算題同事進入乙個計算機系統的主儲存器並行執行,這種程式設計方法稱為多道程式設計,這樣的計算機系統稱為多道程式設計系統。對具有處理器與外圍裝置並行工作能力的計算機採用多道程式設計的方法後,能充分發揮處理器的使用效率,增加單位時間內的算題量。
多道程式設計不僅提高了處理器的利用率,而且降低了完成計算所需的總時間,從而提高了單位時間內的算題能力,也提高了吞吐量。
程序:乙個程式在乙個資料集上的一次執行。程式是靜止的,程序是動態的。
為什麼樣引入程序?
1、提高資源的利用率。
2、正確描述程式的執**況。
程序的屬性:
1、程序是動態的,它包含了資料和資料集上的程式。
2、多個程序可以包含有相同的程式。程序與程式並非是一一對應的,乙個程式執行在不同的資料集上就構成不同的程序,分別得到不同的結果。對於不同的程序,可用不同的程序名來區分。
3、多個程序可以併發執行。若干個程序是可以同時執行的,即乙個程序已開始工作但還沒有結束之前,另乙個程序也可以開始工作。把這些程序稱為同時執行的程序,或稱為程序的併發執行。
4、程序有三種基本狀態。等待態:等待某一事件。就緒態:等待系統分配處理器以便執行。執行態:正在占有處理器執行。
執行態—>等待態:乙個程序執行中啟動了外圍裝置,等待外圍裝置傳輸結束;程序在運用中申請資源(主存空間、外圍裝置)得不到滿足,變成等待分配資源狀態;程序在執行中出現了故障(程式錯誤、主存錯等),變成等待排除干預狀態。
等待態—>就緒態:外圍裝置工作結束,使等待外圍裝置傳輸者結束等待;等待的資源得到滿足(另一程序歸還);故障排除後等待干預的程序結束等待。乙個結束等待的程序必須先轉換成就緒狀態,當分配到處理器後才能執行。
執行態—>就緒態:分配給程序占用處理器的時間用完而強迫程序讓出處理器;有更高優先順序的程序要執行,迫使正在執行的程序讓出處理器。
就緒態—>執行態:有多個程序等待分配處理器時,系統按一種規定的策略從多個處於就緒狀態的程序中選擇乙個程序,讓它占有處理器,被選中的程序的狀態就變成執行態。
程序的特點:
動態性:程序是程式的一次執行過程,在執行過程中程序狀態不斷發生變化。
併發性:若干程序是可同時執行的,它們輪流占用處理器交替執行。
非同步性:程序的執行速度取決於自身與外界原因以及程序排程策略,因此以不可預知的速度向前推進。
在計算機系統中,尤其是在多道程式設計系統中,,往往是有許多不同的程序同時存在於系統化中。為了能區別各個不同的程序,記錄各個程序執行時的情況,對每乙個程序都設定乙個「程序控制塊」(pcb)。
在計算機系統中,程序控制塊就是對程序進行管理和排程的資訊集合。它包含四類資訊:
1、標識資訊。用於標識乙個程序。
2、說明資訊。用於說明程序情況。
3、現場資訊。由於保留當前執行程序暫時讓出處理器時存放在處理器中的各種資訊,以便能在繼續執行時得以恢復。
4、管理資訊。用於管理程序。
乙個被建立的程序是由它的程序控制塊中的程序名來標識的。程序被建立時它的初始狀態為「就緒態」。當它能占用處理器時變成「執行態」在執行過程中隨執**況或其他原因的影響,狀態可不斷發生變化。
程序執行時把不斷變化的情況記錄在程序控制塊中。作業系統依據程序控制塊對程序進行控制和管理。
乙個程序在執行過程中,為了請求某種服務,可以再要求建立其他程序。
每建立乙個程序都要有乙個程序控制塊來標識,這時是該程序的生命的開始。乙個程序完成了自己的任務後,系統要收回這個程序占有的工作區和撤銷該程序的程序控制塊,於是該程序就結束了它的生命而消亡。因此,每個程序都有乙個從建立到消亡的生命週期。
作業系統中往往設計一些能完成特定功能且不可中斷的過程。這些不可中斷的過程稱為原語。
用於控制程序的原語有:
1、建立原語。為乙個程式分配乙個工作區和建立乙個程序控制塊,並置該程序為就緒狀態。
2、撤銷原語。乙個程序完成工作後,收回它的工作區和程序控制塊。
3、阻塞原語。程序執行過程中發生等待事件時,把程序狀態改為等待態。
4、喚醒原語。當程序等待的事情發生時,把程序的狀態該為就緒態。
同一佇列中的程序通過程序控制塊中的佇列指標聯絡起來。前乙個程序的程序控制塊中的指標指向它的下乙個程序控制塊的位置。佇列指標指向佇列中第乙個程序的程序控制塊的位置。
佇列中最後乙個程序的程序控制塊中的指標值為「0」。
乙個程序從所在的佇列中退出稱為出隊。
乙個程序排入到乙個指定的佇列中稱為入隊。
系統中負責程序入隊和出隊的工作稱為佇列管理。
由於某些事件的出現,中止現行程序的執行,而由作業系統去處理出現的事件,待適當的時候讓被中止的程序繼續執行,這個過程稱為中斷。引起中斷的事件稱為中斷源。對出現的事件進行處理的程式稱為中斷處理程式。
從中斷事件的性質來說,一般可以分為下述幾類:
1、硬體故障中斷。它是由機器故障造成的。如,電源故障、主存出錯等。
2、程式中斷。這是由於程式執行到某條機器指令時可能出現的各種問題而引起的中斷。如,發現定點運算元溢位、除數為0、位址越界、使用非法指令碼、目態下的使用者使用了特權指令等。
3、外部中斷。這是由各種外部事件引起的中斷。如,按壓了控制板上的乙個中斷鍵、設定的定時時鐘的時間週期到。
4、輸入/輸出中斷。輸入輸出控制系統發現外圍裝置完成了輸入輸出操作而引起的中斷,或在執行輸入輸出操作時通道或外圍裝置產生錯誤而引起的中斷。
5、訪管中斷。它是正在執行的程序為了請求呼叫作業系統的某個功能而執行一條訪管指令所引起的中斷。如,使用者要求分配一台外圍裝置、要求分配一些主存區域、要求啟動外圍裝置讀出一批資料。
前四類中斷不是正在執行的程序所期待的,而是由於外界的原因迫使正在執行的程序被打斷,因此稱為強迫性中斷事件。第五類中斷時正在執行的程序所期待的,它表示正在執行的程序對作業系統有某種需求,故成為自願性中斷事件,在小型和微型計算機中被稱為系統呼叫。
自願中斷事件是有處理器執行指令時根據指令中的操作碼捕俘到的。強迫性中斷事件是由硬體的中斷裝置發現的。通常在處理器執行完一條指令後,硬體的中斷裝置立即檢查有無強迫性中斷事件發生。
無論發生哪類中斷事件,都由硬體的中斷裝置暫停現行程序的執行,而讓作業系統的中斷處理程式占用處理器。這一過程稱為中斷響應。
在單處理器的計算機系統中,整個系統設定乙個用來存放當前執行程序的psw的暫存器,該暫存器稱為程式狀態字暫存器。處理器總是按程式狀態字暫存器中的指示控制程式執行。
三種psw:
1、存放在程式狀態字暫存器中的psw,稱為當前psw。
2、出現中斷事件後,要由作業系統的中斷處理程式占用處理器,讓中斷處理程式處理出現的中斷事件。我們把中斷處理程式的psw稱為新psw。新psw中存放著中斷處理程式的入口位址。
3、中斷處理程式占用處理器前,必須把中斷程序的psw保護好,以便該程序在適當的時候按被中斷時的情況繼續執行。把保護好的被中斷程序的psw稱為舊psw。
中斷處理程式對中斷事件的處理可分兩步進行。第一步是保護好被中斷程序的現場資訊,即把被中斷程序的通用暫存器器和控制暫存器內容以及中斷程序的舊psw儲存起來,這些資訊可以儲存在被中斷程序的程序控制塊中。其目的是保證被中斷者再次執行時能使被中斷時的情況繼續執行。
第二步是根據舊psw中指示的中斷事件進行具體處理。
中斷事件的處理原則:
1、硬體故障中斷事件的處理。排除這類故障必須進行人工干預,因此處理這類事件只能是輸出一些故障資訊。
2、程式中斷事件的處理。程式中斷事件往往與程式的具體編制有關,不同的的使用者對出現的事件可以有不同的處理要求,所以中斷處理程式可把楚翔的事件轉交給使用者自行處理。如果使用者對發生的事件沒有提出處理方法,那麼作業系統就把發生事件的程序名、程式斷點、事件性質等報告給操作員。
3、外部中斷事件的處理。如果使用者用控制板上的中斷鍵請求呼叫系統的某個特定功能,那麼當他按壓了乙個中斷鍵產生乙個外部事件時,處理該事件的程式就根據中斷鍵的編號把處理轉交給乙個特定的例行程式。
4、輸入/輸出中斷事件的處理。輸入輸出中斷事件分「i/o正常結束」和「i/o異常結束」。被啟動的外圍裝置在完成一次資料傳送後都要形成乙個「i/o正常結束」事件,若在資料傳送過程中出現了錯誤或特殊情況,則形成乙個「i/o異常結束」事件。
5、訪管中斷事件的處理。這類中斷事件表示正在執行的程序要呼叫作業系統的功能。中斷處理程式可設定一張「系統呼叫程式入口表」。
中斷處理程式按系統呼叫型別號查這張入口表,找到相應的系統呼叫程式的入口位址,把處理轉交給實現呼叫功能的程式執行。
綜上所述,在多數情況下,中斷處理程式只需要一些保護現場、分析事件順序等原則性的處理,而具體的處理可由適當的例行處程式來完成。因此,中斷處理程式可以建立一些處理事件的程序,具體的處理就由這些程序來實現。
採用批處理系統和分時處理器系統的計算機系統都屬於多道程式設計系統。處理器排程擔負著對處理器的分配工作,它將決定誰能先占用處理器以及一次能占用處理器多長時間。
在批處理作業系統控制下,把若干個使用者作業組織成作業流,讓它們成批進入計算機系統,且把它們存放在磁碟上的專用區域等待處理。在作業系統中,把磁碟上用來存放作業資訊的專用區域成為輸入井。把在輸入井中等待處理的作業稱為後備作業。
任何作業只有被裝入主儲存器後才能執行。從輸入井中選取後備作業裝入主儲存器的工作稱為作業排程。
不同的計算機系統可以採用不同的規則來進行作業排程,但不管怎樣,都必須遵循乙個必要條件,即系統現有的尚未分配的資源可以滿足被選作業的資源要求。只有這樣,才能避免進入主儲存器的作業因得不到資源而無法執行的現象,才能保證系統有較高的吞吐能力。
從就緒程序中選取乙個程序,讓它占用處理器的工作稱為程序排程。
程序占用處理器時,由於各種原因會引起程序狀態的變化而讓出處理器。於是程序排程可以再從就緒程序中選乙個程序執行,使每乙個被裝入主儲存器的作業都能有機會占用處理器執行。當乙個作業完成工作結束時,作業排程又可以從後備作業中選取作業裝入主儲存器且為其建立乙個程序,當它被程序排程選中時便可執行。
所以,作業排程與程序排程相互配合能實現多道作業的並行執行。對任何乙個作業來說,只有先被作業排程選中才有機會去競爭處理器,並且僅當被程序排程選中時才能占用處理器。
計算機作業系統概論複習
三 填空題 1.作業系統提供給使用者程式呼叫的子程式被稱為系統功能呼叫 2.計算機軟體一般是指計算機系統中的程式及其文件 3.分布式作業系統能使系統中若干臺計算機相互合作完成乙個共同的任務。4.作業系統是計算機系統中的一種系統軟體。5.網路作業系統的主要功能是實現各台計算機之間的通訊以及網路中各種資...
計算機作業系統複習
1.作業系統的定義 根據馮 諾依曼的思想,將運算部件 記憶體 輸入和輸出部件等裝置安裝在計算機的主機板上,通過邏輯連線構成計算機硬體系統,要使這些部件能夠充分發揮其效能,盡可能地按人們預期的目的和要求來執行各類程式,就需要一套管理硬體和組織程式有序執行的程式,則這套程式就稱為作業系統。2.作業系統的...
計算機作業系統
三 簡答題 1 程序管理 程序與程式的關係 1 程序是程式的一次執行。2 進城是乙個程式及其資料在處理機上順序執行時所發生的活動。3 程序是程式在乙個資料集合上執行的過程,它是系統進行資源分配和排程的乙個獨立單位。程序的狀態及其特徵 就緒狀態 當程序已分配到除cpu意外的所有必要資源後只要在獲得cp...