C。读写锁只能同时由多个读者或者一个写者拥有,而且读和写是排他的,两者不能共存。
页大小大概占10位,那么虚拟地址分为虚拟页号和虚拟页偏移量,那么后10位就是偏移量,剩下的位就是索引位,对应在页表中的索引,那么所以说他们的索引一样,物理位置的物理页号一样,而物理偏移量A总是小于B
*(x+2) = A[2];
b
d
Size of a pointer should be 8 byte on any 64-bit C/C++ compiler, but not necessarily size of int.
静态持续变量
1 | int a = 3; //静态变量,外部链接性 |
外部链接性: 多个文件共享
内部链接性: 只有所属的文件可用
无连接性: 只有该代码段内可用
外部链接性的静态变量
1 | int a = 2; |
内部链接性的静态变量
无连接性的静态变量
CSAPP6.34/6.35
cache共有两个block,分别位于两个set中,设他们为b1和b2。每个block可以放下4个int类型的变量,也就是数组中的一行。在这一题中,源数组和目的数组是相邻排列的。所以内存和cache的映射情况是这样的:
b1 : src[0][] src[2][] dst[0][] dst[2][]
b2 : src[1][] src[3][] dst[1][] dst[3][]
这里搞错了,应该是dst数组全是m,src数组是左边的样子。
a
An object that is “8 bytes aligned” is stored at a memory address that is a multiple of 8.
so choose c
理解cache中的block,cache和line
line就是block
directed mapped 就是一个set只有一个line
2way就是一个set可以放2个line
4way,就是一个set可以放4个line
fully associated 就是只有一个set,所以不需要中间位的index,来作为line index
为什么要用中间位来做索引?
空间局部性。
fork函数到底复制了啥?
“子进程是父进程的副本。例如,子进程获得父进程数据空间、堆和栈的副本。注意,这是子进程所拥有的副本。父进程和子进程并不共享这些存储空间部分。父进程和子进程共享正文段。”
子进程得到的只是全局变量的副本,该题应该选b