fork()函数类
(1)
解析:
- fork()函数的返回值,若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
- 假设程序正确运行并创建子进程成功:子进程中pid得到返回值为0,父进程中pid得到返回值为子进程号,父进程执行一次输出,子进程执行一次输出。
- 故输出两行Hello World。
(2)
解析:
- fork()函数的返回值,若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
- 假设程序正确运行并创建子进程成功:子进程得到返回值为0,父进程得到返回值为子进程号,父进程执行一次输出,子进程执行一次输出,加上fork()函数前面的语句,输出一行Hello World。
- 故输出三行Hello World。
(3)
解析:
- fork()函数的返回值,若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
- 假设程序正确运行,创建一个子进程得到返回值为0,输出 I am the child process,my process ID is 3744 ;父进程得到返回值为子进程号,父进程执行一次输出 I am the parent process,my process ID is 3987 。
- 故改程序正确运行后的结果是 I am the child process,my process ID is 3744I am the parent process,my process ID is 3987
缺页中断类
(1)
解析:
- 缺页中断次数=页框数 × 页面置换次数。
- 由程序可知,每次内层循环遍历了100个整形变量,所以页框数=$\frac{100}{50}$ = 2;外层循环有50次,所以页面置换次数为50。
- 缺页中断次数 = 2 × 50 =100次。
- 会产生100次缺页中断。
(2)
解析:
- 最佳页面置换法的原则:保留最近重复访问的页面,将以后都不再访问或者很长时间内不再访问的页面调出。
- 根据题中所给的进程访问序列,可可得到以下置换图:
- 故缺页次数为7。
页面置换算法类
(1)
解析:
- LRU置换算法的规则:将最近最久未被访问的页面置换出去。
- 由题意可得:
显而易见,共缺页11次,所以缺页率为11/15≈73%。
- 故该进程的缺页率为73%。
进程内存分配类
(1)
解析:
- 由题意可得,内存空闲区有:
- 由分配后的内存情况:
可知,此方法首先使用了满足条件的最大空闲区,这是最差适配的特点。
- 故此为最差适配。
(2)
解析:
- 由题意可得,内存空闲区有:
- 由分配后的内存情况:
可知,此方法首先使用了满足条件的最小空闲区,这是最佳适配的特点。
- 故此为最佳适配。
(3)
解析:
- 由题意可得,内存空闲区有:
- 由分配后的内存情况:
可知,此方法首先使用了满足条件的低地址的空闲区,这是首次适配的特点。
- 故此为首次适配。
(4)
解析:
- 由题意可得,内存空闲区有:
- 由分配后的内存情况:
可知,此方法并没有分配任何空闲区,这是下次适配的特点。
- 故此为下次适配。
UNIX系统中文件权限类
(1)
解析:
- UNIX系统中,文件权限规则:A1A2A3,A1代表文件属主,A2代表同组用户,A3代表其他用户。其中A=a×4+b×2+c,若a=1,则为可读,b=1,则为可写,c=1,则为可执行。
- 由题意可知,A1为7=1×4+1×2+1,则a=b=c=1,所以,文件属主可读、可写、可执行File1;A2为5=1×4+0×2+1,则a=c=1,所以,同组用户可读、可执行;A3为5=1×4+0×2+1,则a=c=1,所以,其他用户可读、可执行。
- 故文件属主可执行File1,文件属主可读File1,同组用户可执行File1,其他用户可读File1。
银行家算法类
(1)
解析:
- 安全序列是指对当前申请资源的进程排出一个序列,保证按照这个序列分配资源完成进程。我们假设有进程P1,P2,.....Pn,则安全序列要求满足:Pi(1<=i<=n)需要资源<=剩余资源 + 分配给Pj(1 <= j < i)资源。
- 解题思路:首先根据系统状态列出各进程需要的资源;然后根据当前系统剩余资源,找到一个需要资源不大于剩余资源的进程,此时,系统剩余资源就是可用资源;然后此进程的已分配资源加上可用资源,为新的可用资源,并继续与下一个进程的需要资源比较,以此类推写出安全序列。
- 由于安全序列的不唯一性,针对做题来说,还是根据选项去反推本序列是否安全更合适。
- 如:
- 当前系统剩余资源(2,3,3)
A,P3需要(2,1,1)<(2,3,3)满足,则可用资源变为(4,4,7);P1需要(0,0,6)<(4,4,7)满足,则可用资源变为(8,4,12);P4需要(3,4,7)<(8,4,12)满足,则可用资源变为(10,5,14);P2需要(1,3,4)<(10,5,14)满足,则可用资源变为(14,5,16);P5需要(1,1,1)<(14,5,16)满足,则可用资源变为(15,6,17)。 - 故P3,P1,P4,P2,P5。
重组存储器类
(1)
解析:
- 0BFFFFH-0A0000H=1FFFFH=131071;
131071÷(16×1024)=7。 - 故应使用8片。
8259A级联类
(1)
解析:
- 8259A的IR0~IR7用来接收外设的中断信号,1片最多可以有8级中断;芯片级联时,需要留出一个口接con从片,所以9片芯片级联后有只有最后一片是8个口接收中断信号,其他8片都是7个口,所以8+8×7=64级。
- 故可以使CPU的kepingbizh可屏蔽中断最多扩展到64级。
8259A类
(1)
解析:
- ICW2是设置中断类型码的初始化命令字,其高5位设置中断类型码,低3位自动插入IR的编码。
- 由题意可知, ICW2 = 83H = 10000011B,所以 IR2 的中断类型码为10000, 低3位编码为010,即中断类型码为10000010B = 82H。
- 故8259A发给CPU的中断类型码是82H。
8255A类
(1)
解析:
- 8255A方式控制字:
- 由题意可得:
D7=1;
D6D5=00;
D4=0;
D3D2D1D0=xxxx;
即控制字为1000xxxx B=8xH。
- 故控制字应该设置为80H/81H/88H。
(2)
解析:
- 8255A口C按位置位/复位控制字
- 由题意可知,端口B工作在方式1,且用$ INRT_B $向外发出中断,所以PC2口置1,即D3D2D1=010,又因为端口B作为输入,所以C口置1,即D0=1。
- 故正确的置位/复位控制字为05H。
8253类
(1)
解析:
- 8253的控制字:
- 由计数器1可得:D7D6=01;
由计数值266,且计数器1是16位计数器,所以:D5D4=11;
由工作在模式3可得:D3D2D1=x10;D0=x;
即控制字为0111x10x B,所以可能为76H/7EH。
- 故控制字应该设置为76H/7EH。
(2)
解析:
- 8252工作在模式2时是作为速率波发生器使用,计数器在减“1”计数过程中,GATE变为无效(输入0电平),则暂停减“1”计数,待GATE恢复有效后,从初值n开始重新计数。
- 由题意可知,时钟速率为20KHz,要想保证没10ms发出一个信号,则计数值应为20KHz×10ms=200。
- 故正确的计数值是200。
8251A类
解析:
- 8251A的异步方式控制字:
- 由一位停止位可得:D7D6=01;
由奇校验可得:D5D4=01;
由字符长度为8位可得:D3D2=11;
由16分频可得:D1D0=10;
即控制字为01011110B。
- 故应向其模式控制寄存器写入5EH。
调度类
(1)
解析:
- SCAN调度算法的规则:比磁头大的序列升序访问,比磁头小的序列降序访问。
- 比磁头大的序列升序排序:110,170,180,195;
比磁头小的序列降序排序:68,45,35,12。 - 故采用SCAN算法得到的磁道访问序列是:110,170,180,195,68,45,35,12。
(2)
解析:
- SSF调度算法的规则:先请求离磁头最近的磁道的访问,然后就近访问,以此类推。
- 故采用SSF算法得到的磁道访问序列是:110,68,45,35,12,170,180,195。
(3)
解析:
- FCFS调度算法的规则:按照访问请求次序为各进程服务。
- 故采用FCFS算法得到的磁道访问序列是:35,45,12,68,110,180,170,195。
其他
(1)
解析:
- 信号量,可以被一个线程释放,另一个线程获取,多线程同步。
mutex,用于线程互斥,其对象值只能为0和1~值0,表示锁定状态,当前对象被锁定,用户线程或进程如果试图Lock临界资源,则进入排队等待;值1,表示空闲状态,当前对象为空闲,用户线程或进程可以Lock临界资源,之后mutex值减1变为0。 - mutex的初值为1,说明同时只允许一个进程进入临界区,则有一个进程在临界区;
- k个进程在等待队列中,则有k个进程在等待区;
- 所以一共有1+k个进程,每个进程都访问mutex时,mutex的值都减1,即,此时mutex的值为1-(1+k)=-k;
- 故信号量的值为-K。
(2)
解析:
- 页面数=$frac{页表内存}{页面大小}$;
页表内存=页表项个数 × 物理页号;
页表项个数=$frac{虚拟地址空间}{页面大小}$(计算过程注意单位统一)
-
代入数据:页表项个数=$\frac{2*1024*1024}{4}$ 个;
页表内存=$\frac{2*1024*1024}{4}$ × 4 B; 页面数=$\frac{2*1024*1024}{4*(4*1024)}$ × 4 = 512 个。
- 故页表需要占用512个页面。
(3)
解析:
- 没有成组操作时,块使用率=$frac{块使用大小}{块大小}$ × 100%。
- 每个逻辑记录为80个字符,所以块使用大小为80;每个块大小为1024个字符。
- 即没有成组操作时,块使用率= $\frac{80}{1024}$ × 100% ≈ 8% 。
- 故磁盘的空间利用率是 8% 。
(4)
解析:
- 成组操作时,快使用率=$frac{块使用大小×块因子}{块大小}$ × 100%。
- 每个逻辑记录为80个字符,所以块使用大小为80;每个块大小为1024个字符,块因子为12。
- 即成组操作时,块使用率= $frac{80×12}{1024}$ × 100% ≈ 94% 。
- 故磁盘的空间利用率是 94% 。
(5)
解析:
- 每个进程可申请资源数=$frac{总资源数}{总进程数}$。
- 由题意可得,$frac{总资源数}{总进程数}$ = $\frac{7}{3}$=2……1,所以有两个进程可以获取2个资源,一个进程获取3个资源。
- 故每个进程最多可以申请的资源个数是3。
(6)
解析:
- 总线带宽=总线频率×总线宽度(注意单位)
- 代入数据可得,总线宽度=66MHZ × $\frac{32}{4}$ B =264MBps。
- 故总线的带宽为264MBps。
(7)
解析:
- 在分页式存储管理方案的系统中,页数 = $frac{逻辑地址}{内存块大小}$ 。
- 由题意可得,页数 = $\frac{ 2^{32} }{2^{10} }$ 。
- 故用户程序最多可划分成 $2^{22}$。
(8)
解析:
- 前10个索引项直接存放文件信息的物理块号,直接索引,最多寻址10个物理块;第11项指向一个物理块,该块中最多可放100个文件物理块的块号,第一次间接索引;第12个索引项是第二次间接索引,最多可寻址100100个物理块。所以,总物理块数为:10+100+100100=10110。
- 故一个文件最多为10110块。
(9)
解析:
- 启动1次磁盘,直接索引1~10物理块;启动2次磁盘,一级索引11~110物理块;启动3次磁盘,二级索引111~10110物理块。所以要访问第1000块时,找到主索引后,需要启动磁盘3次。
(10)
解析:
- 二次重叠控制方式的指令执行方式:
假设取指令、分析指令和执行指令的时间都相等,每段的时间都为t,执行一条指令的时间T=$t_取指令$+$t_分析指令$+$t_执行指令$。如果我们把取第k+1条指令所用的时间,提前到与分析第k条指令同时进行,那么分析第k+1条指令会与执行第k条指令同时进行,则执行n条指令所用的时间是:T=3×t+(n-1)×t。
- 故所需执行的时间为:T=3×t+(n-1)×t。
(11)
解析:
- 在计算机中,浮点数只用阶码和尾数表示:
。 - 浮点数的范围由阶码的位数决定,精度由尾数决定。
- 由题意可知阶码是用补码表示的,且共四位,其中一位是阶符,所以阶码的最大值是7,所以由此表示的最大正数是$2^7$-1。
- 故规格化浮点数所能表示的最大整数是$2^7$-1。
(12)
解析:
- 对一级页表而言,查页表项的平均时间 = 快表查找时间 × 命中率 + 访问内存的时间 × (1-命中率)+1×访问内存的时间。
- 由题意可得:查页表项的平均时间 = 0 +0.4us*(1-90%)+1×0.4us= 0.44us。
- 故有效访问时间是0.44us。
(13)
解析:
- $2^{地址线条数}$= 存储容量(直接寻址能力)。
- 由题意可得,$2^{地址线条数}$= 64GB =$2^6$ × $2^{30}$ = $2^{36}$。
- 故该处理器的地址线有36条。
(14)
解析:
- 由题意可知,VALB=30=1EH,所以(VALB AND 0FH) OR (VALB XOR 0FH)=(1EH & 0FH)|(1EH ⊕ 0FH)=1FH。
- 故表达式(VALB AND 0FH) OR (VALB XOR 0FH)的值为1FH。
(15)
解析:
- 在调度的过程中的,内存的变化如下:
- 标红1号区,内存为320-224=96M;
标红2号区,内存为224-120=104M;
标红3号区,内存为1024-128-320-224-288=64M;
显然1号空闲区内存最大。
- 故系统中剩余的最大空闲分区是104M。
(16)
解析:
- 由题意可得:
- 故存放数据07H的物理地址是200FEH。
(17)
解析:
- 由题意可得,共8个盘面,每个盘面有2500×80=200000个扇区。
- 逻辑号为385961,385961/200000≈1.929805,则在第2个盘面上,盘面号为1。
- (385961 mod 200000)/80≈2324.5125,则在第2325个柱面上,柱面号为2324。
- (385961 mod 200000)mod 80≈41,则在第41个扇区上,扇区号为40。
- 故该数据块对应的盘面、柱面和扇区号各为1,2324,40。
(18)
解析:
- 在UNIX三级索引结构中,0-9项为直接索引,访问时共10个数据块;第10项为一级间接索引,访问时共$2^{10}$个数据块;第11项为二级间接索引,访问时共$2^{10}$×$2^{10}$个数据块;第12项为三级间接索引,访问时共$2^{10}$×$2^{10}$×$2^{10}$个数据块。
- 所以共有10+$2^{10}$+$2^{20}$+$2^{30}$个数据块,又因为磁盘块大小为4096B。
- 故该文件系统中文件的最大尺寸不能超过(10+$2^{10}$+$2^{20}$+$2^{30}$)×4096B。
(19)
解析:
- 首先计算出每个磁盘块有文件控制块512/64=8,有256个文件控制块时,表明有256/8=32个磁盘块。
- 在第一个磁盘块需要访问磁盘一次,在第二个磁盘块需要访问磁盘块两次,依次类推,所以平均有(1+2+3+...+32)÷32=33÷2=16.5次。
- 故查找该目录文件的某一个文件控制块的平均访盘次数是16.5。
- 另附:
一般情况下的分析。若目录文件分解前占用n个磁盘块,分解后用m个磁盘块存放文件名和文件内部号,则推导出二者的表达式:
分解前,平均访问磁盘次数:(1+2+...+n)÷n=(n+1)2(1+2+...+n)÷n=(n+1)/2 ;
分解后,平均访问磁盘次数:(2+3+...+(m+1))÷m=(m+3)/2。
(20)
解析:
- 异步通信的数据格式如下:
- 由题意可得,
起始位:0;
5位数据位发送13H:10011;
偶校验:1(13H有奇数个1,所以补1);
停止位:1;
- 又因为发送数据时,从低位开始发送,所以数据帧格式为11100110。
- 故发送数据13H到传输线上的信息为E6H。
END!