当前位置: 首页 > news >正文

系统架构设计师部分计算题解析

目录

第一章:计算机组成与体系结构

流水线吞吐率、加速比

2017年下半年

其他

第二章:操作系统

PV操作、前趋图

2017年下半年

2015年下半年

2012年下半年

2011年下半年

其他

分页存储管理

2013下半年

2012年下半年

其他

文件系统

银行家算法

第三章:数据库系统

数据库关系模式、函数依赖

解题思路

候选键(码)思路一

候选键(码)思路二

2017年下半年

2016年下半年

其他

无损分解

最小函数集

元组演算表达式

第十二章嵌入式系统


第一章:计算机组成与体系结构

流水线吞吐率、加速比

2017年下半年

  1. 某计算机系统采用5级流水线结构执行指令,设每条指令的执行由取指令(2)、分析指令(1)、取操作数(3)、运算(1)和写回结果(2) 组成, 并分别用5个子部件完成,该流水线的最大吞吐率为(  ) ;若连续向流水线输入10条指令,则该流水线的加速比为(  ) 。

【解析】

理论流水线执行时间=(2+1+3+1+2)+max(2,1,3,1,2) *(n-1) = 9+(n-1)*3;

第一问

最大吞吐率:

第二问:

10条指令使用流水线的执行时间=9+(10-1)*3=36。

10条指令不用流水线的执行时间=9*10=90。

加速比=使用流水线的执行时间/不使用流水线的执行时间=90/36 = 5:2。

其他

  1. 例:某计算机系统,一条指令的执行需要经历取指(2ms)、分析(4ms)、执行(1ms)三个阶段,现要执行100 条指令,利用流水线技术需要多长时间? (教材3.1)

理论上来说,1条指令的执行时间为:2ms+4ms+1ms=7ms。

所以:理论流水线执行时间=2ms+4ms+1ms+(100-1)*4=403ms。

而实际上,真正做流水线处理时,考虑到处理的复杂性,会将指令的每个执行阶段的时间都统一为流水线周期,即1条指令的执行时间为:4ms+4ms+4ms=12ms。所以:实际流水线执行时间=4ms+4ms+4ms+(100-1)*4=408ms

扩展:

上述题目中,如果采用

3级操作,2级流水,等价于将3级操作变成2级操作。

最合理的划分是由取指(2ms)、分析(4ms)、执行(1ms)相连划分为指(2ms)、分析(4ms)+执行(1ms)={2,5}。

然后利用公式计算就是理论:(2+5)+(100-1)*5=502,实际:(5+5)+(100-1)*5=505。

第二章:操作系统

PV操作、前趋图

2017年下半年

前趋图(Precedence Graph) 是一个有向无环图,记为:→={(Pi,Pj )|Pi must complete before Pj may strat}。假设系统中进程P={P1,P2,P3,P4,P5,P6,P7,P8},且进程的前驱图如下:

那么前驱图可记为:( )。

A: →={(P2,P1),(P3,P1),(P4,P1),(P6,P4),(P7,P5),(P7,P6),(P8,P7)}

B: →={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P5,P7),(P6,P7),(P7,P8)}

C: →={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,P5),(P4,P6),(P5,P7),(P6,P7),(P7,P8)}

D: →={(P2, P1), (P3,P1),(P4,P1),(P5,P2),(P5,P2),(P5,P3),(P6,P4),(P7,P5), (P7,P6),(P8,P7)}

【解析】

容易得答案C。

2015年下半年

  1. 某火车票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,…,n)。假设Hi(j=1,2+,…,m)单元存放某日某车次的剩余票数,Temp为Pi进程的临时工作单元,x为某用户的订票张数。初始化时系统应将信号量S赋值为 (  ) 。Pi进程的工作流程如下,若用P操作和V操作实现进程间的同步与互斥,则图中a、b和c应分别填入 (  ) 。

【解析】

第一空正确答案是1,因为公共数据单元马是一个临界资源,最多允许1个终端进程使用,因此需要设置一个互斥信号量S,初值等于1。

第二空的正确答案是P(S)、V(S)和V(S),因为进入临界区时执行P操作,退出临界区时执行 V操作。(个人理解临界区就是菱形判断条件)。

2012年下半年

  1. 某书店有一个收银员,该书店最多允许n个购书者进入。将收银员和购书者看作不同的进程,其工作流程如图所示。利用PV操作实现该过程,设置信号量S1、S2和Sn,初值分别为0,0,n。则图中a1和a2应填入 (  ) , b1和b2应填入 (  ) 。(2012年下半年)

【解析】

 这是一道考查利用P、V操作实现进程间的同步工作的综合分析题。对于本试题收银员进程和购书者进程之间是一个同步问题,需要设置两个同步信号量,即S1和S2。其中,信号量 S1表示购书者购书时,通知收银员进程做收费工作,初值为0。信号量S2表示收银员收费结束,通知购书者进程可以进行一步工作,初值为0。

由于该书店最多只允许有n个购书者进入,因此,书店是一个临界资源,最多允许n个购书者购书,对应的是设置一个互斥信号量Sn,初值等于n。当购书者进入书店时需要执行P(Sn)操作,用于查看书店是否有空闲位置允许其进入购书。若有空闲位置,则进入书店进行购书;若没有空闲位置,则进入等待状态。当购书者完成购书操作退出书店时,需要执行V(Sn)操作,表明书店中已有一个空闲位置,并唤醒其他进入等待状态的购书者进程。

购书者进程中,完成购书操作后先执行V(S1)操作表示购书结束,唤醒收银员进程做收费工作。然后执行P(S2),用于查看该购书者是否已缴费,若已缴费,则继续进行一步工作,即执行V(Sn);若未缴费,则进入等待状态。

对于收银员进程,先执行P(S1)操作,用于检查是否有准备缴费的购书者申请。若有,则进行执行下一步工作,即进行收费操作;若没有准备缴费的购书者申请,则进入等待状态。当完成收费任务后,需继续执行V(S2)操作,用于通知购书者进程可以进行一步工作。

答案:V(S1)、P(S2);P(S1)、V(S2)

可参考视频《0405。PV操作练习题1.wmv》解析。

2011年下半年

  1. 进程P1、P2、P3、P4和P5的前趋图如下:

       若用PV操作控制进程P1~P5并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,进程间同步所使用的信号量标注在上图中的边上,且信号量S1~S5的初值都等于零,初始状态下进程P1开始执行。下图中a、b和c处应分别填写(  );d和e处应分别填写(  ),f和g处应分别填写(  )。

【解析】

最简单的理解方式:箭头出就是V操作,箭头入就是P操作。

答案:1、V(S1)V(S2)、P(S1)和V(S3)V(S4);P(S2)和V(S5);P(S3)和P(S4)P(S5)

其他

  1. 有一个仓库可以存放P1、P2两种产品,但是每次只能存放一种产品。要求:(不用太理解

①w=Num(P1)-Num(P2);

②-i<w<k(i、k为正整数)。

如果Num(P1)=0,则-i<-Num(P2)<k,则-k<Num(P2)<i。所以仓库最多放i-1个P2产品;

若用P/V操作实现P1和P2产品的入库过程,则至少需要上 (  ) 个同步信号量及 (  ) 个互斥信号量。其中,同步信号量的初值分别为 (  ) ,互斥信号量的初值分别为 (  ) 。

【解析】

首先不看题,根据我的一般理解,一个系统中一般是问我有几个同步信号量,和互斥信号量,同步一般是2个,互斥一般是1个。同步的初值一般是0或者资源数,互斥的初值一般设为1

现在根据题目的第一句分析,一个仓库,放两种产品P1,P2,每次只能放一种。也就是说,有一个箱子,P1和P2都可以放,但是一次只能放P1,或者只能放P2,不能同时放,这和互斥很像,想想一下千军万马过独木桥,独木桥谁都能过,但是一次只能过一个。所以对于箱子而言是互斥的。

这里面有互斥,那么有没有同步。同步是指协作,谁和谁协作,没看出来,应该没有同步吧。初步答案,互斥1个,同步0个。

接着求初始值,看要求,w=Num(P1)-Num(P2),而且-i<w<k,i和k还都是整数。原来P1和P2的产品量不是一个啊,是多个啊。还有数量限制。

w=Num(P1)-Num(P2)不明白。但是 -i<w=Num(P1)-Num(P2)<k。看选项结果初值应该和k,i都些些关系。如果假设一个极端,Num(P1)=0或者Num(P2)=0。

如果Num(P1)=0,则-i<-Num(P2)<k,则-k<Num(P2)<i。所以仓库最多放i-1个P2产品(<i,i又为正数,只能是i-1);       而Num(P2)=0,则-i<Num(P1)<k,则仓库最多放k-1个P1产品。

然后仓库的操作过程可能是这样的。首先假设要放P1进入仓库,要看下仓库里是否有P2产品,如果有P1就不能放进去;如果没有P2产品,只有P1产品,还要看看P1产品的数量是否到达了i-1,如果已经到达了i-1,也不能放P1了。而对于产品P2,则要看是否有P1产品,是否数量达到了k-1。

尽管还是没有看出同步该有的协作,但是对于P1,P2产品应该用两个信号量S1,S2初始值分别为k-1和i-1,表示P1产品的数量,和P2产品的数量。每次放入一个P1产品,就P(S1)减少一个资源。P2同理。

而互斥信号量,就是表示这个放了P1不能放P2,放了P2不能放P1。它的初值为1,放了P1之后,变为0,P2不能放,没资源了;或者放了P2之后变为0,P1不能放了。

所以同步为2,互斥为1;同步的初始值为i-1,k-1;互斥的初始值为1。

分页存储管理

2013下半年

  1. 某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构。如果物理页的大小为512字节,那么进程A逻辑地址为1111(十进制)的变量存放在___号物理内存页中。假设进程A的逻辑页4与进程B的逻辑页5要共享物理页8,那么应该在进程A页表的逻辑页4和进程B页表的逻辑页5对应的物理页处分别填___。

   

【解析】

http://www.dtcms.com/a/394619.html

相关文章:

  • 3.1 BP神经网络结构(反向传播算法)
  • 2026:具身智能软件——开发者工具、范式与方向
  • linux收集离线安装包及依赖包
  • ✅ Python租房数据分析系统 Django+requests爬虫+Echarts可视化 贝壳网全国数据 大数据
  • FREERTOS任务TCB与任务链表的关系-重点
  • C++入门(内含命名空间、IO、缺省参数、函数重载、引用、内联函数、auto关键字、新式范围for循环、关键字nullptr的超全详细讲解!)
  • 红黑树的介绍
  • NumPy 系列(六):numpy 数组函数
  • 手写链路追踪-日志追踪性能分析
  • 数据库自增字段归零(id)从1开始累加
  • 轻量级本地化解决方案:实现填空题识别与答案分离的自动化流程
  • P1104 生日-普及-
  • CMake如何添加.C.H文件
  • 实时数据如何实现同步?一文讲清数据同步方式
  • 六、Java框架
  • 施耐德 M340 M580 数据移动指令 EXTRACT
  • 4. 引用的本质
  • 专业历史知识智能体系统设计与实现
  • 算法基础篇(4)枚举
  • 【C++】二叉搜索树及其模拟实现
  • 第二十一讲:C++异常
  • 2025年9月第2周AI资讯
  • 从 UNet 到 UCTransNet:一次分割项目中 BCE Loss 失效的踩坑记录
  • leetcode刷题记录2(java)
  • JAVA八股文——方法区
  • 链表操作与反转
  • AI编程 -- 学习笔记
  • 动态规划问题 -- 子数组模型(乘积最大数组)
  • 【AIGC】大模型面试高频考点18-大模型压力测试指标
  • Cannot find a valid baseurl for repo: base/7/x86_64