版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
圖8-7空閑盤塊表空閑盤區(qū)的分配與內(nèi)存的分區(qū)(動態(tài))分配類似,同樣是采用首次適應(yīng)算法和最佳適應(yīng)算法(2)空閑鏈表法這種方法的優(yōu)點是用于分配和回收一個盤塊的過程非常簡單.c.缺點這是將磁盤上的所有空閑盤區(qū)(每個盤區(qū)可包含若干個盤塊)拉成一條鏈。在每個盤區(qū)上除含有用于指示下一個空閑盤區(qū)的指針外,還應(yīng)有能指明本盤區(qū)大小(盤塊數(shù))的信息。c.缺點2.位示圖法(1)位示圖由所有盤塊所對應(yīng)的位構(gòu)成一個集合,稱為位示圖。如圖8-8所示。圖8-8位示圖(2)盤塊的分配制位位于位示圖的第i行、第J列,則其相應(yīng)的盤塊號應(yīng)按下式計算:③修改位示圖,令map[i,j]=1。(3)盤塊的回收j=(b-1)MODn+1(4)優(yōu)點3.成組鏈接法(1)空閑盤塊的組織用來存放當(dāng)前可用的一組空閑盤塊的盤塊號(最多含100個號),以及棧中尚有的空閑盤塊(號)數(shù)N。順便指出,N還兼作棧頂指針用。圖8-9左部示出了空圖8-9空閑盤塊的成組鏈接法②文件區(qū)中的所有空閑盤塊被分成若干個組,如圖8-11所示。③將每一組含有的盤塊總數(shù)N和該組所有的盤塊號記入其前一組的第一個盤塊的S.free(0)~S.free(99)中。這樣,由各組的第一個盤塊可鏈成一條鏈。⑤最末一組只有99個可用盤塊,其盤塊號分別記入其前一組的S.free(1)~S.free(99)注意:最后一組的盤塊數(shù)仍為100,但實際可供使用的空閑盤塊數(shù)卻是99,對應(yīng)的編號應(yīng)為(1~99),0號中放空閑盤塊鏈的結(jié)尾標(biāo)志,而不再是空閑盤塊號。(2)空閑盤塊的分配與回收a.該過程首先檢查空閑盤塊號棧是否上鎖,如未上鎖,便從棧頂取出一空閑盤塊號,將與b.若該盤塊號已是棧底,調(diào)用磁盤讀過程將棧底盤塊號所對應(yīng)盤塊的內(nèi)容讀入棧中,作為新的盤塊號棧的內(nèi)容,并把原棧底對應(yīng)的盤塊分配出去。然后,再為該盤塊的緩沖區(qū))。c.最后,把棧中的空閑盤塊數(shù)減1并返回。盤塊號棧的頂部,并執(zhí)行空閑盤塊數(shù)加1操作。當(dāng)棧中空閑盤塊號數(shù)目已達(dá)100時,表示棧已滿,便將現(xiàn)有棧中的100個盤塊號記入新回收的盤塊中,再將其盤塊號作為新棧底。三、提高磁盤I/O速度的途徑1.磁盤高速緩存(DiskCache)(1)數(shù)據(jù)交付(DataDelivery)方式如果I/0請求所需要的數(shù)據(jù)能從磁盤高速緩存中獲取,此時就需要將磁盤高速緩存中的數(shù)(2)置換算法由于請求調(diào)頁中的聯(lián)想存儲器與高速緩存(磁盤I/0中)的工作情況不同,因而使得在置存中的數(shù)據(jù)將會丟失;而其中有些盤塊(如索引結(jié)點盤塊)中的數(shù)據(jù)己被修改,但尚未拷回(3)周期性地寫回磁盤根據(jù)LRU算法,那些經(jīng)常要被訪問的盤塊數(shù)據(jù)可能會一直保留在高速緩存中,長期不會被寫回磁盤。為了解決這一問題,在UNIX系統(tǒng)中專門增設(shè)了一個修改(update)程序,使之2.提高磁盤I/O速度的其它方法(1)提前讀(2)延遲寫(3)優(yōu)化物理塊的分布(4)虛擬盤所謂虛擬盤,又稱為RAM盤。該盤的設(shè)備驅(qū)動程序也可以接受所有標(biāo)準(zhǔn)的磁盤操作,但這②主要問題虛擬盤中的內(nèi)容完全由用戶控制,而磁盤高速緩存中的內(nèi)容則是由OS3.廉價磁盤冗余陣列(RAID)RAID系統(tǒng)是利用一臺磁盤陣列控制器來統(tǒng)一管理和控制一組磁盤驅(qū)動器,組成一個大型磁(1)并行交叉存取以提高對磁盤的I/O速度。圖8-10示出了磁盤并行交叉存取方式。圖8-10磁盤并行交叉存取方式(2)RAID的分級②優(yōu)點RAID0級的主要優(yōu)點是,它能夠?qū)崿F(xiàn)高效的傳輸,并能實現(xiàn)高速的I/O請求。③缺點RAIDO級的主要缺點是無冗余校驗功能,致使磁盤系統(tǒng)的可靠性并不是很高。只要陣列中②優(yōu)點RAID1級的主要優(yōu)點是可靠性好,且從故障中恢復(fù)很簡單。③缺點RAID1級的主要缺點是磁盤容量的利用率只有50%,它的優(yōu)點是以犧牲磁盤容量為代價的。這是具有并行傳輸功能的磁盤陣列。它只利用一臺奇行讀/寫,且無專門的校驗盤。用來進(jìn)行糾錯的校驗信息是以螺旋(Spiral)方式散布在所⑤RAID6級和RAID7級在RAID6級的陣列中,設(shè)置了一個專用的、可快速訪問的異步校驗盤。該盤具有獨立的數(shù)據(jù)訪問通路,具有比RAID3級及RAID5級更好的性能,但其性能改進(jìn)得很RAID7級是對RAID6級的改進(jìn),在該陣列中的所有磁盤都具有較高的傳輸速率和優(yōu)異的(3)RAID的優(yōu)點除了RAID0級外,其余各級都采用了容錯技術(shù)。當(dāng)陣列中某一磁盤損壞時,并不會造成數(shù)②磁盤I/O速度高由于采取了并行交叉存取方式,可使磁盤I/0速度提高N-1倍。RAID的體積與具有相同容量和速度的大型磁盤系統(tǒng)相比,只是后者的1/3,價格也只是后者的1/3,且可靠性高。換言之,它僅以犧牲1/N的容量為代價,換取了高可靠性。1.第一級容錯技術(shù)SFT-I第一級容錯技術(shù)(SFT-I)是最基本的一種磁盤容錯技術(shù),主要用于防止因磁盤表面缺陷所(1)雙份目錄和雙份文件分配表可在不同的磁盤上或在磁盤的不同區(qū)域中分別建立(雙份)目錄表和FAT。其中一份為主目錄及主FAT,另一份為備份目錄及備份FAT。一旦由于磁盤表面缺陷而造成主文件目錄或主FAT的損壞時,系統(tǒng)便自動啟用備份文件目錄及備份FAT,從而可以保證磁盤上的數(shù)(2)熱修復(fù)重定向和寫后讀校驗2.第二級容錯技術(shù)SFT-IⅡ③缺點(1)磁盤鏡像(DiskMirroring)一磁盤控制器下,再增設(shè)一個完全相同的磁盤驅(qū)動器,如圖8-11所示。圖8-11磁盤鏡像示意圖(2)磁盤雙工(DiskDuplexing)器上,同樣使這兩臺磁盤機鏡像成對,如圖8-12所示,在磁盤雙工時,每一個磁盤都有自圖8-12磁盤雙工示意圖3.基于集群技術(shù)的容錯功能(1)雙機熱備份模式如圖8-13所示,在這種模式的系統(tǒng)中,備有兩臺服務(wù)器,兩者的處理能力通常是完全相同圖8-13雙機熱備份模式②優(yōu)點從服務(wù)器處于被動等待狀態(tài),整個系統(tǒng)的使用效率只有50%。(2)雙機互為備份模式圖8-14雙機互為備份系統(tǒng)的示意圖②優(yōu)點兩臺服務(wù)器都可用于處理任務(wù),因而系統(tǒng)效率較高,現(xiàn)在已將這種模式從兩臺機器擴大到4臺、8臺、16臺甚至更多。系統(tǒng)中所有的機器都可用于處理任務(wù),當(dāng)其中一臺發(fā)生故障時,(3)公用磁盤模式②優(yōu)點4.后備系統(tǒng)(1)配置后備系統(tǒng)的原因(2)后備系統(tǒng)的設(shè)備磁盤機的主要優(yōu)點是容量大,一般可達(dá)數(shù)GB至數(shù)十GB,且價格便宜,故在許多大、中型c.缺點①原子性②硬盤a.移動磁盤保存方便,而且保存時間也較長,可比磁帶機長出3~5年。但單位容量的費用較高。近年b.固定硬盤驅(qū)動器硬盤系統(tǒng)。每個硬盤都被劃分為兩個分區(qū):一個數(shù)據(jù)區(qū),一個備份區(qū),如圖8-15所示。這圖8-15利用大容量硬盤兼做后備系統(tǒng)a.只讀光盤驅(qū)動器CD-ROM和DVD-ROM這兩種驅(qū)動器主要用于播放音頻和視頻信號。但由于它們都只能播放(讀)不能寫,故難于b.可讀寫光盤驅(qū)動器又把它稱為刻錄機。它們既能播放(讀)又能刻錄(寫),故可將它們作為后備設(shè)備,存儲第二,COMBO刻錄機,它能播放DVD光盤,但只能刻錄CD、VCD光盤;(1)事務(wù)的定義(2)事務(wù)的屬性一個事務(wù)在對一批數(shù)據(jù)執(zhí)行修改操作時,應(yīng)該是要么全部完成,并用修改后的數(shù)據(jù)去代替原來的數(shù)據(jù),要么一個也不修改。即事務(wù)在完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài);即對一個事務(wù)對數(shù)據(jù)所作的修改,必須與任何其它與之并發(fā)事務(wù)相隔離,換言之,一個事務(wù)查看數(shù)據(jù)時數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),而不會是任何中間狀態(tài)的數(shù)據(jù);即事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的。(3)事務(wù)記錄(TransactionRecord)為了實現(xiàn)上述的原子修改,通常須借助于稱為事務(wù)記錄的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)。該記錄中包括有①事務(wù)名:用于標(biāo)識該事務(wù)的唯名字;②數(shù)據(jù)項名:它是被修改數(shù)據(jù)項的唯一名字:③舊值:修改前數(shù)據(jù)項的值;④新值:修改后數(shù)據(jù)項將具有的值。在事務(wù)記錄表中的每一記錄描述了在事務(wù)運行中的重要事務(wù)操作,如修改操作、開始事務(wù)、托付事務(wù)或夭折事務(wù)等。利用事務(wù)記錄表系統(tǒng)能處理任何故障而不致使故障造成非易失性存儲器中信息的丟失。恢復(fù)算法可利用以下兩個過程:①undo<T;>。該過程把所有被事務(wù)Ti修改過的數(shù)據(jù)恢復(fù)為修改前的值。②redo<Ti>。該過程能把所有被事務(wù)Ti修改過的數(shù)據(jù)設(shè)置為新值。2.檢查點(1)檢查點(CheckPoints)的作用引入檢查點的主要目的是,使對事務(wù)記錄表中事務(wù)記錄的清理工作經(jīng)常化,即每隔一定時間便做一次下述工作:①首先是將駐留在易失性存儲器(內(nèi)存)中的當(dāng)前事務(wù)記錄表中的所有記錄輸出到穩(wěn)定存儲器中;其次是將駐留在易失性存儲器中的所有已修改數(shù)據(jù)輸出到穩(wěn)定存儲器中;②然后是將事務(wù)記錄表中的(檢查點)記錄輸出到穩(wěn)定存儲器中;③最后是每當(dāng)出現(xiàn)一個(檢查點)記錄時,系統(tǒng)便執(zhí)行上小節(jié)所介紹的恢復(fù)操作,即利用redo和undo過程實現(xiàn)恢復(fù)功能。(2)新的恢復(fù)算法在引入檢查點后,可以大大減少恢復(fù)處理的開銷。因為在發(fā)生故障后,并不需要對事務(wù)記錄表中的所有事務(wù)記錄進(jìn)行處理,而只需對最后一個檢查點之后的事務(wù)記錄進(jìn)行處理。如果把所有在事務(wù)Ti以后開始執(zhí)行的事務(wù)表示為事務(wù)集T則新的恢復(fù)操作要求如下①對所有在T中的事務(wù)TK,如果在事務(wù)記錄表中出現(xiàn)了<Tk托付>記錄,則執(zhí)行redo(Tk)②如果在事務(wù)記錄表中并未出現(xiàn),<Tk托付>記錄,則執(zhí)行undo(Tk)操作。3.并發(fā)控制(ConcurrentControl)(1)利用互斥鎖實現(xiàn)“順序性”實現(xiàn)順序性的一種最簡單的方法,是設(shè)置一種用于實現(xiàn)互斥的鎖,簡稱為互斥鎖(ExclusiveLock)。在利用互斥鎖實現(xiàn)順序性時,應(yīng)為每一個共享對象設(shè)置一把互斥鎖。當(dāng)某一事務(wù)Ti要去訪問某對象時,應(yīng)先獲得該對象的互斥鎖。若成功,便用該鎖將該對象鎖住,于是事務(wù)Ti便可對該對象執(zhí)行讀或?qū)懖僮?;而其它事?wù)由于未能獲得該鎖,因而不能訪問該對(2)利用互斥鎖和共享鎖實現(xiàn)順序性為了提高運行效率而又引入了另一種形式的鎖—共享鎖(SharedLock)。a.互斥鎖僅允許一個事務(wù)對相應(yīng)對象執(zhí)行讀或b.共享鎖則允許多個事務(wù)對相應(yīng)對象執(zhí)行讀操作,但不允許其中任何一個事務(wù)對對象執(zhí)行4.重復(fù)數(shù)據(jù)的數(shù)據(jù)一致性問題(1)重復(fù)文件的一致性對于通常的UNIX文件目錄,其每個目錄項中含有一個ASCLL碼的文件名和一個索引結(jié)點點號組成,每個索引結(jié)點號都是指向各自的索引結(jié)點。圖8-16示出了UNIX類型的目錄和圖8-16UNIX類型的目錄a.當(dāng)一個文件被修改后可查找文件目錄,以得到其它幾個拷貝的索引結(jié)點號,再從這些索b.為新修改的文件建立幾個拷貝,并用新拷貝去取代原來的文件拷貝。(2)鏈接數(shù)一致性檢查點中有一個鏈接計數(shù)count,用來指出共享本文件的用戶(進(jìn)程)數(shù)。在正常情況下這兩個1.目前常用的外存有哪幾種組織方式?答:(1)連續(xù)組織方式(2)鏈接組織方式(3)索引組織方式2.由連續(xù)組織方式所形成的順序文件的主要優(yōu)缺點是什么?它主要應(yīng)用于何種場合?答:(1)連續(xù)組織方式所形成的順序文件的主要優(yōu)點(2)連續(xù)組織方式所形成的順序文件的主要缺點(3)主要適用場合3.在鏈接式文件中常用哪種鏈接方式?為什么?答:(1)鏈接方式的分類在整個磁盤僅設(shè)置一張,表的序號是物理盤塊號,從0開始,直至N-1,N為總塊數(shù)。在每或者說是每一條鏈的鏈?zhǔn)字羔標(biāo)鶎?yīng)的盤塊(2)在鏈接式文件中常用顯式鏈接的原因為了適應(yīng)磁盤容量不斷增大的需要,在進(jìn)行盤塊分配時,不再以盤塊而是以簇(Cluste(2)以簇作為基本分配單位的好處表的項數(shù)是與簇的大小成反比),使FAT表占用更少的存儲空間,并減少訪問FAT表的存FAT12表中的表項有限制,亦即最多只允許4096個。這樣,隨著磁盤容量的增加,必定會位數(shù)(寬度)。如果我們將FAT表項位數(shù)增至16位,最大表項數(shù)將增至65536(216)個,此時便能將一個磁盤分區(qū)分為65536(216)個簇。由于FAT16表的長度只有65535項,隨著磁盤容量的增加,簇的大小也必然會隨之增加,為了減少簇內(nèi)零,也就應(yīng)當(dāng)增加FAT表的長度,為此需要再增加FAT表的寬度,這樣也就由FAT16演變?yōu)镕AT32。6.試解釋邏輯簇號和虛擬簇號這兩個名詞,NTF答:(1)邏輯簇號的定義邏輯簇號(LCN)是對卷進(jìn)行管理的工具,使用邏輯簇號可對卷的第一個簇到最后一個簇進(jìn)(2)虛擬簇號的定義虛擬簇號(VCN)也是對卷進(jìn)行管理的工具,使用虛擬簇號可對特定文件的簇從頭到尾進(jìn)行編號。它不要求物理上是連續(xù)的,要確定VCN的磁盤上的定位需先將其轉(zhuǎn)換為LCN。NTFS在進(jìn)行地址映射時,可以通過卷因子與LCN的乘積,算出卷上的物理字節(jié)偏移量,從而得到文件數(shù)據(jù)所在的物理磁盤地址。為了方便文件中數(shù)據(jù)的引用,NVCN,以文件為單位,將屬于某個文件的簇按順序進(jìn)行編號。只要知道了文件開始的簇地址,便可將VCN映射到LCN。7.在MS-DOS中有兩個文件A和B,A占用11、12、16和14四個盤塊;B占用13、18和20三個盤塊。試畫出在文件A和B中各盤塊間的鏈接情況及FAT的情況。圖8-1文件A、B盤塊間的鏈接情況和FAT情況8.NTFS文件系統(tǒng)中的文件所采用的是什么樣的物理結(jié)構(gòu)?一個簇只屬于一個文件。通過簇來間接管理磁盤,可以不需要知道盤塊(扇區(qū))的大小,使NTFS具有了與磁盤物理扇區(qū)大小無關(guān)的獨立性,很容易支持扇區(qū)大小不是512字節(jié)的非標(biāo)的,其大小同F(xiàn)AT一樣,也是物理磁盤扇區(qū)的整數(shù)倍,即一個簇包含2n(n為整數(shù))個盤目錄信息以及可用的未分配空間信息,都以文件記錄的方式記錄在一張主控文件表9.假定一個文件系統(tǒng)的組織方式與MS.DOS相似,在FAT中可有64K個指針,磁盤的盤塊大小為5128,試問該文件系統(tǒng)能否指引一個512MB的磁盤?答:該文件系統(tǒng)不能指引一個512MB的磁盤。因為該系統(tǒng)中的盤塊個數(shù)為個,而每個盤塊都應(yīng)有一個指針來指示,所以應(yīng)該有1M個指針,因為64K<1M,所以若有64K指針則該文件系統(tǒng)不能指引一個512MB的磁盤。10.為了快速訪問,又易于更新,當(dāng)數(shù)據(jù)為以下形式時,應(yīng)選用何種文件組織方式?(1)不經(jīng)常更新,經(jīng)常隨機訪問;(2)經(jīng)常更新,經(jīng)常按一定順序訪問;(3)經(jīng)常更新,經(jīng)常隨機訪問。答:(1)順序結(jié)構(gòu)的文件組織形式便于隨機訪問,但更新困難,因此對于不經(jīng)常更新,經(jīng)(2)索引順序結(jié)構(gòu)在順序結(jié)構(gòu)的基礎(chǔ)上增加了索引項,使得數(shù)據(jù)容易更新,并且易于按一(3)索引結(jié)構(gòu)的文件組織形式容易更新且便于隨機訪問,因此經(jīng)常更新,經(jīng)常隨機訪問的11.在UNIX中,如果一個盤塊的大小為1KB,每個盤塊號占4個字節(jié),即每塊可放256商為邏輯塊號,余數(shù)是塊內(nèi)偏移量。在UNIX的FCB中,第0~9個地址為直接地址,第10個為一次間接地址,第11個地址為二次間接地址,第12個地址為三次間接地址。在將(1)9999/1024=9余783,則邏輯塊號為9,直接索引第9個地址得到物理塊號,塊內(nèi)偏移地址為783;(2)18000/1024=17余592,則邏輯塊號為10<17<10+256,通過一次間接索引在第10個地址可得到物理塊號,塊內(nèi)偏移地址為592;(3)420000/1024=410余160,則邏輯塊號為10+256<410,通過二次間接索引在第11個地址中可得到一次間址,再由此得到二次間址,再找到物理塊號,其塊內(nèi)偏移地址160。12.什么是索引文件?為什么要引入多級索引?答:(1)索引文件的定義相應(yīng)的表項,用于記錄該記錄的長度L及指向該記錄的指針(指向該記錄在邏輯地址空間的首址),以加快對記錄檢索的速度。(2)引入多級索引的目的13.試說明增量式索引組織方式。答:(1)為了能較全面地照顧到小、中、大及特大型作業(yè),可以采取多種組織方式來構(gòu)成文件的物理結(jié)構(gòu)。如果盤塊的大小為1KB或4KB,對于小文件(如1KB~10KB或4KB~40KB)而言,最多只會占用10個盤塊,為了能提高對數(shù)量眾多的小型作業(yè)的訪問速度,最好能將它們的每一個盤塊地址都直接放入文件控制塊FCB(或索引結(jié)點)中,這樣就可以(2)一般把這種尋址方式又稱為直接尋址。對于中等文件(如11KB~256KB或5KB~4MB),可以采用單級索引組織方式。此時為獲得該文件的盤塊地址,只需先從FCB中找到又采用了單級和多級索引組織方式(間接尋址)。通常又可將這種組織方式稱為混合組織方式。在UNIX系統(tǒng)中所采用的就是這種組織方式。14.有一計算機系統(tǒng)利用圖8-2所示的位示圖來管理空閑盤塊。盤塊的大小為1KB,現(xiàn)要為圖8-2某計算機系統(tǒng)的位示圖(1)順序掃描位示圖,找到第一個值為0的二進(jìn)制位,得到行號i=3,列號j=3;(2)將找到的二進(jìn)制位轉(zhuǎn)換成對應(yīng)的盤塊號。盤塊號b=(3-1)*16+3=35;(3)修改位示圖,令map[3,3]=1,并將該盤塊分配出去。類似地,可使用相同的方法找到第二個值為0的二進(jìn)制位,得到行號i=4,列號j=7,其對應(yīng)的盤塊號為55,令map[i,j]=1,并將該盤塊分配出去。15.某操作系統(tǒng)的磁盤文件空間共有500塊,若用字長為32位的位示圖管理盤空間,試問:(1)位示圖需多少個字?(3)給出申請,歸還一塊的工作流程。答:(1)位示圖需要的字?jǐn)?shù)為500/32(向上取整)=16個字;(2)第i字第j位對應(yīng)的塊號為b=(i-1)*32+j;16.對空閑磁盤空間的管理常采用哪幾種分配方式?在UNIX系統(tǒng)中是采用何種分配方式?答:(1)空閑磁盤空間的管理采用的分配方式17.可從哪幾方面來提高對文件的訪問速度?(1)改進(jìn)文件的目錄結(jié)構(gòu)以及檢索目錄的方法來減少對目錄的查找時間:(2)選取好的文件存儲結(jié)構(gòu),以提高對文件的訪問速度;(3)提高磁盤的I/O速度,能將文件中的數(shù)據(jù)快速地從磁盤傳送到內(nèi)存中,或者相反。18.何謂磁盤高速緩存?在設(shè)計磁盤高速緩存時需要考慮哪些問題?答:(1)磁盤高速緩存的定義(2)在設(shè)計磁盤高速緩存時需要考慮的問題19.可以采取哪幾種方式將磁盤高速緩存中的數(shù)據(jù)傳送給請求者進(jìn)程?(1)數(shù)據(jù)交付,這是直接將高速緩存中的數(shù)據(jù)傳送到請求者進(jìn)程的內(nèi)存工作區(qū)中:(2)指針交付,只將指向高速緩存中某區(qū)域的指針交付給請求者進(jìn)程。后一種方式由于所20.何謂提前讀和廷遲寫?答:(1)提前讀的定義提前讀是指用戶(進(jìn)程)對文件進(jìn)行訪問時,經(jīng)常采用順序訪問方式,即順序地訪問文件各先讀方式,即在讀當(dāng)前塊的同時,還要求將下一個盤塊(提前讀的塊)中的數(shù)據(jù)也讀入緩沖可直接從緩沖區(qū)中取得下一盤塊的數(shù)據(jù),而不需再去啟動磁盤I/O,從而大大減少了讀數(shù)據(jù)的時間。這也就等效于提高了磁盤I/O的速度。(2)延遲寫的定義可能還會再被本進(jìn)程或其它進(jìn)程訪問(共享資源),因而并不立即將該緩沖區(qū)中的數(shù)據(jù)寫入I/O時間。21.試說明廉價磁盤冗余陣列RAID的主要優(yōu)點。答:(1)可靠性高除了RAID0級外,其余各級都采用了容錯技術(shù)。當(dāng)陣列中某一磁盤損壞時,并不會造成數(shù)(2)磁盤I/O速度高由于采取了并行交叉存取方式,可使磁盤I/O速度提高N-I倍。(3)性能,價格比高RAID的體積與具有相同容量和速度的大型磁盤系統(tǒng)相比,只是后者的1/3,價格也只是后者的1/3,且可靠性高。換言之,它僅以犧牲1/N的容量為代價,換取了高可靠性。22.在第一級系統(tǒng)容錯技術(shù)中,包括哪些容錯措施?什么是寫后讀校驗?答:(1)第一級容錯技術(shù)包含的容錯措施①雙份目錄和雙份文件分配表:在磁盤上存放的文件目錄和文件分配表FAT,是文件管理分別建立(雙份)目錄表和FAT;②優(yōu)點(2)寫后讀校驗的定義23.在第二級系統(tǒng)容錯技術(shù)中,包括哪些容錯措施?請畫圖說明之。答:(1)第二件容錯技術(shù)包含的容錯措施(2)第二級容錯技術(shù)的圖示說明如圖8-3所示。圖8-3磁盤鏡像和磁盤雙工示意圖24.具有容錯功能的集群系統(tǒng)的主要工作模式有哪幾種?請簡要說明之。答:(1)雙機熱備份模式該模式的缺點是從服務(wù)器處于被動等待狀態(tài),整個系統(tǒng)的使用效率只有50%。(2)雙機互為備份模式②優(yōu)點兩臺機器擴大到4臺、8臺、16臺甚至更多。系統(tǒng)中所有的機器都可用于處理任務(wù),當(dāng)其中(3)公用磁盤模式②優(yōu)點25.為什么要在系統(tǒng)中配置后備系統(tǒng)?目前常用做后備系統(tǒng)的設(shè)備有哪幾種?答:(1)在系統(tǒng)中配置后備系統(tǒng)的目的(2)常用的后備系統(tǒng)設(shè)備26.何謂事務(wù)?如何保證事務(wù)的原子性?答:(1)事務(wù)的定義對分布在不同位置的同一數(shù)據(jù)所進(jìn)行的讀和寫(含修改)操作全部完成時,才能再以托付操(2)保證事務(wù)原子性的方法27.引入撿查點的目的是什么?引入檢查點后又如何進(jìn)行恢復(fù)處理?答:(1)引入檢查點的目的次下述工作:首先是將駐留在易失性存儲器(內(nèi)存)中的當(dāng)前事務(wù)記錄表中的所有記錄輸出然后是將事務(wù)記錄表中的(檢查點)記錄輸出到穩(wěn)定存儲器中;最后是每當(dāng)出現(xiàn)一個(檢查點)記錄時,系統(tǒng)便執(zhí)行恢復(fù)操作,利用redo和undo過程實現(xiàn)恢復(fù)功能。(2)引入檢查點后恢復(fù)處理的方法的事務(wù)Ti。在找到這樣的事務(wù)后再返回去搜索事務(wù)記錄表,便找到第一個檢查點記錄,恢28.為何引入共享鎖?如何用互斥鎖或共享鎖來實現(xiàn)事務(wù)的順序性?答:(1)引入共享鎖的目的(2)用互斥鎖或共享鎖實現(xiàn)事務(wù)順序性的方法在為一個對象設(shè)置了互斥鎖和共享鎖的情況下,如果事務(wù)Ti要對Q執(zhí)行讀操作,則只得對象Q的共享鎖。如果對象Q已被互斥鎖鎖住,則Ti必須等待;否則便獲得共享鎖,對Q執(zhí)行讀操作。如果Ti要對Q執(zhí)行寫操作,則Ti還需獲得Q的互斥鎖。若失敗則等待;否則,可獲得互斥鎖并對Q執(zhí)行寫操作。29.當(dāng)系統(tǒng)中有重復(fù)文件時,如何保證它們的一致性?(1)當(dāng)一個文件被修改后,可查找文件目錄,以得到其它幾個拷貝的索引結(jié)點號,再從這(2)為新修改的文件建立幾個拷貝,并用新拷貝去取代原來的文件拷貝。答:(1)檢查盤塊號一致性的方法表中的表項數(shù)目等于盤塊數(shù)N。③在對盤塊的數(shù)據(jù)結(jié)構(gòu)進(jìn)行檢查時,應(yīng)該先將計數(shù)器表中的所有表項初始化為0,然后用N(2)檢查時可能出現(xiàn)的情況②空閑盤塊號計數(shù)器中盤塊K的計數(shù)值為2,則空閑盤塊號重復(fù)出現(xiàn),應(yīng)刪除一個空閑盤塊號K;③空閑盤塊號計數(shù)器中盤塊號K的計數(shù)值為0,而數(shù)據(jù)盤塊號計數(shù)器中盤塊號K的計數(shù)值8.3考研真題與典型題詳解(略)第9章操作系統(tǒng)接口1.字符顯示式聯(lián)機用戶接口(1)命令行方式該方式是以行為單位,輸入和顯示不同的命令。每行長度一般不超過256個字符,一般情況其中Command是命令名,又稱命令動詞,其余為該命令所帶的執(zhí)行參數(shù),有些命令可以沒(2)批命令方式如MS-DOS系統(tǒng)的.BAT文件。2.圖形化聯(lián)機用戶接口(1)圖形用戶接口GUI(GraphicsUserInterface)的引入(2)使用WIMP技術(shù)GUI采用了圖形化的操作界面,使用WIMP技菜單(Menu)、鼠標(biāo)(Pointingdevice)和面向?qū)ο蠹夹g(shù)等集成在一起,引入形象的各種圖在Windows系統(tǒng)中,采用的是事件驅(qū)動控制方式,用戶通過動作來產(chǎn)生事件,以驅(qū)動程序3.聯(lián)機命令的類型(1)系統(tǒng)訪問類在多用戶系統(tǒng)中,為了保證系統(tǒng)的安全性,都毫無例外地設(shè)置注冊命令Login。凡要在多用(2)文件操作命令①顯示文件命令type,用于將指定文件內(nèi)容顯示在屏幕上。②拷貝文件命令copy,用于實現(xiàn)文件的拷貝。③文件比較命令comp,該命令用于對兩個指定文件進(jìn)行比較,兩文件可以在同一個或不同④重新命名命令Rename,該命令用于將以第一參數(shù)命名的文件改成用第二參數(shù)給定的⑤刪除文件命令erase,該命令用于刪除一個或一組文件,例如,當(dāng)參數(shù)路徑名為*.BAK時,表示刪除指定目錄下的所有其擴展名為.Bak的文件。(3)目錄操作命令①建立子目錄命令mkdir,用于建立指定名字的新目錄。②顯示目錄命令dir,顯示指定磁盤中的目錄項。③刪除子目錄命令rmdir,用于刪除指定的子目錄文件,但不能刪除普通文件,而且一次只能刪除一個空目錄(其中僅含“.”和“..”兩個文件),不能刪除根及當(dāng)前目錄。④顯示目錄結(jié)構(gòu)命令tree,顯示指定盤上的所有目錄路徑及其層次關(guān)系。⑤改變當(dāng)前目錄命令chdir,將當(dāng)前目錄改變?yōu)橛陕窂矫麉?shù)給定的目錄。用“..”作參數(shù)①輸入輸出重定向命令在有的OS中定義了兩個標(biāo)準(zhǔn)I/O設(shè)備。通常,命令的輸入取自標(biāo)準(zhǔn)輸入設(shè)備,即鍵盤;其后接文件名或設(shè)備名,表示將命令的輸出改向,送到指定文件或設(shè)備上。類似地,若在命令中設(shè)置輸入重定向“<”符,則不再是從鍵盤而是從重定向符左邊參數(shù)所指定的文件或設(shè)備上取得輸入信息。②管道連接這是指把第一條命令的輸出信息作為第二條命令的輸入信息;類似地,又可把第二條命令的輸出信息作為第三條命令的輸入信息。這樣,由兩個(含兩條)以上的命令可形成一條管道。③過濾命令在UNIX及MS-DOS中,都有過濾命令,用于讀取指定文件或標(biāo)準(zhǔn)輸入,從中找出由參數(shù)指定的模式,然后把所有包含該模式的行都打印出來。④批命令為了能連續(xù)地使用多條鍵盤命令,或多次反復(fù)地執(zhí)行指定的若干條命令,而又免去每次重敲這些命令的麻煩,可以提供一個特定文件。在MS-DOS中提供了一種特殊文件,其后綴名用“.BAT”;在UNIX系統(tǒng)中稱為命令文件。它們都是利用一些鍵盤命令構(gòu)成一個程序,一次建立供多次使用。在MS-DOS中用batch命令去執(zhí)行由指定或默認(rèn)驅(qū)動器的工作目錄上指定文件中所包含的一些命令。二、Shell命令語言1.簡單命令簡介(1)簡單命令的格式簡單命令的格式比較自由,包括命令名字符的個數(shù)及用于分隔命令名、選項、各參數(shù)間的空格數(shù)等,都是任意的。一條命令可有多個選項,用于改變命令執(zhí)行動作的類型。命令的格式(2)簡單命令的分類①根據(jù)創(chuàng)建者分類a.系統(tǒng)提供的標(biāo)準(zhǔn)命令包括調(diào)用各種語言處理程序、實用程序等,其數(shù)量隨系統(tǒng)版本的不同而有所差異,系統(tǒng)管理員可以增添新的系統(tǒng)標(biāo)準(zhǔn)命令。b.用戶自定義的命令系統(tǒng)管理員和用戶自行定義的命令的執(zhí)行方式與系統(tǒng)標(biāo)準(zhǔn)命令的執(zhí)行方式相同。②根據(jù)命令是否包含在Shell內(nèi)部分類Shell中少數(shù)標(biāo)準(zhǔn)命令,如改變工作目錄命令cd等,是包含在Shell內(nèi)部的,作為內(nèi)部命令常駐內(nèi)存。b.外部命令Shell中大多數(shù)的命令如拷貝命令cp和移動命令rm等,均保存于外存(盤)上,即每個命令是存在于文件系統(tǒng)中某個目錄下的單獨程序。這樣做的好處在于,可以很大程度地節(jié)省內(nèi)存空間。(3)Shell的種類在UNIX中,最初使用的Shell就是BourneShell,簡稱為BShell,可以通用于多種UNIXCShell是一種比BShell更適于編程的Shell,是標(biāo)準(zhǔn)BSD(BerkeleySystemDistribution)命令解釋。其語法與c語言很相似,用%作為提示符。隨著UNIX系統(tǒng)標(biāo)準(zhǔn)化的發(fā)展,使用示符兼容,而且還提供比BShell更多的提示符KomShell集合了CShell和BShell的優(yōu)點,并且和BShell完全兼容,它的名字是Ksh。對應(yīng)地,Linux系統(tǒng)提供了Pdksh,也是對KomShell的擴展,它支持任務(wù)控制,可以在命2.簡單命令的類型(1)進(jìn)入與退出系統(tǒng)②退出系統(tǒng)的使用環(huán)境。如果用戶使用的是多終端中的一個終端,為了退出,用戶只須按鍵即可,系統(tǒng)會重新給出提示符即Login,以表明該終端可供另一新用戶使用。用戶的進(jìn)入與退出過程是由系統(tǒng)直接調(diào)用Login及Logout程序完成的。(2)文件操作命令②復(fù)制文件副本的命令cp,其格式為:③對已有文件改名的命令mv,其格式為:⑤確定文件類型的命令file該命令帶有一個參數(shù)表,用于給出想了解其(文件)類型的文件名清單。命令執(zhí)行的結(jié)果,(3)目錄操作命令用戶可以自己的注冊名作為根結(jié)點,建立一棵子目錄樹??捎芒鄹淖児ぷ髂夸浀拿頲dcd命令將使用戶來到由該路徑名確定的結(jié)點上:若用當(dāng)前目錄的子目錄名作參數(shù),將把用(4)系統(tǒng)詢問命令①訪問當(dāng)前日期和時間命令date例如,使用命令$date②詢問系統(tǒng)當(dāng)前用戶的命令who③顯示當(dāng)前目錄路徑名的命令pwd3.重定向與管道命令(1)重定向命令在用戶程序執(zhí)行時,隱含的標(biāo)準(zhǔn)輸入是鍵盤輸入,標(biāo)準(zhǔn)輸出即屏幕(輸出)顯示。但用戶程表示把文件filel的內(nèi)容打印輸出到表示對標(biāo)準(zhǔn)輸入中的行中字和字符進(jìn)行計數(shù)。若則表示把從文件file3中讀出的行中的字和字符進(jìn)(2)管道命令將使命令cat把文件file中的數(shù)據(jù)作為wc命令的計數(shù)輸入。a.單向性b.同步性4.通信命令(1)信箱通信命令mail信箱通信是作為在UNIX的各用戶之間進(jìn)行非交互式通信的退出mail程序但不改變信箱的內(nèi)容;一次性顯示信箱全部內(nèi)容而不帶詢問;把指定文件當(dāng)(2)對話通信命令write一個用戶同時在幾個終端上注冊,故在用此命(3)允許或拒絕接收消息的mesg命令選項n表示拒絕對方的寫許可(即拒絕接收消息);選項y指示恢復(fù)對方的寫許可,僅在此拒絕對方的寫許可。編輯完畢,再用帶有y選項的mesg命令來恢復(fù)對方的寫許可,不帶自變量的mesg命令只報告當(dāng)前狀態(tài)而不改變它。5.后臺命令有些命令需要執(zhí)行很長的時間,UNIX系統(tǒng)提供了一種機制,用戶可以在這種命令被送到Shell進(jìn)程。用戶可使用ps、wait及Kill命令去了解和控制后臺進(jìn)程的運行。1.鍵盤終端處理程序(1)字符接收功能碼(簡稱鍵碼),而不是ASCII碼。(2)字符緩沖功能系統(tǒng)為每個終端設(shè)置一個緩沖區(qū),暫存用戶鍵入的一批字符。專用緩沖方式如圖9-1(a)所示。a.工作原理如圖9-1(b)所示。系統(tǒng)只設(shè)置一個由多個緩沖區(qū)構(gòu)成的公用緩沖池,其中的每個緩沖區(qū)b.優(yōu)點圖9-1兩種緩沖方式(3)回送顯示回送顯示(回顯)是指每當(dāng)用戶從鍵盤輸入一個字符后,終端處理程序便將該字符送往屏幕a.硬件實現(xiàn)b.軟件實現(xiàn)(4)屏幕編輯它允許將用戶剛鍵入的字符刪除。在有的系統(tǒng)中是利用退格鍵即Backspace(Ctrl+H)鍵。②刪除一行鍵(5)特殊字符處理容。在有的系統(tǒng)中,是利用Ctrl+S鍵來停止屏幕上有的系統(tǒng)利用Ctrl+Q鍵使停止上卷的屏幕恢復(fù)上卷。終端處理程序收到該字符后,便恢復(fù)2.MS-DOS解釋程序(1)命令解釋程序的作用(2)命令解釋程序的組成這部分包括一些中斷服務(wù)子程序。例如,正常退出中斷INT20,它用于在用戶程序執(zhí)行完它跟隨在常駐內(nèi)存部分之后,在啟動時獲得控制權(quán)。(3)命令解釋程序的工作流程執(zhí)行AUTOEXECBAT文件,之后便把控制權(quán)交給暫存部分。④最后把控制權(quán)交給該程序去執(zhí)行相應(yīng)的命令。如圖9-2所示。3.Shell解釋程序②具有不同的分隔符(2)二叉樹結(jié)構(gòu)的命令行樹①命令表型結(jié)點例如Command1;Command2:&Command3命令行所構(gòu)成的命令樹如圖9-3所示:圖9-3命令表型結(jié)點及其左、右子樹b.執(zhí)行過程圖9-4管道文件型結(jié)點及其左、右子樹進(jìn)程執(zhí)行,直到子進(jìn)程運行完畢,又恢復(fù)Shell運行。(3)Linux命令解釋程序的工作流程將其他參數(shù)改造為系統(tǒng)調(diào)用execve內(nèi)部處理所要終端進(jìn)程調(diào)用fork,為二叉樹結(jié)構(gòu)命令行中的每一條命令建立相應(yīng)的子進(jìn)程。如圖9-5所示。圖9-5Shell基本執(zhí)行過程及父子進(jìn)程之間的關(guān)系1.系統(tǒng)調(diào)用的基本概念(1)系統(tǒng)態(tài)和用戶態(tài)戶空間,也能訪問系統(tǒng)空間。特權(quán)指令只允許OS使用,不允許應(yīng)用程序使用。(2)系統(tǒng)調(diào)用②狀態(tài)的轉(zhuǎn)換在采用了搶占式(剝奪)調(diào)度方式的系統(tǒng)中,在被調(diào)用過程執(zhí)行完后,要對系統(tǒng)中所有要求沒有嵌套及有嵌套的兩種系統(tǒng)調(diào)用情況如圖9-6所示。圖9-6系統(tǒng)功能的調(diào)用(3)中斷機制口來實現(xiàn)。如MS-DOS提供了INT21H,應(yīng)用程序通過該中斷獲取操作系統(tǒng)的服務(wù)。對于OS來說,中斷機制本身是受保護(hù)的,只有授權(quán)給應(yīng)用程序保護(hù)等級的中斷號,才是可2.系統(tǒng)調(diào)用的類型(1)進(jìn)程控制類系統(tǒng)調(diào)用統(tǒng)調(diào)用來了解某進(jìn)程的屬性,利用設(shè)置進(jìn)程屬性的系統(tǒng)進(jìn)程在運行過程中,需要等待某事件(條件)出現(xiàn)后方可繼續(xù)執(zhí)行。此時進(jìn)件)的系統(tǒng)調(diào)用,使自己處于等待狀態(tài),一旦等待的事件出現(xiàn),便可將等待進(jìn)程喚醒。(2)文件操縱類系統(tǒng)調(diào)用(3)進(jìn)程通信類系統(tǒng)調(diào)用POSIX定義了標(biāo)準(zhǔn)應(yīng)用程序接口(API),用于保證編制的應(yīng)用程序可以在源代碼一級上在POSIX標(biāo)準(zhǔn)定義了一組過程,這組過程是構(gòu)造系統(tǒng)調(diào)用所必須的,通過調(diào)用這些過程所提注意:POSIX標(biāo)準(zhǔn)所定義的一組過程雖然指定了系統(tǒng)UNIX/Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用的分層關(guān)系如圖9-7所示。圖9-7UNIX/Linux系統(tǒng)程序、庫函數(shù)、系統(tǒng)調(diào)用的分層關(guān)系1.進(jìn)程控制(1)進(jìn)程的創(chuàng)建和終止①創(chuàng)建進(jìn)程(fork)一個進(jìn)程可以利用fork系統(tǒng)調(diào)用來創(chuàng)建一個新進(jìn)程。新進(jìn)程作為調(diào)用者的子進(jìn)程,它繼承②終止進(jìn)程(exit)②文件的寫exit系統(tǒng)調(diào)用。子進(jìn)程在完成規(guī)定的任務(wù)(2)改變進(jìn)程映像和等待①執(zhí)行一個文件(exec)exec可使調(diào)用者進(jìn)程的進(jìn)程映像(包括用戶程序和數(shù)據(jù)等)被一個可執(zhí)行的文件覆蓋,此②等待子進(jìn)程結(jié)束(wait)wait用于將調(diào)用者進(jìn)程自身掛起,直至它的某一子進(jìn)程終止(3)其它進(jìn)程調(diào)用比如,可利用getp-id系統(tǒng)調(diào)用來獲得調(diào)用進(jìn)程的標(biāo)識符,利用getp-grp系統(tǒng)調(diào)用來獲得調(diào)用進(jìn)程的進(jìn)程組ID,以及利用getp-pid系統(tǒng)調(diào)用來獲得調(diào)用進(jìn)程的父進(jìn)程ID等。②獲得用戶ID比如getuid可用于獲得真正的用戶ID,geteuid用于獲得有效用戶ID,getgid用于獲得真正2.文件操縱(1)文件的創(chuàng)建和刪除系統(tǒng)調(diào)用creat的功能是根據(jù)用戶提供的文件名和許(2)文件的打開和關(guān)閉①打開文件(open)open的功能是把有關(guān)的文件屬性從磁盤拷貝到內(nèi)存中,以及在用戶和指名文件之間建立一條快捷的通路,并給用戶返回一個文件描述符fd。文件被打開后,用戶對文件的任何操作都只需使用fd,而非路徑名。②關(guān)閉文件(close)當(dāng)把一個文件用畢且暫不訪問時,可調(diào)用close將此文件關(guān)閉。在UNIX系統(tǒng)中,只有在無減1操作后其值為0,表示已無進(jìn)程再訪問該文件時,才能真正關(guān)閉該文件。(3)文件的讀和寫①文件的讀讀文件的系統(tǒng)調(diào)用是read,它的功能是試圖從并將它們送至由指針buf所指示的緩沖區(qū)中。寫文件的系統(tǒng)調(diào)用是write,它的功能是試圖把nbyte個字節(jié)數(shù)據(jù)從指針buf所指示的緩沖區(qū)中寫到由fd所指向的文件中。僅當(dāng)用戶利用open打開指定文件后,方可調(diào)用read或write對文件執(zhí)行讀或?qū)懖僮?。兩個系統(tǒng)調(diào)用都要求用戶提供三個輸入?yún)?shù):a.文件描述符fd;b.buf緩沖區(qū)首址。對讀要求傳送的字節(jié)數(shù)nbyte。(4)建立與文件的連接和去連接①連接(link)在該文件的索引結(jié)點中設(shè)置了一個連接計數(shù)i.link。每當(dāng)有一用戶要共享某文件時,須利用系統(tǒng)調(diào)用link來建立該用戶(進(jìn)程)與此文件之間的連接,并對i.link做加1操作。當(dāng)i.link減1后結(jié)果為0時,表示已無用戶需要此文件,此時才能將該文件從文件系統(tǒng)中刪3.進(jìn)程通信和信息保護(hù)(1)進(jìn)程通信用戶(進(jìn)程)在利用消息機制進(jìn)行通信時,必須先利用msgget系統(tǒng)調(diào)用來建立一個消息隊列。若成功,便返回消息隊列描述符msgid,以后用戶便可利用msgid去訪問該消息隊列。用戶(進(jìn)程)可利用發(fā)送消息的系統(tǒng)調(diào)用msgsend向用戶指定的消息隊列發(fā)送消息;利用msgrcv系統(tǒng)調(diào)用從指定的消息隊列中接收指定類型的消息。當(dāng)用戶(進(jìn)程)要利用共享存儲器機制進(jìn)行通信時,必須先利用shmget系統(tǒng)調(diào)用來建立一個共享存儲區(qū),若成功,便返回該共享存儲區(qū)描述符shmid。以后,用戶便可利用shmid去再需要該共享存儲區(qū)時,可利用shmdt系統(tǒng)調(diào)用來拆除進(jìn)程與共享存儲區(qū)間的連接。(2)信息維護(hù)超級用戶可利用設(shè)置時間的系統(tǒng)調(diào)用(stime)來設(shè)置系統(tǒng)的日期和時間;一般用戶可利用②獲得進(jìn)程和子進(jìn)程時間(times)利用該系統(tǒng)調(diào)用可獲得進(jìn)程及其子進(jìn)程所使用的CPU時③設(shè)置文件訪問和修改時間(utime)如果該系統(tǒng)調(diào)用的參數(shù)times為NULL,則文件主和對該文件具有寫權(quán)限的用戶可將對該文結(jié)構(gòu)的指針,此時,文件主和超級用戶能將訪問時間和修④獲得當(dāng)前UNIX系統(tǒng)的名稱(uname)利用該系統(tǒng)調(diào)用可將有關(guān)UNIX系統(tǒng)的信息存儲在utsname結(jié)構(gòu)中。這些信息包括UNIX系1.系統(tǒng)調(diào)用的實現(xiàn)方法(1)系統(tǒng)調(diào)用號和參數(shù)的設(shè)置賦予每條系統(tǒng)調(diào)用一個唯一的系統(tǒng)調(diào)用號。在系統(tǒng)調(diào)用命令(陷入指令)中把相應(yīng)的系統(tǒng)調(diào)命令(陷入指令)中,在另一些系統(tǒng)中,則將系統(tǒng)調(diào)用號裝入某指定寄存器或內(nèi)存單元中。a.陷入指令自帶方式b.直接將參數(shù)送入相應(yīng)的寄存器中c.參數(shù)表方式的參數(shù)值和參數(shù)的個數(shù)N都放入一張參數(shù)表中;而在間接參數(shù)方式中,則在參數(shù)表中僅存圖9-8系統(tǒng)調(diào)用的參數(shù)形式(2)系統(tǒng)調(diào)用的處理步驟即首先保護(hù)被中斷進(jìn)程的CPU環(huán)境,將處理機狀態(tài)字PSW、程序計數(shù)器PC、系統(tǒng)調(diào)用號、③在系統(tǒng)調(diào)用處理子程序執(zhí)行完后,應(yīng)恢復(fù)被中斷的或設(shè)置新進(jìn)程的CPU現(xiàn)場,然后返回(3)系統(tǒng)調(diào)用處理子程序的處理過程進(jìn)入Creat的處理子程序后,核心將根據(jù)用戶給定的文查找指定文件的目錄項。查找目錄的方式可以用順序查找法,也可用Hash查找法。如果在如果在該已有(存)文件的屬性中有不允許寫屬性,或者創(chuàng)建者不具有對該文件進(jìn)行修改的2.UNIX系統(tǒng)調(diào)用的實現(xiàn)(1)CPU環(huán)境保護(hù)當(dāng)用戶程序處在用戶態(tài),且在執(zhí)行系統(tǒng)調(diào)用命令(即CHMK命令)之前,應(yīng)在用戶空間提供系統(tǒng)調(diào)用所需的參數(shù)表,并將該參數(shù)表的地址送入R0寄存器。在執(zhí)行CHMK命令后,和代碼操作數(shù)(code)壓入用戶核心棧,繼而從中斷和陷入向量表中取出trap.S的入口地址,然后便轉(zhuǎn)入中斷和陷入總控程序trap.S中執(zhí)行。為了實現(xiàn)系統(tǒng)調(diào)用的嵌套使用,在系統(tǒng)中還設(shè)置了兩個指針,AP,用于指示正在執(zhí)行的系統(tǒng)調(diào)用所需參數(shù)表的地址;其二是調(diào)用棧幀指針FP,用于指示本次系統(tǒng)調(diào)用所保存的數(shù)據(jù)項。每當(dāng)出現(xiàn)新的系統(tǒng)調(diào)用時,還須將AP和FP壓入棧中,圖圖9-9用戶核心棧(3)確定系統(tǒng)調(diào)用號系統(tǒng)調(diào)用號包含在代碼操作數(shù)中,故可利用code來確定系統(tǒng)調(diào)用號i。其方法是:令i=code&0377若0<i<64,此i便是系統(tǒng)調(diào)用號,可根據(jù)系統(tǒng)調(diào)用號i和系統(tǒng)調(diào)用定義表,轉(zhuǎn)向相應(yīng)的處理子程序。若i=0,則表示系統(tǒng)調(diào)用號并未包含在代碼操作數(shù)中,此時應(yīng)采用間接參數(shù)方式,利用間接參數(shù)指針來找到系統(tǒng)調(diào)用號。(4)參數(shù)傳送參數(shù)傳送是指由trap.C程序?qū)⑾到y(tǒng)調(diào)用參數(shù)表中的內(nèi)容從用戶區(qū)傳送到User結(jié)構(gòu)的U.U-arg中,供系統(tǒng)調(diào)用處理程序使用。(5)利用系統(tǒng)調(diào)用定義表轉(zhuǎn)入相應(yīng)的處理程序在UNIX系統(tǒng)中,對于不同(編號)的系統(tǒng)調(diào)用,都設(shè)置了與之相應(yīng)的處理子程序。為使不同的系統(tǒng)調(diào)用能方便地轉(zhuǎn)入其相應(yīng)的處理子程序,也將各處理子程序的入口地址放入了系統(tǒng)調(diào)用定義表即Sysent[]中。在系統(tǒng)中設(shè)置了該表之后,便可根據(jù)系統(tǒng)調(diào)用號i從系統(tǒng)調(diào)用定義表中找出相應(yīng)的表目,再按照表目中的入口地址轉(zhuǎn)入相應(yīng)的處理子程序,由該程序去完成相應(yīng)系統(tǒng)調(diào)用的特定功能。在該子程序執(zhí)行完后,仍返回到中斷和陷入總控程序中的trap.C程序中,去完成返回到斷點前的公共處理部分。(6)系統(tǒng)調(diào)用返回前的公共處理在UNIX系統(tǒng)中,進(jìn)程調(diào)度的主要依據(jù)是進(jìn)程的動態(tài)優(yōu)先級。隨著進(jìn)程執(zhí)行時間的加長,其優(yōu)先級將逐步降低。每當(dāng)執(zhí)行了系統(tǒng)調(diào)用命令并由系統(tǒng)調(diào)用處理子程序返回到trap.C后,都將重新計算該進(jìn)程的優(yōu)先級;另外,在系統(tǒng)調(diào)用執(zhí)行過程中,若發(fā)生了錯誤使進(jìn)程無法繼續(xù)運行時,系統(tǒng)會設(shè)置再調(diào)度標(biāo)志。處理子程序在計算了進(jìn)程的優(yōu)先級后,又去檢查該再調(diào)度標(biāo)志是否己又被設(shè)置。若已設(shè)置,便調(diào)用switch調(diào)度程序,再去從所有的就緒進(jìn)程中選擇優(yōu)先級最高的進(jìn)程,把處理機讓給該進(jìn)程去運行。3.Linux系統(tǒng)調(diào)用(1)系統(tǒng)調(diào)用組成Linux最多可以有190個系統(tǒng)調(diào)用。應(yīng)用程序和Shell需要通過系統(tǒng)調(diào)用機制訪問Linux內(nèi)核(功能)。每個系統(tǒng)調(diào)用由兩部分組成:①內(nèi)核函數(shù)是實現(xiàn)系統(tǒng)調(diào)用功能的(內(nèi)核)代碼,作為操作系統(tǒng)的核心駐留在內(nèi)存中,是一種共享代碼,用C語言書寫。它運行在內(nèi)核態(tài),數(shù)據(jù)也存放在內(nèi)核空間,通常它不能再使用系統(tǒng)調(diào)用,也不能使用應(yīng)用程序可用的庫函數(shù)。②接口函數(shù)是提供給應(yīng)用程序的API,以庫函數(shù)形式存在Linux的lib.a中,該庫中存放了所有系統(tǒng)調(diào)用的接口函數(shù)的目標(biāo)代碼,用匯編語言書寫。其主要功能是:把系統(tǒng)調(diào)用號、入口參數(shù)地址傳送給相應(yīng)的核心函數(shù),并使用戶態(tài)下運行的應(yīng)用程序陷入核心態(tài)。(2)工作流程①取系統(tǒng)調(diào)用號,檢驗合法性;③進(jìn)行地址空間的轉(zhuǎn)換,以及堆棧的切換,進(jìn)入內(nèi)核態(tài);④進(jìn)行中斷處理,根據(jù)系統(tǒng)調(diào)用號定位內(nèi)核函數(shù)地址;⑤根據(jù)通用寄存器內(nèi)容,從用戶棧中取入口參數(shù);⑥核心函數(shù)執(zhí)行,把結(jié)果返回應(yīng)用程序。4.Win32的應(yīng)用程序接口在Windows系統(tǒng)中,定義了一系列的程序,稱為Win32API(ApplicationProgramminginterface),用來提供操作系統(tǒng)的服務(wù)。通過對Win32API的調(diào)用,可以創(chuàng)建各種核心對象,如文件、進(jìn)程、線程、管道等。每次1.操作系統(tǒng)用戶接口中包括哪幾種接口?它們分別適用于哪種情況?(1)聯(lián)機用戶接口:終端用戶利用該接口可以調(diào)用操作系統(tǒng)的功能,獲得操作系統(tǒng)提供的(2)脫機用戶接口:該接口是專為批處理作業(yè)的用戶提供的,也稱批處理用戶接口。操作系統(tǒng)提供了一個作業(yè)控制語言JCL(JobControlLanguage),用戶使用JCL語言預(yù)先寫好作2.什么是WIMP技術(shù)?它被應(yīng)用到何種場合?GUI采用了圖形化的操作界面,使用WIMP技術(shù)。在有了GUI后,在桌面上顯示了許多常3.聯(lián)機命令通常有哪幾種類型?每種類型中包括哪些主要命令?(1)系統(tǒng)訪問類。包括注冊名命令Login、口令命令Password;(2)磁盤操作類。包括磁盤格式化命令Format、復(fù)制整個軟盤命令Diskcopy、軟盤比較命令Diskcomp及備份命令Backup;(3)文件操作類。包括顯示文件命令type、拷貝文件命令copy、文件比較命令comp、重新命名命令Rename、刪除文件命令erase;(4)目錄操作類。包括建立子目錄命令mkdir、顯示目錄命令dir、刪除子目錄命令rmdir、顯示目錄結(jié)構(gòu)命令tree、改變當(dāng)前目錄命令chdir;(5)其它命令。包括輸入輸出重定向命令、管道連接命令、過濾命令、批命令。4.什么是輸入輸出重定向?舉例說明之。定向,用重定向符<和>分別表示輸入轉(zhuǎn)向和輸出轉(zhuǎn)向。通常,命令的輸入取自標(biāo)準(zhǔn)輸入設(shè)如果使用輸入重定向<,則不從鍵盤而是從重定向符右邊的指定文件或設(shè)備上取得輸入信息。5.何謂管道聯(lián)接?舉例說明之。commandl|command2|….|commandn,表示把command1的輸出作為command2的輸入,6.為了將已存文件改名,應(yīng)用什么UNIX命令?7.要想將工作目錄移到目錄樹的某指定結(jié)點上,應(yīng)使用什么命令?8.如果希望把file1的內(nèi)容附加到原有的文件file2的末尾,應(yīng)用什么命令?9.試比較mail和write命令的作用有何不同。答:mail命令被作為在UNIX的各用戶之間進(jìn)行非交互式通信的工具。mail采用信箱通信用各自的注冊名命名,即它是目錄/usr/spool/mail中的一個文件,而文件名又是用接收注冊名來命名的。信箱中的信件可以一直保留到被信箱所有者消除為止。因而,用mail進(jìn)一個用戶同時在幾個終端上注冊,故在用此命writeusername[termina10.聯(lián)機命令接口由哪幾部分組成?答:(1)鍵盤終端處理程序(2)MS-DOS解釋程序(3)Shell解釋程序在UNIX或Linux系統(tǒng)中,Shell是作為操作系統(tǒng)的最外層(也稱為外殼),是用戶及應(yīng)用11.終端設(shè)備處理程序的主要作用是什么?它具有哪些功能?(1)接收用戶從終端上鍵入的字符;(2)字符緩沖,用于暫存所接收的字符;(3)回送顯示;(4)屏幕編輯;(5)特殊字符處理。12.命令解釋程序的主要功能是什么?13.試說明MS-DOS的命令處理程序COMMAND.COM的工作流程。則暫存部分還須為之建立命令行,再通過執(zhí)行系統(tǒng)圖9-10COMMAND.COM的工作流程答:(1)一條命令行中含有多個命令。如果在一條命令行中僅有一個命令,那么命令解釋程序便可以利用簡單的命令表找到該命令的命令處理程序。然而在Shell的一條命令行中,釋后,應(yīng)產(chǎn)生多個命令處理程序(進(jìn)程)。(2)具有不同的分隔符。在一條命令行中的每個命令之間都采取不同的分隔符。在后臺執(zhí)行;如利用"I"分隔符時,要求把前一條命令的輸出作為后一條命令的輸入。換言15.試舉例說明如何建立二又樹結(jié)構(gòu)的命令行樹。答:(1)命令表型結(jié)點如下面的命令行所構(gòu)成的命令樹如圖9-11所示:圖9-11命令表型結(jié)點及其左、右子樹(2)管道文件型結(jié)點圖9-12所示:圖9-12管道文件型結(jié)點及其左、右子樹(3)簡單命令型結(jié)點部命令也非特殊命令,Shell將認(rèn)為該命令是一個可執(zhí)行文件,于是將為它創(chuàng)建一個新進(jìn)程,并作為Shell的子進(jìn)程執(zhí)行,直到子進(jìn)程運行完畢,又恢復(fù)Shell運行。16.試比較一般的過程調(diào)用與系統(tǒng)調(diào)用。答:系統(tǒng)調(diào)用在本質(zhì)上是應(yīng)用程序請求OS內(nèi)核完成某功能時的一種過程調(diào)用,但它是一種特殊的過程調(diào)用,它與一般的過程調(diào)用有下述幾方面的明顯差別:(1)運行在不同的系統(tǒng)狀態(tài)。一般的過程調(diào)用,其調(diào)用程序和被調(diào)用程序都運行在相同的狀態(tài)-系統(tǒng)態(tài)或用戶態(tài);而系統(tǒng)調(diào)用與一般調(diào)用的最大區(qū)別就在于:調(diào)用程序是運行在用戶態(tài),而被調(diào)用程序是運行在系統(tǒng)態(tài);(2)狀態(tài)的轉(zhuǎn)換通過軟中斷進(jìn)入。由于一般的過程調(diào)用并不涉及到系統(tǒng)狀態(tài)的轉(zhuǎn)換,可直接由調(diào)用過程轉(zhuǎn)向被調(diào)用過程。但在運行系統(tǒng)調(diào)用時,由于調(diào)用和被調(diào)用過程是工作在不同的系統(tǒng)狀態(tài),因而不允許由調(diào)用過程直接轉(zhuǎn)向被調(diào)用過程。通常都是通過軟中斷機制,先由用戶態(tài)轉(zhuǎn)換為系統(tǒng)態(tài),經(jīng)核心分析后,才能轉(zhuǎn)向相應(yīng)的系統(tǒng)調(diào)用處理子程序;(3)返回問題。在采用了搶占式(剝奪)調(diào)度方式的系統(tǒng)中,在被調(diào)用過程執(zhí)行完后,要對系統(tǒng)中所有要求運行的進(jìn)程做優(yōu)先權(quán)分析。當(dāng)調(diào)用進(jìn)程仍具有最高優(yōu)先級時,才返回到調(diào)用進(jìn)程繼續(xù)執(zhí)行;否則,將調(diào)用進(jìn)程掛起,以便讓優(yōu)先權(quán)最高的進(jìn)程優(yōu)先執(zhí)行。此時,將把調(diào)用進(jìn)程放入就緒隊列;(4)嵌套調(diào)用。像一般過程一樣,系統(tǒng)調(diào)用也可以嵌套進(jìn)行,即在一個被調(diào)用過程的執(zhí)行期間,還可以利用系統(tǒng)調(diào)用命令去調(diào)用另一個系統(tǒng)調(diào)用。當(dāng)然,每個系統(tǒng)調(diào)用對嵌套調(diào)用的深度都有一定的限制,例如最大深度為6。但一般的過程調(diào)用對嵌套的深度則沒有什么限制。17.系統(tǒng)調(diào)用有哪幾種類型?答:對于一般通用的OS而言,可將其所提供的系統(tǒng)調(diào)用分為:進(jìn)程控制、文件操縱、通信管理、信息維護(hù)和設(shè)備管理等幾大類:(1)進(jìn)程控制類系統(tǒng)調(diào)用主要用于對進(jìn)程的控制,如創(chuàng)建一個新的進(jìn)程和終止一個進(jìn)程的運行,獲得和設(shè)置進(jìn)程屬性等;(2)文件操縱類系統(tǒng)調(diào)用有創(chuàng)建文件、打開文件、關(guān)閉文件、讀/寫文件、建立目錄、移動文件的讀/寫指針、改變文件的屬性等;(3)進(jìn)程通信類系統(tǒng)調(diào)用主要用于實現(xiàn)通信機制如消息傳遞、共享存儲區(qū)及信息量集機制(4)信息維護(hù)類系統(tǒng)調(diào)用主要用于獲得有關(guān)系統(tǒng)和文件的時間、日期信息、操作系統(tǒng)版本、當(dāng)前用戶以及有關(guān)空閑內(nèi)存和磁盤空間大小等多方面的信息;(5)設(shè)備管理類系統(tǒng)調(diào)用主要用于實現(xiàn)申請設(shè)備、釋放設(shè)備、設(shè)備I/O和重定向、獲得和設(shè)置設(shè)備屬性、邏輯上連接和釋放設(shè)備等功能。18.如何設(shè)置系統(tǒng)調(diào)用所需的參數(shù)?答:每一條系統(tǒng)調(diào)用都含有若干個參數(shù),在執(zhí)行系統(tǒng)調(diào)用時,將這些參數(shù)傳遞給陷入處理機構(gòu)和系統(tǒng)內(nèi)部的子程序(過程),常用的實現(xiàn)方式有以下幾種:(1)陷入指令自帶方式。陷入指令除了攜帶一個系統(tǒng)調(diào)用號外,還要自帶幾個參數(shù)進(jìn)入系統(tǒng)內(nèi)部,由于一條陷入指令的長度是有限的,因此自帶的只能是少量的、有限的參數(shù);(2)直接將參數(shù)送入相應(yīng)的寄存器中。MS-DOS便是采用的這種方式,即用MOV指令將各個參數(shù)送入相應(yīng)的寄存器中。系統(tǒng)程序和應(yīng)用程序顯然都可以訪問這種寄存器。這種方式的主要問題是由于這種寄存器數(shù)量有限,因而限制了所設(shè)置參數(shù)的數(shù)目;(3)參數(shù)表方式。將系統(tǒng)調(diào)用所需的參數(shù)放入一張參數(shù)表中,再將指向該參數(shù)表的指針放在某個指定的寄存器中。19.試說明系統(tǒng)調(diào)用的處理步驟。答:系統(tǒng)調(diào)用的處理步驟:(1)在設(shè)置了系統(tǒng)調(diào)用號和參數(shù)后,便可執(zhí)行一條系統(tǒng)調(diào)用命令。不同的系統(tǒng)可采用不同的執(zhí)行方式。在UNIX系統(tǒng)中,是執(zhí)行CHMK命令,而在MS-DOS中則是執(zhí)行INT21軟(2)系統(tǒng)調(diào)用的處理過程可分成以下三步:首先將處理機狀態(tài)由用戶態(tài)轉(zhuǎn)為系統(tǒng)態(tài),之后由硬件和內(nèi)核程序進(jìn)行系統(tǒng)調(diào)用的一般性處理,即首先保護(hù)被中斷進(jìn)程的CPU環(huán)境,將處理機狀態(tài)字PSW、程序計數(shù)器PC、系統(tǒng)調(diào)用號、用戶棧指針以及通用寄存器內(nèi)容等,壓入(3)分析系統(tǒng)調(diào)用類型,轉(zhuǎn)入相應(yīng)的系統(tǒng)調(diào)用處理子程序;(4)在系統(tǒng)調(diào)用處理子程序執(zhí)行完后,應(yīng)恢復(fù)被中斷的或設(shè)置新進(jìn)程的CPU現(xiàn)場,然后返20.為什么在訪問文件之前,要用Open系統(tǒng)調(diào)用先打開該文件?戶返回一個文件描述符fd。文件被打開后,用戶對文件的任何操作都只須使用fd而非路徑21.在UNIX系統(tǒng)中是否設(shè)置了專門用來刪除文件的系統(tǒng)調(diào)用?為什么?與此文件之間的連接,并對i.link做加1操作。當(dāng)用戶不再使用此文件時,應(yīng)利用系統(tǒng)調(diào)用unlink去斷開此連接,同時對i.link做減1操作。當(dāng)i.link減1后結(jié)果為0,表示已無用戶需22.在IPC軟件包中包含哪幾種通信機制?在每種通信機制中設(shè)置了哪些系統(tǒng)調(diào)用?(1)消息機制。用戶(進(jìn)程)在利用消息機制進(jìn)行通信時,必須先利用msgget系統(tǒng)調(diào)用來建立一個消息隊列。若成功,便返回消息隊列描述符msgid,以后用戶便可利用msgid去訪問該消息隊列。用戶(進(jìn)程)可利用發(fā)送消息的系統(tǒng)調(diào)用msgsend向用戶指定的消息隊列發(fā)送消息;利用msgrcv系統(tǒng)調(diào)用從指定的消息隊列中接收指定系統(tǒng)調(diào)用來建立一個共享存儲區(qū),若成功,便返回該共享存儲區(qū)便可利用shmid去訪問該共享存儲區(qū)。進(jìn)程在建立了共享存儲區(qū)之后,還必須再利用shrnat(3)信號量機制。在UNIX系統(tǒng)中所采用的信號量機制,與一般信號量機制相似,允許將23.trap.S是什么程序?它完成哪些主要功能?24.在UNIX系統(tǒng)內(nèi),被保護(hù)的CPU環(huán)境中包含哪些數(shù)據(jù)項?答:當(dāng)用戶程序處在用戶態(tài),且在執(zhí)行系統(tǒng)調(diào)用命令即CHMK命令之前,應(yīng)在用戶空間提供系統(tǒng)調(diào)用所需的參數(shù)表,并將參數(shù)表的地址送入RO寄存器。執(zhí)行CHMK命令后,處理機將由用戶態(tài)轉(zhuǎn)為系統(tǒng)態(tài),并由硬件自動地將處理機狀態(tài)長字(PSL)、程序計數(shù)器(PC)和trap.S程序執(zhí)行后,繼續(xù)將陷入類型type和用戶棧指針usp壓入用戶核心棧,接著還中斷進(jìn)程的CPU環(huán)境中的一系列寄存器如R0~R11的部分或全部壓入棧中,這取決于特定寄存器中的屏蔽碼,該屏蔽碼的每一位都與R0~R11中的一個寄存器相為1時,表示對應(yīng)寄存器的內(nèi)容壓入棧中。25.trap.C是什么程序?它將完成哪些處理?答:trap.C程序是一個處理各種陷入情況的C語言文件,共有12種陷入的處理要調(diào)用trap.C程序(如因系統(tǒng)調(diào)用、進(jìn)程調(diào)度中斷、跟蹤自陷非法指令、訪問違章、算術(shù)自陷等)。用于26.為方便轉(zhuǎn)入系統(tǒng)調(diào)用處理程序,在UNIX系統(tǒng)中配置了什么樣的數(shù)據(jù)結(jié)構(gòu)?相應(yīng)系統(tǒng)調(diào)用所需參數(shù)的個數(shù);(2)系統(tǒng)調(diào)用經(jīng)寄存器傳送的參數(shù)個數(shù);(3)相應(yīng)系統(tǒng)調(diào)用處理子程序的入口地址。在系統(tǒng)中設(shè)置了該表之后,便可根據(jù)系統(tǒng)調(diào)用號1.下列選項中,不可能在用戶態(tài)發(fā)生的事件是()。[2012年統(tǒng)考]A.系統(tǒng)調(diào)用B.外部中斷C.進(jìn)程切換D.缺頁【答案】C查看答案【解析】判斷能否在用戶態(tài)執(zhí)行的關(guān)鍵在于事件是否會執(zhí)行特權(quán)指令。首先看A項,系統(tǒng)調(diào)用是系統(tǒng)提供給用戶程序調(diào)用內(nèi)核函數(shù)的,當(dāng)用戶程序執(zhí)行系統(tǒng)調(diào)用時,會使CPU狀態(tài)從用戶態(tài)切換至系統(tǒng)態(tài)并執(zhí)行內(nèi)核函數(shù),執(zhí)行結(jié)束之后將控制權(quán)還給用戶程序,并且CPU狀態(tài)從系統(tǒng)態(tài)切換至用戶態(tài)。從這個過程可以看出,雖然系統(tǒng)調(diào)用的執(zhí)B項為外部中斷,很多考生會被中斷二字影響,認(rèn)為涉及中斷的都應(yīng)該是系統(tǒng)態(tài)的事情,而不能在用戶態(tài)執(zhí)行,因此選錯。中斷在系統(tǒng)中經(jīng)常發(fā)生,如鍵中斷是指由外部事件引起的中斷,比如鼠標(biāo)單擊和鍵盤輸入等操作引起的中斷);進(jìn)程缺頁輸入舉例,一個用戶進(jìn)程需要用戶輸入一串命令,當(dāng)用戶用鍵盤輸入時完成對應(yīng)功能,然后返回至用戶態(tài)。系統(tǒng)調(diào)用和中斷的看D項,缺頁與B項類似,用戶態(tài)執(zhí)行進(jìn)程缺頁時會產(chǎn)生缺頁中斷(中斷發(fā)生在用戶態(tài)),此D項也可以發(fā)生在用戶態(tài)。根據(jù)排除法知道答案是C項,進(jìn)程切換實際上是對于程序狀態(tài)的修改,因此要修改程序狀2.中斷處理和子程序調(diào)用都需要壓棧以保護(hù)現(xiàn)場。中斷處理一定會保存而子程序調(diào)用不需要保存其內(nèi)容的是()。[2012年統(tǒng)考]A.程序計數(shù)器B.程序狀態(tài)字寄存器C.通用數(shù)據(jù)寄存器D.通用地址寄存器【答案】B查看答案斷處理程序,處理完之后要返回到發(fā)生中斷時的指令處繼續(xù)執(zhí)行,由于能會切換狀態(tài)(如果在系統(tǒng)態(tài)發(fā)生中斷則始終為系統(tǒng)理時一定要將PSW壓棧保存。需要保護(hù)和恢復(fù)。因此,子程序調(diào)用主要保存局部參數(shù)信息等,不需要將PSW壓棧。中斷處理和子程序調(diào)用對其他3個選項的操作都是相同的。3.下列選項中,在用戶態(tài)執(zhí)行的是()。[2011年統(tǒng)考]A.命令解釋程序B.缺頁處理程序C.進(jìn)程調(diào)度程序D.時鐘中斷處理程序【答案】A查看答案【解析】CPU狀態(tài)分為管態(tài)和目態(tài),管態(tài)又稱為特權(quán)狀態(tài)、系統(tǒng)態(tài)或核心態(tài)。通常,操作CPU將指令分為特權(quán)指令和非特權(quán)指令,對于那些危險的指令,只允許操作系統(tǒng)及其相關(guān)是操作系統(tǒng)提供給用戶所使用的接口,因此可以用在用戶態(tài)執(zhí)行。因此選A項。4.本地用戶通過鍵盤登錄系統(tǒng),首先獲得鍵盤輸入信息的程序是()。[2010年統(tǒng)考]A.命令解釋程序B.中斷處理程序C.系統(tǒng)調(diào)用服務(wù)程序D.用戶登錄程序【答案】B查看答案5.下列選項中,操作系統(tǒng)提供給應(yīng)用程序的接口是()。[2010年統(tǒng)考]A.系統(tǒng)調(diào)用B.中斷C.庫函數(shù)【答案】A查看答案【解析】操作系統(tǒng)提供兩類接口,一類是命令接口(圖形接口是命系統(tǒng)調(diào)用(SystemCall)作為呈現(xiàn)給用戶的接口,包含了內(nèi)核提供的一系列具備預(yù)定功6.在UNIX系統(tǒng)中,請求調(diào)用是采用下列算法中的()算法?!敬鸢浮緾查看答案【解析】最近最久未使用算法(LRU)。該算法選擇在最近一段時間內(nèi)最久沒有使用過的頁第10章多處理機操作系統(tǒng)10.1復(fù)習(xí)筆記1.多處理機系統(tǒng)的引入(1)CPU的時鐘頻率問題時鐘頻率來提高計算機運算速度(系統(tǒng)性能)的方法,已經(jīng)接近了極限。(2)增加系統(tǒng)吞吐量(3)節(jié)省投資(4)提高系統(tǒng)可靠性在MPS中,通常都具有系統(tǒng)重構(gòu)的功能,即當(dāng)其中任何一個處理機發(fā)生故障時,系統(tǒng)可以2.多處理機系統(tǒng)的類型(1)緊密耦合MPS和松散耦合MPS①緊密耦合(TightlyCoupled)MPSa.多處理器共享主存儲器系統(tǒng)和I/O設(shè)備,每臺處理器都可以對整個存儲器進(jìn)行訪問,訪問時間一般需要10~50ns;b.將多處理器與多個存儲器分別相連,或?qū)⒅鞔鎯ζ鲃澐譃槿舾蓚€能被獨立訪問的存儲器②松散耦合(LooselyCoupled)MPS在松散耦合MPS中,通常是通過通道或通信線路來實現(xiàn)多臺計算機之間的互連。每臺計算機都有自己的存儲器和I/0設(shè)備,并配置了OS來管理本地資源和在本地運行的進(jìn)程。因(2)對稱多處理器系統(tǒng)和非對稱多處理器系統(tǒng)①對稱多處理器系統(tǒng)SMPS(SymmetricMul在系統(tǒng)中所包含的各處理器單元,在功能和結(jié)構(gòu)上都是相同的,當(dāng)前的絕大多于SMP系統(tǒng)。例如,IBM公司的SR/6000ModelF50,便是利用4片PowerPC處理器構(gòu)②非對稱多處理器系統(tǒng)ASMPS(AsymmetricMultiprocessorSystem)1.UMA多處理機系統(tǒng)的結(jié)構(gòu)(1)基于單總線的SMP結(jié)構(gòu)如圖10-1(a)所示,在這種結(jié)構(gòu)的系統(tǒng)中,把多個處理器與一個集中的存儲器相連,所有顯然這種結(jié)構(gòu)的缺點在于可伸縮性有限。系統(tǒng)中所有CPU對存儲器的訪問,都需要通過總線進(jìn)行。可以通過為每個CPU配置一個高速緩存的方法解決此問題。如圖10-1(b)所示,這些高速緩存可以可以很大程度地減少該CPU對總線的訪問頻率,極大地減少總線上的數(shù)據(jù)流量,以支持更多的CPU。圖10-1基于總線的SMP結(jié)構(gòu)(2)使用多層總線的SMP結(jié)構(gòu) (c)所示。各CPU與本地的私有存儲器、I/O設(shè)備通過本地總線連接,系統(tǒng)再使用系統(tǒng)(3)使用單級交叉開關(guān)的系統(tǒng)結(jié)構(gòu)示,將系統(tǒng)中所有的CPU與存儲器結(jié)點,通過交叉開關(guān)陣列相互連接。每個交叉開關(guān)均為其中兩個結(jié)點(CPU與存儲器模塊)之間提供一條專用連接通路,從而避免了在多個CPU圖10-2使用交叉開關(guān)的LIMA多處理機系統(tǒng)交叉開關(guān)一般是構(gòu)成一個N×N的陣列,但在每一行和每一列中,都同時只能有一個交叉點開關(guān)處于“開”(即閉合)狀態(tài),從而它同時只能接通N對結(jié)點。每個存儲器模塊同時只允許一個CPU結(jié)點訪問,故每一列只能接通一個交叉點開關(guān),但是③交叉開關(guān)的成本為N2,N為端口數(shù),限制了它在大規(guī)模系統(tǒng)中的應(yīng)用,如1000個CPU與1000個存儲器模塊連接,就需要1百萬個交叉點,這在現(xiàn)實中是不可行的。一般只適合于8~16個處理器的中等規(guī)模系統(tǒng)。(4)使用多級交換網(wǎng)絡(luò)的系統(tǒng)結(jié)構(gòu)圖10-3(a)是一個最簡單的2×2交叉開關(guān),它有兩個輸入和兩個輸出。送入任一輸入的信關(guān)網(wǎng)絡(luò),如圖10-3(b)所示。圖10-3使用多級交換網(wǎng)絡(luò)的SMP結(jié)構(gòu)示意圖如前所述,以上四種SMP體系結(jié)構(gòu)的多處理機系統(tǒng)具有一個共同的特征,就是共享,每一個處理機對系統(tǒng)中所有資源(內(nèi)存、I/O等)都是共享的。也正是由于這種特征,決定了2.NUMA多處理機系統(tǒng)結(jié)構(gòu)(1)NUMA結(jié)構(gòu)和特點①概述NUMA(Nonuniform-Memory-Access)即非統(tǒng)一內(nèi)存訪問(也稱非一致存儲訪問)。在這種圖10-4所示,NUMA擁有多個處理機模塊(也稱為節(jié)點),各節(jié)點之間通過一條公用總線(2)分布性圖10-4NUMA結(jié)構(gòu)的多處理機系統(tǒng)地址空間,系統(tǒng)中的每一個CPU都可以訪問整個系統(tǒng)的內(nèi)存,但訪問時所使用的指令卻不c.全局共享存儲器或其它節(jié)點存儲器。顯然,每一個CPU訪問本地存儲器的速度遠(yuǎn)遠(yuǎn)高于訪問全局共享存儲器或遠(yuǎn)程訪問其它節(jié)點存儲器(遠(yuǎn)地內(nèi)存)的速度。(2)CC—NUMA構(gòu)造方法對于系統(tǒng)中每一個CPU所擁有的若干高速緩存單元,都以一定數(shù)量的單元為一組,構(gòu)成一個高速緩存塊,為每個CPU配置一張高速緩存塊目錄表(下簡稱目錄表),對每一個高速緩存塊的位置和狀態(tài)進(jìn)行記錄和維護(hù)。每個CPU的每條訪問存儲器單元的指令都必須首先遠(yuǎn)程內(nèi)存訪問由于訪問遠(yuǎn)地內(nèi)存的延時遠(yuǎn)遠(yuǎn)超過本地內(nèi)存,因此當(dāng)CPU數(shù)量增加時,系統(tǒng)1.多處理機操作系統(tǒng)的特征(1)并行性(3)機間的通信和同步性(4)可重構(gòu)性2.多處理機操作系統(tǒng)的功能(1)進(jìn)程管理(2)存儲器管理續(xù)的地址方式進(jìn)行描述,即一個處理機無需專門去識別①概述③數(shù)據(jù)一致性機制當(dāng)共享主存中的某個數(shù)據(jù)在多個處理機的局部(本地)存儲器中出現(xiàn)時,操作系統(tǒng)應(yīng)保證這(3)文件管理(4)系統(tǒng)重構(gòu)3.多處理機操作系統(tǒng)的類型(1)主從式(master-slave)①概述在這種類型的操作系統(tǒng)中,有一臺特定的處理機被稱為主處理機(MasterProcessor),其它a.易于實現(xiàn)b.資源利用率低c.安全性較差(2)獨立監(jiān)督式(separatesupervisorSystem)有自己的管理程序(操作系統(tǒng)內(nèi)核),并擁有各自的專用資源,如/J0設(shè)備和文件系統(tǒng)。a.自主性強b.可靠性高c.實現(xiàn)復(fù)雜理程序副本。此外,雖然每個處理機都有其專用的管理d.存儲空間開銷大一般地,這類操作系統(tǒng)適用于松散耦合型多處理機系統(tǒng),由于部)存儲器,用來存放管理程序副本,即每臺處理機中都駐留了e.處理機負(fù)載不平衡(3)浮動監(jiān)督式(f10atingsupervisorControlMode)中,所有的處理機組成一個處理機池,每臺處理機都可對整個系統(tǒng)中的任何一臺I/O設(shè)備a.高靈活性任一臺I/O設(shè)備和訪問任一存儲塊,因此大多數(shù)任務(wù)可在任何一臺處理機上運行,使系統(tǒng)b.高可靠性失效,也只需將操作系統(tǒng)浮動(切換)到另一臺處理機上運行,從而保證系統(tǒng)仍能繼續(xù)正常c.負(fù)載均衡專門的操作(如I/O中斷),分配給那些在特定時段內(nèi)最不忙的處理機去執(zhí)行,使系統(tǒng)的d.實現(xiàn)復(fù)雜1.集中式與分布式同步方式(1)中心同步實體(2)集中式同步機構(gòu)(3)集中式與分布式同步算法a.特征b.缺點b.所有結(jié)點僅基于本地信息做出判斷;(4)中心進(jìn)程方式該方式是在系統(tǒng)中設(shè)置一個中心進(jìn)程(或稱為協(xié)調(diào)進(jìn)程),該進(jìn)程保存了所有用戶的存取權(quán)限、沖突圖(conflictgraph)等信息。每一個要求訪問共享資源的進(jìn)程,都先向中心進(jìn)程發(fā)2.自旋鎖(spinlock)(1)自旋鎖的引入某CPU在執(zhí)行原語的過程中由其它CPU爭得了總線,就可能會導(dǎo)致該CPU與其它CPU對(2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年岳陽貨運從業(yè)資格證模擬考試下載什么軟件
- 2025私家浴室用品特許經(jīng)營合同
- 2024年度公共交通設(shè)施維修與養(yǎng)護(hù)承包合同3篇
- 2024年度人才培訓(xùn)與咨詢服務(wù)合同5篇
- 2024年教育培訓(xùn)機構(gòu)在線平臺建設(shè)合同
- 茶文化產(chǎn)業(yè)園租賃聯(lián)營合同
- 2025標(biāo)準(zhǔn)土地買賣合同范本
- 2024年版:股權(quán)轉(zhuǎn)讓合同范本(附詳細(xì)條款)
- 音樂教師招聘協(xié)議模板
- 2025印刷品合同樣本
- 《玉米合理密植技術(shù)》課件
- 科技興國未來有我主題班會教學(xué)設(shè)計
- 《不穩(wěn)定型心絞痛》課件
- 江蘇省揚州市邗江中學(xué)2025屆物理高一第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 自媒體宣傳采購項目競爭性磋商招投標(biāo)書范本
- 新保密法知識測試題及答案
- 2023年民航東北空管局人員招聘考試真題
- 2025(新統(tǒng)編版)八年級歷史上冊 第5單元 大單元教學(xué)設(shè)計
- 戶外施工移動發(fā)電機臨時用電方案
- 《雁門太守行》說課稿
- 制作拼音卡片-空心涂色A4版本
評論
0/150
提交評論