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}$ &times; 4 B;页面数=$\frac{2*1024*1024}{4*(4*1024)}$ &times; 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!

四级嵌入式系统开发工程师-计算题题库相关推荐

  1. 全国计算机四级嵌入式系统开发工程师

    全国计算机四级嵌入式系统开发工程师考试总结 1 考试题型和内容 一共考两门,操作系统原理和计算机组成与接口,每门50分,30道单项选择题,每题一分,10道多选题,每题2分. 2 考试实际情况 在网上买 ...

  2. 嵌入式系统开发工程师入行前十项准备

    这几年,大学生就业越来越难,但实际上,很多公司又一直招聘不到合适的值得培养的人才.我所了解的嵌入式系统开发工程师就是典型的例子,一般来说,在北京,这样的工作岗位大约是月薪3000-5000元,对刚毕业 ...

  3. 关于嵌入式系统开发工程师相关问题解答

    经常有网友对嵌入式系统开发工程师和嵌入式软件开发工程师概念模糊不清,不太清楚两种的区别和联系,本文就嵌入式系统开发工程师详细的介绍,帮助大家更好的了解嵌入式系统开发工程师一职. 一:职业描述     ...

  4. 嵌入式系统开发工程师嵌入式软件开发工程师

    嵌入式软件开发工程师 工作内容 从事数据产品嵌入式(底层)软件开发和设计工作: 负责数据产品相关软件子系统的方案设计: 负责数据产品相关的技术交流.标准及专利相关工作: 负责嵌入式软件系统的需求分析和 ...

  5. NCRE - 嵌入式系统开发工程师 – 操作系统(随笔)

    1.基本知识 (1)嵌入式系统的定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. (2)嵌入式系统发展的4个阶段:无操作系统 ...

  6. 《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——01-05 基本职能:老鸟也曾是菜鸟...

    本节书摘来自异步社区<嵌入式系统开发之道--菜鸟成长日志与项目经理的私房菜>一书中的第1章,第01-05节,作者 邱毅凌,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  7. android应用程序判断题,Android开发工程师笔试判断题

    Android开发工程师笔试判断题20例 1.一个Activity就是一个可视化的界面或者看成是控件的容器.√ 2.Intent有很长的生命周期,是没有用户界面的程序,可以保持应用在后台运行,而不会因 ...

  8. STM32与树莓派:嵌入式系统开发与教育计算的区别

    STM32和树莓派是两种不同的硬件平台,用于不同的应用领域. STM32:STM32是一系列由STMicroelectronics(意法半导体)生产的32位ARM Cortex-M微控制器.它们被广泛 ...

  9. 嵌入式系统开发学习如何起步、如何深入?(转)

    学习有捷径吗?俺认为是有的,正确的道路就是捷径. 就好象是爬山,如果有导游图,那就能找到一条最正确的路线:如果没有导游图,自己瞎琢磨,东问西问,也未必能找到最佳的路线. 有时候回首前尘,会谓叹,要是当 ...

最新文章

  1. 招行java开发面试,面经:Java后台开发-招行网络科技
  2. [HDU1394]Minimum Inversion Number
  3. 返回结果数据实体类R
  4. RDB和AOF速度测试
  5. Python学习笔记---理解zip()函数
  6. 第一季6:海思方案中uboot、kernel和rootfs的烧写方法
  7. python清除列表内容_Python 列表的清空方式
  8. php嵌入html代码的三种方法
  9. 刚刚人均国民收入突破1万美元,作为打工人的你有感知吗?
  10. android焦点动画,Android编程中PopupWindow的用法分析【位置、动画、焦点】
  11. mysql数据表设计 对应成二维数组_结果集数据怎么转换成二维数组
  12. netbeans linux 安装教程,linux下安装NetBeans 6.0
  13. 抖音直播带货攻略;直播前需要准备哪些设备丨国仁网络资讯
  14. rs485与modbus流程图_RS485通讯基础及通讯应用详解
  15. python中sys.stdout和sys.stderr
  16. 如何用C语言编程序化交易,程序化交易的开发步骤
  17. 饿了么4年 + 阿里2年:研发路上的一些总结与思考
  18. 如何用Python进行数据分析
  19. maven常见构建源码命令
  20. yolov5的backbone学习

热门文章

  1. Parallel并行计算合计数据时错误的原因和解决办法
  2. HR经理必须掌握的五原则
  3. Error running query: MetaException(message:Got exception: java.net.ConnectException Call From XXXX
  4. Python_note9 Matplotlib画图 Seaborn画图
  5. python中Scipy模块求取积分
  6. 2020腾讯校招后台开发
  7. android TextView实现滚动显示效果
  8. 基于TensorFlow的简单验证码识别
  9. UVA - 11478 Halum 二分+差分约束
  10. Sublime Text3 使用