系统架构师计算题汇总
逻辑地址转换成物理地址
某计算机系统页面大小为 2K,进程 P1 的页面变换表如下所示,若 P1 要访问数据的逻辑地址为十六进制 1B1AH,那么该逻辑地址经过变换后,其对应的物理地址应为十六进制(231AH)。
解题步骤
将逻辑地址 1B1AH 转换为二进制(H 表示十六进制):
1B1AH = 0001 1011 0001 1010 (B)
由于页面大小为 2K = 2048 = 2^11 字节,所以页内偏移量占用 11 位,页号占用剩余的位。
页号: 0001 1 (B) = 3 (D)
页内偏移量: 011 0001 1010 (B) = 31AH
根据页面变换表,页号 3 对应的物理块号为 4,4 转换为二进制为 100(B),后面拼接上面的页内偏移量,就可以得出物理地址。
物理地址的计算:
100 011 0001 1010(B)转换为十六进制为 231AH。
视频讲解
假设系统采用段式存储管理方法,进程 P 的段表如下所示。逻辑地址(请作答此空)不能转换为对应的物理地址;不能转换为对应的物理地址的原因是进行()。
A.(0,790) 和 (2,88)
B.(1,30) 和 (3,290)
C.(2,88) 和 (4,98)
D.(0,810) 和 (4,120)
解题步骤
物理地址 = 段首 + 偏移量
逻辑地址(0,810)其中,0 是段号,810 是偏移量
选项 D 中,段号 0 的段长为 800,偏移量 810 超过了段长,所以不能转换为对应的物理地址。段号 4 的段长为 100,偏移量 120 超过了段长,所以不能转换为对应的物理地址。
故,答案为 D。原因为偏移量超过了段长。
视频讲解
磁盘单缓冲区与双缓冲区读取
1.某计算机系统输入 / 输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间 T 为 10μs,缓冲区送用户区的时间 M 为 6μs,系统对每个磁盘块数据韵处理时间 C 为 2μs。若用户需要将大小为 10 个磁盘块的 Docl 文件逐块从磁盘读入缓冲区,并送用户区进行处理,那么采用双缓冲需要花费的时间为(请作答此空)μs,比使用单缓冲节约了( )μs 时间。
解题步骤
- 单缓冲区计算
对于单缓冲区而言,读入缓冲区的时间和缓冲区送用户区的时间是串行的,当处理数据时,此时可以进行读入缓冲区的操作。所以,单缓冲区需要的时间为:(10+6)*10 + 2 = 162μs - 双缓冲区计算
对于双缓冲区而言,当缓冲区送用户区和处理数据时,可以进行读入缓冲区的操作。所以,单缓冲区需要的时间为:10*10 +6 + 2 = 108μs - 图解
视频讲解
19 - 磁盘管理 - 磁盘单缓冲区与双缓冲区读取
【操作系统】【考研真题】2011 年统考第 31 题【单缓冲区】【双缓冲区】【互斥】
磁盘阵列
1.假如有 4 块 80T 的硬盘,采用 RAID6 组建磁盘阵列的容量是( )。
解题步骤
RAID6 的容量是 (N-2)* 最低容量 = (4-2)*80T = 160T。
流水线计算
1.执行指令时,将每一节指令都分解为取指、分析和执行三步,已知取指时间 t 取指 = 5△t,分析时间 t 分析 = 2△t. 执行时间 t 执行 = 3△t 如果按照[执行]k,[分析]k+1,[取指]k+2重叠的流水线方式执行指令,从头到尾执行完 500 条指令需( )△t。
解题步骤
流水线周期为执行时间最长的一段
流水线计算公式为: 1 条指令执行时间 + (指令条数 -1)*流水线周期
执行时间为 5+2+3+(500-1)*5=2505
视频讲解
Armstrong 公理系统
1.给定关系模式 R (U,F),其中 U 为属性集,F 是 U 上的一组函数依赖,那么函数依赖的公理系统 (Armstrong 公理系统) 中的分解规则是指 (7) 为 F 所蕴涵
解题步骤
Armstrong 公理系统设关系模式 RU,F,其中 U 为属性集,F 是 U 上的一组函数依赖,那么有如下推理规则:
① A1 自反律:若 Y⊆X⊆U,则 X→Y 为 F 所蕴含;
② A2 增广律:若 X→Y 为 F 所蕴含,且 Z?U,则 XZ→YZ 为 F 所蕴含;
③ A3 传递律:若 X→Y,Y→Z 为 F 所蕴含,则 X→Z 为 F 所蕴含。
根据上面三条推理规则,又可推出下面三条推理规则:
④ 合并规则:若 X→Y,X→Z,则 X→YZ 为 F 所蕴含;
⑤ 伪传递规则:若 X→Y,WY→Z,则 XW→Z 为 F 所蕴含;
⑥ 分解规则:若 X→Y,Z⊆Y,则 X→Z 为 F 所蕴含。
答案:C.若 X→Y,Z⊆Y,则 X→Z
视频讲解
此题看视频解析比较容易理解15.8.3. Armstrong 公理系统
文件最大长度
某文件系统采用多级索引结构,若磁盘块的大小为 512 字节,每个块号需占 3 字节,那么根索引采用一级索引时的文件最大长度为(请作答此空)K 字节;采用二级索引时的文件最大长度为( )K 字节。
解题步骤
设块长为 512B,每个块号占 3B,一个物理块可放:512/3=170 个目录项:
一个一级索引可存放的文件大小为:170×512=85KB。
一个二级索引可存放文件的大小为:170×170×512=14450KB。
一个三级索引可存放文件的大小为:170×170×170×512=2456500KB。
信号量与 PV 操作
进程 P1、P2、P3、P4 和 P5 的前趋图如下:
若用 PV 操作控制进程 P1 ~ P5 并发执行的过程,则需要设置 6 个信号 S1、S2、S3、S4、S5 和 S6,且信号量 S1-S6 的初值都等于零。下图中 a 和 b 处应分别填写(请作答此空);c 和 d 处应分别填写( ),e 和 f 处应分别填写( )。
解题步骤
从图中我们不难看出进程 P1 和 P2 没有前驱,也就是可以首先并发执行,而进程 P3 的前驱是 P1 和 P2,P4 的前驱是 P1 和 P3,P5 的前驱是 P2 和 P3。那么怎么理解前驱呢?其实前驱就是指只有在前驱进程完成后,该进程才能开始执行。
在本题的前驱图中我们不难看出,有 6 条路径,分别是 P1-P3,P1-P4,P2-P3,P2-P5,P3-P4,P3-P5。而且题目也告诉我们分别有 6 初值为 0 个信号量(S1-S6),要我们用 PV 操作来控制进程 P1 ~ P5 的并发执行。这里我们就需要清楚 P 与 V 这两种操作。
P 原语的主要操作是:
(1)信号量(sem)减 1;
(2)若相减结果大于等于零,则进程继续执行;
(3)若相减结果小于零,则阻塞一个在该信号量上的进程,然后再返回原进程继续执行或转进程调度。
V 原语的主要操作是:
(1)信号量(sem)加 1;
(2)若相加结果大于零,则进程继续执行;
(3)若相加结果小于或等于零,则唤醒一阻塞在该信号量上的进程,然后再返回原进程继续执行或转进程调度。
总而言之,进行 P 操作的主要目的是阻塞某信号量上的进程,而进行 V 操作的主要目的是唤醒某信号量上的进程。
对于某个进程来说,如果箭头指向外部,就是 V 操作,如果箭头指向自己,就是 P 操作。出 V +,入 P -。
视频讲解
软考高级 (系统分析师)|| 习题讲解:信号量与 PV 操作
最小生成树
山区某乡的 6 个村之间有山路如图所示,其中的数字标明了各条山路的长度(千米)。
乡政府决定沿山路架设电话线。为实现村村通电话,电话线总长至少为(14)千米。
解题步骤
此题看视频讲解比较清楚。
视频讲解
图 - 最小生成树 - Prim (普里姆) 算法和 Kruskal (克鲁斯卡尔) 算法
其他知识点
markdown 如何如何打出上标、下标
Markdown 可以和 HTML 的语法兼容,所以可以采用 HTML 的语法实现效果:
1 | 10<sup>2</sup> //上标 |
开发模型的特点
视图模型
需求分析的基本概念
需求是多层次的,包括业务需求、用户需求和系统需求,这三个不同层次从目标到具体,从整体到局部,从概念到细节。
(1)业务需求。业务需求是指反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理人员、市场营销部门或产品策划部门等。通过业务需求可以确定项目视图和范围,项目视图和范围文档把业务需求集中在一个简单、紧凑的文档中,该文档为以后的开发工作奠定了基础。
(2)用户需求。用户需求描述的是用户的具体目标,或用户要求系统必须能完成的任务。也就是说,用户需求描述了用户能使用系统来做些什么。通常采取用户访谈和问卷调查等方式,对用户使用的场景(scenarios)进行整理,从而建立用户需求。
(3)系统需求。系统需求是从系统的角度来说明软件的需求,包括功能需求、非功能需求和设计约束等。功能需求也称为行为需求,它规定了开发人员必须在系统中实现的软件功能,用户利用这些功能来完成任务,满足业务需要。功能需求通常是通过系统特性的描述表现出来的,所谓特性,是指一组逻辑上相关的功能需求,表示系统为用户提供某项功能(服务),使用户的业务目标得以满足;非功能需求是指系统必须具备的属性或品质,又可细分为软件质量属性(例如,可维护性、可维护性、效率等)和其他非功能需求。
质量功能部署(Quality Function Deployment,QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD 将软件需求分为三类,分别是常规需求、期望需求和意外需求。
(1)常规需求。用户认为系统应该做到的功能或性能,实现越多用户会越满意。
(2)期望需求。用户想当然认为系统应具备的功能或性能,但并不能正确描述自己想要得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感到不满意。
(3)意外需求。意外需求也称为兴奋需求,是用户要求范围外的功能或性能(但通常是软件开发人员很乐意赋予系统的技术特性),实现这些需求用户会更高兴,但不实现也不影响其购买的决策。意外需求是控制在开发人员手中的,开发人员可以选择实现更多的意外需求,以便得到高满意、高忠诚度的用户,也可以(出于成本或项目周期的考虑)选择不实现任何意外需求。