计算机导论期末复习资料(划重点)

教材为计算机导论清华大学李宁版

第一章 计算机如何工作

  1. 电子计算机的工作原理
    • 存储程序和程序控制,预先存储程序和数据于计算机存储器,运行时自动、连续取出指令执行,实现计算和处理任务。
  2. 什么是指令和指令集
    • 指令由操作码和操作数组成。操作码规定操作类型,如加、减、乘、除等;操作数是操作对象,可能是数据本身或数据地址
  3. 高级语言和机器语言的区别
    • 高级语言接近人类自然语言和数学表达式,有高可读性和可编写性,便于程序员设计程序。高级语言编写的程序需通过编译器或解释器转为机器语言才能在计算机上执行。如 C、Java、Python 等是常见高级语言。
    • 机器语言是计算机能直接识别和执行的二进制指令代码,与计算机硬件紧密相关,不同计算机可能格式不同。机器语言编写程序难度大、可读性差,但执行效率高
  4. 源代码和目标代码的区别
    • 源代码是程序员用高级语言或汇编语言编写的程序代码,是人类可读的文本形式,包含程序逻辑结构、算法和数据处理流程等信息。
    • 目标代码是源代码经过编译或汇编后生成的机器语言代码,是计算机能够直接执行的二进制形式。目标代码不能被人类直接阅读和理解,主要用于在计算机上高效执行程序。
  5. 研讨习题 6、7、8
    6. 假设执行一条指令需要8个时钟周期,主频为4GHz的CPU在10s内能执行多少条指令?
    • 10秒内总时钟周期数为:
      4×109 cycles/second×10 seconds=4×1010 cycles4 \times 10^9 \text{ cycles/second} \times 10 \text{ seconds} = 4 \times 10^{10} \text{ cycles}4×109 cycles/second×10 seconds=4×1010 cycles
    • 用总时钟周期数除以每条指令需要的时钟周期数:
      4×1010 cycles8 cycles/instruction=5×109 instructions\frac{4 \times 10^{10} \text{ cycles}}{8 \text{ cycles/instruction}} = 5 \times 10^9 \text{ instructions}8 cycles/instruction4×1010 cycles=5×109 instructions
    1. 请说明影响CPU性能的因素。
    2. 核心数量
    3. 时钟频率
    4. 缓存大小
    5. 指令集
    6. 微架构
    7. 制程技术
    8. 内存带宽和延迟
    9. I/O性能
    10. 热设计功耗(TDP)
    11. 电源管理和节流
    12. 操作系统和软件优化
    13. 多线程和并行处理能力
    14. 计算机为什么能够成为多用途设备?
    • 可编程性
    • 通用架构
    • 存储能力
    • 输入/输出接口
    • 网络连接
    • 操作系统
    • 软件生态
    • 模块化设计
    • 性能可扩展性
    • 标准化(兼容性)
    • 自动化和控制
    • 人工智能和机器学习
    • 成本低

第二章 计算机如何计算

  1. 什么是模拟数据和数字数据
    • 模拟数据:时间和幅度连续变化,数值无限多。如声音、温度、压力经传感器转换后的电信号。特点是连续性和实时性,但存储、传输和处理易受噪声干扰,精度低。
    • 数字数据是时间和幅度离散、数值有限(用 0 和 1 表示),便于存储、传输和处理,精度高、可靠性强,可编码纠错检错,易进行逻辑运算和数学处理。计算机内部处理的是数字数据
  2. 冯诺依曼体系结构的思想是什么?
    • 计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。
    • 程序和数据以二进制形式存储在计算机的存储器中,并且可以按照地址访问
    • 计算机工作时,由控制器从存储器中取出指令,分析指令并产生控制信号,控制其他部件协同工作,完成指令规定的操作。运算器负责对数据进行算术和逻辑运算,运算结果再存回存储器或通过输出设备输出。
    • 计算机的工作过程是存储程序、顺序执行指令的过程,程序中的指令在存储器中按顺序存放,计算机依次读取并执行这些指令,从而实现自动计算和处理。
  3. 计算机的用到的存储器有哪些?
    • 随机存取存储器(RAM):可读可写,用于存储计算机正在运行的程序和数据。它的特点是存取速度快,但断电后数据会丢失,属于易失性存储器。例如计算机的内存就是 RAM,它为 CPU 提供快速的数据存储和读取空间,以支持计算机的高效运行。
  • 只读存储器(ROM):只能读取预先存储在其中的数据,不能写入新的数据。ROM 中的数据在制造时就被固化在芯片中,断电后数据不会丢失,用于存储计算机系统启动时必需的基本程序和数据,如 BIOS(基本输入输出系统)。
  • 高速缓冲存储器(Cache):位于 CPU 和主存储器之间,用于存放 CPU 近期可能会频繁访问的数据和指令。Cache 的存取速度比主存快,但容量相对较小,其目的是提高 CPU 访问数据的速度,减少 CPU 等待数据从主存传输的时间,从而提高计算机系统的整体性能。
  • 硬盘驱动器(HDD)和固态硬盘(SSD):属于外部存储器,用于长期存储大量的数据和程序。硬盘驱动器通过磁头在高速旋转的盘片上读写数据,容量较大,但读写速度相对较慢,且在使用过程中有机械磨损。固态硬盘则使用闪存芯片存储数据,具有读写速度快、无机械部件、抗震性好等优点,但价格相对较高,容量也相对较小(不过随着技术发展,SSD 容量在不断增大)。
  1. 什么是字?什么是字节?字和字节的关系?
    • 计算机数据处理时一次存取等的数据长度,长度取决于计算机类型和设计,不同系统字长可能不同,常见有 8 位、16 位、32 位、64 位等。如 32 位字长计算机,一个字由 32 位二进制数组成。字长越长,计算机一次处理数据位数越多,运算精度和速度可能越高。
    • 字节是计算机信息技术计量存储容量的单位,一个字节(Byte)等于 8 位二进制数(bit比特)。字节是计算机存储和处理数据的基本单位,通常用于表示字符(如字母、数字、标点符号等)或小整数。
    • 字与字节关系:一个字通常由若干字节组成,如16位字长计算机中一个字等于2个字节,32 位字长计算机中一个字等于 4 个字节。
  2. 什么是数据类型?
    • 数据类型是指数据的种类和取值范围以及对其所能进行的操作。在编程中,不同的数据类型用于表示不同类型的信息,以便计算机正确地存储、处理和操作数据。常见的数据类型包括:(可以从C语言出发答题)
    • 整数类型:用于表示没有小数部分的数值,如int(整数型)、long(长整型)等,不同整数类型的取值范围不同,取决于计算机系统的字长和编程语言的规定。
    • 浮点类型:用于表示带有小数部分的实数,如float(单精度浮点型)、double(双精度浮点型)等,它们可以表示比整数类型更大范围的数值,但精度有限,因为在计算机内部是以二进制形式近似表示实数的。
    • 字符类型:用于表示单个字符,如char,通常用一个字节(8 位)来存储一个字符的 ASCII 码值(在一些扩展字符集或 Unicode 编码中可能占用更多字节)。
    • 布尔类型:用于表示逻辑值,只有true(真)和false(假)两个取值,常用于条件判断和逻辑运算。
    • 数组类型:用于存储一组相同类型的数据元素,可以是整数数组、字符数组、浮点数组等。
    • 结构体类型(或记录类型):用于将不同类型的数据组合在一起,形成一个新的复合数据类型,方便处理复杂的数据结构。
    • 指针类型:用于存储内存地址,通过指针可以间接访问和操作其他数据。
  3. 数据量的单位之间的关系 (B、KB、MB、GB、TP、EB 之间的关系)?
    • 1KB(千字节) = 1024B(字节)
    • 1MB(兆字节) = 1024KB
    • 1GB(吉字节) = 1024MB
    • 1TB(太字节) = 1024GB
    • 1EB(艾字节) = 1024TB
  4. 十进制和二进制之间的转换
    • 十转二 小数整数分开算(以10.625为例)
      1. 整数部分(整数数部分为10)。
      • 除2取余,逆序排列,先得出的放右边
        1. 10/2=5 ——余数为0
        2. 5/2=2 ——余数为1
        3. 2/2=1 ——余数为0
        4. 1/2=0 ——余数为1
        5. 逆序存放:1010.(小数)
      1. 小数部分(小数部分为0.625)
      • 乘2取整,顺序排列,先得出的放左边(顺序排列就像正常写字)。
        1. 0.625*2=1.25 ——整数部分为1
        2. 0.25*2=0.5 ——整数部分为0
        3. 0.5*2=1 ——整数部分为1
        4. 顺序排列:(整数).101
    • 二转十
      • 整数部分:从右往左(逆序),幂次从0开始,依次递增,分别乘以20,21,22,以此类推。最后全部相加得到整数部分。
      • 小数部分:从左往右(顺序),幂次从-1开始,依次递减,2-1,2-2,2-3
  5. 计算机的主要性能指标?
    - 运算速度:通常用每秒执行的指令数(IPS)或每秒浮点运算次数(FLOPS)来衡量。运算速度越快,计算机在单位时间内能够完成的计算任务就越多,处理数据的能力就越强。例如,高性能计算机的运算速度可以达到数万亿次 FLOPS 甚至更高。
    • 主频:指 CPU 内核工作的时钟频率,单位是赫兹(Hz),常用单位有 GHz(吉赫兹)。主频在很大程度上决定了 CPU 的运算速度,一般来说,主频越高,CPU 在一个时钟周期内能够完成的操作次数就越多,计算机的运行速度也就越快。但主频并不是衡量计算机性能的唯一指标,还需要考虑其他因素,如 CPU 的架构、缓存大小等。
    • 字长:如前面所述,字长是计算机一次能处理的二进制数据的位数。字长越长,计算机的运算精度越高,能够表示的数据范围越大,在处理大规模数据和复杂计算任务时具有优势。例如,64 位字长的计算机在处理内存地址和数据时比 32 位字长的计算机更高效。
    • 存储容量:包括内存容量和外存容量。内存容量越大,计算机能够同时运行的程序和处理的数据就越多,系统的运行速度和响应性能就越好。外存容量(如硬盘、固态硬盘等)决定了计算机能够长期存储的数据量大小,对于存储大量文件、软件和数据至关重要。
    • 输入输出(I/O)速度:指计算机与外部设备(如键盘、鼠标、显示器、打印机、硬盘等)之间数据传输的速度。I/O 速度影响计算机与外部设备交互的效率,如果 I/O 速度过慢,可能会导致计算机在读取数据或输出结果时出现延迟,影响整体性能。例如,使用高速固态硬盘作为存储设备可以提高数据的读写速度,从而提升计算机的 I/O 性能。
  6. 研讨题 3、4
    3. 如何把十进制数转换成十六进制数?
    除16取余数,逆序存放,前面加0x。
    4. 一个32位字长的存储单元可以存放的最大数是什么?分别给出其二进制、十六进制和十进制的表示。
    • 无符号数
      • 二进制:11111111111111111111111111111111
      • 十六进制:0xFFFFFFFF
      • 十进制:232-1

第三章 如何让计算机具有智慧

  1. 什么是算法
    • 算法是解决特定问题的一系列明确、有限的步骤。它是对问题求解过程的精确描述,规定了从给定输入得到期望输出的计算过程。(解决问题的方法)
    • 一个好的算法有这些特性
      • 确定性:算法的每一步骤必须有明确的定义,不能有歧义,对于相同的输入,无论在何种情况下执行算法,都应得到相同的结果。
    • 有穷性:算法必须在有限的时间内结束,不能无限循环或永远执行下去,否则无法得到有效的结果。
    • 可行性:算法中的每一步操作都必须是可行的,能够在有限的时间内通过基本的运算完成,例如算术运算、逻辑运算、数据存储和读取等。
    • 输入:算法可以有零个或多个输入,这些输入是算法开始执行时所需要的数据或条件。
    • 输出:算法必须有一个或多个输出,输出是算法对输入数据进行处理后得到的结果,没有输出的算法是没有意义的。
  2. 算法与程序的区别
    • 算法是解决问题的方法和步骤,注重解决问题的逻辑和策略。
    • 程序是实现算法的具体代码,程序不仅包含算法的步骤,还涉及到更多的实现细节(数据结构,语法,声明)。
  3. 算法的时间复杂度?
    • 算法时间复杂度衡量算法执行效率。它表示算法执行时间随问题规模增长的变化趋势,用大 O 记号表示。关注基本操作执行次数与问题规模 n 的关系,而非具体执行时间。
  4. 神经网络与人工智能有什么关系
    • 神经网络是人工智能领域重要技术和模型。是实现人工智能的有效手段,模拟人类大脑神经元结构和工作方式处理信息和学习模式。
    • 人工智能使计算机具备类似人类智能,执行感知、学习、推理、决策等任务。
  5. 人工智能给我们带来了哪些烦恼?
    • 贫富差距
    • 安全和隐私问题
    • 就业结构变化和失业风险
  6. 人工智能的发展阶段?
    1. 起步阶段(20 世纪 50 年代 - 60 年代):这一时期是人工智能概念的提出和初步探索阶段。1956 年的达特茅斯会议被视为人工智能的诞生标志,会议上科学家们首次提出了 “人工智能” 这一术语,并讨论了相关的研究方向和可能性。在起步阶段,研究主要集中在简单的逻辑推理、定理证明和符号处理等方面,开发了一些基于规则的专家系统原型,但当时的技术水平相对较低,人工智能系统的能力有限,只能处理一些简单、特定领域的问题。
    2. 发展阶段(20 世纪 70 年代 - 80 年代):随着计算机技术的发展,人工智能研究进入了发展阶段。专家系统得到了进一步发展和应用,在医疗、地质勘探、化学分析等领域取得了一定成果,能够为专业人员提供决策支持和问题解决方案。同时,机器学习算法开始出现,如决策树、神经网络等方法的研究逐渐兴起,虽然当时的机器学习技术还不够成熟,但为后来人工智能的发展奠定了基础。然而,在这一阶段,人工智能研究也面临着一些困难和挑战,如计算能力的限制、数据量不足以及对复杂问题处理能力的局限等,导致人工智能发展在一定程度上陷入了瓶颈。
    3. 复兴阶段(20 世纪 90 年代 - 2010 年代):20 世纪 90 年代后期,随着计算机硬件性能的大幅提升(如处理器速度加快、内存容量增大等)、互联网的普及带来了海量数据以及机器学习算法的不断改进,人工智能迎来了复兴。机器学习尤其是深度学习技术取得了重大突破,在图像识别、语音识别、自然语言处理等领域取得了显著进展。例如,卷积神经网络(CNN)在图像识别任务中的准确率大幅提高,循环神经网络(RNN)及其变体在语音识别和自然语言处理方面表现出色。这一时期,人工智能技术开始广泛应用于商业领域,如互联网公司利用人工智能进行推荐系统、搜索引擎优化等,推动了人工智能产业的快速发展。
    4. 快速发展阶段(2010 年代至今):近年来,人工智能进入了快速发展阶段,技术不断创新,应用领域持续拓展。深度学习框架如 TensorFlow 和 PyTorch 等的开源和广泛应用,降低了人工智能开发的门槛,吸引了大量研究人员和企业投入到人工智能领域。人工智能技术在自动驾驶、医疗保健、金融科技、智能家居等众多领域得到了深度应用,并且与其他技术如物联网、大数据、区块链等深度融合,催生了新的应用场景和商业模式。同时,人工智能研究也朝着更加通用、智能的方向发展,如强化学习、生成对抗网络(GAN)等技术的不断演进,以及对人工智能可解释性、伦理道德等问题的关注和研究,使得人工智能技术更加成熟和完善,对社会和经济的影响日益深远。
  7. 研讨题 8、9
    8. 收集和分析人工智能技术对人类社会产生正面和负面影响的三个案例
    - 正面
    1. 自动驾驶
    2. 智能客服
    3. 语言大模型
    - 负面
    1. AI换脸
    2. 声音诈骗
    3. 工人失业,岗位减少
    9. 论述模式识别和深度学习的关系。
    - 模式识别和深度学习是紧密相关的两个领域,深度学习为模式识别提供了强大的技术手段,推动了模式识别的发展,而模式识别的需求也促使深度学习不断演进和优化。(深度学习是技术,模式识别是需求)

第四章 计算机如何改变外部世界

  1. 传感器有什么作用
    • 信息采集
    • 监测与控制
    • 环境感知与交互
  2. 计算机系统的组成 (P92 图 4-10)
  3. 分析导航对无人驾驶的作用
    • 定位与路径规划
    • 环境感知与避障辅助
    • 精确控制与稳定性保障
  4. 说明数据和信息的关系
    • 数据是信息的载体,数据处理后可以转化为信息,信息是对数据进行解释和理解的结果。
    • 数据是原始的、未经加工的事实或数字。
    • 信息是经过处理、组织、解释后具有特定含义和价值的数据,能够为人们提供知识、决策支持或指导行动。

第五章 计算机如何通信

  1. 计算机网络的主要功能

    • 数据通信
    • 资源共享
    • 分布处理
    • 提高可靠性
  2. 按照计算机网络的拓扑结构,计算机网络可以分为哪几种类型 (参考图 5-11)

    • 总线型拓扑结构
    • 星型拓扑结构
    • 环型拓扑结构
    • 树型拓扑结构
  3. 什么是互联网,互联网使用的主要协议是什么?

    • 互联网:全球计算机网络连接而成,实现不同网络之间的互联互通。
    • 协议:
      • 传输控制协议 / 互联网协议(TCP/IP)
      • 用户数据报协议(UDP)
      • 超文本传输协议(HTTP/HTTPS)
      • 文件传输协议(FTP)
      • 简单邮件传输协议(SMTP)、邮局协议(POP3)和互联网邮件访问协议(IMAP)
  4. 什么是计算机病毒

    • 计算机病毒是一种能够自我复制、传播和破坏计算机系统或数据的程序或代码。
  5. 如何保证网络安全

    • 防火墙技术
    • 加密技术
    • 入侵检测与防御系统(IDS/IPS)
  6. 研讨问题 4、5
    4. 分析用浏览器访问北京信息科技大学主页(www.bistu.edu.cn) 的过程。
    1. DNS 解析
    2. 建立 TCP 连接
    3. 发送 HTTP 请求
    4. 服务器处理请求并返回响应
    5. 浏览器解析和渲染页面
    5. 分析微信的实现原理。
    1. 网络通信
    - 微信使用TCP/IP协议进行网络通信,确保数据在客户端和服务器之间的可靠传输。
    - 为了适应移动互联网环境,微信还使用了HTTP/2协议,支持多路复用,减少延迟。
    2. 数据存储
    - 微信服务器端使用数据库存储用户数据,如聊天记录、好友列表等。
    - 客户端本地也会缓存部分数据,以提高访问速度和减少服务器压力。
    3. 用户界面设计
    - 微信客户端提供了直观的用户界面,使用户能够轻松发送消息、分享文件等。
    - 界面设计遵循用户体验原则,确保操作简便。
    4. 安全加密

         - 微信使用端到端加密技术保护用户通信的隐私和安全。
         - 微信支付等金融交易功能还采用了更高级别的安全措施。
     5. **消息同步**:
         - 微信支持多设备登录,通过服务器同步消息,确保用户在不同设备上都能接收到最新消息。
     6. **服务端架构**:
         - 微信后端架构通常采用分布式系统设计,以支持高并发和高可用性。
         - 使用负载均衡技术分散请求压力,提高系统稳定性。
     7. **人工智能**:
         - 微信在语音识别、图像识别等方面应用了人工智能技术,提升用户体验。
     8. **推送通知**:
         - 微信使用推送服务(如苹果的APNs和谷歌的FCM)来及时向用户推送消息。
    

第六章 计算机如何

  1. 如何把模拟的声音数字化
    • 采样
    • 量化
    • 编码
  2. 计算机怎样表示位图
    • 位图在计算机中通过一个二维数组来表示,数组中的每个元素对应图像中的一个像素。
  3. 计算机的图形分为哪两种?
    • 矢量图形和位图图形
  4. 什么是虚拟现实(VR)
  5. 什么是增强现实(AR)
  6. 研讨问题 2、6、8
    2. 高保真立体声(44.1kHz@16bit)的采样数据率是多少?若将其存放在一张680MB的CD-ROM光盘上,能存放多长时间?
    • 采样数据率 = 采样频率 × 量化位数 × 声道数。
    • 采样频率为44.1kHz,量化位数为16位,声道数为2(立体声)。
    • 将数值代入公式可得:
    • 44100×16×2=1411200b/s=176400B/s (1Byte=8bit)
    • 将680MB转换为字节数,680 × 1024 × 1024 = 713031680 B
    • 时间 = 数据量 / 数据传输率
    • 713031680 ÷ 176400 ≈ 4041.6 s ≈ 67.36 分钟
    1. 现有位图(不压缩)图片的大小为800X600像素,若每个像素的颜色用24比特表示,图像的数据量是多少?如果将其转换成256级的灰度图像,数据量是多少?
      1Byte=8bit
      D=(W*H*C)/8
      1. D=(W*H*C)/8 C=24
      2. 256=28->每个像素颜色用8比特表示->C=8
    2. 简述虚拟现实和增强现实的区别。
    3. 虚拟现实(VR)
      • 沉浸式体验:VR技术通过头戴式显示器(HMD)完全覆盖用户的视野,提供一个完全虚拟的环境,让用户感觉自己置身于另一个世界。

      • 隔绝现实:用户与现实世界隔绝,完全沉浸在虚拟环境中。

      • 交互性:用户可以与虚拟环境中的对象进行交互,这种交互通常是通过手持控制器、手势识别或全身追踪来实现的。

      • 应用领域:VR常用于游戏、模拟训练(如飞行模拟)、教育和娱乐等领域。

    4. 增强现实(AR)
      • 叠加体验:AR技术通过在用户的视野中叠加虚拟信息或图像,增强用户对现实世界的感知。用户可以看到现实世界,同时也能看到叠加的虚拟元素。

      • 与现实互动:AR技术允许用户与现实世界和虚拟元素进行交互,这种交互可以是实时的,并且与用户的物理环境紧密相关。

      • 设备多样性:AR体验可以通过智能手机、平板电脑、AR眼镜等多种设备实现。

      • 应用领域:AR常用于导航、教育、零售、设计和维修等领域,它能够提供额外的信息或功能,帮助用户更好地理解和操作现实世界中的对象。

第七章 计算机如何从过去走向未来

  1. 第一台计算机是哪个,于那年诞生?
    ENIAC,1946
  2. 电子计算机经过了几代的发展?
    4代:晶体管,电子管,集成电路,大规模集成电路
  3. 计算机的编程语言经历哪些发展阶段?
    • 机器语言(1940 年代 - 1950 年代初期)
    • 汇编语言(1950 年代初期 - 1960 年代中期)
    • 高级语言(1950 年代中期至今)
  4. 软件工程的目的是什么?
    • 提高软件质量
    • 满足用户需求
    • 控制开发成本和进度
    • 提高软件的可维护性和可扩展性
  5. 计算机未来发展的趋势?
    • 性能提升与微型化并行
    • 人工智能深度融合与发展
    • 量子计算突破与应用拓展
    • 大数据与云计算持续演进
    • 物联网广泛普及与万物互联
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值