天天看點

作業系統概論三

1、可把存儲器分為:寄存器、、主存儲器和高速緩沖存儲器、輔助存儲器(包括錄音帶、軟碟、硬碟、CD光牒等)三個層次。

2、寄存器是計算機系統中價格最昂貴的寄存器。它的存取速度最快,但容量小,一般每個寄存器隻能存儲一個字長的資訊,故隻用來存放臨時的工作資料和控制資訊。常用的寄存器有:(1)指令寄存器:用于存放目前從主存儲器中讀出的指令;

  (2)通用寄存器:用于存放目前參加運作的操作數、運算結果等;

  (3)控制寄存器:用于存放控制資訊以保證程式的正确執行和系統的安全。

 主存儲器:存儲容量較大,存取速度也很快。

 高速緩沖存儲器:存取速度快于主存儲器,但造價要比主存儲器高,因而存儲容量不大。

 輔助存儲器:存儲容量大,可長期存儲,處理器不能直接讀寫,必須把資訊讀到主存儲器中才能被通路。

3、由于作業系統自身必須占用主處理器的一部分存儲空間,用來存放作業系統的程式、資料、管理資訊(PCB)以及作業系統與硬體的接口資訊(新、舊PSW)等,我們把這部分空間稱為系統區;除系統區外的其餘主存空間可用來存放使用者的的程式和資料,稱為使用者區。存儲管理是對主存儲器中的使用者區域進行管理,包括主存空間的配置設定與回收、主存空間的共享與保護、位址轉換以及主存空間的擴充等工作。

4、絕對位址:把主存空間的位址編号稱為主存儲器的絕對位址,與絕對位址對應的主存空間稱為實體位址空間

5、邏輯位址:為了友善使用者,每個使用者都可以認為自己作業的程式和資料存放在一組從“0”位址開始的連續空間中。使用者程式中使用的位址稱為邏輯位址,與邏輯位址對應的存儲空間稱為邏輯位址空間。

6、把邏輯位址轉換成絕對位址的工作稱為重定位或位址轉換。重定位的方式可以有靜态重定位和動态重定位兩種。

7、靜态重定位:在裝入一個作業時,把作業中的指令位址和資料位址全部轉換成絕對位址。由于位址轉換工作是在作業執行前集中一次完成的,是以在作業執行過程中就無須再進行位址轉換工作,這種位址轉換方式稱為靜态重定位。

8、動态重定位:需要由軟體和硬體互相配合來實作,在作業執行過程中,由硬體的位址轉換機構動态的進行位址轉換,在執行指令時隻要把邏輯位址與基址寄存器的值相加就可得到絕對位址,這種定位方式是在執行指令過程中進行的,是以稱為動态重定位。

9、單使用者連續存儲管理是一種最簡單的存儲管理方式,在這種管理方式下,作業系統占了一部分主存空間,其餘剩下的主存空間都配置設定給一個作業使用,即在任何時刻主存儲器中最多隻有一個作業,是以不必考慮作業在主存儲器中的移動問題,于是可采用靜态重定位方式進行位址轉換,即在作業被裝入到主存儲器時一次性的完成位址轉換。

10、處理器在執行指令時要檢查其絕對位址知否≥界限位址,且≤最大位址。若絕對位址在規定的範圍内,則可執行,否則産生一個“位址越界”中斷事件,由作業系統進行處理,以達到存儲保護的目的。

11、固定分區存儲管理是把主存儲中可配置設定的使用者區域預先劃分成若幹個連續區,每一個連續區稱為一個分區。一旦劃分好後,主存儲器中分區的個數就固定了。每個分區的大小可以相同,也可以不同,但每個分區的大小不變。每個分區可以裝入一個作業,是以當有多個分區時,就可同時在每個分區中裝入一個作業,但不允許多個作業同時存放在同一個分區中。這種管理方式稱為固定分區存儲管理

12、固定分區存儲管理主存空間的配置設定與回收:設定“分區配置設定表”用來說明各分區的配置設定和使用情況。表中指出各分區的起始位址和長度,并為每個分區設定一個标志位。當标志位為“0”時,表示分區空閑,當标志位非“0”時,表示分區已被占用。

13、固定分區存儲管理位址轉換:由于固定分區管理方式是預先把主存劃分成若幹個區,每個區隻能用來裝入一個作業,是以作業在執行過程中是不會改變存放區域的,于是可以采用靜态重定位的方式把作業裝入到所配置設定的分區中去。

14、固定分區存儲管理存儲保護:設定下限寄存器和上限寄存器,當一個已經被裝入主存儲器的作業得到處理器運作時,程序排程應記錄目前運作作業所在的分區号,且把該分區的下限位址和上線位址分别送入下限寄存器和上限寄存器中處理器執行改作業的指令時必須核對:下限位址≦絕對位址<上限位址。如果不等式不成立,則為防止破壞其他分區中的資訊,硬體産生“位址越界”中斷事件,停止執行該指令,已達到存儲保護的目的。

15、提高固定分區存儲管理的主存空間的使用率:(1)根據經常出現的作業的大小和數量來劃分分區,盡可能使各個分區被充分利用;(2)劃分分區時按分區的大小順序排列,低位址部分是較小的分區,高位址部分是較大的分區;(3)按作業對主存空間的需求量排成多個作業隊列。

注:采用多個作業隊列的固定分區法能有效地防止小作業進入大分區,進而減少閑置的空間量。但是劃分分區時應特别注意可能出現的作業大小和作業出現的頻率,如果劃分不得當,會造成某個作業隊列經常是空隊列,反而影響分區的使用效率。

16、可變分區存儲管理不是預先把主存儲器中的使用者區域劃分成分區,而是在作業要求裝入主存儲器時,根據作業需要的主存空間的大小和當時主存空間使用情況來決定是否為作業配置設定一個分區。是以分區的長度不是預先固定的,而是按作業的實際需求來劃分的;分區的個數也不是預先确定的,而是由裝入的作業數決定的。

17、可變分區存儲管理主存空間的配置設定:(1)當有作業要裝入主存儲器時,根據作業對主存空間的需要量,從空閑區中劃出一個與作業長度一緻的分區來裝入作業,剩餘部分仍為空閑區;(2)當空閑區能滿足需求時,作業可裝入,當作業對主存空間的需要量超過空閑區長度時,則作業暫時不能裝入。

18、可變分區存儲管理主存空間的回收:(1)當作業結束時,它的占用分區被收回。這個空閑區又可以根據新作業的大小重新用于配置設定,是以主存中的已占分區和空閑區的數目和大小都是在變化的;(2)可以用“空閑區表”來記錄和管理,記錄空閑區的起始位址和長度。

19、可變分區存儲管理的主存配置設定算法:(1)最先适應配置設定算法;(2)最優适應配置設定算法;(3)最壞适應配置設定算法。

20、最先适應配置設定算法:每次配置設定時總是順序查找空閑區表,找到第一個能滿足作業長度要求的空閑區,分割這個能找到的空閑區,一部分配置設定給作業,另一部分仍作為空閑區。

21、最優适應配置設定算法:按作業要求從所有的空閑區中挑選一個能滿足作業要求的最小空閑區,這樣可保證不去分割一個更大的區域,使裝入大作業時比較容易滿足。

22、最壞适應配置設定算法:總是挑選一個最大的空閑區分割一部分給作業使用,使剩下的部分不至于太小,仍可供配置設定使用。

23、可變分區存儲管理位址轉換:(1)采用動态重定位方式裝入作業,也就是每讀一條指令,都要變換一次位址;(2)變換要靠硬體支援,主要是兩個寄存器:基址寄存器,限長寄存器以及一些加法線路、比較線路等;(3)基址寄存器存放作業所占分區的起始位址,限長寄存器則存放作業所占分區的最大位址,這兩個值确定了一個分區的位置和大小。(4)作業執行過程中,處理器每執行一條指令,都把該指令中的邏輯位址與基址寄存器中的值相加,即得到絕對位址。

24、可變分區存儲管理存儲保護:位址轉換時将邏輯位址加上基址寄存器中的值就得到了絕對位址,基址寄存器内容≤絕對位址≤限長寄存器内容,滿足上式,表示通路位址合法否則形成“位址越界”中斷,達到存儲保護的目的。

25、把作業從一個存儲區域移到另一個存儲區域的工作稱為移動。

26、采用移動技術有以下兩個目的(優點):(1)集中分散的空閑區;(2)便于作業動态擴充主存。

27、采用移動技術需注意的問題(缺點):(1)移動會增加系統開銷;(2)移動是有條件的。移動一道作業時,應先判定它是否與外圍裝置交換資訊,若為否,則可以移動改作業,若為是,則暫時不能不能移動改作業,必須等資訊交換結束後才可移動。

注:于是,在采用移動技術的系統中,應盡可能的減少移動,以降低系統開銷,提高系統效率。為此,可以改變作業裝入主存儲器的方式來達到減少移動的目的。采用兩頭裝入作業的方式可減少移動的作業數和資訊量。

28、頁式存儲管理是把主存儲器分成大小相等的許多區,每個區成為一塊。與此對應,編制程式的邏輯位址也分成頁,頁的大小與塊的大小相等。

29、頁式存儲管理把主存儲器的可配置設定區域按頁面大小分成若幹塊,主存空間按塊為機關進行配置設定。可用一張主存配置設定表來記錄已配置設定的塊和尚未配置設定的塊以及目前剩餘的空閑塊數。由于塊的大小是固定的,是以可以用一張“位示圖”來構成主存配置設定表。

30、式主存空間的配置設定:進行主存配置設定時,先查空閑塊數能否滿足作業要求。若不能滿足,則作業不能裝入。若能滿足,則找出為“0”的一些位,智商占用标志“1”,從空閑塊數中減去本次占用塊數,按找到的位計算出對應的塊号,作業可裝到這些塊中。根據為“0”的位所在的字号和位号,按如下公式可計算出對應的塊号:塊号=字号×字長﹢位号

31、頁式主存空間的回收:當一個作業執行結束時,應收回作業所占的主存塊。根據歸還的塊号計算出該塊在位示圖中對應的位置,将占用标志改為“0”,再把歸還塊數加到空閑塊數中。假定歸還塊的塊号為i,則在位示圖中對應的位置為:字号=【i/字長】,位号=i mod 字長   注:其中【】表示取i被字長除後的整數部分,而mod表示取其餘數部分。

32、當主存中空閑塊數能滿足作業要求時,存儲管理就找出這些空閑塊配置設定給作業,同時為作業建立一張頁表,指出邏輯位址中頁号與主存中塊号的對應關系。頁表的長度由作業所占頁的多少而定。

33、頁式存儲管理的位址轉換:采用動态重定位的方式裝入作業,作業執行時由硬體的位址轉換機構來完成從邏輯位址到絕對位址的轉換工作。在作業執行過程中,處理器每執行一條指令時,都要讓位址轉換機構按邏輯位址中的頁号查頁表,得到該頁對應的主存塊号,再按邏輯位址中的頁内位址換算出欲通路的主存單元的絕對位址。由于塊的長度都是相等的,是以位址轉換的一般公式為:絕對位址=塊号*塊長+頁内位址

34、利用高速緩沖存儲器存放頁表的一部分,把存放在高速緩沖存儲器中的部分頁表稱為快表。采用快表的方法後,使得位址轉換的時間大大下降。

35、頁式存儲管理有利于實作多個作業共享程式和資料。共享資訊在主存中隻有一個副本,頁表中有關表目指向共享資訊所在的主存塊。頁的共享可以節省主存空間,但實作資訊共享必須解決共享資訊的保護問題。通常的辦法是在頁表中增加一些标志,指出該頁的資訊可讀/寫或隻讀或可執行,等等。

36、當使用者作業進入計算機系統時,不把作業的全部資訊同時裝入主存儲器,而是将其中一部分先裝入主存儲器,另一部分暫時存放在磁盤上,作業執行過程中要用到那些不在主存儲器中的資訊時,再把它們裝到主存儲器中。當主存空間小于作業需求量時,作業也能執行,這就使得主存空間能被充分利用,進而使用者編制程式時可以不必考慮主存儲器的實際容量,允許使用者的邏輯位址空間大于主存儲器的絕對位址空間,對使用者來說,好像計算機系統具有一個容量很大的主存儲器,稱為虛拟存儲器。

37、頁式虛拟存儲管理的實作原理:是在頁式存儲管理的基礎上實作的,首先把作業資訊作為副本存放在磁盤上,作業排程選中一個作業時,先把作業的部分資訊裝入主存儲器。作業執行時,若所通路的頁面已經在主存中,則進行位址轉換,得到絕對位址;否則産生“缺頁中斷”,由作業系統把目前所需的頁面裝入主存。

38、為此需要對頁表進行改造,首先應在頁表中指出哪些頁已在主存儲器中,哪些頁還沒裝入主存儲器,并且指出每一頁副本在磁盤上的位置,例如,可将頁表修改成如下形式:

頁号 标志位 主存塊号 磁盤上的位置

注:标志位用來指出對應頁是否已經裝入主存儲器。如果某頁對應欄的标志位為“1”,則表示該頁已經在主存儲器中。此時從“主存塊号”中可得知該頁在主存儲器中占用的是哪一塊。如果标志位為“0”,則表示該頁不在主存儲器中。這時根據在磁盤上的位置可從磁盤上找到該頁資訊,必要時把它裝入主存儲器。

39、發生“缺頁中斷”時,就要從輔存上把所需要的頁面調入記憶體。如果如果欲調入一頁時,主存儲器中已沒有空閑塊,則必須先調出已在主存儲器中的某一頁,再将目前所需的頁調入同時對頁表做相應的修改。采用某種算法選擇一頁暫時調出,把它存放到磁盤上去,讓出主存空間,用來存放目前要使用的頁面,這一過程稱為頁面排程。

40、剛被調出的頁又立即要用,因而又要把它調入;而調入不久又被調出;調出不久又再次被調入。如此反複,使排程非常頻繁,以至于使大部分時間都花費在來回排程上,這種現象稱為抖動,又稱颠簸。

41、為減少和避免抖動現象,應該選擇一種好的排程算法。常用的頁面排程算法:(1)先進先出排程算法FIFO(總是把先進入主存儲器的頁面先調出);(2)最近最久未使用排程算法LRU(距目前最長時間内沒有使用過的頁面先調出);(3)最近最不經常使用排程算法LFU(在最近一段時間内使用次數最少的頁面先調出);(4)最佳置換算法(OPT)等。

42、當一張頁表非常龐大時,可以建立多級頁表。例如,建立二級頁表,第一級是頁面組表(稱為一級頁表),第二級是組内頁表(稱為二級頁表)。一級頁表指出二級頁表的存放位址,二級頁表指出頁的存放位址。

繼續閱讀