操作系統(tǒng)(operating system , OS)是計(jì)算機(jī)系統(tǒng)中必不可少的系統(tǒng)軟件。它是計(jì)算機(jī)系統(tǒng)中各種資源的管理者和各種活動(dòng)的組織者、指揮者。它使整個(gè)計(jì)算機(jī)系統(tǒng)協(xié)調(diào)一致且有效地工作。通過(guò)本課程的學(xué)習(xí),我們將知道操作系統(tǒng)要做什么、怎么做和為什么要這樣做。
學(xué)習(xí)操作系統(tǒng),首先我們應(yīng)該知道操作系統(tǒng)的概念。本章主要講述了以下幾個(gè)問(wèn)題。
一、什么是操作系統(tǒng)
二、操作系統(tǒng)的形成
三、操作系統(tǒng)的類型
四、操作系統(tǒng)的功能
一、什么是操作系統(tǒng)
在回答這個(gè)問(wèn)題之前,我們先來(lái)了解一下什么是計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)是按用戶的要求接收和存儲(chǔ)信息、自動(dòng)進(jìn)行數(shù)據(jù)處理并輸出結(jié)果信息的系統(tǒng)。
計(jì)算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)組成。軟硬件系統(tǒng)的組成部分就是計(jì)算機(jī)系統(tǒng)的資源,當(dāng)不同的用戶使用計(jì)算機(jī)時(shí)都要占用系統(tǒng)資源并且有不同的控制需求。
操作系統(tǒng)就是計(jì)算機(jī)系統(tǒng)的一種系統(tǒng)軟件,由它統(tǒng)一管理計(jì)算機(jī)系統(tǒng)的資源和控制程序的執(zhí)行。
操作系統(tǒng)的設(shè)計(jì)目標(biāo)一是使計(jì)算機(jī)系統(tǒng)使用方便。二是使得計(jì)算機(jī)系統(tǒng)能高效地工作。
二、操作系統(tǒng)的形成
早期沒有操作系統(tǒng)→原始匯編系統(tǒng)→管理程序→操作系統(tǒng) 可以看到,操作系統(tǒng)是隨著計(jì)算機(jī)硬件的發(fā)展和應(yīng)用需求的推動(dòng)而形成的。
三、操作系統(tǒng)的類型
按照操作系統(tǒng)提供的服務(wù),大致可以把操作系統(tǒng)分為以下幾類:
批處理操作系統(tǒng)、分時(shí)操作系統(tǒng)、實(shí)時(shí)操作系統(tǒng)、網(wǎng)絡(luò)操作系統(tǒng)和分布式操作系統(tǒng)。其中批處理操作系統(tǒng)、分時(shí)操作系統(tǒng)、實(shí)時(shí)操作系統(tǒng)是基本的操作系統(tǒng)(加亮)
1、批處理操作系統(tǒng)按照用戶預(yù)先規(guī)定好的步驟控制作業(yè)的執(zhí)行,實(shí)現(xiàn)計(jì)算機(jī)操作的自動(dòng)化。又可分為批處理單道系統(tǒng)和批處理多道系統(tǒng)。單道系統(tǒng)每次只有一個(gè)作業(yè)裝入計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器運(yùn)行,多個(gè)作業(yè)可自動(dòng)、順序地被裝入運(yùn)行。批處理多道系統(tǒng)則允許多個(gè)作業(yè)同時(shí)裝入主存儲(chǔ)器,中央處理器輪流地執(zhí)行各個(gè)作業(yè),各個(gè)作業(yè)可以同時(shí)使用各自所需的外圍設(shè)備,這樣可以充分利用計(jì)算機(jī)系統(tǒng)的資源,縮短作業(yè)時(shí)間,提高系統(tǒng)的吞吐率。
2、分時(shí)操作系統(tǒng),這種系統(tǒng)中,一個(gè)計(jì)算機(jī)系統(tǒng)與許多終端設(shè)備連接,分時(shí)系統(tǒng)支持多個(gè)終端用戶,同時(shí)以交互方式使用計(jì)算機(jī)系統(tǒng),為用戶在測(cè)試、修改和控制程序執(zhí)行方面提供了靈活性。分時(shí)系統(tǒng)的主要特點(diǎn)是同時(shí)性、獨(dú)立性、及時(shí)性和交互性。
3、實(shí)時(shí)操作系統(tǒng)能使計(jì)算機(jī)系統(tǒng)接收到外部信號(hào)后及時(shí)進(jìn)行處理,并在嚴(yán)格的規(guī)定時(shí)間內(nèi)完成處理,且給出反饋信號(hào)。它是較少有人為干預(yù)的監(jiān)督和控制系統(tǒng)。實(shí)時(shí)系統(tǒng)對(duì)可靠性和安全性要求極高,不強(qiáng)求系統(tǒng)資源的利用率。
4、網(wǎng)絡(luò)操作系統(tǒng)可以把若干計(jì)算機(jī)聯(lián)合起來(lái),實(shí)現(xiàn)各臺(tái)計(jì)算機(jī)之間的通信及網(wǎng)絡(luò)中各種資源的共享,像我們現(xiàn)在使用的Windows ,UNIX和Linux等操作系統(tǒng)都是網(wǎng)絡(luò)操作系統(tǒng)。
5、分布式操作系統(tǒng)的網(wǎng)絡(luò)中各臺(tái)計(jì)算機(jī)沒有主次之分,在任意兩臺(tái)計(jì)算機(jī)間的可進(jìn)行信息交換和資源共享。這一點(diǎn)上分布式操作系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)差別不大,他們的本質(zhì)區(qū)別在于:分布式操作系統(tǒng)能使系統(tǒng)中若干計(jì)算機(jī)相互協(xié)作完成一個(gè)共同的任務(wù)。這使得各臺(tái)計(jì)算機(jī)組成一個(gè)完整的,功能強(qiáng)大的計(jì)算機(jī)系統(tǒng)。
四、操作系統(tǒng)的功能
從資源管理的觀點(diǎn)出發(fā),操作系統(tǒng)功能可分為五大部分:處理器管理、存儲(chǔ)管理、文件管理、設(shè)備管理和作業(yè)管理。
計(jì)算機(jī)系統(tǒng)是由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成,操作系統(tǒng)是軟件系統(tǒng)的一個(gè)組成部分,它是直接在硬件系統(tǒng)的基礎(chǔ)上工作的,所以在研究操作系統(tǒng)之前,先必須對(duì)計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)有一個(gè)基本的了解,本章就是講述計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的基本知識(shí)。
本章的考核知識(shí)點(diǎn)是:
1.計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu)2.硬件環(huán)境 3.操作系統(tǒng)結(jié)構(gòu)
學(xué)習(xí)本章要求:了解計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu),有關(guān)硬件的I/O中斷和存儲(chǔ)結(jié)構(gòu),硬件的保護(hù)措施;有關(guān)操作系統(tǒng)的結(jié)構(gòu),操作系統(tǒng)提供的使用接口。
重點(diǎn) 是:硬件環(huán)境和操作系統(tǒng)的結(jié)構(gòu)
一、計(jì)算機(jī)系統(tǒng)的層次結(jié)構(gòu) ( 識(shí)記 )
現(xiàn)代的通用計(jì)算機(jī)系統(tǒng)是由硬件和軟件組成的一種層次式結(jié)構(gòu),最內(nèi)層是硬件系統(tǒng),最外層是使用計(jì)算機(jī)系統(tǒng)的人,人與硬件系統(tǒng)之間是軟件系統(tǒng)
本章考核知識(shí)點(diǎn):1.多道程序設(shè)計(jì) 2.進(jìn)程 3.進(jìn)程狀態(tài) 4.進(jìn)程控制塊 5.進(jìn)程隊(duì)列 6.可再入程序 7.中斷及中斷響應(yīng) 8.中斷優(yōu)先級(jí) 9.進(jìn)程調(diào)度
自學(xué)要求:通過(guò)本章學(xué)習(xí)應(yīng)該掌握多道程序設(shè)計(jì)是如何提高計(jì)算機(jī)系統(tǒng)效率的;進(jìn)程與程序有什么區(qū)別;進(jìn)程的基本狀態(tài)以及狀態(tài)變化;進(jìn)程隊(duì)列及進(jìn)程調(diào)度策略;中斷的作用。
重點(diǎn)是:多道程序設(shè)計(jì);進(jìn)程的定義和屬性;進(jìn)程調(diào)度策略。
一、 多道程序設(shè)計(jì)( 領(lǐng)會(huì) )
1、什么是多道程序設(shè)計(jì)。
讓多個(gè)計(jì)算問(wèn)題同時(shí)裝入一個(gè)計(jì)算機(jī)系統(tǒng)的主存儲(chǔ)器并行執(zhí)行,這種設(shè)計(jì)技術(shù)稱“ 多道程序設(shè)計(jì) ”,這種計(jì)算機(jī)系統(tǒng)稱“多道程序設(shè)計(jì)系統(tǒng)” 或簡(jiǎn)稱“多道系統(tǒng)”。
存儲(chǔ)保護(hù) :在多道程序設(shè)計(jì)的系統(tǒng)中,主存儲(chǔ)器中同時(shí)存放了多個(gè)作業(yè)的程序。為避免相互干擾,必須提供必要的手段使得在主存儲(chǔ)器中的各道程序只能訪問(wèn)自己的區(qū)域。這樣,每道程序執(zhí)行時(shí),都不會(huì)破壞其他各道的程序和數(shù)據(jù)。特別是當(dāng)某道程序發(fā)生錯(cuò)誤的時(shí),也不至于影響其它的程序。
程序浮動(dòng) :在多道程序設(shè)計(jì)系統(tǒng)中,對(duì)程序有一些特殊要求,也就是說(shuō),程序可以隨機(jī)地從主存的一個(gè)區(qū)域移動(dòng)到另一個(gè)區(qū)域,程序被移動(dòng)后仍絲毫不影響它的執(zhí)行,這種技術(shù)稱為“程序浮動(dòng)”。
在多道程序設(shè)計(jì)的系統(tǒng)中,有三點(diǎn)基本要求:
用“存儲(chǔ)保護(hù)”的方法保證各道程序互不侵犯;
用“程序浮動(dòng)”技術(shù)讓程序能靈活地改變存放區(qū)域且能正確執(zhí)行;
必須對(duì)資源按一定的策略分配和調(diào)度。
2、 多道程序設(shè)計(jì) 利用了系統(tǒng)與外圍設(shè)備的并行工作能力,從而提高工作效率。具體表現(xiàn)為:
提高了處理器的利用率;
充分利用外圍設(shè)備資源:計(jì)算機(jī)系統(tǒng)配置多種外圍設(shè)備,采用多道程序設(shè)計(jì)并行工作時(shí),可以將使用不同設(shè)備的程序搭配在一起同時(shí)裝入主存儲(chǔ)器,使得系統(tǒng)中各外圍設(shè)備經(jīng)常處于忙碌狀態(tài),系統(tǒng)資源被充分利用;
發(fā)揮了處理器與外圍設(shè)備以及外圍設(shè)備之間的并行工作能力;
從總體上說(shuō),采用多道程序設(shè)計(jì)技術(shù)后,可以有效地提高系統(tǒng)中資源的利用率,增加單位時(shí)間內(nèi)的算題量,從而提高了吞吐率。
3、 多道程序設(shè)計(jì) 對(duì)算題量和算題時(shí)間的影響。 采用多道程序設(shè)計(jì)能改變系統(tǒng)資源的使用情況,提高系統(tǒng)效率。但是應(yīng)注意以下兩個(gè)問(wèn)題:
可能延長(zhǎng)程序的執(zhí)行時(shí)間;
并行工作道數(shù)與系統(tǒng)效率不成正比。從表面上看,增加并行工作道數(shù)就可提高系統(tǒng)效率,但實(shí)際上并行工作道數(shù)與系統(tǒng)效率是不成正比,因?yàn)椴⑿械牡罃?shù)要根據(jù)系統(tǒng)配置的資源和用戶對(duì)資源的要求而定:
(1)主存儲(chǔ)器的大小限制了可同時(shí)裝入的程序數(shù)量;
(2)外圍設(shè)備的數(shù)量也是一個(gè)制約條件;
(3)多個(gè)程序同時(shí)要求使用同一資源的情況也會(huì)經(jīng)常發(fā)生。
總之,多道程序設(shè)計(jì)能提高系統(tǒng)資源的使用效率,增加單位時(shí)間的算題量;但是對(duì)每個(gè)計(jì)算問(wèn)題來(lái)說(shuō),從算題開始到全部完成所需要的時(shí)間可能延長(zhǎng),另外在確定并行工作道數(shù)時(shí)應(yīng)綜合系統(tǒng)的資源配置和用戶對(duì)資源的要求。
二、 進(jìn)程( 領(lǐng)會(huì) )
1、 進(jìn)程 的定義:把一個(gè)程序在一個(gè)數(shù)據(jù)集上的一次執(zhí)行稱為一個(gè)“進(jìn)程”。
2、 進(jìn)程是由 程序 、 數(shù)據(jù)集 和 進(jìn)程控制塊 三部分組成。
我們舉一個(gè)例子,比如在有一個(gè)用戶程序notepad.exe(記事本),當(dāng)它存放在磁盤上時(shí),就是一個(gè)程序,在windows操作系統(tǒng)下運(yùn)行它時(shí),就會(huì)在內(nèi)存中建立一個(gè)記事本程序的進(jìn)程,而我們?cè)谟浭卤局芯庉嫷漠?dāng)前文字就是這個(gè)進(jìn)程的數(shù)據(jù)集,操作系統(tǒng)會(huì)為當(dāng)前的進(jìn)程設(shè)置一個(gè)進(jìn)程控制塊。如果我們?cè)俅蜷_一個(gè)記事本程序的窗口,就會(huì)建立另一個(gè)進(jìn)程,此時(shí)運(yùn)行的是同一個(gè)程序,但存在兩個(gè)進(jìn)程,第二個(gè)窗口中的編輯內(nèi)容就是第二個(gè)進(jìn)程的數(shù)據(jù)集。
3、 進(jìn)程 與 程序 的區(qū)別及關(guān)系。程序是靜止的,進(jìn)程是動(dòng)態(tài)的。進(jìn)程包括程序和程序處理的對(duì)象(數(shù)據(jù)集),進(jìn)程能得到程序處理的結(jié)果。進(jìn)程和程序并非一一對(duì)應(yīng)的,一個(gè)程序運(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)程。
三、 進(jìn)程狀態(tài)( 領(lǐng)會(huì) )
1、 進(jìn)程的 三種基本狀態(tài) .通常,根據(jù)進(jìn)程執(zhí)行過(guò)程中不同時(shí)刻的狀態(tài),可歸納為三種基本狀態(tài):
等待態(tài) :等待某個(gè)事件的完成;
就緒態(tài) :等待系統(tǒng)分配處理器以便運(yùn)行;
運(yùn)行態(tài) :占有處理器正在運(yùn)行。
2、進(jìn)程的狀態(tài)變化
進(jìn)程在執(zhí)行中狀態(tài)會(huì)不斷地改變,每個(gè)進(jìn)程在任何時(shí)刻總是處于上述三種基本狀態(tài)的某一種基本狀態(tài),進(jìn)程狀態(tài)之間轉(zhuǎn)換關(guān)系如下圖所示:
運(yùn)行態(tài)→等待態(tài) 往往是由于等待外設(shè),等待主存等資源分配或等待人工干預(yù)而引起的。
等待態(tài)→就緒態(tài) 則是等待的條件已滿足,只需分配到處理器后就能運(yùn)行。
運(yùn)行態(tài)→就緒態(tài) 不是由于自身原因,而是由外界原因使運(yùn)行狀態(tài)的進(jìn)程讓出處理器,這時(shí)候就變成就緒態(tài)。例如時(shí)間片用完,或有更高優(yōu)先級(jí)的進(jìn)程來(lái)?yè)屨继幚砥鞯取?/p>
就緒態(tài)→運(yùn)行態(tài) 系統(tǒng)按某種策略選中就緒隊(duì)列中的一個(gè)進(jìn)程占用處理器,此時(shí)就變成了運(yùn)行態(tài)。
進(jìn)程有四個(gè)基本屬性:
多態(tài)性 從誕生、運(yùn)行,直至消滅。
多個(gè)不同的進(jìn)程可以包括相同的程序
三種基本狀態(tài) 它們之間可進(jìn)行轉(zhuǎn)換
并發(fā)性 并發(fā)執(zhí)行的進(jìn)程輪流占用處理器
四、進(jìn)程控制塊( 領(lǐng)會(huì) )
1、 進(jìn)程控制塊 的基本內(nèi)容。 通常進(jìn)程控制塊包含四類信息:
標(biāo)志信息 含唯一的進(jìn)程名
說(shuō)明信息 有進(jìn)程狀態(tài)、等待原因、進(jìn)程程序存放位置和進(jìn)程數(shù)據(jù)存放位置
現(xiàn)場(chǎng)信息 包括通用、控制和程序狀態(tài)字寄存器的內(nèi)容
管理信息 存放程序優(yōu)先數(shù)和隊(duì)列指針
2、 進(jìn)程控制塊 的作用
進(jìn)程控制塊(Process Control Block,簡(jiǎn)稱PCB),是操作系統(tǒng)為進(jìn)程分配的用于標(biāo)志進(jìn)程,記錄各進(jìn)程執(zhí)行情況的。進(jìn)程控制塊是進(jìn)程存在的標(biāo)志,它記錄了進(jìn)程從創(chuàng)建到消亡動(dòng)態(tài)變化的狀況,進(jìn)程隊(duì)列實(shí)際也是進(jìn)程控制塊的鏈接。操作系統(tǒng)利用進(jìn)程控制塊對(duì)進(jìn)程進(jìn)行控制和管理。
進(jìn)程控制塊的作用有:
(1)記錄進(jìn)程的有關(guān)信息,以便操作系統(tǒng)的進(jìn)程調(diào)度程序?qū)M(jìn)程進(jìn)行調(diào)度。這些信息包括標(biāo)志信息、說(shuō)明信息、現(xiàn)場(chǎng)信息和管理信息等;
(2)標(biāo)志進(jìn)程的存在,進(jìn)程控制塊是進(jìn)程存在的唯一標(biāo)志
五、進(jìn)程隊(duì)列( 領(lǐng)會(huì) )
1、 進(jìn)程隊(duì)列 的鏈接。
在多道程序設(shè)計(jì)的系統(tǒng)中往往會(huì)同時(shí)創(chuàng)建多個(gè) 進(jìn)程 .在單處理器的情況下,每次只能讓一個(gè)進(jìn)程運(yùn)行,其他的進(jìn)程處于就緒狀態(tài)或等待狀態(tài)。為了便于管理,經(jīng)常把處于相同狀態(tài)的進(jìn)程鏈接在一起,稱“進(jìn)程隊(duì)列”,由于 進(jìn)程控制塊 能標(biāo)志進(jìn)程的存在和動(dòng)態(tài)刻畫進(jìn)程的特性,因此, 進(jìn)程隊(duì)列 可以用 進(jìn)程控制塊 的連接來(lái)形成。鏈接的方式有兩種:?jiǎn)蜗蜴溄雍碗p向鏈接。
2、 進(jìn)程基本隊(duì)列
就緒隊(duì)列 :由若干就緒進(jìn)程按一定次序鏈接起來(lái)的隊(duì)列。
等待隊(duì)列 :把等待資源或等待某些事件的進(jìn)程排列的隊(duì)列
3、進(jìn)程的入隊(duì)和出隊(duì)。
出隊(duì)和入隊(duì) :當(dāng)發(fā)生的某個(gè)事件使一個(gè)進(jìn)程的狀態(tài)發(fā)生變化時(shí),這個(gè)進(jìn)程就要退出所在的某個(gè)隊(duì)列而排入到另一個(gè)隊(duì)列中去。
出隊(duì) :一個(gè)進(jìn)程從所在的隊(duì)列退出的操作稱為出隊(duì)
入隊(duì) :一個(gè)進(jìn)程排入到一個(gè)指定的隊(duì)列的操作稱為入隊(duì)。
系統(tǒng)中負(fù)責(zé)進(jìn)程入隊(duì)和出隊(duì)的工作稱為隊(duì)列管理。
無(wú)論單向鏈接還是雙向鏈接,解決入,出隊(duì)問(wèn)題,都是首先找到該隊(duì)列的隊(duì)首指針,沿鏈找出要入隊(duì)的進(jìn)程以及它要插入的位置,或找出要出隊(duì)的進(jìn)程,然后修改本進(jìn)程指針(入隊(duì)情況)和相鄰進(jìn)程的有關(guān)指針值即可。
六、可再入程序( 識(shí)記 )
(1) 什么是 可再入程序 . 一個(gè)能被 多個(gè)用戶同時(shí)調(diào)用 的程序稱做“ 可再入 ”的程序。
(2) 可再入程序的性質(zhì)。
可再入程序必須是純代碼,在執(zhí)行時(shí)自身不改變;
一個(gè)可再入程序要求調(diào)用者提供工作區(qū),以保證程序以同樣方式為各用戶服務(wù)。
編譯程序 和 操作系統(tǒng)程序 通常都是“可再入”程序,能同時(shí)被不同用戶調(diào)用而構(gòu)成不同的進(jìn)程。
七、中斷及中斷響應(yīng)( 領(lǐng)會(huì) )
1、 中斷 的定義。
一個(gè)進(jìn)程占有處理器運(yùn)行時(shí),由于自身或者外界的原因(出現(xiàn)了事件)使運(yùn)行被打斷,讓操作系統(tǒng)處理所出現(xiàn)的事件,到適當(dāng)?shù)臅r(shí)候再讓被打斷的進(jìn)程繼續(xù)運(yùn)行,這個(gè)過(guò)程稱為“中斷”。
2、 中斷 的類型。
從中斷事件的性質(zhì)出發(fā),中斷可以分為兩大類:
強(qiáng)迫性中斷事件 包括硬件故障中斷,程序性中斷,外部中斷和輸入輸出中斷等
自愿性中斷事件 是由正在運(yùn)行的進(jìn)程執(zhí)行一條訪管指令用以請(qǐng)求系統(tǒng)調(diào)用而引起的中斷,這種中斷也稱為“訪管中斷”。
自愿中斷 的斷點(diǎn)是確定的,而 強(qiáng)迫性中斷 的斷點(diǎn)可能發(fā)生在任何位置。
3、中斷的響應(yīng)和處理。
中斷響應(yīng) (硬件即中斷裝置操作)
處理器每執(zhí)行一條指令后,硬件的中斷位置立即檢查有無(wú)中斷事件發(fā)生,若有中斷事件發(fā)生,則暫?,F(xiàn)行進(jìn)程的執(zhí)行,而讓操作系統(tǒng)的中斷處理程序占用處理器,這一過(guò)程稱為“中斷響應(yīng)”。
中斷響應(yīng)過(guò)程中,中斷裝置要做以下三項(xiàng)工作:
是否有中斷事件發(fā)生
判別自愿性中斷,只要檢查操作碼是否為訪管指令。
判別強(qiáng)迫性中斷,則要檢查中斷寄存器內(nèi)容。若為0,則無(wú)中斷;若非0,則表示有中斷事件發(fā)生。
若有中斷發(fā)生,保護(hù)斷點(diǎn)信息
每個(gè)程序都有一個(gè)程序狀態(tài)字(PSW)來(lái)反映本狀態(tài)的執(zhí)行狀態(tài),如基本狀態(tài)、中斷碼和中斷屏蔽位等內(nèi)容。處理器設(shè)有一個(gè)“程序狀態(tài)字寄存器”用來(lái)存放當(dāng)前運(yùn)行程序的PSW.程序狀態(tài)字可分為當(dāng)前PSW、舊PSW和新PSW.
當(dāng)出現(xiàn)中斷事件后,把被中斷進(jìn)程的PSW保存為舊PSW,即完成斷點(diǎn)信息保護(hù)。
啟動(dòng)操作系統(tǒng)的中斷處理程序工作
中斷裝置通過(guò)“交換PSW”過(guò)程完成此項(xiàng)任務(wù),即把出現(xiàn)的中斷事件存放到當(dāng)前PSW中斷碼位置,然后把該當(dāng)前PSW保存為舊PSW,再把操作系統(tǒng)中斷處理程序的新PSW送到程序狀態(tài)字寄存器中,成為當(dāng)前的PSW.
中斷處理 ( 軟件即操作系統(tǒng)操作 )
操作系統(tǒng)的中斷處理程序?qū)χ袛嗍录M(jìn)行處理時(shí),大致要做三方面的工作:
保護(hù)被中斷進(jìn)程的現(xiàn)場(chǎng)信息
把中斷時(shí)的通用寄存器,控制寄存器內(nèi)容及舊PSW保存到被中斷進(jìn)程的進(jìn)程控制塊中。
分析中斷原因
根據(jù)舊PSW的中斷碼可知發(fā)生該中斷的具體原因。
處理發(fā)生的中斷事件
一般只做一些簡(jiǎn)單處理,在多數(shù)情況下把具體的處理交給其他程序模塊去做。
八、 中斷優(yōu)先級(jí)和中斷屏蔽( 識(shí)記 )
1、 中斷優(yōu)先級(jí) 是硬件設(shè)計(jì)時(shí)確定的。中斷裝置按預(yù)定的順序來(lái)響應(yīng)同時(shí)出現(xiàn)的中斷事件,這個(gè)預(yù)定的順序稱為“中斷優(yōu)先級(jí)”。中斷優(yōu)先級(jí)是按中斷事件的重要性和緊迫程度來(lái)確定的 ,是由硬件設(shè)計(jì)時(shí)固定下來(lái)的。一般情況下,優(yōu)先級(jí)的高低順序依次為: 硬件故障中斷 、 自愿中斷 、 程序性中斷 , 外部中斷和輸入輸出中斷 .
2、中斷的嵌套處理
3、中斷屏蔽的作用。中斷優(yōu)先級(jí)只是規(guī)定了中斷裝置響應(yīng)同時(shí)出現(xiàn)的中斷的次序,當(dāng)中斷裝置響應(yīng)了某個(gè)中斷后中斷處理程序在進(jìn)行處理時(shí),中斷裝置也可能去響應(yīng)另一個(gè)中斷事件。因此會(huì)出現(xiàn)優(yōu)先級(jí)低的中斷事件的處理打斷優(yōu)先級(jí)高的中斷事件的處理,使得中斷事件的處理順序與響應(yīng)順序不一致,而且會(huì)形成多重嵌套處理,使多現(xiàn)場(chǎng)保護(hù)、程序返回等工作變的復(fù)雜。
中斷屏蔽技術(shù)就是為了解決上述問(wèn)題而提出的在一個(gè)中斷處理沒有結(jié)束之前不響應(yīng)其他中斷事件,或者只響應(yīng)比當(dāng)前級(jí)別高的中斷事件。于是,當(dāng)中斷裝置檢查到有中斷事件后,便去查看PSW中中斷屏蔽標(biāo)志,如果沒有屏蔽就響應(yīng)該中斷;否則,暫時(shí)不響應(yīng)該中斷,待屏蔽標(biāo)志消除后再響應(yīng)。自愿中斷是不能屏蔽的。
九、 進(jìn)程調(diào)度( 領(lǐng)會(huì) )
1、進(jìn)程調(diào)度的職責(zé)。按選定的進(jìn)程調(diào)度算法從就緒隊(duì)列中選擇一個(gè)進(jìn)程,讓它占用處理器。
2、選擇進(jìn)程調(diào)度算法的幾個(gè)準(zhǔn)則:
提高處理器利用率
增大吞吐量
減少等待時(shí)間
縮短響應(yīng)時(shí)間
3、進(jìn)程調(diào)度的常用算法:先來(lái)先服務(wù)、優(yōu)先數(shù)法、輪轉(zhuǎn)法、分級(jí)調(diào)度。
先來(lái)先服務(wù)調(diào)度算法 該算法按進(jìn)程進(jìn)入就緒隊(duì)列的先后次序選擇可以占用處理器的進(jìn)程。
優(yōu)先數(shù)調(diào)度算法 對(duì)每個(gè)進(jìn)程確定一個(gè)優(yōu)先數(shù),該算法總是讓優(yōu)先數(shù)最高的進(jìn)程先使用處理器。對(duì)具有相同優(yōu)先數(shù)的進(jìn)程,再采用先來(lái)先服務(wù)的次序分配處理器。系統(tǒng)常以任務(wù)的緊迫性和系統(tǒng)效率等因素確定進(jìn)程的優(yōu)先數(shù)。進(jìn)程的優(yōu)先數(shù)可以固定的,也可隨進(jìn)程執(zhí)行過(guò)程動(dòng)態(tài)變化。 一個(gè)高優(yōu)先數(shù)的進(jìn)程占用處理器后,系統(tǒng)處理該進(jìn)程時(shí)有兩種方法,一是“非搶占式”,另一種是“可搶占式”。前者是此進(jìn)程占用處理器后一直運(yùn)行到結(jié)束,除非本身主動(dòng)讓出處理器,后者則是嚴(yán)格保證任何時(shí)刻總是讓優(yōu)先數(shù)最高的進(jìn)程在處理器上運(yùn)行。
時(shí)間片輪轉(zhuǎn)調(diào)度法 把規(guī)定進(jìn)程一次使用處理器的最長(zhǎng)時(shí)間稱為“時(shí)間片”。時(shí)間片輪轉(zhuǎn)調(diào)度算法讓就緒進(jìn)程按就緒的先后次序排成隊(duì)列,每次總選擇該隊(duì)列中第一個(gè)進(jìn)程占用處理器,但規(guī)定只能使用一個(gè)時(shí)間片,如該進(jìn)程尚未完成,則排入隊(duì)尾,等待下一個(gè)供它使用的時(shí)間片。各個(gè)進(jìn)程就這樣輪轉(zhuǎn)運(yùn)行。時(shí)間片輪轉(zhuǎn)算法經(jīng)常用于分時(shí)操作系統(tǒng)中。
分級(jí)調(diào)度算法 由系統(tǒng)設(shè)置多個(gè)就緒隊(duì)列,每個(gè)就緒隊(duì)列中的進(jìn)程按時(shí)間片輪轉(zhuǎn)法占用處理器,這就是分級(jí)調(diào)度算法。
4、 進(jìn)程的切換 進(jìn)程調(diào)度將從就緒隊(duì)列中另選一個(gè)進(jìn)程占用處理器,使一個(gè)進(jìn)程讓出處理器,由另一個(gè)進(jìn)程占用處理器的過(guò)程稱“進(jìn)程切換”。
若有一個(gè)進(jìn)程從運(yùn)行態(tài)變成等待態(tài),或完成工作后就撤消,則必定會(huì)發(fā)生進(jìn)程切換。若一個(gè)進(jìn)程從運(yùn)行態(tài)或等待態(tài)變成就緒態(tài),則不一定發(fā)生進(jìn)程切換。
本章考核知識(shí)點(diǎn):1、重定位 2、固定分區(qū)存儲(chǔ)管理 3、可變分區(qū)存儲(chǔ)管理 4、頁(yè)式存儲(chǔ)管理 5、段式存儲(chǔ)管理 6、虛擬存儲(chǔ)器
自學(xué)要求 :明確存儲(chǔ)管理的職能是對(duì)主存儲(chǔ)器中的用戶區(qū)域進(jìn)行管理;理解在不同的管理方式下如何實(shí)現(xiàn)存儲(chǔ)保護(hù)、地址轉(zhuǎn)換、以及主存空間的分配和回收;比較各種管理方式的特點(diǎn);掌握虛擬存儲(chǔ)器的實(shí)現(xiàn)原理和方法。
重點(diǎn)是:各種管理方式的特點(diǎn);可變分區(qū)方式的主存分配算法以及移動(dòng)技術(shù);分頁(yè)式虛擬存儲(chǔ)管理的實(shí)現(xiàn)以及頁(yè)面調(diào)度算法;分段式虛擬存儲(chǔ)管理的實(shí)現(xiàn)。
操作系統(tǒng)的存儲(chǔ)管理如同一個(gè)大地主,管著一個(gè)大莊園,當(dāng)有農(nóng)戶需要租用田地時(shí),地主就給分配一塊地讓他種(用戶區(qū)分配)。等到地里長(zhǎng)出了果實(shí)(結(jié)果出來(lái)后,地主還得來(lái)收回這塊地(去配)。
為了管好這片田地,地主還要管好莊園的門,凡是要進(jìn)去種地的,都得由地主根據(jù)他的需要讓他到位置確定實(shí)際的田地上去干活。(把邏輯地址轉(zhuǎn)換成物理地址)
莊園里還有一些大家共同可以使用的地方,比如地主的花園,工具房等,大家可以進(jìn)去,也可以使用,但是不許改變?nèi)魏维F(xiàn)有的東東,還有,每個(gè)農(nóng)戶只能在自己的地里刨食吃,如果有人膽敢到別人地里或地主的花園里摘花偷食,可要當(dāng)心他們養(yǎng)的狼狗跳出來(lái)哦。(共享和保護(hù))
當(dāng)然,再大的地也是不夠多的,地主為了多賺些錢,當(dāng)所有的地都租出去的時(shí)候,他想辦法把有些種田人暫時(shí)不種的那塊地里的東東連地皮一起挖出來(lái)放到倉(cāng)庫(kù)里先堆著。把地騰出來(lái)租給別人種(這一招可夠絕的,不過(guò)地主說(shuō)啦,這就是“虛擬存儲(chǔ)”。)
你說(shuō)這個(gè)地主是好是壞??
概述:本章討論的是主存儲(chǔ)器空間的管理。主存儲(chǔ)空間分成系統(tǒng)區(qū)和用戶區(qū)兩部分。存儲(chǔ)管理的功能包括:主存空間的分配和去配、實(shí)現(xiàn)地址轉(zhuǎn)換、主存空間的區(qū)享和保護(hù)和主存空間擴(kuò)充。
一、重定位( 領(lǐng)會(huì) )
1、區(qū)分邏輯地址與絕對(duì)地址。
絕對(duì)地址 :主存儲(chǔ)器以字節(jié)為編址單位,容量為n的主存儲(chǔ)器中,每個(gè)單元有唯一的編號(hào),從0到n-1,這個(gè)唯一的編號(hào)就是主存儲(chǔ)器的 物理地址 .
比如我們現(xiàn)在用的128MB內(nèi)存條中就有128×1024×1024=134217728 字節(jié),所以它的內(nèi)存絕對(duì)地址就是從0到134217727.
注意啦,莊園的大地主就是這么給自己的地做上標(biāo)記的。
邏輯地址 :在多道程序設(shè)計(jì)的系統(tǒng)中,操作系統(tǒng)為了方便用戶,就允許每個(gè)用戶都認(rèn)為自己的作業(yè)的程序和數(shù)據(jù)存放在地址是0開始的連續(xù)空間中。這樣用戶程序中使用的地址就是 邏輯地址 .
種田人不管地主莊園有多少塊地,標(biāo)了什么號(hào),只要記住自己需要多少地,給自己種的地打上標(biāo)記就是了。地主想,只要你們能干活,不需要知道了我的底細(xì)了吧(家財(cái)不可外揚(yáng)哦)。
2 、重定位(地址轉(zhuǎn)換的方式)
為了保證作業(yè)的正確執(zhí)行,必須根據(jù)分配給作業(yè)的主存區(qū)域?qū)ψ鳂I(yè)中指令和數(shù)據(jù)的存放進(jìn)行重定位,這種 把邏輯地址轉(zhuǎn)換成絕對(duì)地址 的工作稱為“重定位 ”或“地址轉(zhuǎn)換”。重定位的方式有“靜態(tài)重定位 ”和“動(dòng)態(tài)重定位 ”兩種。
莊園主道:靜態(tài)重定位比較簡(jiǎn)單,想當(dāng)初張三來(lái)這兒, 說(shuō)要租一百塊地,青菜種在第1塊地,蘿卜種2塊地里,土豆得重在第3塊地里……然后得在第28塊地里養(yǎng)鴨,完了要把28塊地里的鴨糞拉到第49塊地的魚塘里喂魚…… 我就說(shuō),行啦行啦,你進(jìn)去,莊園的左邊101到200號(hào)那100塊地就分給你吧,以后你要找哪塊地養(yǎng)鴨養(yǎng)魚的,就得按我給你編的號(hào)來(lái)找。每個(gè)地址都已經(jīng)加上100了,不會(huì)找錯(cuò)吧。別說(shuō)我沒講清楚哦。
至于動(dòng)態(tài)重定位,莊主笑道:這個(gè)我也能做到,這么實(shí)現(xiàn)的:李四來(lái)租地時(shí),我也不問(wèn)他,直接把他帶到空閑的一片地方。派人記著這那片地的第一個(gè)地址。比如說(shuō)是100號(hào)吧。李四這個(gè)笨小子干著干著會(huì)叫起來(lái)說(shuō):“老板,現(xiàn)在我要到32號(hào)地里抓魚!”旁邊人一聽,馬上告訴他“哎呀,你現(xiàn)在已經(jīng)分了地啦,起始地塊是100號(hào),那你就得到132號(hào)地去才對(duì)!”就這樣,李四每一次要找地方時(shí),都叫別人給他重新算一下。這樣他才不會(huì)找錯(cuò)位置。這樣也有一個(gè)好處,就是如果有人出價(jià)更好,我可以讓他搬到別處去干活,反正都是叫別人給他重新算位置,所以他就不用記住搬地方后的物理地址啦。
(1)靜態(tài)重定位
在裝入一個(gè)作業(yè)時(shí),把作業(yè)中的指令地址和數(shù)據(jù)地址全部轉(zhuǎn)換成絕對(duì)地址。這種轉(zhuǎn)換工作是在 作業(yè)開始前集中完成 的,在作業(yè)執(zhí)行過(guò)程中無(wú)需再進(jìn)行地址轉(zhuǎn)換。所以稱為“靜態(tài)重定位”。
(2)動(dòng)態(tài)重定位
在裝入一個(gè)作業(yè)時(shí),不進(jìn)行地址轉(zhuǎn)換,而是直接把作業(yè)裝到分配的主區(qū)域中。在作業(yè)執(zhí)行過(guò)程中,每當(dāng)執(zhí)行一條指令時(shí)都由硬件的地址轉(zhuǎn)換機(jī)構(gòu)轉(zhuǎn)換成絕對(duì)地址。這種方式的地址轉(zhuǎn)換是在 作業(yè)執(zhí)行時(shí)動(dòng)態(tài)完成 的,所以稱為動(dòng)態(tài)重定位。
動(dòng)態(tài)重定位由軟件(操作系統(tǒng))和硬件(地址轉(zhuǎn)換機(jī)構(gòu))相互配合來(lái)實(shí)現(xiàn)。動(dòng)態(tài)重定位的系統(tǒng)支持“程序浮動(dòng)”,而靜態(tài)重定位則不能。
二、固定分區(qū)存儲(chǔ)管理( 領(lǐng)會(huì) )
分區(qū)存儲(chǔ)管理是把存儲(chǔ)器中的用戶區(qū)作為一個(gè)連續(xù)區(qū)或分成若干連續(xù)區(qū)進(jìn)行管理。早先使用一個(gè)分區(qū)的存儲(chǔ)管理,后發(fā)展成多分區(qū)的存儲(chǔ)管理。多個(gè)分區(qū)的管理可采用固定分區(qū)方式和可變分區(qū)方式。
1、固定分區(qū)存儲(chǔ)管理的原理
固定分區(qū) 的意思就是指主存空間劃分成若干連續(xù)區(qū)后,這些分區(qū)的 大小和個(gè)數(shù) 就 固定 不變。
固定分區(qū)管理利用一張“ 主存分配表 ”說(shuō)明各分區(qū)的情況。裝入和結(jié)束作業(yè)均通過(guò)這個(gè)分區(qū)表來(lái)記錄分區(qū)使用的變化情況。
2、如何實(shí)現(xiàn)存儲(chǔ)保護(hù)
固定分區(qū)管理 可采用 靜態(tài)重定位 的方式裝入作業(yè)。裝入程序把作業(yè)中的邏輯地址轉(zhuǎn)換為絕對(duì)地址。并檢查絕對(duì)地址是否在指定(裝入)的分區(qū)內(nèi),如果是,就裝入這個(gè)作業(yè)。否則就不能裝入。如果裝入主存分區(qū)的作業(yè)占用處理器時(shí)(注意,是運(yùn)行時(shí)),進(jìn)程調(diào)度程序(不是裝入程序了)必須把作業(yè)所在分區(qū)的上下限地址存入“下限寄存器”和“上限寄存器”中,這樣可以在指令執(zhí)行中判斷其所用到的絕對(duì)地址是否越界,達(dá)到存儲(chǔ)保護(hù)的目的。
3、怎樣 提高主存空間的利用率 這里有幾種辦法:
(1)分區(qū)按大小順序排列,這樣可以使作業(yè)總是先使用滿足要求的最小分區(qū)。
(2)根據(jù)經(jīng)常出現(xiàn)的作業(yè)大小和頻率劃分分區(qū)。
(3)按作業(yè)的對(duì)主存空間的需求量排成多個(gè)隊(duì)列,規(guī)定隊(duì)列與分區(qū)的對(duì)應(yīng)關(guān)系。也就是說(shuō)多大的作業(yè)只能放在多大的分區(qū)里,就算有更大的分區(qū)空著,也不許他進(jìn)入。
三、可變分區(qū)的管理( 領(lǐng)會(huì) )
可變就是指分區(qū)的 大小和位置不是固定 的,而是根據(jù)作業(yè)要求的主存量來(lái)分配分區(qū)的大小。
1、主存的分配和去配(回收)
在系統(tǒng)初始化時(shí),主存除了操作系統(tǒng)所占部分外,整個(gè)用戶區(qū)是一個(gè)大的空閑區(qū),可以按作業(yè)需要的空間大小順序分配空閑區(qū)直到不夠時(shí)為止。
當(dāng)作業(yè)結(jié)束時(shí),它的占用分區(qū)被收回。這個(gè)空閑區(qū)又可以根據(jù)新作業(yè)的大小重新用于分配,所以主存中的已占分區(qū)和空閑區(qū)的數(shù)目和大小都是在變化的??梢杂脙蓮埍怼耙逊峙鋮^(qū)表”和“空閑區(qū)表”來(lái)記錄和管理。
2、常用的分配算法
最先適應(yīng)分配算法 :簡(jiǎn)單地說(shuō),就是在分區(qū)表中順序查找,找到夠大的空閑區(qū)就分配。但是這樣的分配算法可能形成許多不連續(xù)的空閑區(qū),造成許多“碎片”,使主存空間利用率降低。
最優(yōu)適應(yīng)分配算法 :這種算法總是挑選一個(gè)能滿足作業(yè)要求的最小空閑區(qū)。但是這種算法可能形成一些極小的空閑區(qū),以致無(wú)法使用,這也會(huì)影響主存利用率。
最壞適應(yīng)分配算法 :這種算法和上面的正好相反,它總是挑一個(gè)最大的空閑區(qū)分給作業(yè)使用,使剩下的空間不至于太小。
3、地址轉(zhuǎn)換與存儲(chǔ)保護(hù)
采用 可變分區(qū)方式管理 時(shí),一般均采用 動(dòng)態(tài)重定位 方式裝入作業(yè)。也就是每讀一條指令,都要變換一次地址。變換要靠硬件支持,主要是 兩個(gè)寄存器 : 基址 寄存器和 限長(zhǎng) 寄存器,限長(zhǎng)寄存器存放作業(yè)所占分區(qū)的長(zhǎng)度,基址寄存器則存放作業(yè)所占分區(qū)的起始地址,這兩個(gè)值確定了一個(gè)分區(qū)的位置和大小。
轉(zhuǎn)換時(shí)根據(jù)邏輯地址與限長(zhǎng)值比較,如果不有超過(guò)這個(gè)值,表示訪問(wèn)地址合法,再加上基址寄存器中的值就得到了絕對(duì)地址了,否則形成“地址越界”中斷。達(dá)到存儲(chǔ)保護(hù)的目的。
對(duì)于共享程序,則硬件提供兩組限長(zhǎng)寄存器和基址寄存器。訪問(wèn)時(shí)對(duì)訪問(wèn)區(qū)享區(qū)和作業(yè)區(qū)的地址分別進(jìn)行轉(zhuǎn)換。
4、移動(dòng)技術(shù)的應(yīng)用
移動(dòng)技術(shù) 要“移動(dòng)”的東東就是主存空間中的作業(yè)。把某個(gè)作業(yè)移到另一處主存空間去(在磁盤整理中我們應(yīng)用的也是類似的移動(dòng)技術(shù)),這樣的最大好處就是可以合并一些空閑區(qū)。
但是移動(dòng)技術(shù)的應(yīng)用也要注意以下問(wèn)題。
移動(dòng)會(huì)增加系統(tǒng)開銷。所以要盡量減少移動(dòng)。
移動(dòng)是有條件的,如果作業(yè)在執(zhí)行過(guò)程中正等待與外圍設(shè)備傳輸信息,就不能移動(dòng)。因此在移動(dòng)時(shí)首先要判定該作業(yè)是否與外設(shè)交換信息。
四、頁(yè)式存儲(chǔ)管理( 領(lǐng)會(huì) )
1、如何分頁(yè)和分塊
頁(yè)式存儲(chǔ)管理中有兩個(gè)名詞:“ 頁(yè) ”和“ 塊 ”,其中的“塊”是針對(duì)硬件來(lái)說(shuō)的,就是把存儲(chǔ)器分成若干相等大小的區(qū),每個(gè)區(qū)就稱為一個(gè)塊。對(duì)應(yīng)的,在程序中,邏輯地址進(jìn)行“分頁(yè)”,其大小和每個(gè)塊相一致。
事實(shí)上,頁(yè)面的大小是由塊的大小自然決定的。對(duì)于程序來(lái)說(shuō),其邏輯地址還是和原來(lái)一樣采用連續(xù)的地址。只是 按照塊的位數(shù)取其前面數(shù)位做為頁(yè)號(hào) .
分配空間時(shí),根據(jù)作業(yè)長(zhǎng)度可以確定它的頁(yè)面數(shù),根據(jù)這個(gè)頁(yè)面數(shù)在主存中分配相應(yīng)的塊數(shù),只要是空閑塊就可以放入,即使不是相鄰的。并把分配情況記在“頁(yè)表”中,根據(jù)頁(yè)表可以找到相對(duì)應(yīng)的頁(yè)號(hào)與塊號(hào),就得出絕對(duì)地址了。
2、采用頁(yè)式管理,使主存空間充分利用,頁(yè)不必為了得到連續(xù)空間而進(jìn)行移動(dòng)。 可以提高系統(tǒng)效率。
3、頁(yè)表的構(gòu)造與作用
每個(gè)被裝入主存的作業(yè)都有一張 頁(yè)表 ,指出該作業(yè)邏輯地址中的頁(yè)號(hào)與所占用的主存塊號(hào)之間的對(duì)應(yīng)關(guān)系。頁(yè)表的長(zhǎng)度由作頁(yè)擁有的頁(yè)面數(shù)決定,行號(hào)對(duì)應(yīng)為頁(yè)號(hào),行中記錄的是主存中的塊號(hào)。
頁(yè)表是硬件進(jìn)行地址轉(zhuǎn)換的依據(jù),每執(zhí)行一條指令時(shí)按邏輯地址中的頁(yè)號(hào)查找頁(yè)表并轉(zhuǎn)換成絕對(duì)地址。
在多道程序設(shè)計(jì)系統(tǒng)中,進(jìn)入主存的每個(gè)作業(yè)都有一張頁(yè)表,由一個(gè)硬件“頁(yè)表控制寄存器”來(lái)記錄每個(gè)作業(yè)的頁(yè)表所在位置和長(zhǎng)度以便作業(yè)轉(zhuǎn)換時(shí)同時(shí)轉(zhuǎn)換頁(yè)表。
4、快表的構(gòu)造與作用
快表 就是頁(yè)表的一部分克隆,每行中有頁(yè)號(hào)及其對(duì)應(yīng)的塊號(hào),整個(gè)快表存放在一個(gè)小容量的高速緩存中,訪問(wèn)時(shí)快表和內(nèi)存同時(shí)進(jìn)行查找,因?yàn)榭毂硭俣群芸?,而常用的?yè)都登記在快表中,因此可以大大加快執(zhí)行速度。
5、采用頁(yè)式管理的地址轉(zhuǎn)換過(guò)程
(為什么不直接用塊分配表來(lái)記錄而要用位示圖呢,因?yàn)橹鞔鎵K很多,這樣可以節(jié)省空間,提高效率。位示圖就是用一個(gè)位(0或1)來(lái)表示一個(gè)塊的使用狀態(tài),一個(gè)字32位,可以表示32塊。按順序排列,只需一小段內(nèi)存就可以記錄主存中大量的塊狀態(tài))
6、利用位示圖實(shí)現(xiàn)頁(yè)式存儲(chǔ)空間的分配和回收
頁(yè)式存儲(chǔ)管理把主存空間分成大小固定的許多塊,在裝業(yè)作業(yè)時(shí),如何知道主存中哪些塊已使用,哪些還未用,可以用位示圖來(lái)表示。
塊號(hào)=字號(hào)×字長(zhǎng)+位號(hào)
字號(hào)=[i/字長(zhǎng)](即塊號(hào)i除以字長(zhǎng)取整)
位號(hào)=i mod 字長(zhǎng)(即塊號(hào)i除以字長(zhǎng)取余)。
五、段式存儲(chǔ)管理( 領(lǐng)會(huì) )
1、段式存儲(chǔ)中段的劃分
段式管理 是根據(jù)人們對(duì) 程序 中需要 分段編制 的要求出發(fā)而提供的。它提供給用戶編程時(shí)使用的邏輯地址由“段號(hào)”和“段內(nèi)地址”兩部分組成,其形式和頁(yè)式管理相同。但是實(shí)際上是不同的:
頁(yè)式存儲(chǔ)管理提供連續(xù)邏輯地址由系統(tǒng)自動(dòng)分頁(yè),段式存儲(chǔ)管理中的作業(yè)分段是由用戶決定的,每段獨(dú)立編程,因此段間的邏輯地址是不連續(xù)的。
2、段式存儲(chǔ)空間的分配
這種分配方法和可變分區(qū)管理方式的分配方法相同,所不同的是:
可變分區(qū)管理方式中是為每個(gè)作業(yè)分一個(gè)區(qū),而段式管理是為一個(gè)作業(yè)中的每個(gè)段分一個(gè)連續(xù)的空間。(段式管理更細(xì))。
3、段表的構(gòu)造與作用
段表 由 段號(hào) 、 本段限長(zhǎng) 和 起始地址 三部分組成,由于每一行記錄的行號(hào)可以對(duì)應(yīng)程序的段號(hào),因此段號(hào)實(shí)際上被省略,不占存儲(chǔ)空間。
與其他管理方式一樣,段表記錄的信息用于地址轉(zhuǎn)換和存儲(chǔ)保護(hù)。段表的表目起到了基址/限長(zhǎng)寄存器的作用。
4、段式存儲(chǔ)管理的地址轉(zhuǎn)換
這個(gè)轉(zhuǎn)換過(guò)程如同可變分區(qū)方式的地址轉(zhuǎn)換,但是由段表的表目替代了基址/限長(zhǎng)寄存器。
絕對(duì)地址=根據(jù)段號(hào)找到段表中的起始地址+段內(nèi)地址 (如果段內(nèi)地址超過(guò)限長(zhǎng)則產(chǎn)生“地址越界”程序性中斷事件達(dá)到存儲(chǔ)保護(hù))
多道程序設(shè)計(jì)系統(tǒng)中,每個(gè)進(jìn)入主存的作業(yè)都建立了段表,因此還有一個(gè)硬件“段表控制寄存器”來(lái)記錄每個(gè)作業(yè)的段表在主存中的位置和長(zhǎng)度。
六、虛擬存儲(chǔ)器( 領(lǐng)會(huì) )
1、什么是虛擬存儲(chǔ)器
虛擬存儲(chǔ)器 是為“擴(kuò)大”主存容量而采用的一種設(shè)計(jì)技巧,它利用作業(yè)在只裝入部分信息時(shí)就可以執(zhí)行的特性和程序執(zhí)行中表現(xiàn)出來(lái)的局部性特性,借助于大容量的輔助存儲(chǔ)器實(shí)現(xiàn)小主存空間容納大邏輯地址空間的作業(yè)。
虛擬存儲(chǔ)器的容量 由計(jì)算機(jī)的 地址結(jié)構(gòu)(總線位數(shù)) 決定。
2、虛擬存儲(chǔ)器的實(shí)現(xiàn)原理
它的工作原理如下:首先把作業(yè)信息保留在磁盤上,當(dāng)作業(yè)請(qǐng)求裝入時(shí),只將其中一部分先裝入主存,作業(yè)執(zhí)行中若要訪問(wèn)的信息不在主存中,則再設(shè)法將這些信息裝入主存。
3、分頁(yè)式虛擬存儲(chǔ)器的實(shí)現(xiàn)
頁(yè)式虛擬存儲(chǔ)管理 是在 頁(yè)式存儲(chǔ)管理 的基礎(chǔ)上實(shí)現(xiàn)的。首先把作業(yè)信息作為副本存放在磁盤上,作業(yè)執(zhí)行時(shí),把作業(yè)信息的部分頁(yè)面裝入主存儲(chǔ)器,作業(yè)執(zhí)行時(shí)若所訪問(wèn)的頁(yè)面已經(jīng)在主存中,則進(jìn)行地址轉(zhuǎn)換,得到絕對(duì)地址,否則產(chǎn)生“缺頁(yè)中斷”由操作系統(tǒng)把當(dāng)前所需的頁(yè)面裝入主存。
4、常用的頁(yè)面調(diào)度算法:FIFO、LRU、LFU
當(dāng)主頁(yè)中無(wú)空閑塊時(shí),為了裝入一個(gè)頁(yè)面,就必須按某種算法將主存中某個(gè)頁(yè)調(diào)出,調(diào)入所需裝入的頁(yè)面。這就是頁(yè)面調(diào)度。常用的算法有:先進(jìn)先出調(diào)度算法( FIFO )、最近最少使用調(diào)度算法( LRU )和最近最不常用調(diào)度算法( LFU )。
特別要注意掌握的就是 LRU的算法 ,如何進(jìn)行調(diào)度。
5、缺頁(yè)中斷率
如果作頁(yè)執(zhí)行中訪問(wèn)頁(yè)面的總次數(shù)為A,其中有F次訪問(wèn)的頁(yè)面尚未裝入主存,則有F次缺頁(yè)中斷,f=F/A,這里的f就稱為缺頁(yè)中斷率。影響缺頁(yè)中斷的因素有:
分配給作業(yè)的主存塊數(shù)——塊數(shù)n↑ f↓
頁(yè)面的大小——頁(yè)面大小↑ f↓
程序編制方法——局部化程度↑ f↓
頁(yè)面調(diào)度算法
6、段式虛擬存儲(chǔ)器的實(shí)現(xiàn)
段式虛擬存儲(chǔ)管理 以 段式存儲(chǔ)管理 為基礎(chǔ),在磁盤上保留作業(yè)的各個(gè)分段信息,作業(yè)執(zhí)行時(shí)把需要執(zhí)行的一段或幾段裝入主存。在實(shí)際使用中,也要進(jìn)行查表和地址轉(zhuǎn)換以及“缺段中斷” 和調(diào)度(包括調(diào)出、裝入、移動(dòng)等)工作。
聲明:
(一)由于考試政策等各方面情況的不斷調(diào)整與變化,本網(wǎng)站所提供的考試信息僅供參考,請(qǐng)以權(quán)威部門公布的正式信息為準(zhǔn)。
(二)本網(wǎng)站在文章內(nèi)容來(lái)源出處標(biāo)注為其他平臺(tái)的稿件均為轉(zhuǎn)載稿,免費(fèi)轉(zhuǎn)載出于非商業(yè)性學(xué)習(xí)目的,版權(quán)歸原作者所有。如您對(duì)內(nèi)容、版權(quán)等問(wèn)題存在異議請(qǐng)與本站聯(lián)系,我們會(huì)及時(shí)進(jìn)行處理解決。
相關(guān)推薦
2022年浙江自考《當(dāng)代中國(guó)政治制度》復(fù)習(xí)筆記匯總
09-152023年10月浙江自考傳播學(xué)概論復(fù)習(xí)資料:有限效果論
08-30自考輔導(dǎo)資料:2019年10月《美學(xué)》知識(shí)點(diǎn)-崇高的內(nèi)涵與特點(diǎn)
09-172023年4月浙江自考外國(guó)文學(xué)史復(fù)習(xí)筆記:高爾基
12-262022年浙江自考中國(guó)古代文學(xué)史(一)第三編第九章復(fù)習(xí)資料
10-31自考輔導(dǎo)資料:2021年10月《學(xué)前教育史》—論幼稚師范教育
06-05自考輔導(dǎo)資料:2019年10月《美學(xué)》知識(shí)點(diǎn)-優(yōu)美及優(yōu)美的內(nèi)涵與特點(diǎn)
09-172023年4月浙江自考中外教育簡(jiǎn)史復(fù)習(xí)筆記:英國(guó)近代教育制度
12-082022年浙江自考心理學(xué)復(fù)習(xí)筆記:情緒情感的功能
11-03自考輔導(dǎo)資料:2021年10月《學(xué)前教育史》—雅典的學(xué)前教育
06-07與考生自由互動(dòng)、并且能直接與專業(yè)老師進(jìn)行交流解答。
與考生自由互動(dòng)、并且能直接與專業(yè)老師進(jìn)行交流解答。