操作系統(tǒng)
1 給出一個(gè)并發(fā)程序的描述:
semaphore X1=X2=Y=1;
int c1=c2=0;
procedure f1:
p(X1)
if (++c1 = 1) p(Y)
v(X1)
compute A
p(X1)
if (--c1 = 0) v(Y)
v(X1)
procedure f2:
p(X2)
if (++c2 = 1) p(Y)
v(X2)
compute B
p(X2)
if (--c2 = 0) v(Y)
v(X2)
問computeA和computeB各自能有多少并發(fā)執(zhí)行,會(huì)不會(huì)出現(xiàn)餓死?
2 給出一個(gè)cpu的頻率,使用基于時(shí)間片的輪轉(zhuǎn)隊(duì)列調(diào)度,并給出了參數(shù)。求調(diào)度的效率和響應(yīng)時(shí)間。
3 使用多級(jí)頁表,給出一些參數(shù),如虛實(shí)地址空間大小、頁大小、頁表項(xiàng)大小等,問:
a) 多級(jí)頁表的優(yōu)點(diǎn)
b) 如果頁表限制在一個(gè)頁面里,問有多少頁表項(xiàng)?
c) 進(jìn)程頁表占用多少內(nèi)存?
4 把一個(gè)UNIX文件卷復(fù)制到另一個(gè)磁盤上,問:
a) UNIX文件卷由哪幾部分組成?
b) 只復(fù)制文件數(shù)據(jù),包括目錄之后,不能訪問,為什么?
c) 終于搞好了之后,發(fā)現(xiàn)有重復(fù)的硬鏈接,為什么?
5 給出了一個(gè)使用pthread的程序代碼,里面系統(tǒng)調(diào)用包括fork(),thread(),join()等等,中間穿插print HELLO。問最后一共打印了多少個(gè)HELLO。