家庭作业

2.74计算x-y若导致溢出,函数返回1

溢出 函数返回1

正常 函数返回0

 

边界测试

具体代码:

 

 

6.27

 

高速
缓存

m

C

B

E

S

t

s

b

1

32

8192

16

1

512

19

9

4

2

32

4096

4

4

256

22

8

2

3

32

4096

4

8

128

23

7

2

4

32

2048

32

4

16

23

4

5

 

6.39

A. 写总数为 16*16*4 = 1024

B.不命中总数为64。

C. 这种情况只有冷不命中,一个block能存下16个int,不命中率为1/16。

 

6.40

A. 写总数为 16*16*4 = 1024

B.不命中总数为256。

C. E = 1024/64 = 16,每4行才能容得下数组的一行,每次j在变化时,都会不断驱逐掉之前的缓存。所以,只有循环内是可以命中的。不命中率为1/4。

 

6.41

A. 写总数为 16*16*4 = 1024

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

Yes

BC

Yes

BC

Yes

CD

Yes

 

8.12

8行

 

8.19

总共会输出2^n行。

 

posted @ 2015-10-20 15:09  pottermqy  阅读(297)  评论(0编辑  收藏  举报