考研复试问题之杂谈

本文涵盖考研复试中计算机科学的重要知识点,包括冯·诺依曼思想、浮点数加法、RAM与ROM区别、DRAM刷新机制、cache原理、I/O接口与方式、数据挖掘、机器学习与深度学习概念、视频点播方案、面向对象与面向过程对比、大数据特点及软件开发原则,旨在帮助考生全面复习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

考研复试问题之杂谈

1.冯·诺依曼思想的基本要点

  • 采用二进制的形式表示数据和指令
  • 由输入设备,输出设备,运算器、存储器和控制器五大部件组成
  • 采用存储程序的方式,存储程序方式是诺依曼思想的核心
  • 指令和数据以同等地位存于存储器, 可按地址寻访,程序和数据统一存储
  • 指令由操作码和地址码组成
  • 以运算器为中心

2.浮点数加法的操作步骤

  • 求阶差并对阶
  • 尾数求和
  • 规格化处理
  • 舍入处理
  • 判断溢出

3.RAM和ROM的区别

随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。静态RAM适合做cache,而动态RAM适合做存储器。

ROM 是 read only memory的简称,表示只读存储器。只读存储器(ROM)是一种在正常工作时其存储的数据固定不变,其中的数据只能读出,不能写入,即使断电也能够保留数据,要想在只读存储器中存入或改变数据,必须具备特定的条件。

RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。

4.DRAM的动态刷新

刷新周期,从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止的时间间隔。动态存储器靠电容存储信息,因此必须刷新。

刷新方式分为三种:

集中式刷新:在整个刷新间隔内,前一段时间重复进行读/写周期或维持周期,等到需要进行刷新操作时,便暂停读/
写或维持周期,而逐行刷新整个存储器,它适用于高速存储器。

分散式刷新:把一个存储系统周期 tc 分为两半,周期前半段时间 tm 用来读/写操作或维持信息,周期后半段时间 tr
作为刷新操作时间。这样,每经过 128 个系统周期时间,整个存储器便全部刷新一遍。

异步式刷新方式:是前两种方式的结合,在 2ms 内分散的把 128 行刷新一遍。 2ms/128=15. 5µs,每隔 15.5µs 刷新一行。

5.cache的基本原理

CPU 与 cache 之间的数据交换是以字为单位。而 cache 与主存之间的数据交换是以块为单位。一个块由若干定长字组成的。当 CPU 读取主存中一个字时,便发出此字的地址到 cache 和主存。此时 cache 控制逻辑依据地址判断此字当前是否在 cache 中:若是,此字立即传送给 CPU;若非,则用主存读周期把此字从主存读出送到 CPU,与此同时,把含有这个字的整个数据块从主存读出送到 cache 中。

6.主存与 cache 的地址映射

全相联映射方式:主存的一个块直接拷贝到 cache 中的任意一行上,非常灵活(多对多方式)优点是:冲突概率小,Cache 的利用高,缺点电路难于设计。

直接映射方式:这也是一种多对一的映射关系,但一个主存块只能拷贝到 cache 的一个特定行位置上去。优点:是硬件简单,成本低。缺点:每个主存块只有一个固定的行位置可存放,容易产生冲突。因此适合大容量 cache 采用。

组相联映射方式:这种方式是前两种方式的折衷方案。它将 m 行 cache 分成 u 组,每组 v 行,主存块存放到哪个组是固定的(直接映射方式),至于存到该组哪 一行是灵活的(全相联映射方式)。组相联映射方式中的每组行数 v 一般取值较小,这种规模的 v 路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,减少了冲突

7.I/O接口的功能和基本结构

  1. 实现设备的选择
  2. 实现数据缓冲达到速度匹配
  3. 实现数据串并格式转换
  4. 实现电平转换
  5. 传送控制命令
  6. 反映设备的状态(“忙”、“就绪”、“中断请求”)

8.I/O 的方式

  • 查询方式
  • 程序中断
  • DMA方式

9.数据挖掘、机器学习、深度学习

数据挖掘(Data Mining)是从海量数据中“挖掘”隐藏信息;数据挖掘采用的一个重要方法,是机器学习(Machine
Learning),即通过程序积累经验,但机器学习是另一门学科,并不从属于数据挖掘,二者相辅相成;而深度学习(Deep
Learning)是机器学习的一个子集,就是用复杂、庞大的神经网络进行机器学习。

数据挖掘,顾名思义就是从海量数据中“挖掘”隐藏信息,按照教科书的说法,这里的数据是“大量的、不完全的、有噪声的、模糊的、随机的实际应用数据”,信息指的是“隐含的、规律性的、人们事先未知的、但又是潜在有用的并且最终可理解的信息和知识”。在商业环境中,企业希望让存放在数据库中的数据能“说话”,支持决策。所以,数据挖掘更偏向应用。为了做好数据挖掘,企业又要建立数据仓库。

机器学习,就是利用计算机、概率论、统计学等知识,通过给 计算机程序输入数据,让计算机学会新知识,是实现人工智能的途径,但这种学习不会让机器产生意识。机器学习的过程,就是通过训练数据寻找目标函数。数据质量会影响机器学习精度,所以数据预处理非常重要。

深度学习是机器学习的一种,现在深度学习比较火爆。在传统机器学习中,手工设计特征对学习效果很重要,但是特征工程非常繁琐。而深度学习能够从大数据中自动学习特征,这也是深度学习在大数据时代受欢迎的一大原因。

传统数据挖掘主要针对相对少量、高质量的样本数据,机器学习更多的是针对海量、混杂的大数据。但机器学习并不一定要全局数 据,只是在大数据时代,堆数据、堆机器的方法在工业界成本低而见效快,被广泛采用。学术界当前有很多研究在结合小数据学习与大数据学习,比如香港科技大学杨强教授的迁移学习。

10.视频点播方案

1、 播放器通过 http协议从http服务器上下载视频文件进行播放。问题:必须等到视频下载完才可以播放,不支持快进到某个时间点进行播放

2、 播放器通过rtmp协议连接媒体服务器以实时流方式播放视频,使用rtmp协议需要架设媒体服务器,造价高,对于直播多采用此方案。

3、 播放器使用HLS协议连接http服务器(Nginx、Apache等)实现近实时流方式播放视频。HLS协议规定:基于Http协议,视频封装格式为ts,视频的编码格式为H264,音频编码格式为MP3、AAC或者AC-3。

11.抽象类与接口的区别

  • 抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
  • 抽象类要被子类继承,接口要被类实现。
  • 接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。抽象类里可以没有抽象方法。
  • 接口可以被类多实现(被其他接口多继承),抽象类只能被单继承。
  • 接口中没有 this 指针,没有构造函数,不能拥有实例字段(实例变量)或实例方法。
  • 抽象类不能在Java 8 的 lambda 表达式中使用

12.面向对象和面向过程的含义

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

13.大数据的特点

Volume(大量):数据体量巨大(volumes)

Variety(多样):据类别大和类型多样(variety)

Velocity(高速):处理速度快(Velocity)

Value(价值):价值真实性(Value)高和密度低

14.软件开发过程中的遵循的原则

  • 开闭原则(OCP):软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等等,应该在不修改现有代码的基础上,引入新功能。开闭原则中“开”,是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的;开闭原则中“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。
  • 里氏代换原则(LSP):任何基类可以出现的地方,子类一定可以出现。 里氏代换原则是对“开-闭”原则的补充。(多态)
  • 依赖倒转原则(DIP):就是要依赖于抽象,不要依赖于具体。简单的说就是要求面向抽象进行编程,不要面向具体进行编程,这样就降低了客户与实现模块间的耦合。面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变动时上层也要跟着变动,这就会导致模块的复用性降低而且大大提高了开发的成本。面向对象的开发很好的解决了这个问题,一般情况下抽象的变化概率很小,让用户程序依赖于抽象,实现的细节也依赖于抽象。即使实现细节不断变动,只要抽象不变,客户程序就不需要变化。这大大降低了客户程序与实现细节的耦合度。(面向抽象编程、面向接口编程),父控制子,子不要控制父。依赖倒转也可以叫做控制反转。
  • 接口隔离原则(ISP):使用多个专门的接口比使用单一的总接口要好
  • 合成/聚合复用原则:是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。它的设计原则是;要尽量使用合成/聚合,尽量不要使用继承。
  • 迪米特法则(松耦合):对于OOD来说一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值