虛擬存儲(chǔ)器的作用是擴(kuò)大整個(gè)主存的容量,允許在程序中使用比主存容量大得多的虛擬存儲(chǔ)器。同時(shí)可以減輕人們編程中對(duì)程度進(jìn)行分塊的苦惱,從而提高軟件開(kāi)發(fā)的效率。虛擬存儲(chǔ)器是實(shí)現(xiàn)利用小容量的主存運(yùn)行大規(guī)模的程序的一種有效的辦法。盡管實(shí)現(xiàn)虛擬存儲(chǔ)要增加一些額外的投資和軟件開(kāi)銷(xiāo),虛擬存儲(chǔ)技術(shù)在各種計(jì)算機(jī)系統(tǒng)中仍得到了廣泛的應(yīng)用。虛擬存儲(chǔ)器必須建立在主存-輔存結(jié)構(gòu)上,但一般的主存-輔存系統(tǒng)并不一定是虛擬存儲(chǔ)器,虛擬存儲(chǔ)器與一般的主存-輔存系統(tǒng)的本質(zhì)區(qū)別是:
①虛擬存儲(chǔ)器允許人們使用比主存容量大得多的地址空間來(lái)訪問(wèn)主存,非虛擬存儲(chǔ)器最多只允許人們使用主存的整個(gè)空間,一般只允許使用操作系統(tǒng)分配的主存中的某一部分空間。
②虛擬存儲(chǔ)器每次訪問(wèn)主存時(shí)必須進(jìn)行虛、實(shí)地址的變換,而非虛擬存儲(chǔ)系統(tǒng)則不必變換。
(2)虛擬存儲(chǔ)的工作原理
虛擬存儲(chǔ)技術(shù),實(shí)際上是將編寫(xiě)程序時(shí)所用的虛擬地址(邏輯地址)轉(zhuǎn)換成較小的物理地址。在程序運(yùn)行時(shí)隨時(shí)進(jìn)行這種變換。為了便于主存與輔存之間信息的交換,虛擬存儲(chǔ)器一般采用二維或三維的復(fù)合地址格式。采用二維地址格式時(shí),將整個(gè)存儲(chǔ)器劃分為若干頁(yè)(或段),每個(gè)頁(yè)(或段)又包括若干存儲(chǔ)單元。采用三維地址格式時(shí)將整個(gè)存儲(chǔ)空間分為若干段,每段分為若干頁(yè),每頁(yè)又包括若干存儲(chǔ)單元。根據(jù)地址格式不同,虛擬存儲(chǔ)器分為:頁(yè)式虛擬存儲(chǔ)器、段式虛擬存儲(chǔ)器和段頁(yè)式虛擬存儲(chǔ)器。
在虛擬存儲(chǔ)器中邏輯地址與物理地址之間的對(duì)應(yīng)稱(chēng)為地址映象。通常有三種地址映象的方式:全相聯(lián)映象、直接映象和組相聯(lián)映象。
①全相聯(lián)映象
任一邏輯頁(yè)能映象到實(shí)際主存的任意頁(yè)面位置稱(chēng)為全相聯(lián)映象,通常利用頁(yè)表法進(jìn)行地址間的變換。
②直接映象
每個(gè)邏輯頁(yè)只能映象到一個(gè)特定頁(yè)面的方式稱(chēng)為直接映象。如主存實(shí)際有2 P 頁(yè),虛擬存儲(chǔ)器的邏輯空間有2 P 頁(yè),則將邏輯空間按物理空間大小分為2 P -P塊,塊內(nèi)各頁(yè)只能映象到主存的相應(yīng)頁(yè)中。即所有各塊的第0頁(yè)對(duì)應(yīng)主存的第0頁(yè),各塊的第n頁(yè)對(duì)應(yīng)主存的第n頁(yè)。若程序需要輪流使用第i塊和第j塊的第m頁(yè),只能將兩頁(yè)交替在主存和輔存之間調(diào)入調(diào)出,形成存儲(chǔ)頁(yè)面的“抖動(dòng)”。來(lái)源:www.examda.com
③組相聯(lián)映象 組相聯(lián)映象方法是先按直接映象方法將虛擬存儲(chǔ)空間(邏輯空間)分成若干塊,在主存和邏輯空間中的各塊內(nèi)劃分為若干組,每個(gè)組間按直接映象方法控制??梢赃@樣理解,如果將組相聯(lián)映象方法中的組按直接映象方法的頁(yè)來(lái)看待,組相聯(lián)方法與直接映象方法相同,邏輯空間各組內(nèi)的頁(yè)只能與對(duì)應(yīng)的物理空間組相聯(lián)。但在組內(nèi)各頁(yè)與物理空間的頁(yè)面之間采用全相聯(lián)映象方法處理。因此,可以認(rèn)為組相聯(lián)映象是全相聯(lián)映象和直接映象方法的結(jié)合。6.緩沖技術(shù)使用
緩沖技術(shù)就是為緩解慢速設(shè)備對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)速度的影響,在計(jì)算機(jī)的某些部件中劃定一塊區(qū)域,模擬慢速設(shè)備的操作,將對(duì)慢速設(shè)備的操作先存放在此區(qū)域中,其他部件完成這一操作后可以繼續(xù)其他工作,而慢速設(shè)備可以用自己的速度逐漸完成相應(yīng)的操作。做為中間緩沖的區(qū)域稱(chēng)為緩沖區(qū),相應(yīng)的技術(shù)稱(chēng)為緩沖技術(shù)。
在整個(gè)存儲(chǔ)體系的組織中,緩沖技術(shù)成為解決容量與速度之間矛盾的主要方法。實(shí)際上在計(jì)算機(jī)系統(tǒng)中緩沖技術(shù)解決了許多難題,促進(jìn)了計(jì)算機(jī)系統(tǒng)的發(fā)展。在存儲(chǔ)體系中,緩沖技術(shù)主要體現(xiàn)在Cache的應(yīng)用和磁盤(pán)緩沖的使用。
(1)Cache的原理和作用Cache的工作原理基于對(duì)大量典型程序運(yùn)行實(shí)例的分析。分析結(jié)果表明,在較短的時(shí)間間隔內(nèi),由程序產(chǎn)生的地址往往集中在存儲(chǔ)器邏輯地址空間很小的范圍內(nèi)。指令地址的分布又是連續(xù)的,加上循環(huán)程序和子程序段的重復(fù)執(zhí)行,對(duì)這些地址的訪問(wèn)自然具有時(shí)間上集中分布的傾向。這種對(duì)局部范圍的存儲(chǔ)器地址頻繁訪問(wèn),對(duì)此范圍外的地址訪問(wèn)甚少的現(xiàn)象稱(chēng)為程序訪問(wèn)的局部性。程序訪問(wèn)的局部性為Cache的引入提供了理論依據(jù)。
Cache是緩沖技術(shù)在存儲(chǔ)體系中的一個(gè)具體應(yīng)用。Cache處于主存與CPU之間,負(fù)責(zé)解決主存與CPU之間速度的協(xié)調(diào)問(wèn)題。Cache中存放著主存的一部分副本(主存中的部分內(nèi)容),當(dāng)存儲(chǔ)器接到有關(guān)讀取指令時(shí),先在Cache中查找此信息是否存在,若有則不經(jīng)主存直接從Cache中取出;否則直接從主存中取出,同時(shí)寫(xiě)入Cache,以備再次使用。當(dāng)向存儲(chǔ)器寫(xiě)入內(nèi)容時(shí),由輔助硬件采用各種方法**主存中的內(nèi)容同Cache中的內(nèi)容保持一致。
為**寫(xiě)入時(shí)兩者內(nèi)容一致的方法有:①將內(nèi)容同時(shí)寫(xiě)入主存和Cache;②數(shù)據(jù)僅寫(xiě)入主存,若Cache中有此內(nèi)容則將其釋放;③數(shù)據(jù)只寫(xiě)入Cache,在規(guī)定的時(shí)候?qū)⑿薷倪^(guò)的Cache的內(nèi)容寫(xiě)入主存。
Cache的主要特點(diǎn)是:①存取速度快,一般Cache的速度完全可以跟上CPU的運(yùn)算速度;②存儲(chǔ)量小,由于Cache的速度快,其價(jià)格也相當(dāng)昂貴,因此為**整個(gè)存儲(chǔ)器的性能價(jià)格比,一般采用適當(dāng)容量的Cache,其容量小于主存。
(2)磁盤(pán)緩沖技術(shù)
磁盤(pán)緩沖技術(shù)的目的是減少由于主、輔存之間的速度差異對(duì)計(jì)算機(jī)總體性能的影響。磁盤(pán)是存儲(chǔ)系統(tǒng)中的輔助部分,其主要作用是用來(lái)存儲(chǔ)不常用的數(shù)據(jù)和程序等信息,減輕對(duì)主存容量的需求壓力。由于磁盤(pán)中的信息不能被計(jì)算機(jī)的其他部件直接調(diào)用,因此在信息的輸入/輸出過(guò)程中必須在主存中開(kāi)辟一定的空單位和為與磁盤(pán)上信息交換的中間過(guò)渡區(qū)域稱(chēng)為磁盤(pán)緩沖區(qū)。如從鍵盤(pán)(輸入設(shè)備)向磁盤(pán)中輸入一個(gè)信息,此信息必須**總線(xiàn)先輸入到主存中的特定區(qū)域中,**程序控制將信息存放到主存中對(duì)應(yīng)于磁盤(pán)輸入/輸出的一個(gè)特定區(qū)域內(nèi),然后將此信息轉(zhuǎn)存到磁盤(pán)上。一般將主存中對(duì)應(yīng)于磁盤(pán)的特定區(qū)域稱(chēng)為磁盤(pán)緩沖區(qū)。
為了提高磁盤(pán)的讀寫(xiě)速度,操作系統(tǒng)一般根據(jù)程序運(yùn)行的需要設(shè)置磁盤(pán)緩沖區(qū)的大小及輸入/輸出操作。同Cache技術(shù)相類(lèi)似,不立即覆蓋磁盤(pán)緩沖區(qū)的內(nèi)容,當(dāng)系統(tǒng)需要繼續(xù)讀入磁盤(pán)中的信息時(shí),首先檢查磁盤(pán)緩沖區(qū)中是否有所需要的信息,若有則直接使用,否則根據(jù)信息的位置將磁盤(pán)上特定扇區(qū)的內(nèi)容調(diào)入磁盤(pán)緩沖區(qū)后再加以使用。這樣可以提高磁盤(pán)的信息讀取速度,減少因磁盤(pán)存取速度慢對(duì)系統(tǒng)整體性能的影響
九、輸入與輸出系統(tǒng)
1.輸入輸出系統(tǒng)的發(fā)展
輸入輸出系統(tǒng)的發(fā)展大致分為五種方式,即程序控制的輸入輸出方式、中斷方式,DMA方式、輸入/輸出通道方式和I/O處理機(jī)等五種方式。
程序查詢(xún)方式和程序中斷方式適用于數(shù)據(jù)傳輸率比較低的外部設(shè)備。而DMA方式、通道方式和I/O處理機(jī)方式適用于數(shù)據(jù)傳輸率比較高的設(shè)備。目前,小型機(jī)和微型機(jī)大都采用程序查詢(xún)方式、程序中斷方式和DMA方式。通道方式I/O處理機(jī)方式大都用在中、大型計(jì)算機(jī)中。為了介紹方便,我們把通道方式和I/O處理機(jī)方式視為一種方式。
2.程序查詢(xún)方式
程序查詢(xún)方式又叫程序控制I/O方式。在這種方式中,數(shù)據(jù)在CPU和外部設(shè)備之間的傳送完全靠計(jì)算機(jī)程序控制,是在CPU主動(dòng)控制下進(jìn)行的,當(dāng)輸入/輸出時(shí),CPU暫停執(zhí)行主程序,轉(zhuǎn)去執(zhí)行輸入/輸出的服務(wù)程序,根據(jù)服務(wù)程序中的I/O指令進(jìn)行數(shù)據(jù)傳送。
這是一種最簡(jiǎn)單、最經(jīng)濟(jì)的輸入/輸出方式。它只需很少的硬件,因此幾乎所有的機(jī)器都具有程序查詢(xún)方式。特別是在微、小型機(jī)中,常用程序查詢(xún)方式來(lái)實(shí)現(xiàn)低速設(shè)備的輸入輸出管理。
3.程序中斷方式
“中斷”概念的提出,是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)中的一個(gè)重大變革。在程序中斷方式中,某一外設(shè)的數(shù)據(jù)準(zhǔn)備就緒后,它“主動(dòng)”向CPU發(fā)請(qǐng)求中斷的信號(hào),請(qǐng)求CPU暫時(shí)中斷目前的工作而進(jìn)行數(shù)據(jù)交換。當(dāng)CPU響應(yīng)這個(gè)中斷時(shí),便暫停運(yùn)行主程序,并自動(dòng)轉(zhuǎn)移到該設(shè)備的中斷服務(wù)程序。當(dāng)中斷服務(wù)程序結(jié)束以后,CPU又回到原來(lái)的主程序。其原理和調(diào)用子程序相仿,不過(guò),這里要求轉(zhuǎn)移到中斷服務(wù)子程序的請(qǐng)求是由外部設(shè)備發(fā)出的。中斷方式特別適合于隨機(jī)出現(xiàn)的服務(wù)。
4.DMA方式
(1)DMA方式的基本概念
直接訪問(wèn)內(nèi)存DMA方式,是一種完全由硬件執(zhí)行I/O交換的工作方式。在這種方式中,DMA控制器從CPU中完全接管對(duì)總線(xiàn)的控制,數(shù)據(jù)交換不經(jīng)過(guò)CPU,而直接在內(nèi)存儲(chǔ)器和I/O設(shè)備之間進(jìn)行。DMA方式一般用于高速地傳送成組的數(shù)據(jù)。DMA控制器將向內(nèi)存發(fā)出地址和控制信號(hào)、修改地址、對(duì)傳送的字的個(gè)數(shù)計(jì)數(shù),并且以中斷方式向CPU報(bào)告?zhèn)魉筒僮鞯慕Y(jié)束。DMA方式的主要優(yōu)點(diǎn)是速度快。由于CPU根本不參加傳送操作,因此就省去了CPU取指令、取數(shù)、送數(shù)等操作。在數(shù)據(jù)傳送過(guò)程中,也不象中斷方式那樣,要進(jìn)行保存現(xiàn)場(chǎng)、恢復(fù)現(xiàn)場(chǎng)之類(lèi)的工作。內(nèi)存地址修改、傳送字個(gè)數(shù)的計(jì)數(shù)等,也不是由軟件實(shí)現(xiàn),而是用硬件線(xiàn)路直接實(shí)現(xiàn)的。DMA的種類(lèi)很多,但各種DMA至少能執(zhí)行以下一些基本操作:①?gòu)耐獠吭O(shè)備發(fā)出DMA請(qǐng)求;
②CPU響應(yīng)請(qǐng)求,把CPU工作改成DMA操作方式,DMA控制器從CPU接管總線(xiàn)的控制;③由DMA控制器對(duì)內(nèi)存尋址,即決定數(shù)據(jù)傳送的內(nèi)存單元首地址及數(shù)據(jù)傳送個(gè)數(shù)的計(jì)數(shù),并執(zhí)行數(shù)據(jù)傳送的操作;
④向CPU報(bào)告DMA操作的結(jié)束。
(2)DMA技術(shù)的出現(xiàn),使得外部設(shè)備可以**DMA控制器直接訪問(wèn)內(nèi)存,與此同時(shí),CPU可以繼續(xù)執(zhí)行程序。那么DMA控制器與CPU怎樣分時(shí)使用內(nèi)存呢?通常采用以下三種方法:①停止CPU訪問(wèn);②周期挪用;
③DMA與CPU交替訪問(wèn)。
(3)基本的DMA控制器
一個(gè)DMA控制器實(shí)際上是采用DMA方式的外部設(shè)備與系統(tǒng)總線(xiàn)之間的接口電路。這個(gè)接口電路是在中斷接口的基礎(chǔ)上再加DMA機(jī)構(gòu)組成。習(xí)慣上將DMA方式的接口電路稱(chēng)為DMA控制器。
①內(nèi)存地址計(jì)數(shù)器
用于存放內(nèi)存中要交換的數(shù)據(jù)地址。在DMA傳送前,需**程序?qū)?shù)據(jù)在內(nèi)存中的起始位置(首地址)送到內(nèi)存地址計(jì)數(shù)器。而當(dāng)DMA傳送時(shí),每交換一次數(shù)據(jù),將地址計(jì)數(shù)器加“1”,從而以增量方式給出內(nèi)存中要交換的一批數(shù)據(jù)的地址。
②字計(jì)數(shù)器
用于記錄傳送數(shù)據(jù)塊的長(zhǎng)度(多少字?jǐn)?shù))。其內(nèi)容也是在數(shù)據(jù)傳送之間由程序預(yù)置,交換的字?jǐn)?shù)通常以補(bǔ)碼形式表示。在DMA傳送時(shí),每傳送一個(gè)字,字計(jì)數(shù)器就加“1”,當(dāng)計(jì)數(shù)器溢出即位產(chǎn)生進(jìn)位時(shí),表示這批數(shù)據(jù)傳送完畢,于是引起DMA控制器向CPU發(fā)出中斷信號(hào)。
③數(shù)據(jù)緩沖寄存器
用于暫存每次傳送的數(shù)據(jù)(一個(gè)字)。當(dāng)輸入時(shí),由設(shè)備(如磁盤(pán))送往數(shù)據(jù)緩沖寄存器,再由緩沖寄存器**數(shù)據(jù)總線(xiàn)送到內(nèi)存。反之,輸出時(shí),由內(nèi)存**數(shù)據(jù)總線(xiàn)送到數(shù)據(jù)緩沖寄存器,然后再送到設(shè)備。
④“DMA請(qǐng)求”標(biāo)志
每當(dāng)設(shè)備準(zhǔn)備好一個(gè)數(shù)據(jù)字后給出一個(gè)控制信號(hào),使“DMA”請(qǐng)求標(biāo)志置“1”。該標(biāo)志置位后向“控制/狀態(tài)”邏輯發(fā)出DMA請(qǐng)求,后者又向CPU發(fā)出總線(xiàn)使用權(quán)的請(qǐng)求(HOLD),CPU響應(yīng)此請(qǐng)求后發(fā)回響應(yīng)信號(hào)HLDA,“控制/狀態(tài)”邏輯接收此信號(hào)后發(fā)出DMA響應(yīng)信號(hào),使“DMA請(qǐng)求”標(biāo)志復(fù)位,為交換下一個(gè)字做好準(zhǔn)備。
⑤“控制/狀態(tài)”邏輯它由控制和時(shí)序電路,以及狀態(tài)標(biāo)志等組成,用于修改內(nèi)存地址計(jì)數(shù)器和字計(jì)數(shù)器,指定傳送類(lèi)型(輸入輸出),并對(duì)“DMA請(qǐng)求”信號(hào)和CPU響應(yīng)信號(hào)進(jìn)行協(xié)調(diào)和同步。⑥中斷機(jī)構(gòu)
當(dāng)字計(jì)數(shù)器溢出時(shí)(全0),意味著一組數(shù)據(jù)交換完畢,由溢出信號(hào)觸發(fā)中斷機(jī)構(gòu),向CPU提出中斷報(bào)告。這里的中斷與前面介紹的I/O中斷所采用的技術(shù)相同,但中斷的目的不同,前面是為了數(shù)據(jù)的輸入或輸出,而這里是為了報(bào)告一組數(shù)據(jù)傳送結(jié)束。因此它們是I/O系統(tǒng)中不同的中斷事件。
5.通道方式
(1)通道的功能
DMA控制器的出現(xiàn)已經(jīng)減輕了CPU對(duì)數(shù)據(jù)輸入輸出的控制,使得CPU的效率有顯著的提高。而通道的出現(xiàn)則進(jìn)一步提高了CPU的效率。這是因?yàn)橥ǖ朗且粋€(gè)特殊功能的處理器,它有自己的指令和程序?qū)iT(mén)負(fù)責(zé)數(shù)據(jù)輸入輸出的傳輸控制,而CPU將“傳輸控制”的功能下放給通道后只負(fù)責(zé)“數(shù)據(jù)處理”功能。這樣,通道與CPU分時(shí)使用內(nèi)存,實(shí)現(xiàn)了CPU內(nèi)部運(yùn)算與I/O設(shè)備的并行工作。
通道的基本功能是執(zhí)行通道指令、組織外部設(shè)備和內(nèi)存進(jìn)行數(shù)據(jù)傳輸,按I/O指令要求啟動(dòng)外部設(shè)備,向CPU報(bào)告中斷等,具體有以下五項(xiàng)任務(wù):
①接受CPU的I/O指令,按指令要求與指定的外部設(shè)備進(jìn)行通信;
②從內(nèi)存選取屬于該通道程序的通道指令,經(jīng)譯碼后向設(shè)備控制器和設(shè)備發(fā)送各種命令;
③組織外部設(shè)備和內(nèi)存之間進(jìn)行數(shù)據(jù)傳送,并根據(jù)需要提供數(shù)據(jù)中間緩存的空間,以及提供數(shù)據(jù)存入內(nèi)存的地址和傳送的數(shù)據(jù)量;
④從外部設(shè)備得到設(shè)備的狀態(tài)信息,形成并保存通道本身的狀態(tài)信息,根據(jù)要求將這些狀態(tài)信息送到內(nèi)存的指定單元,供CPU使用;
⑤將外部設(shè)備的中斷請(qǐng)求和通道本身的中斷請(qǐng)求,按次序及時(shí)報(bào)告CPU。
(2)通道類(lèi)型
根據(jù)通道的工作方式,通道可分為:①選擇通道。②數(shù)組多路通道。③字節(jié)多路通道。④通道適配器。
6.外部設(shè)備
外部設(shè)備分為輸入設(shè)備、輸出設(shè)備、輸入輸出兼用設(shè)備、外存設(shè)備、數(shù)據(jù)通信設(shè)備和過(guò)程控制設(shè)備等。
①輸入設(shè)備②輸出設(shè)備③漢字設(shè)備
④數(shù)據(jù)通信設(shè)備
⑤過(guò)程控制設(shè)備