2.74計算x-y若導緻溢出,函數傳回1

溢出 函數傳回1
正常 函數傳回0
邊界測試
高速 緩存 | m | C | B | E | S | t | s | b |
1 | 32 | 8192 | 16 | 512 | 19 | 9 | 4 | |
2 | 4096 | 256 | 22 | 8 | ||||
3 | 128 | 23 | 7 | |||||
2048 | 5 |
6.39
A. 寫總數為 16*16*4 = 1024
B.不命中總數為64。
C. 這種情況隻有冷不命中,一個block能存下16個int,不命中率為1/16。
6.40
B.不命中總數為256。
C. E = 1024/64 = 16,每4行才能容得下數組的一行,每次j在變化時,都會不斷驅逐掉之前的緩存。是以,隻有循環内是可以命中的。不命中率為1/4。
6.41
B.
一行能保持4個square結構體的值,是以第一個雙循環不命中率為1/4。
第二個雙循環,不命中率為1/12。
總的不命中次數為 16*16/4 + 16*16*3/12 = 16*16/2 = 128。
C. 不命中率為 1/8。
10.6
輸出 fd2 = 4
因為已經有0 1 2被打開,fd1是3,fd2是4,關閉fd2之後再打開,還是4。
10.10
int main(int argc, char **argv)
{
int n;
rio_t rio;
char buf[MAXLINE];
if(argc == 2){
int fd = open(argv[2], O_RDONLY, 0);
dup2(fd, STDIN_FILENO);
close(fd);
}
Rio_readinitb(&rio, STDIN_FILENO);
while((n = Rio_readlineb(&rio, buf, MAXLINE)) != 0)
Rio_writen(STDOUT_FILENO, buf, n);
}
8.9
程序對 | 是否并發 |
AB | No |
AC | Yes |
AD | |
BC | |
CD |
8.12
8行
8.19
總共會輸出2^n行。