c语言中unsigned long Fre_Vaule = 1000;这句话将频率定义为无符号长整型吗?那为什么要等于1000

  通常,操作系统可以使用三种方法来表示系统的当前时间与日期:

  ①最简单的一种方法就是直接用一个64位的计数器来对滴答进行计数。

  ②第二种方法就是用一个32位计数器来对秒进行计数,同时还用一个32位的辅助计数器对滴答计数,之子累积到一秒为止。因为232超过136年,因此这种方法直至22世纪都可以让系统工作得很好。

  ③第三种方法也是按滴答进行计数,但是是相对于系统启动以来的滴答次数,而不是相对于相对于某个确定的外部时刻;当读外部后备时钟(如RTC)或用户输入实际时间时,根据当前的滴答次数计算系统当前时间。

  UNIX类操作系统通常都采用第三种方法来维护系统的时间与日期。

  首先,有必要明确一些Linux内核时钟驱动中的基本概念。

  (1)时钟周期(clock cycle)的频率: PIT的本质就是对由晶体振荡器产生的时钟周期进行计数,晶体振荡器在1秒时间内产生的时钟脉冲个数就是时钟周期的频率。

  (2)时钟滴答(clock tick):我们知道,当PIT通道0的计数器减到0值时,它就在IRQ0上产生一次时钟中断,也即一次时钟滴答。PIT通道0的计数器的初始值决定了要过多少时钟周期才产生一次时钟中断,因此也就决定了一次时钟滴答的时间间隔长度。

  (3)时钟滴答的频率(HZ):也即1秒时间内PIT所产生的时钟滴答次数。类似地,这个值也是由PIT通道0的计数器初值决定的(反过来说, 确定了时钟滴答的频率值后也就可以确定8254 PIT通道0的计数器初值)。Linux内核用宏HZ来表示时钟滴答的频率,而且在不同的平台上HZ有不同的定义值。对于ALPHA和IA62平台HZ的 值是1024,对于SPARC、MIPS、ARM和i386等平台HZ的值都是100。该宏在i386平台上的定义如下(include/asm- i386/param.h):

  根据HZ的值,我们也可以知道一次时钟滴答的具体时间间隔应该是(1000ms/HZ)=10ms。

  (4)时钟滴答的时间间隔:Linux用全局变量tick来表示时钟滴答的时间间隔长度,该变量定义在kernel/timer.c文件中,如下:

  tick变量的单位是微妙(μs),由于在不同平台上宏HZ的值会有所不同,因此方程式tick=1000000÷HZ的结果可能会是个小数, 因此将其进行四舍五入成一个整数,所以Linux将tick定义成(1000000+HZ/2)/HZ,其中被除数表达式中的HZ/2的作用就是用来将 tick值向上圆整成一个整型数。

  (5)宏LATCH:Linux用宏LATCH来定义要写到PIT通道0的计数器中的值,它表示PIT将没隔多少个时钟周期产生一次时钟中断。显然LATCH应该由下列公式计算:

  类似地,上述公式的结果可能会是个小数,应该对其进行四舍五入。所以,Linux将LATCH定义为(include//timex.h):

  类似地,被除数表达式中的HZ/2也是用来将LATCH向上圆整成一个整数。

  2 表示系统当前时间的内核数据结构

  作为一种UNIX类操作系统,Linux内核显然采用本节一开始所述的第三种方法来表示系统的当前时间。Linux内核在表示系统当前时间时用到了三个重要的数据结构:

  ①全局变量jiffies:这是一个32位的无符号整数,用来表示自内核上一次启动以来的时钟滴答次数。每发生一次时钟滴答,内核的时钟中断处 理函数timer_interrupt()都要将该全局变量jiffies加1。该变量定义在kernel/timer.c源文件中,如下所示:

  C语言限定符volatile表示jiffies是一个易该变的变量,因此编译器将使对该变量的访问从不通过CPU内部cache来进行。

  ②全局变量xtime:它是一个timeval结构类型的变量,用来表示当前时间距UNIX时间基准 00:00:00的相对秒数值。结构timeval是Linux内核表示时间的一种格式(Linux内核对时间的表示有多种格式,每种格式都有不同的时间 精度),其时间精度是微秒。该结构是内核表示时间时最常用的一种格式,它定义在头文件include//time.h中,如下所示:

  Linux内核通过timeval结构类型的全局变量xtime来维持当前时间,该变量定义在kernel/timer.c文件中,如下所示:

  但是,全局变量xtime所维持的当前时间通常是供用户来检索和设置的,而其他内核模块通常很少使用它(其他内核模块用得最多的是 jiffies),因此对xtime的更新并不是一项紧迫的任务,所以这一工作通常被延迟到时钟中断的底半部分(bottom half)中来进行。由于bottom half的执行时间带有不确定性,因此为了记住内核上一次更新xtime是什么时候,Linux内核定义了一个类似于jiffies的全局变量 wall_jiffies,来保存内核上一次更新xtime时的jiffies值。时钟中断的底半部分每一次更新xtime的时侯都会将 wall_jiffies更新为当时的jiffies值。全局变量wall_jiffies定义在kernel/timer.c文件中:

  ③全局变量sys_tz:它是一个timezone结构类型的全局变量,表示系统当前的时区信息。结构类型timezone定义在include//time.h头文件中,如下所示:

  基于上述结构,Linux在kernel/time.c文件中定义了全局变量sys_tz表示系统当前所处的时区信息,如下所示:

  《》是一本由[美]贝赫鲁兹·佛罗赞,的平装,本书: 数据类型 一组特定类型的数值和一组可以应用在这种类型的数值上的基本操作。常见的有如下几个: 整数 有的高级程序设计语言会提供数种范围不同的整数数据类型。其可以应用的操作是:算术运算符、关系运算符、模运算符。 实数 表示特定精度的数的范围(范围由表示的实数所占的字节数决定)。有的高级程序设计语言会提供两种大小不同的实数。其可以应用的操作与整数数据类型相同,但是精度可能下降。 字符 Unicode字符集中的所有单个字符均可作为字符数据类型中的内容。 其可以应用的操作是:比较操作(比较字符与字符在字符集中的相对位置的先后。) 布尔型 布尔表达式的产物。只有True和False两者。布尔型数据类型的变量可以为之指定一个布尔表达式。 字符串 一个字符序列,通常由单引号或双引号圈起来。 一般常见操作为:连接、比较操作。因语言不同而不同。 声明 将变量、动作或语言中的其他实体与标识符关联起来的语句。作用是可以通过标识符引用这些语句。必须进行变量声明的语言有:Visual 中的Dim、Python中的long、int、float和bool。 区分大小写 大小写不同的同一个标识符会被认为是不同的标识符。例如C++、Java、Python和Visual Basic.NET。 注释符号 用于标明注释开始(或结束)的符合 字面值 程序中使用的预先定义好的值。大多数语言要求使用单引号括起来,与双引号括起来的字符串区别。 常量 存储固定值,值无法不改变,用于替代字面值而使用。 标识符 程序中对象的名称 输入/输出结构 输入 程序从外部环境中获取一个值,并将其存储到程序内的变量。 强类型语言 输入内容前,必须声明输入内容所使用的变量的数据类型。而后在接受到输入时,按照已经确定的数据类型接受输入的字符(串),并且存储到变量中去(以位模式)。 输入变量的类型决定了如何解释输入的字符,计算机将按变量的数据类型去理解变量中存储的字符(串)。 非强类型语言 输入内容的格式决定了输入内容的数据类型。引号圈起来的存储为字符串,数字存储为数字。 输出 将变量中以位模式形式存储的内容按照变量的数据类型进行解释转换,而后作为字符流输出。 控制结构 类别 重复、选择与子程序。 使用原则 程序的每一个逻辑单元只能有一个入口、一个出口,不可以随便跳入、跳出逻辑单元。(一个控制结构=一个逻辑单元)。 嵌套逻辑 控制结构中还嵌套着控制结构。 异步处理 又名事件驱动处理——程序指令代码以外的事件控制着程序中的某一部分代码执行与否。程序中的所有代码并不都是同时执行的。 表达式 由一系列操作数和运算符简化后的一个单一数值 运算符 算术运算符 +(加)、-(减)、*(乘)、/(除)、%(取模运算)、++(递增,变量值加1)、--(递减,变量值减1) 关系运算符 <(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于) 逻辑运算符 !(非)、&&(与)、||(或) 操作数 运算符涉及的运算对象 语句 赋值语句 给变量赋值 复合语句(块) 包含数个语句的代码单元,使一组语句成为一个整体 控制语句 用于改变语句的执行顺序 选择 单路选择(2个选择)、多路选择(2个以上的选择) 重复 预先检查循环(符合条件再循环一次)、计数器控制循环(计数器未达到要求,不停止循环)、后测试循环(循环一次再检查是否符合条件) 顺序 按顺序执行。 返回值 子程序执行完成后向主程序返回1个/数个值 实现 子程序具体变成不同语言中的不同程序代码。 面向对象语言的功能性 封装 概念 已经在前面说过了,说一说它的作用:它是实施信息隐蔽的语言特性——它的结果是抽象,即使用某个类正式定义的接口的独立模块隐藏了类实现的细节。(此处类是用于提供封装的结构,决定了对象的特点) 类 已经在前面说过了,略。(实例化——创建类中的一个具体对象) 默认情况下,类中的域是私有的——如果一个类中的域没有被标记为公有,那么其他类的对象将无法访问这个域! 继承 概念 一个类可以继承另外一个类的数据和方法(即域)。前者称为派生类,后者称为超类。 特点 下级的类将会继承其父类的所有行为和数据;继承所发生的类的层次越低,对象越专门化。 多态概念 不同的类中存在相同名称与相同作用的方法。 面向过程设计与面向对象设计的区别 前者会操作数据结构与子程序,不会将实现细节隐藏;而后者会使用封装的办法向用户隐藏实现细节。 软件工程 软件生命周期 开发→使用,如果出了问题就修改/维护,然后接着用;如果软件过时、低效或者用户需求变化,软件停止修改/维护,继续进行新的开发 软件开发周期 阶段 分析 设计 实现 测试 两类模型 瀑布模型 特点 开发过程只有一个方向的流动——前一个阶段没有完成,后一个阶段无法开始 优点与缺点 下一个阶段开始前,每个阶段已经完成;但是整个开发过程有问题,所有阶段都必须进行检查。 增量模型 整个软件工程被分割为数个小的系统,每一个系统均包含了4个这样的阶段。当现有的系统工作正常后,才会在原有的基础上增加更多细节,形成下一个系统。下一个系统依然重复前面叙述的过程,直至工程目标完成。 分析阶段 生成规格说明文档——说明了软件的功能而非实现软件功能的细节 两种分类 面向过程分析 使用面向过程语言实现 面向对象分析 使用面向对象语言分析 设计阶段 概念:完成实现软件功能的细节 面向过程设计 任务 设计过程,也设计数据 特点 整个系统被分解为一组过程或者模块 面向对象设计 设计实现类的细节的方法 实现阶段 完成设计阶段设计出来的东西 语言的选择 常用纯过程语言:C、Java 软件质量 高质量软件系统的特点 可以满足用户需求、符合组织操作标准、可以高效运行 质量因素 可操作性、可维护性、可迁移性 测试阶段 目标 发现错误 无论如何测试,只能保证程序对测试用例运行正确,不能保证对所有的数据运行正确。 分类 白盒测试(玻璃盒测试) 特点 知道软件内部结构 目标 检查是否将软件的所有部分都设计出来 标准 每个模块中的所有独立路径至少被测试过一次;所有判断结构的分支、所有循环与数据结构均被测试 分类 基本路径测试 使用一组测试用例,将软件中的每条语句至少测试一次 控制结构测试 包含基本路径测试。 条件测试 针对模块中的条件表达式 数据流测试 基于通过模块中的数据流 循环测试 使用测试用例检查循环的正确性 黑盒测试(暗箱测试) 概念:不知道程序内部结构与运行原理的情况下测试程序 分类 穷尽测试 用输入域中的所有可能的值去测试软件(不可能实现) 随机测试 随机选择输入域的值的子集(随机生成)进行测试 边界值测试 选择边界值进行测试 文档 特点 在软件生命周期中持续 分类 用户文档(用户手册) 软件使用说明书,可以提升软件的易用性与友好性,有助于软件销售 系统文档 记录软件开发周期的具体过程与细节,便于其他人(非原始开发人员)维护软件 技术文档 描述软件安装与维护、更新的方式 计算机网络和因特网 基本概念 网络 为了通信或共享资源(文件/打印机),可通信设备(主机/端系统或连接设备)用媒介(有线/无线)相互连接构成的设备组。 节点(主机) 网络中的所有设备(计算机、打印机、网络信息传输设备) 连接设备 路由器:连接网络——网络 包在网络之间的传输时,接收并发送包。特点:每一个路由器只知道包传输的下一个目的地的最佳路径,而包将沿着这条路径传输。 交换机:连接不同设备 调制解调器:改变数据形式 补充 中继器:在传输线路过长时,防止数字信号过分减弱的装置。 4种网络 局域网(LAN) 私有的,有一定范围限制;仅一定数量的主机或其他设备(通过交换机连接) 拓扑 管理LAN的各种配置。 环形拓扑 所有的节点→闭合的环,消息在环内传播。 星形拓扑 一个节点为中心,其他节点连接中心节点。中心一完蛋,网络必完蛋。 总线拓扑 所有的节点均连接在一根通信线上,消息在线上可以双向传播,各节点检查消息目标是否为本节点。常用的技术是以太网。 广域网(WAN) 连接两个或更多的局域网,范围更大;连接交换设备(为通信公司创建并出租) 最大的广域网:Internet(因特网) 网关 局域网之间的节点。 网际互联 网络之间的通信。 城域网(MAN) 通过无线/光纤连接的、适用于特定城市、学校或组织的大型局域网(LAN) 互联网 多个网络之间连接;最大互联网:Internet Internet 结构 《计算机科学导论》95:图6-4 Internet连接 Internet是由多个较小规模的广域网连接而成的,是全世界所拥有的。 Internet骨干网 承载Internet通信的一组高速网络。特点:数据传输速率高、冗余大。 Internet服务提供商(ISP) 给其他公司或个人提供Internet访问,其之间连接到更大的ISP或者Internet骨干网。 接入Internet网络的方法: 电话调制解调器 由ISP付费提供,计算机数据→二进制模拟音频信号,在电话线中传输。达到目的地后逆向操作。 经过路径 Internet骨干网——ISP——计算机。 速率较慢(max:64KB/s) 数字用户线路(DSL) 在电话调制解调器的基础上,将计算机数据转换为了数字数据而非模拟信号。 同样使用电话线,但与电话信号频率不同。电话公司就是ISP。 经过路径 相同 速率:更快 线缆调制解调器 使用的线缆换成了有限电视信号的线缆。 注意:后两种又被称为宽带,其具体速率均由位置与传输介质所决定。 下载 从Internet上将数据传到家用计算机上 上载 与下载相反 二者的速度大小:前者大于后者。原因是用户主要下载数据居多(浏览、接收数据……) 协议分层 本质 各部分分工合作,负责网络通信不同的任务 协议 说明格式化和处理传输的数据的方法,即计算机之间交流时,都必须遵守的通信规则。 定义 主机中自上而下相互关联的数个模块 特点 ①各模块完成不同层次的任务 ②模块化:相互独立工作,共同完成网络通信任务 ③无论是该协议分层的哪一层,它们的物理基础均为物理层;物理层上面是逻辑连接,物理层是实际连接 优势 ①各层对高低均有对应层次服务,只需执行任务 ②简化了网络通信进程 劣势 单一协议层增加安全与维护风险 原则 ①双向通信,各协议层工作相反对应。 ②同种层处理对象相同 常用协议分层:TCP(传输控制协议)/IP(网际协议)族 又名开放系统互联(OSI)模型 本质 协议与底层网络通信工具程序的组合。 TCP/IP结构 应用层-传输层-网络层-数据链路层-物理层 工作原理 《计算机科学导论》99页—图6-8 地址:源地址与目标地址 A应用层:名称 B传输层:端口号 C网络层:逻辑地址 D数据链路层:链路层地址 数据包:即数据 A应用层:消息 B传输层:分段/用户数据报 C网络层:数据报 D数据链路层:帧 E物理层:位 作用 网络体系结构的通用模型。将不同类型的网络连接到一起,使得网络相互之间可以通信。网络技术开发的核心与基础 TCP/IP协议分层结构 应用层 作用:提供服务;本层的协议可移除、添加或变更以满足用户。 交互方式 客户机—服务器模式 特点 客户端自由运行,服务器只能一直开启 结构 客户向服务器发送请求,服务器响应客户请求 劣势 服务器易过载;使用成本必须以足够的收入来补偿 典例 万维网(WWW)与超文本传输协议(HTTP) WWW文档的交换协议 HTTP中,客户机使用临时端口号,服务器用80号端口 结构 ①世界上有无数的Web(万维网)服务器(站点),每一个服务器都存储着一定的具有(文档)名称与可删减、改变、增加文档。文档的名字是网页(可多种数据形式)地址 ②这些服务器相互连接,构成Web(万维网)—一

如果觉得对你有帮助,欢迎点赞关注!

408相关重难点和算法题等内容欢迎关注专栏:

1 408考试注意事项


- 不需要信封、固体胶,不能带计算器
- 草稿纸由监考老师发放,不够用可以举手示意(但可能会回收旧草稿纸,不同考场不一样,有的考场不回收)
- 408整个过程跟数学、英语考试模式一样,属于全国统一命题,考场上专心作答
- 可能同一考场上既有408考生也有自主命题考生,不要被自主命题考生影响

- 我们经历过中考、高考,考研也一样,考场上一定不要慌,越慌越乱
- 不要胡思乱想(人在408,心在数学)
- 无论之前考的好坏,请做好当下
(放松小技巧:闭眼、深呼吸、少量饮水)

- 先易后难(计组大题不会可以先跳过)
- 推荐作答顺序:1-40选择题、41-42数据结构、47计算机网络、43-46计组OS
选择题(60分钟--80分钟)不要做太快,保证正确率
大题(90分钟)能答多少答多少
最后15分钟一定要检查考生信息、条形码、选择题要涂黑

- 选择题可以采用排除法、反推法
- 大题还是那句话会多少都写上去

考场上的我们是自信的,是张狂的,不畏选项、不畏题目。没什么大不了的,干就行了!


答题技巧部分将通过2020年408真题来展开

特此强调:以下真题例举的只是做题方法,并不是正规解析,解析请看王道真题解析即可!

1. 将一个 10X10 对称矩阵 M 的上三角部分的元素mij(1≤i≤j≤10)按列优先存 入 C 语言的一位数组 N 中,元素m7,2在 N 中的下标是:
解答:看清题目按列优先存储
3、对与任意一棵高度为 5 且有 10 个节点的二叉树,若采用顺序存储结构保存, 每个结点占 1 个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存 储单元数量至少是: A、31 B、16 C、15 D、10
解答:这题看到至少很有可能选16,但是一定要注意‘任意一颗’,故选31
4、已知森林 F 及与之对应的二叉树 T,若 F 的先根遍历序列是 a,b,c,d,e,f,中根遍历序列是 b,a,d,f,e,c 则 T 的后遍历序列是:
解答:经典的反推正题,根据自己的习惯进行推导。比如ABC选项都是b开头,F先根遍历开头是a,F中根遍历开头是b,定位出a、b位置,只能选BC,比较BC区别再进一步推到定位!
5、下列给定的关键字输入序列中,不能生成如下二叉排序树的是:
6、修改递归方式实现的图的深度优先搜索(DFS)算法,将输出(访问)定点信 息的语句移到退出递归前(即执行输出语句后立刻退出递归)。采用修改后的算 法遍历有向无环图 G,若输出结果中包含 G 中的全部顶点,则输出的顶点序列是 G 的:
A、拓扑有序序列 B、逆拓扑有序序列 C、广度优先搜索序列 D、深度优先搜索序列
解答:这题需要有DFS递归实现的基础,这里将DFS输出放在DFS递归语句之后,很显然跟逆序相关,大致就可以选出B
7、已知无向图 G 如下所示,使用克鲁斯卡尔(Kruskal)算法求图 G 的最小生成 树,加入到最小生成树中的边依次是:
8、若使 ADE 网估算工程进度则下列叙述中正确的是:
A、关键路径是从原点到汇点边数最多的一条路径;
B、关键路径是从原点到汇点路径长度最长的路径;
C、增加任一关键活动的时间不会延长工程的工期;
D、缩短任一关键活动的时间将会缩短工程的工期。
解答:这题看题目ADE可能不太懂,但是一看选项就是跟关键路径关键活动有关,直接定位出知识点在图的应用。(送分题)
9、下列关于大根堆(至少含 2 个元素)的叙述中正确的是:
I.可以将堆看成一颗完全二叉树;
II、可采用顺序存储方式保存堆;
III、可以将堆看成一棵二叉排序树;
IV、堆中的次大值一定在根的下一层。
解答:考察大根堆,送分题。答案I、II、IV
10、依次将关键字 5,6,9,13,8,2,12,15 插入初始为空的 4 阶 B 树后,根 节点中包含的关键字是:
解答:考察B树(问问自己B+树知道?),注意B树插入可能造成B树高度上升,B树删除可能造成B树高度下降。基本B树插入操作,模拟过程易选B
11、对大部分元素已有序的数组进行排序时,直接插入排序比简单选择排序效率 更高,其原因是: I、直接插入排序过程中元素之间的比较次数更少; II、直接插入排序过程 中所需要的辅助空间更少; III、直接插入排序过程中元素的移动次数更少。
解答:仔细看题,排除法排除II,但是I一定正确,及时III拿不准直接选A
12、下列给出的部件中其位数(宽度)一定与机器字长相同的是:I、ALU; II、指令寄存器; III、通用寄存器; IV、浮点寄存器
解答:清楚机器字长概念(跟一次运算位数),跟运算相关的有ALU可能是对的,但指令寄存器一定不对,直接排除ACD,选B
15、下列关于 TLB 和 Cache 的叙述中错误的是:
A、命中率与程序局部性有关;
B、缺失后都需要去访问主存;
C、缺失处理都可以由硬件实现;
D、都由 DRAM 存储器组成。
解答:D一定错误,是SDRAM
16、某计算机采用 16 位定长指令字格式,操作码位数和寻址方式位数固定,指 令系统有 48 条指令,支持直接、间接、立即、相对 4 种寻址方式,单地址指令 中直接寻址方式可寻址范围是: A、0~225; B、0~1023; C、-128~127; D、-512~511;
解答:首先知道指令格式 |op|寻址方式|地址| ,看到这题先把op和寻址方式定位出来是6bit、2bit,则地址占16-6-2=8bit,题目要求地址范围只能跟地址有关就是0~2^8-1
17、下列给出的处理器类型中理想情况下 CPI 为 1 的是: I、单周期 CPU;II、多周期 CPU ;III、基本流水线 CPU; IV 超标量流水线 CPU
解答:CPI概念要知道(每条指令要多少时钟周期),CPI为1就是一条指令需要一个时钟周期就比较好选了。答案B
18、下列关于“自陷”(Trap,也称陷阱)的叙述中错误的是:
A、自陷是通过陷阱指令预先设定的一类外部中断事件;
B、自陷可用于实现程序调试时的断点设置和单步跟踪;
C、自陷发生后 CPU 将转去执行操作系统内核相应程序;
D、自陷处理完成后返回到陷阱指令的下一条指令执行。
解答:trap是主动去请求系统调用,属于内中断部分。直接选A
19、QPI 总线是一种点对点全工双周同步串行总线,总线上的设备可同时接收和 发送信息,每个方向可同时传输 20 位信息(16 位数据+4 位校验位),每个 QPI 数据包有 80 位信息,分 2 个时钟周期传送,每个时钟周期传递 2 次,因此 QPI 总线带宽为每秒传送次数*2B*2。若 QPI 时钟频率为 2.4GHz,则总线带宽为:
解答:看到QPI不要慌,题目先快读一遍再慢慢读分析,它要求总线带宽,但题目都把公式给你了,你只需要带入求职就可以了。简单题,仔细算答案C
20、下列事件中属于外部中断事件的是:
I、访存时缺页; II、定时器延时(不 确定); III、网络数据包到达
解答:外中断,I不对,II是属于时钟中断相关待选项,III不确定感觉正确(网络数据包在不同机器间传输)。没办法根据实际选项,选出概率最大的。
21、外部中断包括不可屏蔽中断(NMI)和可屏蔽中断,下列关于外部中断的叙 述中错误的是:
A、CPU 处于关中断状态时也能响应 NMI 请求;
B、一旦可屏蔽中断请求信号有效,CPU 将立即响应;
C、不可屏蔽中断的优先级比可屏蔽中断的优先级高;
D、可通过中断屏蔽字改变可屏蔽中断的处理优先级。
解答:NIMI王道书里面有这个知识点,直接选B(忘记知识点怎么办?根据名字推到不可屏蔽中断意思就不能被别人中断的中断,可屏蔽中断意思就是可以被别人中断的中断)
22、若设备采用周期挪用 DMA 方式进行输入输出,每次 DMA 传送的数据块大小为 512 字节,相应的 I/O 接口中有一个 32 位数数据缓冲寄存器,对于数据输入过 程,下列叙述中错误的是:
A、每准备好 32 位数据,DMA 控制器就发出一次总线请求;
B、相对于 CPU,DMA 控制器的总线使用权的优先级更高;
C、在整个数据块的传送过过程中,CPU 不可以访问主存储器;
D、数据块传送结束时,会产生“DMA 传送结束”的中断请求。
解答:首先要知道周期挪用概念,题目中说32位数据缓冲寄存器A就可能正确,C不符合周期挪用是错的。概率来讲更倾向于C
23、若多个进程共享同一个文件 F,则下列叙述中正确的是:
A、一个进程只能用“读”方式打开文件 F;
B、在系统打开文件表中仅有一个表项包含 F 的属性;
C、各进程的用户打开文件表中关于 F 的表项内容相同;
D、进程关闭 F 时系统删除 F 在系统打开文件表中的表项。
解答:打开文件表没见过,自行理解一下(应该就是记录文件打开相关的信息),AC错,D可以类比文件控制块,表项只是会为空什么信息也不记录,直接删除表项感觉不太靠谱。排除法选B。(陌生知识点只能根据已有知识排除)
24、下列选项中支持文件长度可变,随机访问的磁盘存储空间分配方式是:
A、索引分配; B、链接分配; C、连续分配; D、动态分区分配。
解答:BC错,D是内存管理内容不要混淆,选A
25、下列与中断相关的操作中,由操作系统完成的是: I、保存被中断程序的中断点; II、提供中断服务; III、初始化中断向量 表; IV、保存中断屏蔽字;
解答:这题没办法,感觉都对,随便选!直接蒙。答案是D
26、下列与进程调度有关的因素中在设计多级反馈队列调度算法时需要考虑的是: I 就绪队列的数量; II 就绪队列的优先级; III 各就绪队列的调度算法; IV 进程在就绪队列间的迁移条件;
解答:反馈队列,王道书讲的有。送分题直接选D
解答:银行家算法,不用说了吧。选B
28、下列因素影响请求分页系统有效(平均)访存时间的是: I、缺页率; II、 磁盘读写时间; III、内存访问时间; IV 执行缺页处理程序的 CPU 时间;
解答:虚拟存储器,不说了吧,选D
29、下列关于父进程与子进程的叙述中错误的是:
A、父进程与子进程可以并发执行;
B、父进程与子进程共享虚拟地址空间;
C、父进程与子进程有不同的进程控制块;
D、父进程与子进程不能同时使用同一临界资源。
解答:不要混淆进程与线程和这里的父进程与子进程概念,只要是进程就有自己空间,他们只是资源共享。易选B
30、对于具备设备独立性的系统下列叙述中错误的是:
A、可以使用文件名访问物理设备;
B、用户程序使用逻辑设备与物理设备之间的映射关系;
D、更换物理设备后必须修改访问该设备的应用程序。
解答:易选D,如果对解耦概念比较熟悉就很好理解,不能说换设备就要换该设备的应用程序,应用程序是顶层,中间应该有设配驱动程序来解耦。
31、某文件系统的目录由文件名和索引节点号构成。若每个目录项长度为 64 字 节,其中 4 个字节存放索引节点号,60 个字节存放文件名。文件名由小写英文 字母构成,则该文件系统能创建的文件数量的上限为:
解答:文件数量跟索引结点数有关,直接2^32
32、下列准则中实现临界区互斥机制必须遵循的是: I、两个进程不能同时进入临界区; II、允许进城访问空闲的临界资源; III、进程等待进入临界区的时间是有限的; IV、不能进入临界区的执行态进程 立即放弃 CPU。
解答:互斥四大条件(空闲让进、忙则等待、有限等待、让权等待),感觉都是对的。非要排除一个话只能排除IV(立即放弃)
33、下图描述的协议要素是 I、语法; II、语义; III、时序
解答:协议3要素(语法、语义、同步(时序)),语法和语义需要进行标注解释,但是图里面就3条箭头线,明显突出同步(时序)。选C
34、下列关于虚电路网络的叙述中错误的是:
A、可以确保数据分组传输顺序;
B、需要为每条虚电路预分配带宽;
C、建立虚电路时需要进行路由选择;
D、依据虚电路号(VCID)进行数据分组 转发。
解答:虚电路概念。排除法ACD正确,选B
35、下图所示的网络冲突域和广播域的个数分别是:
解答:送分题。广播域一定为2,冲突域一眼下去最少4个,直接选C
36、假设主机采用停-等协议向主机乙发送数据帧,数据帧长与确认帧长均为 1000B。数据传输速率是 10kbps,单项传播延时是 200ms。则甲的最大信道利用率:
解答:真题常考知识点,最大信道利用率。你应该会!答案D
37、某 IEEE 802.11 无线局域网中主机 H 与 AP 之间发送或接收 CSMA/CA 帧的过 程如下图所示,在 H 或 AP 发送帧前所等待的帧间间隔时间(IFS)中最长的是:
解答:知识盲区,没办法直接蒙。个人更倾向于AD选,答案A
38、若主机甲与主机乙已建立一条 TCP 连接,最大段长(MSS)为 1KB,往返时 间(RTT)为 2ms,则在不出现拥塞的前提下,拥塞窗口从 8kB 增长到 20KB 所需 的最长时间是:
解答:TCP拥塞避免知识点。通过题目分析,从8kB--20KB都是拥塞避免算法(线性增长1KB),直接选C
39、若主机甲与主机乙建立 TCP 连接时发送的 SYN 段中的序号为 1000,在断开 连接时,甲发送给乙的 FIN 段中的序号为 5001,则在无任何重传的情况下,甲 向乙已经发送的应用层数据的字节数为:
解答:个人理解(甲向乙发送SYN序号为1000,是3次握手的第1次,需要消耗序号---甲实际发送数据的起始序号为1001;甲向乙发送FIN序号为5001,是4次握手哦的第一次,说明最后一个数据序号为5000.综上:1001——5000,共4000个数据)答案C
40、假设下图所示网络中的本地域名服务器只提供递归查询服务,其他域名的服 务器均只提供迭代查询服务;局域网内主机访问 Internet 上各服务器的往返时 间 ( RTT ) 均 为 10ms , 忽 略 其 他 各 种 时 延 , 若 主 机 H 通 过 超 链 接,请求浏览纯文本 Web 页 index.html,则从点 击超链接开始到浏览器接收到 index.html 页面为止,所需最短、最长时间分别 是:
41、定义三元组(a,b,c)(a,b,c 均为正数)的距离 D=|a-b|+|b-c|+|c-a|.给定 3 个非空整数集合 S1,S2,S3,按升序分别存储在 3 个数组中。请设计一个尽可能 高效的算法,计算并输出所有可能的三元组(a,b,c)(a∈S1,b∈S2,c∈S3)中 的最小距离。例如 S1={-1,0,9}, S2={-25,-10,10,11},S3={2,9,17, 30,41}。则最小距离为 2,相应的三元组为(9,10,9),要求:
(1)给出算法的基本设计思想;
(2)根据设计思想,采用 C 或 C++语言描述算法,关键之处给出注释;
(3)说明你所设计算法的时间复杂度和空间复杂度。
解答:2分钟没有更好的解法,直接暴力求解O(n^3)。暴力求解都能掌握吧!直接三层for循环(不会真不会吧!那要加把劲!)
注意:代码注释,思想和复杂度分析简单说一下即可(这不是政治,写的多不应对)!
一定要打一下草稿,不要把代码写错了,不然很麻烦(没地方给你写了~)
42、若任一个字符的编码都不是其他字符编码的前缀,则称这种编码具有前缀特 性。现有某字符集(字符个数≥2)的不等长编码,每个字符的编码均为二进制 的 0,1 序列,最长为 L 位,且具有前缀特性。请回答下列问题:
(1)哪种数据结构适宜保存上述具有前缀特性的不等长编码?
(2)基于你所设计的数据结构,简述从 0/1 串到字符串的译码过程;
(3)简述判定某字符集的不等长编码是否具有前缀特性的过程。
解答:看完题目就可以动笔了!直接哈夫曼树编码(不会就是哈夫曼没好好学哟!)
47、某校园网有两个局域网,通过路由器 R1、R2 和 R3 互联后接入 Internet, S1 和 S2 为以太网交换机,局域网采用静态 IP 地址配置,路由器部分接口以及 各主机的 IP 地址如图所示:
(1)为使 H2 和 H3 能够访问 Web 服务器(使用默认端口号),需要进行什么配置? (2)若 H2 主动访问 Web 服务器时,将 HTTP 请求报文封装到 IP 数据报 P 中发送, 则 H2 发送 P 的源 IP 地址和目的 IP 地址分别是?经过 R3 转发后,P 的源 IP 地 址和目的 IP 地址分别是?经过 R2 转发后,P 的源 IP 地址和目的 IP 解答:非常简单的HTTP、NAT、IP题目(你应该会)
注意:这道题考点主要还是NAT路由,IP经过NAT路由需要将内网IP映射外网IP或将外网IP映射为内网IP
43、有实现 x*y 的两个 C 语言函数如下:
假定某计算机 M 中 ALU 只能进行加减运算和逻辑运算。请回答:
(1)若 M 的指令系统中没有乘法指令,但有加法、减法和位移等指令,则在 M 上也能实现上述两个函数中的乘法运算,为什么?
(2)若 M 的指令系统中有乘法指令,则基于 ALU、位移器、寄存器以及相应控 制逻辑实现乘法指令时,控制逻辑的作用是什么?
(3)针对以下 3 种情况:(a)没有乘法指令;(b)有使用 ALU 和位移器实现的 乘法指令;(c)有使用阵列乘法器实现的乘法指令,函数 umul()在哪种情况下 执行时间最长?哪种情况下执行的时间最短?说明理由
(4)n 位整数乘法指令可保存 2n 位乘积,当仅取低 n 位作为乘积时,其结果可能会发生溢出。当 n=32, x=2 31-1,y=2 时,带符号整数乘法指令和无符号整数 乘法指令得到的 x*y 的 2n 位乘积分别是什么(用十六进制表示)?此时函数 umul()和 imul()的返回结果是否溢出?对于无符号整数乘法运算,当仅取乘积 的低 n 位作为乘法结果时,如何用 2n 解答:仔细读题,不看到乘法就不敢动笔了,这题本质就是考察乘法运算最基本概念。主要还是加法、移位、溢出。
44、假定主存地址为 32 位,按字节编址,指令 Cache 和数据 Cache 与主存之间 均采用 8 路组相联映射方式,直写(Write Through)写策略和 LRU 替换算法, 主存块大小为 64B,数据区容量各为 32KB。开始时 Cache 均为空,请回答下列问 题:
(1)Cache 每一行中标记(Tag)、LRU 位各占几位?是否有修改位?
(3)若 CPU 最先开始的访问操作是读取主存单元 H中的指令,简要说明从 Cache 中访问该指令的过程,包括 Cache 缺失处理过程。
解答:分析题目,就是考察cache相关的知识。cache是一个非常重要的知识点,你一定是掌握了。
(1)(2)问做过相关题目就比较容易,
(3)问就是个论述题,分情况说明:
45、现有 5 个操作 A、B、C、D 和 E,操作 C 必须在 A 和 B 完成后执行,操作 E 必须在 C 和 D 完成后执行,请使用信号量的 wait(), signal(),操作(P、V 操作) 描述上述操作之间的同步关系,并说明所用信号量及其初值。
解答:简单无比的同步PV操作!
注意:虽然简单,适当打一下草稿,再写!
46、某 32 位系统采用基于二级页表的请求分页存储管理方式,按字节编址,页 目录项和页表项长度均为 4 字节,虚拟地址结构如下:
某 C 程序中数组 a[]的起始虚拟地址为 H(H?可 能记错),数组元素占 4 字节,该程序运行时,其进程的页目录起始物理地址为 H,请回答下列问题:
(1)数组元素 a[1][2]的虚拟地址是什么?对应的页目录号和页号分别是什么? 对应的页目录项的物理地址是什么?若该目录项中存放的页框号为 00301H,则 a[1][2]所在页对应的页表项的物理地址是什么?
(2)数组 a 在虚拟地址空间中所占区域是否必须连续?在物理地址空间中所占 区域是否必须连续?
(3)已知数组 a 按行优先方式存放,若对数组 a 分别按行遍历和按列遍历,则 哪一种遍历方式的局部性更好?
解答:考察就是虚拟存储器相关知识点,(1)问前两小问比较容易,这个应该没问题,(2)(3)问就是送分题。
再来说(1)问的后2小问,一定要注意题目说的是二级页表,题目中
- 页目录项:指一级页号页表项
- 页表项:指二级页号页表项
(以上两个概念说的不一定准确,你能知道我想说的意思就可以!如果不懂还是去看王道解析)
明白了页目录项和页表项概念再去理解题目解答,会好很多。

  • 2020年408真题难度真的不大,做起来一定要胆大(大胆选答案)细心(细心看题)
  • 选择题一定要想法设法定出答案,而不是在考场上搞懂为什么原理是什么?定出答案就马上过
  • 考场上时间有限,选择题也不要做太快了,控制在60分钟-80分钟最佳,保证正确率
  • 大题尽自己所能,能答多少是多少
  • 自信,无论结果如何首先请相信自己
  • 特此强调:以上真题例举的只是做题方法,并不是正规解析,解析请看王道真题解析即可!

最后,愿看到这的小伙伴都能梦想成真,一战成

以上内容都是个人在业余时间整理完成,难免有些许错误,如有发现请及时私信或评论告知,以便及时订正!xiexie~

我要回帖

更多关于 c语言中无穷大怎么定义 的文章

 

随机推荐