期末試題計算機系統(tǒng)2018b答案_第1頁
期末試題計算機系統(tǒng)2018b答案_第2頁
期末試題計算機系統(tǒng)2018b答案_第3頁
期末試題計算機系統(tǒng)2018b答案_第4頁
期末試題計算機系統(tǒng)2018b答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、哈爾濱工業(yè)大學 2018 學年秋 季學期計算(B)試題片紙鑒心 誠信不敗密 封 線一、 單項選擇題(每小題 1 分,共 20 分)1.C 語言中整數(shù)-1 與無符號 0 比較,其結(jié)果是( A)A大于B.小于C.可能大于可能小于 D. 無法比較在 x86-64 系統(tǒng)中,調(diào)用函數(shù) int gt (long x, long y)時,保存參數(shù) y 的寄存器是(2.B)A. %rdiB.%rsiC.%raxD.%rdx3.在 Y86 的硬件結(jié)構(gòu)中,不需要采用時序的部件是(D)A. 程序計數(shù)器C. 數(shù)據(jù)內(nèi)存B. 條件碼寄存器D. 指令內(nèi)存4.進程 P1 是進程 P11 的父進程,P1 有全局變量 x=0,下

2、列說法錯誤的是(A.P1 與 P11 有相同的地址空間C )B.P1 與 P11 是并發(fā)執(zhí)行的進程C.若 P1 與 P11 均對 x 執(zhí)行一次加 1 操作,則 x=2 D.P1 與 P11 有相同的代碼和數(shù)據(jù)段下列異常中可能從異常處理返回也可能不返回的是( C)5.A. I/O 中斷B.陷阱C. 故障D. 終止6.不屬于進程上下文的是( CA.頁全局目錄 pgd)B.內(nèi)核棧C.內(nèi)核代碼D.打開的文件表7.下列函數(shù)中屬于系統(tǒng)調(diào)用且調(diào)用一次,從不返回的是( B)A.forkB.execveC.setjmpD.longjmp8.在 IEEE 浮點數(shù)標準中,單精度浮點數(shù)采用( A )位的小數(shù)字段對尾數(shù)

3、進行編碼。A23下列各種B24器中C52速度最慢的是(B. 主存D63 C )C. 磁盤9.A. 寄存器D. 高速緩存10.連接過程中,賦初值的非靜態(tài)全局變量名,屬于( A )A.強符號B.弱符號C.可能是強符號也可能是弱符號D.以上都錯11.共享庫(動態(tài)鏈接庫)在程序的( D地址。)階段由動態(tài)鏈接器加載到任意的內(nèi)存A編譯B鏈接C運行D運行或鏈接第 1 頁(共 8 頁)院系學號 授課教師題號三四五六七總分得分閱卷人主管領(lǐng)導審核簽字計算12. 條件跳轉(zhuǎn)指令 JZ 是依據(jù)( A)做是否跳轉(zhuǎn)的。A. ZFB. OFC. SFD. CF13. 關(guān)于異常處理后返回的敘述,錯誤的敘述是( A.中斷處理結(jié)束

4、后,會返回到下一條指令執(zhí)行B.故障處理結(jié)束后,會返回到下一條指令執(zhí)行C.陷阱處理結(jié)束后,會返回到下一條指令執(zhí)行B)D.終止異常,返回14.虛擬頁面的狀態(tài)不包含(D)A未分配B已分配未緩存C已分配已緩存D已緩存未分配15.C 語言中不同類型的數(shù)值進行強制類型轉(zhuǎn)換時,下列說法正確的是( C )A從 int 轉(zhuǎn)換成 float 時,數(shù)值可能會溢出B從 int 轉(zhuǎn)換成 double 后,數(shù)值雖然溢出,但有可能是不精確的C從 double 轉(zhuǎn)換成 float 時,數(shù)值可能會溢出D從 double 轉(zhuǎn)換成 int 時,數(shù)值不可能溢出16.操作系統(tǒng)提供的抽象表示中,(B)是對主存和磁盤 I/O的抽象表示。A

5、. 進程B. 虛擬器C. 文件D. 虛擬機17.給定字長的整數(shù) x 和 y 按補碼相加,和為 s,則發(fā)生正溢出的情況是( A )Ax0,y0,s0Cx0,y0,s0Bx0,y0,s0Dx0,y0,s018.關(guān)于 X86-64 的機器代碼、匯編代碼與 C 代碼,下列說法錯誤的是( A寄存器對機器代碼是可見的,但對 C 語言是不可見的BC 語言中的聚合數(shù)據(jù)類型對機器代碼而言只是一組連續(xù)的字節(jié)C一條 C 指令對應(yīng)著一條匯編指令D一條匯編指令對應(yīng)著一條機器指令19. 屬于異步異常的是(A)C )A.中斷B.陷阱C.故障D.終止20.C 語言程序中的常量表的計算是由( B)完成的A編輯器B編譯器C鏈接器

6、D加載器二、填空題 (每空 1 分,共 10 分 )21.在計算機層次結(jié)構(gòu)中,_ 主存是磁盤的緩存。22.程序所具有的局部性_特點使得高速緩存能夠有效。23.若主存地址 32 位,高速緩存總大小為 2K 行,塊大小 16 字節(jié),采用 2相連,則標記位的總位數(shù)是_36k 位 _。(每組 2 行,共 1k 組,標記占 32-4-10=18 位,總位數(shù)占 2kx18=36k 位)24.若高速緩存的塊大小為 B(B>8)字節(jié),向量 v 的元素為 int,則對 v 的步長為1 的應(yīng)用的不為_ _4/B_。其模式為 _內(nèi)核模式/超級用戶模式_。25.CPU 在執(zhí)行異常處理26.Linux 系統(tǒng)中運行

7、 hello world 這樣的 C,標準 I/O 函數(shù) printf 實際是通過_ 系統(tǒng)級 Unix I/O 函數(shù) write,系統(tǒng)級 I/O、Unix I/O、或 write 函數(shù)第 2 頁(共 8 頁)計算都算對實現(xiàn)的。 27.若 x 和 y 的字節(jié)值分別為 0x12 和 0x34,則 C 表x && y 的值為_ _0x01_。 28.C 語言程序運行時,局部變量放 棧段。 29.C 語句中的全局變量,在 鏈接/重定位階段被定位到一個確定的內(nèi)存地址。 30.虛擬內(nèi)存發(fā)生缺頁時,缺頁中斷是由 MMU觸發(fā)的。三、對錯(每小題 1 分,共 10 分,在題前打 X 符號)C 語

8、言中一個有符號整數(shù)轉(zhuǎn)換成無符號整數(shù)時其位模式是不變的。密 31.(XX 32.()一個整型機器數(shù)采用大端還是方式,其值是不同的。 33.( 34.()浮點數(shù) IEEE 標準中,規(guī)格化數(shù)比非規(guī)格化數(shù)多。)一個 C 程序中的跳轉(zhuǎn)表數(shù)據(jù)經(jīng)鏈接后被到代碼段。 35.()使用棧隨機化的不能完全避免緩沖區(qū)溢出的。 36.()c 函數(shù)調(diào)用過程中,調(diào)用函數(shù)的棧幀一旦被修改,被調(diào)用函數(shù)則無法正確返回。 37.( X )當執(zhí)行 fork 函數(shù)時,內(nèi)核為新進程創(chuàng)建虛擬內(nèi)存并標記內(nèi)存區(qū)域為私有的寫時,意味著新進程此時獲得了的物理頁面。 38.( )進程在進行上下文切換時一定會運行內(nèi)核函數(shù)。封 39.( X )隱式空閑

9、鏈表的優(yōu)點是在對堆塊進行搜索時,搜索時間只與堆中的空閑塊數(shù)量成正比。 40.( )相比標準 I/O,Unix I/O 函數(shù)是異步信號安全的,可以在信號處理程序中安全地使用。四、簡答題(每小題 5 分,共 20 分) 41.某高速緩存大小 256 字節(jié),直接,塊大小為 16 字節(jié)。定義 L 為數(shù)據(jù)裝載命 線令,S 為,M 為數(shù)據(jù)修改。若每一數(shù)據(jù)裝載(L)或(S)操作可最多 1次緩存缺失(miss);數(shù)據(jù)修改操作(M)可認為是同一地址上 1 次裝載后跟 1 次存儲,因此可2 次緩存命中(hit)或 1 次缺失加 1 次命中外加可能的 1 次淘汰/(evict)。根據(jù)下列的訪存命令序列,分析每一命令

10、下的上述高速緩存(高速緩存最初是空的)中及淘汰情況。L M L S L LM10,120,122,118,1110,1210,112,1說明:L 10,1 表示從地址 0x10 處加載 1 個字節(jié)數(shù)據(jù),其它同理。L 10,1 miss/10 是 0x10,塊地址 0x1 mod 0x10 = 1(組),第 1 塊第 3 頁(共 8 頁)院系學號 授課教師計算到第 1 組20,1,miss hit/塊地址 0x2 mod 0x10 = 2(組)M L SL,第 2 塊到第 2 組22,1 hit/塊地址 0x2 mod 0x10 = 2(組),第 2 塊到第 2 組18,1 hit /塊地址 0

11、x1 mod 0x10 = 1(組),第 1 塊到第 1 組110,1 miss eviction/塊地址 0x11 mod 0x10 =1(組),第 17 塊第 1 組到L210,1 miss eviction/塊地址 0x21 mod 0x10 =1(組),第 33 塊1 組M 12,1 miss eviction/塊地址 0x1 mod 0x10 = 1(組),第 1 塊組到第到第 142.下圖展示了一個虛擬地址的訪存過程,每個步驟采用不同的字母表示。請分別下述情況,用字母序列寫出每種情況下的執(zhí)行流程:(1)TLB 命中、緩存物理地址命中;(2)TLB 不命中,緩存頁表命中,緩存物理地址

12、命中;(3)TLB 不命中,緩存頁表不命中,緩存物理地址不命中。(1)ABCFK (2)ABEDFK(3)ABEHG(D)FIJ(K);D,K 缺少也正確43.列舉至少 5 種程序優(yōu)化的。代碼移動,通過將代碼從循環(huán)中移出減少計算執(zhí)行的頻率用簡單計算替代復雜計算/操作,如移位、加替代乘法/除法共享共用子表、重用表的一部分使用局部變量作為累積量循環(huán)體展開減少循環(huán)次數(shù)通過多個累積量、重新結(jié)合(組合)的盡量縮短關(guān)鍵路徑(利于流水操作) 減少過程調(diào)用,小函數(shù)使用 inline 形式,提高指令級并行性用條件表替代 if-else 語句(用功能性的風格重寫條件操作,有利于編譯器采用條件數(shù)據(jù)傳送實現(xiàn),而非使用

13、分支結(jié)構(gòu)實現(xiàn))消除不必要的內(nèi)存使用速度更快的 CPU 指令,例如 SSE 等 SIMD 指令。第 4 頁(共 8 頁)計算 44.在 shell 命令行輸入命令:Ubantu>./test-trans M 32 N 32回車shell 命令行解釋器將構(gòu)造參數(shù) argv 和 envp,請寫出參數(shù) argv 的內(nèi)容。NULL32-N 32-M./test-transargv 五、系統(tǒng)分析題(每小題 5 分,共 20 分)密 45.函數(shù) call_incr2 的匯編代碼如下所示,畫出函數(shù) call_incr2 相應(yīng)的棧幀內(nèi)結(jié) 封 線構(gòu)與內(nèi)容。call_incr2:pushq%rbxsubq$1

14、6, %rspmovq%rdi, %rbxmovq$15213, 8(%rsp)movl$3000, %esileaq8(%rsp), %rdicallincraddq%rbx, %raxaddq$16, %rsppopq%rbxret 請?zhí)顚懗錾鲜鰲笔У膬?nèi)容(1)保存的%rbx(2)15213(3)未用(4)%rsp+8(5)%rsp第 5 頁(共 8 頁)院系學號 授課教師. . .返回地址(1)(2)(3)argv5argv4argv3argv2argv1argv0計算46. Intel I7 CPU 的虛擬地址 48 位, 虛擬內(nèi)存的每一頁面4KB,物理地址 52 位,cache

15、塊大小 64B,物理內(nèi)存按字節(jié)尋址。其內(nèi)部結(jié)構(gòu)如下圖所示,依據(jù)此結(jié)構(gòu),分析如下項目:某指令 A 的虛擬地址為0x804849b,則該地址對應(yīng)的 VPO 為 0x_49b;訪問 L1 TLB 的 TLBI 為 0x_08_(6 位)_;若 指 令A(yù)的 物 理 地 址 為 0x86049b,則該地址對應(yīng)的 PPN 為0x_860_(40 位)_;(6 位)_。L1 cache的 CT 為 0x_860_(40 位)_,CO 為_0x1b_47.設(shè)一個 C 語言源程序 p.c 編譯鏈接后生成執(zhí)行程序 p,反匯編如下:C 程序反匯編程序的 main 部分(還代碼)如下:main 的地址為 0x8048

16、2C0(short 占 2 字節(jié))#include <stdio.h> unsignedshort unsignedshort void main()b2500;k;12345678movw movw mov xorw div movw movwret$0x3ff, 0x80497d00x804a324,%cx;k->cx$0x801,%dx,%ecx%dx,%eax%dxb1000 = 1023; b2000 = 2049%k;b10000 = 20000;2049/d0x804a324$0x4e20, 0x804de20現(xiàn)代 Intel 桌面系統(tǒng),采用虛擬頁式管理,每頁

17、4KB,p 首次運行時系統(tǒng)中無其他進程。請結(jié)合進程與虛擬管理的知識,分析上述程序的執(zhí)行過程中:(1) 在取指令時發(fā)生的缺頁異常次數(shù)為_ 0_。(2) 寫出已恢復的故障指令序號與故障類型_1、2;缺頁故障(page fault)_.(3) 寫出沒有恢復的故障指令序號與故障類型_ 7;保護違例或“段錯誤”或段故障(segmentation fault) _。(1)指令位于起始地址 0x8048000 的頁面(4k 大?。瑘?zhí)行指令前,該頁面已調(diào)入內(nèi)存。系統(tǒng)無其他進程,發(fā)生缺頁故障。發(fā)生因執(zhí)行其他進程而使該頁面調(diào)出到磁盤。故(2)1,2;對數(shù)組 b1000即 0x80497d0 的發(fā)生缺頁,對數(shù)組

18、b2000即地址0x804a324(另一個頁面)也發(fā)生缺頁故障,6 不發(fā)生缺頁。第 6 頁(共 8 頁)計算 (3)7,b10000時地址 0x804de20 可能超出可讀寫范圍,發(fā)生保護違例。 49.考慮下面的程序,它由兩個模塊組成:密請指出 main.o 中屬于強符號的是?_ x,main程序最后的輸出是什么?_ x=1000,y=2000 六、綜合設(shè)計題(每小題 10 分,共 20 分)封 線50.Y86-64 的部分指令序列如下圖所示,寫出 Y86-64 順序結(jié)構(gòu) CPU 中,執(zhí)行指令 rmmovq%rsp,100(%rbs)階段的操作及操作的具體結(jié)果。(提示:指令 rmmovq rA

19、,D(rB)的編碼規(guī)則如下)icode:ifunM1Pc=0x014= rA:rBM10x015=4:3 valCM80x016=100(0x00.64),valPPC+10=0x014+0xa=0x01e valAR%rsp=21, valBR%rbx=9 valEvalB+valC=9+100=109 M8valE=M8109valA=214:0取指譯碼執(zhí)行訪存寫回更新 PC PCvalP=0x01e. 指令將 21 寫入地址 109 處,PC 加 10第 7 頁(共 8 頁)院系學號 授課教師字節(jié) 0字節(jié) 1字節(jié) 2.940rArBD10x000:30f30900000000000000

20、 |irmovq$9,%rbx20x00a:30f41500000000000000 |irmovq$21,%rsp30x014:00 |rmmovq %rsp,100(%rbx) |/*p1.c*/ int x; int y;void p1()x=1000; y=200;/*main.c*/#include <stdio.h> int x = 100;int y;void p1(void); int main()intz=0; p1();y = 2000;printf(“x=%d,y=%dn”,x,y); reture 0;計算51.一段 C 語言程序如下:#include "csapp.h&q

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論