计算机系统2022期末

news2024/10/9 10:22:02

计算机系统2022期末

本课程的复习请以知识点复习为重,全部内容共有大小280+个知识点,都可能在期末考试出现,仅通过往年试卷复习是远远不够的,往年试卷仅能作为部分知识点的检测以及题目类型的大致参考,复习本课程需要尽可能完整复习所学的知识点,串联各个章节关联的部分

本答案非标准答案,是我本学期完成的。由于对全部知识点已经没有一年前熟悉,请几位同学完成了部分题目进行了核验,但是最后一题由于课程未结束,没有请同学做并和我核对,有任何问题请及时私戳我。

作为检验复习情况的参考:本卷整体简单(前六题),涉及的知识点较少,复习之后应该顺利完成。完成该卷的时长超过2h是正常的,2h应该可以完成前六题+最后一题的读题(快的话可以做一部分了)。不用担心题量问题,如果考试遇到了难度比较大且难以完成的题,保证其他题正确就足够了。最后一题难度稍大,我写明了完整的地址翻译过程给大家参考,理解整个地址翻译过程是很重要的,如果弄明白最后一题,任何形式的对地址翻译的考察就都没有问题了。

根据几个同学做题的情况,第4题也比较容易出错,难度略大于其他题,请同学们注意,复习好最基本的汇编指令都完成了什么动作,避免在基础题上犯错。


1.IEEE浮点数

在这里插入图片描述

(1)证明:

​ IEEE浮点数表示为:
n = ( − 1 ) s × M × 2 E n=(-1)^s \times M \times 2^E n=(1)s×M×2E
​ 阶码部分为:
E = { e − b i a s 规格化数 1 − b i a s 非规格化数 E = \begin{cases} e- bias & 规格化数\\ 1-bias &非规格化数 \end{cases} E={ebias1bias规格化数非规格化数
​ 题设范围内,不存在负数和特殊值。符号位为0,因此编码可只考虑后31位。若m<n,则:
M m × 2 E m < M n × 2 E n M_m\times 2^{E_m}<M_n\times 2^{E_n} Mm×2Em<Mn×2En

  • 若Em=En,满足上式必须有Mm<Mn,则m与n的阶码部分编码相同,尾数部分m<n,有fm<fn
  • 若Em<En,Mm和Mn可能取任意值:
    • m和n都是规格化数:E=e-bias,em<en,编码的高位m<n,fm<fn
    • m是规格化数,n是非规格化数:不存在这种情况,规格化数m<非规格化数n
    • m是非规格化数,n是规格化数:em(全0)<en,编码的高位m<n,fm<fn

|说明:

​ 本题不需要严格的证明,列出浮点数表示,分情况讨论就可以了,并且有以上两点就可以了。Em>En的情况,不存在m<n,不便也不需证明或说明。从下图可以看出,阶码大的数值总是更大:

在这里插入图片描述

(2)证明:

​ 假设m+1,n+1也都是规格化数,则有:
s t e p m = m + 1 − m = 2 E m ( M m + 1 − M m ) = 2 E m s t e p n = n + 1 − n = 2 E n ( M n + 1 − M n ) = 2 E n step_m=m+1-m=2^{E_m}(M_m+1-M_m)=2^{E_m} \\ step_n=n+1-n=2^{E_n}(M_n+1-M_n)=2^{E_n} stepm=m+1m=2Em(Mm+1Mm)=2Emstepn=n+1n=2En(Mn+1Mn)=2En
​ 由m<n,Em<=En,即stepm<=stepn。

​ 假设m为非规格化数,m+1为规格化数,stepm=1。(由于非规格化数阶码为1-bias,规格化数为E-bias,二者之间实现了平滑的过渡,可参照上表)。此时也有stepm<=stepn,无论n+1和n的具体情况。

|说明:

​ 本题同样不需要严格的证明,分情况简要说明即可。


2.汇编代码分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(1)

​ 23

(2)

​ 6

(3)

​ (j>15) ? 0 : (j-15)

(4)

​ array1[i][j] - 2array2[k]

(5)

​ sum + array1[0][0] + array2[0]


3.汇编代码分析

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(1)

​ *x>a[y]

(2)

​ xy>ua.i

(3)

​ test1(ua.pi, test1(ua.pi, ua.i+10))

|说明:

​ ua.pi、ua.i直接写为ua也正确,但是源程序中应该是写全的。本题和上题较为简单,应该保证可以无误完成。


4.汇编程序模拟

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(1)

​ 帧栈变化过程如下:

espebp
进入main函数,调整栈指针0xbffff1e00xbffff1f8
call P(5),retaddr入栈0xbffff1dc0xbffff1f8
控制转移给P(5),调整栈指针0xbffff1c00xbffff1d8
call P(16),retaddr入栈0xbffff1bc0xbffff1d8
控制转移给P(8),调整栈指针0xbffff1a00xbffff1b8
call P(8),retaddr入栈0xbffff19c0xbffff1b8
控制转移给P(8),调整栈指针0xbffff1800xbffff198
call P(4),retaddr入栈(题中所求位置)0xbffff17c0xbffff198
控制转移给P(4),调整栈指针0xbffff1600xbffff178

​ 题中所求位置,刚刚执行完call P(4),(%esp)为返回地址0x804842f,(%esp+4)为参数4。

|说明:

​ 本题考察程序执行过程中栈和栈指针的变化,细心模拟就可以完成,但是可能需要一点时间,不要忘记CALL指令让返回地址入栈,改变栈指针。

(2)

​ 更改后的程序:

void p(int x){
    cout<<x<<endl;
    while(x>1){
        if(x%2==0) x/=2;
        else x=x*3+1;
    }
}

​ 递归函数每次调用自身时都会重新开辟栈空间,当递归调用次数过多时,就会因栈空间耗尽而导致段错误。修改为非递归情况后,处理过程中只对固定位置的x的值进行修改,就不会出现栈空间耗尽的问题。


5.CPU设计题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(1)

​ 增加的部分:

在这里插入图片描述

(2)

​ 添加寄存器B。

在这里插入图片描述

|说明:

​ 本题只需要照着原状态和数据通路补充就可以了,如果遇到已出现的同类型指令的CPU设计问题,应该能快速解决。


6.链接与异常控制流

在这里插入图片描述

在这里插入图片描述

(1)

  • 可执行目标文件没有.rel节。.rel节存放了可重定位条目,用于链接时的重定位,链接完成后的可执行目标文件不再需要该节。
  • 可执行目标文件中的节经重定位后,都已经有了最终的运行时存储器地址。链接器进行重定位时,会将可重定位目标文件中所有相同类型的节合并为同一类型的新的聚合节,并将运行时存储器地址赋给新的聚合节和每个符号,并完成了节中符号引用的重定位。
  • 可执行目标文件有一个.init节,在程序加载后会调用该节代码进行初始化。

(2)

​ 该段代码在符号解析时存在多重定义问题。对于变量x,函数f存在多重定义。函数和已经初始化的全局变量是强符号,未初始化的全局变量是弱符号。多重定义的符号按照以下规则来处理:

  • 不允许多个强符号
  • 一个强符号和多个弱符号,选择强符号
  • 如果有多个弱符号,任意选择一个

​ 该段代码的两个x的定义均为弱符号,会随机选择一个定义。而f有一个强符号定义,会采用为x赋值的f函数。运行时,可能x选择了int型,占4个字节,而f按照double类型对x进行8字节赋值,会覆盖存储器中x和y的位置。

(3)

​ 重定位分为两步:

  • 重定位节和符号定义:链接器将所有相同类型的节合并为同一类型的新的聚合节,将运行时存储器地址赋给新的聚合节,赋给每个符号,此时所有的指令和全局变量都有唯一的运行时存储器地址。
  • 重定位节中的符号引用:链接器修改代码和数据节中对每个符号的引用,使这些引用指向正确的运行时地址。该步需要借助重定位条目完成。

(4)

​ 在输入可执行文件名之后,shell会通过execve函数调用加载器,修改虚拟地址空间,在可执行目标文件的段头部表的指导下将文件的代码和数据段拷贝到存储器中,然后跳转到程序入口_start,调用一些初始化例程,并调用atexit例程注册一些终止时调用的程序。接着调用main函数,运行结束后,会调用_exit函数,终止程序,将控制返回操作系统。

(5)

​ 会产生SIGCHLD信号,发送给父进程,信号的接收者是shell,表示子进程已经停止或终止。信号不排队指的是同一类型的信号,最多有一个处于待处理状态,后续到来的相同信号会被直接丢弃。这是因为待处理信号是用位向量维护的,不能计数。

|说明:

​ 本题都是基本的概念,其中(1)只需要答出两点,应该至少可以答出前两点,其他问内容本身就很少,尽量答全。


7.虚拟存储器+存储器层次结构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

​ 为了加快地址翻译,使用TLB进行地址缓存,如果TLB命中,则得到PDE,计算出页表的物理地址,然后找到PTE,完成地址的翻译。由图可以看出,TLB采用四路组相联,因此查找过程为先由索引找到组,再匹配tag进行查找。TLB是用VPN的位进行索引的,本题中页是4K的,偏移量VPO占用了12位,因此前20位用于TLB查找,需要先将地址进行划分,这20位中,组索引是后2位,tag是前18位。

​ 如果未命中,则需要到物理存储中找到PDE,PDE的地址是页目录的基址0x45d000,偏移是虚拟地址的前10位。偏移量需要左移2位,因为一个PDE4字节,类似于数组寻址,A[i]的地址是A+4i。页表同理。从PDE得到的二级页表基址还要左移12位,因为二级页表有4KB,基址后12位为0。

​ 该题中TLB直接缓存了物理页号,而在书中,TLB缓存的是PTE。注意这个区别。

(1)0x9fd28c10

​ 前20位为:0x9fd28 = 100111111101001010 (TLBT) 00 (TLBI)

  • TLBI:0
  • TLBT:27f4a

​ 查TLB,有这个地址的条目,但有效位为0,因此不命中。需要到内存中找到PDE:

​ PDEADDR = 0x45d000 + 0x9fc(虚拟地址前10位,左移两位) = 0x45d9fc

​ 从内存中读出PDE为:

​ 0x0df2a237 = 0000 1101 1111 0010 1010 (前20位,2级页表基址,16进制为0xdf2a) 0010 0011 0111(有效位为1)

​ PTEADDR = 0x0df2a000(2级页表基址) + 0x4a0(虚拟地址中间10位,左移两位) = 0xdf2a4a0

​ 从内存中读出PTE为:

​ 0x324236 = 0000 0000 0011 0010 0100(前20位,PPN,16进制为0x00324) 0010 0011 0110(有效位为0)

​ 由于有效位是0,转换失败,导致失败的PTE地址为0xdf2a4a0。

(2)0x0a32fcd0

​ 前20位为:000010100011001011 (TLBT) 11 (TLBI)

  • TLBI:3
  • TLBT:028cb

​ 查TLB,没有和TLBT匹配的条目,不命中。需要到内存中找PDE:

​ PDEADDR = 0x45d000 + 0x0a0(虚拟地址前10位,左移两位) = 0x45d0a0

​ 从内存中读出PDE为:

​ 0x000c3297 = 0000 0000 0000 1100 0011(前20位,2级页表基址,16进制为0x000c3) 0010 1001 0111(有效位为1)

​ PTEADDR = 0x000c3000(2级页表基址) + 0xcbc(虚拟地址中间10位,左移两位) = 0xc3cbc

​ 从内存中读出PTE为:

​ 34abd237 = 0011 0100 1010 1011 1101(前20位,PPN,16进制为0x34abd) 0010 0011 0111(有效位为1)

​ 物理地址为:

​ PPN + PPO = 0x34abd000 + cd0 = 0x34abdcd0

(3)0x0d4182c0

​ 前20位为:000011010100000110 (TLBT) 00 (TLBI)

  • TLBI:0
  • TLBT:03506

​ TLB中有该条目并且有效位为1,TLB命中,物理页号为:0x98f8a。

​ 物理地址为:

​ PPN + PPO = 0x98f8a000 + 2c0 = 0x98f8a2c0

2023.5.8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对球面线性插值的理解

【前言】 线性插值是点A到点B间距离的均匀变化&#xff0c;球面线性插值是点A到点B的角度均匀变化&#xff0c;前者应用范围很广&#xff0c;后者主要应用平滑旋转 【球面线性插值求解】 球面线性插值&#xff08;Spherical linear interpolation&#xff0c;Slerp&#xff…

权限系统设计方案

1 为什么需要权限管理 日常工作中权限的问题时时刻刻伴随着我们&#xff0c;程序员新入职一家公司需要找人开通各种权限&#xff0c;比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。 在很多时候我们会觉得这么多繁杂的申请给工作带…

知识变现海哥:知识博主私域卖课三大途径

哈喽&#xff0c;大家好&#xff0c;我是海哥&#xff0c;知识付费变现创业教练&#xff0c;教育公司培训总监&#xff0c;从事知识付费变现咨询10年&#xff0c;已助力3000人实现知识付费变现。 私域这里主要指的就是微信&#xff0c;这里跟大家介绍三种私域卖课的方式。 1 朋…

Nsis简单打包Unity window程序

制作步骤 1.Unity发布一个window exe程序 2. 创建一个脚本&#xff0c;Test.nsi&#xff0c;放置在发布文件中 3. 编写命令&#xff0c;使用Nsis进行编译运行(脚本拖拽到Nsis编译器中&#xff0c;自动运行) 4. 编译成功&#xff0c;发布文件夹内生成一个SetUp.exe安装程序 5.…

一文理解数据倾斜

什么是数据倾斜 并行处理数据集的某个task处理的数据明显多于其他task。 发生数据倾斜的原因 一个词概括:shuffle 在Shuffle的过程中,同样一个Key一般都会交给一个Task去处理,如果某个key特别多,如上图中task3的key有80亿,这样就会造成别的task很快算完,而task3却一直在…

项目管理专业人员能力评价等级证书(CSPM)是什么?

2021年10月&#xff0c;中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系&#xff0c;开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会&#xff08;CAS&#xff09;组织开展的项…

判断两个矩形是否相交(Rect Intersection)

0x00 Preface 最近在开发一个2D组态图形组件的过程中&#xff0c;里面的数学模块&#xff0c;涉及到两个矩形是否相交的判断。 这个问题很多年前就写过&#xff0c;算是个小的算法吧。 网络上搜索一下&#xff0c;有很多思路&#xff0c;有一些思路要基于多种组合的判断&…

618有哪些数码好物值得买?2023年618数码好物必买清单

618作为年中大促节点&#xff0c;很多的产品会迎来历史最低价&#xff0c;正是入手数码产品的最佳时间点。很多人在选择物品时难免会产生618有哪些数码好物值得买的疑惑?为此&#xff0c;我也整理了一份618数码好物清单&#xff0c;都是一些实用性很强的数码好物&#xff0c;希…

【2023年高考作文】七套卷子全汇总及AI一分钟版本作答

2023年高考作文-全国甲卷 科技与时间 当今社会&#xff0c;科技已经成为人们生活的必需品。它给我们带来了很多便利与机遇&#xff0c;让我们能够更好地掌控时间。然而&#xff0c;我们回顾一下自己的生活&#xff0c;会发现我们似乎已经依赖了科技&#xff0c;甚至成为了时间…

django-vue-admin开源项目环境调试(靠谱)

一、源码地址 注意&#xff0c;一定要使用这个地址。&#xff08;使用其他地址下载下来的感觉代码缺失&#xff0c;踩了大坑&#xff09; django-vue-admin: 基于RBAC模型的权限控制的一整套基础开发平台&#xff0c;前后端分离&#xff0c;后端采用 djangodjango-rest-frame…

消防应急照明和疏散指示系统在某洁净医药的设计与应用

【摘要】&#xff1a;A100型消防应急照明和疏散指示系统具有集中控制&#xff0c;灵活度高和可靠性强等特点。系统采用17寸工业平板电脑&#xff0c;采用Windonws7系统&#xff0c;可支持联动报警、系统监控、故障报警、自检、备电、记录存储与查询、导光流、权限控制等多项功能…

30、js - Promise

一、Promise的3种状态: 1、作用&#xff1a;了解Promise对象如何关联的处理函数&#xff0c;以及代码执行顺序 2、一个Promise对象&#xff0c;必然处于以下几个状态之一&#xff1a; pending&#xff1a;初始状态&#xff0c;页面一旦调用Promise对象&#xff0c;Promise对象就…

Hive中的DDL操作

文章目录 Hive中的DDL操作一、数据库&#xff08;database&#xff09;相关操作1. 创建数据库1&#xff09;语法2&#xff09;案例 2. 查询数据库1&#xff09;展示所有数据库2&#xff09;查看数据库信息 3. 修改数据库1&#xff09;语法2&#xff09;案例 4. 删除数据库1&…

需求三重境

需求的三点-痛点、痒点、爽点 我早前也做过产品经理&#xff0c;做产品经理经常需要分析需求&#xff0c;而KANO模型是其中的一个模型。如果要进一步解读痛点、痒点、爽点&#xff0c;或者可以尝试从KANO模型的角度分析。 所谓的KANO模型&#xff0c;是东京理工大学教授狩野纪…

接口测试 —— 接口和接口文档概念

1、接口的概念 接口又叫API&#xff0c;全称application programming interface&#xff1a;应用程序接口&#xff08;规范&#xff09;&#xff0c;也就是我们经常会听说Web接口&#xff0c;APP接口。 详细说明&#xff1a; APP是一种基于C/S架构的应用程序&#xff0c;如抖音…

阿里高工珍藏版“亿级高并发系统设计手册(2023版)”面面俱到,太全了

高并发 俗话说&#xff1a;罗马不是一天建成的&#xff0c;系统的设计当然也是如此。 从原来谁都不看好的淘宝到现在的电商巨头&#xff0c;展现的不仅仅是一家互联网巨头的兴起&#xff0c;也是国内互联网行业迎来井喷式发展的历程&#xff0c;网络信号从 2G 发展到现在的 5…

苹果服务端通知v2处理(AppStore Server Notifications V2)

苹果服务端通知v2处理 关键词: App Store Server Notifications V2、Python源码、苹果订阅、JWS、x5c、JSON WEB TOKEN 背景 最近要接入苹果订阅功能&#xff0c;调研后发现订阅生命周期内的状态变更是通过苹果服务端通知返回的(什么时候普通内购也能加上减少掉单的概率)&am…

邮件营销技巧!不想被打入冷宫?这五点让你的邮件不再进垃圾箱

邮件营销凭借其低成本、高效率的优势渐渐地在各个行业开始崭露头角。它既适用于外贸行业来拓展客户、又适用于金融行业来和客户保持联系。除此之外&#xff0c;企业还可以用邮件营销来通知活动信息、产品上新信息等等。 不过&#xff0c;很多人在进行邮件营销的时候经常会遇到“…

说点理论-什么叫TED背景

TED背景的概念 指technology, entertainment, design在英语中的缩写,即技术、娱乐、设计的3个首字母缩定。 TED背景的投影最小为4米*4米,大的有IMAX宽影幕布来打投影。给人感觉为:非常技术、非常高大上、非常专业、非常Fashion。 因此,头部一些公司会专门对于非常重要类…

【STM32】STM32G4系列片内模拟器件-比较器的使用

STM32G4系列片内模拟器件-比较器的使用 1.前言2.CubeMX配置3.HAL库函数 1.前言 STM32G4系列内置了片内模拟比较器&#xff0c;为电机控制、电源监测等方面的应用提供了很大的便利。要使用片内比较器&#xff0c;只需使用STM32CubeMX进行简单配置即可。 2.CubeMX配置 首先&am…