table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
pre {
background-color: #f8f8f8;
padding: 15px;
border-radius: 4px;
overflow-x: auto;
}
1、描述现代计算机系统的主要组成部分。
现代计算机系统主要由
硬件
、
软件
、
网络
和
数据
组成。
硬件
包括物理硬件和虚拟硬件;
软件
可分为数据和程序;
随着互联网的引入,
网络接口卡
也成为计算机系统不可或缺的一部分。
2、为什么网络接口与一般的输入输出设备不同?
网络接口卡是一种特殊的输入输出设备,用于管理网络数据通信。每个网卡都配有一个
MAC 地址
,用于在互联网上识别设备。
而一般输入输出设备主要用于:
接收任务和数据并传递给 CPU;
接收 CPU 处理结果并输出。
其主要解决的是设备与 CPU 之间的数据交互、速度匹配等问题,不具备网络数据通信管理及 MAC 地址识别等网络相关特性。
3、计算机防火墙用于保护计算机防止数据丢失。为什么防火墙不能保证数据安全?
以下是调整为 Markdown 格式的文本内容:
防火墙只能在一定时间内有效;一些防火墙只是软件,即使使用“硬件”的防火墙,其核心组件也基于算法即软件;防火墙并非为个人电脑或手持设备设计。
4、什么是计算机总线?计算机总线上传输哪些类型的数据?
# 计算机总线
计算机总线是计算机子系统,用于减少计算机组件间通信所需的路径数量,使组件通过一个数据通道进行通信,其特征在于一次能传输的信息量。
## 系统总线组成
系统总线通常由以下三部分组成:
- **地址总线**
- **数据总线**
- **控制总线**
## 总线上传输的数据类型
- **地址总线**
用于确定计算机系统的寻址空间,指定可连接到计算机系统的内存量。
- **数据总线**
用于在CPU与内存或I/O设备之间读写数据。
- **控制总线**
用于CPU与计算机内其他设备通信,传输如读、写和中断等信号。
5、为什么汇编语言被称为低级语言?
汇编语言是最接近计算机的语言,它是CPU使用的机器语言(1和0)的易记易懂格式,且依赖硬件,不同处理器甚至不同CPU的汇编语言指令都可能不同,这符合低级语言与硬件紧密相关、对硬件依赖性强的特点,所以通常被称为
低级语言
。
6、虚拟化有时被称为“计算机中的计算机”。描述其工作原理。
虚拟化概述
虚拟化是创建
操作系统
、
服务器
、
存储设备
或
网络资源
的虚拟实例。
硬件虚拟化
在硬件虚拟化中,
主机
是进行虚拟化的实际机器。通过名为
管理程序
(或
虚拟机监视器
)的软件或固件,在主机硬件上创建
虚拟机
(即来宾机器)。
软件执行
在虚拟机上,与底层硬件资源分离。
例如,运行
微软Windows
的计算机可托管看起来像运行
Ubuntu Linux操作系统
的虚拟机,基于Ubuntu的软件能在该虚拟机上运行。
操作系统虚拟化
操作系统虚拟化
利用软件让计算机硬件同时运行多个
操作系统镜像
。其技术早在几十年前的
大型机
上就已开始应用,可避免浪费昂贵的处理能力。
虚拟化系统架构
从虚拟化系统架构来看,
管理程序
(VMM):
可以直接运行在真实硬件上(无需“主机”操作系统),
也可以作为应用程序运行在主机操作系统之上,并使用主机操作系统的API。
指令执行方式
在指令执行方面,有以下几种实现方式:
通过软件处理虚拟机上执行的所有指令;
让大部分指令(甚至一些特权指令)直接在真实处理器上执行,特定指令由软件处理;
让所有特权指令都由软件处理。
7、为什么诺伊曼架构仍被认为是多CPU计算机或多核计算机的架构?
在多处理器或多核计算机中,那些处理器只是通过软件协调在一起执行一个或一系列任务,它们共享相同的系统总线,本质上还是遵循诺伊曼架构中CPU作为集中控制和运算单元的概念,所以诺伊曼架构仍被认为是多CPU计算机或多核计算机的架构。
8、列举一些计算机系统和网络的常见威胁。
常见威胁包括:
窃听(如窃听数据的未授权拦截)
篡改(如中间人攻击对数据的未授权更改)
欺骗(一个实体对另一个实体的假冒)
网络钓鱼(试图获取敏感信息的电子邮件诈骗)
延迟或拒绝服务(对服务的抑制)
9、冯·诺依曼架构存在哪些问题?如何解决这些问题?
冯·诺依曼架构存在的问题
从安全角度看,CPU、内存、I/O、外部存储和网络接口都连接到单一系统总线,入侵者从任何网络位置侵入系统后可完全控制计算机系统;
虽然多核处理器常见,但它们通过软件协调共享同一系统总线,入侵者从任何网络端口侵入系统就能控制整个系统;
冯·诺依曼未预见计算机网络的发展,网络接口重要,不宜归为一般I/O设备,原架构需更新以反映变化。
解决方法
提出一种新的计算机架构,基于修改后的冯·诺依曼模型,用单独的系统总线将网络通信组件与计算机系统的其他部分分离,计算机系统中除网络外的所有组件运行在另一条系统总线上,两条系统总线之间的数据交换受到限制。
10、可信计算技术目前已部署在企业系统、存储系统、网络、嵌入式系统和移动设备中,有助于保障云计算和虚拟化系统的安全。请描述可信平台模块(TPM)如何保障个人计算机的安全。
TPM是集成到系统中的强大芯片,能为个人计算机提供硬件安全并在设备内建立信任。具体表现为:
1. 提供一组原语,具有高度安全性。TPM芯片可嵌入唯一的RSA密钥对,其私钥不会离开芯片的物理边界,可用于识别设备的唯一身份,在云环境中至关重要。
2. 防止恶意软件的空中更新和回滚。
3. 可信计算通过TPM构建数字身份,增加联网设备间的信任保证,在操作系统和硬件提供的安全基础上进一步提升安全级别。
TPM作为可信计算基的硬件设备,具备非易失性存储和加密执行引擎,能确保系统满足安全标准。
11、用标准集成电路构建的逻辑电路很容易被复制。人们如何保护这些电路,使其不被逆向工程破解?
可以采用以下方式保障电路不被逆向工程破解:
利用FPGA替换复杂数字电路,FPGA具有内置安全特性。很多FPGA有可编程的控制位,设置后能防止闪存和SRAM内存被读取;擦除需要可选的64位闪存锁密钥,编程可防止意外或未经授权的重新编程;一次性可编程(OTP)模式可阻止进一步擦除或重新编程,确保FPGA内容未被篡改。
实施电路安全措施,阻止电路被逆向工程。
构建附加安全板,使用协处理器、FPGA和其他数字电路以及内核软件;设计多端口I/O和双端口内存接口电路;通过总线控制器实现双总线系统切换;用微操作系统管理附加操作并监控系统安全。
采用专利待批的安全计算机架构(硬件)来保障安全。
12、在现场可编程门阵列(FPGA)中使用闪存锁钥和一次性可编程模式的目的是什么?
闪存锁钥是擦除所需的可选64位密钥,编程可防止意外或未经授权的重新编程;一次性可编程(OTP)模式可阻止任何进一步的擦除或重新编程,确保FPGA内容未被篡改。
13、一些RFID标签不包含电池或任何其他电源连接器。这些标签如何向读取器发送数据?
这些无源标签使用读取器传输的无线电能量作为其能量源。当读取器发出的射频场足够强,能向标签传输足够的功率时,标签接收读取器的询问信号,并以其识别信息作出响应,将数据发送给读取器。
14、MDR用于解码来自CPU的地址信号。对于16位地址总线,系统可以直接连接多少内存?
对于16位地址总线,可直接连接的内存大小为2的16次方字节,即65536字节,也就是64KB。
15、现在一些计算机使用基于闪存的固态硬盘来取代硬盘。除了无噪音之外,还有哪些优点?
运行速度更快
16、高速缓冲存储器(Cache Memory)和虚拟内存(Virtual Memory)有哪些相似之处?
以下是将给定文本内容调整为
Markdown
格式的结果:
高速缓冲存储器
和
虚拟内存
都能增加内存地址空间并提高访问速度。借助
虚拟内存
,程序能够并发运行,无需担心内存限制,这与
高速缓冲存储器
的作用有相似之处。
17、高速缓冲存储器和虚拟内存有什么区别?
高速缓冲存储器本身存在,是主存和寄存器之间的过渡,数量小但速度比主存快,通过预测和预取数据块为CPU提供便捷的数据访问;虚拟内存本身不存在,直接使用部分磁盘存储,是主存和磁盘存储之间的过渡,能给程序提供比物理内存更大的内存空间,占用速度慢得多的磁盘存储。
18、计算机使用虚拟内存来增加内存空间。如何将虚拟地址转换为物理地址?
为实现虚拟内存,虚拟内存地址被划分为段或页,操作系统将虚拟页号转换为物理页号。
例如,要将32位虚拟地址空间映射到24位物理地址空间,可保留12个最低有效位(LSB)作为一个页面,页面大小为 $2^{12} = 4KB$,其余位用作指向该页面的指针(页号)。此时需要将 $2^{20}$ 个虚拟页面映射到 $2^{12}$ 个物理页面。
页表用于将应用程序看到的虚拟地址转换为硬件处理指令时使用的物理地址。处理这种特定转换的硬件通常称为
内存管理单元(MMU)
。
操作系统的分页监管器负责创建和管理页表。若硬件引发页面错误异常,分页监管器会:
访问二级存储;
返回导致页面错误的虚拟地址所在的页面;
更新页表以反映虚拟地址的物理位置;
告知转换机制重新启动请求。
19、使用内存分段技术有哪些好处?
内存分段技术的优势
内存分段技术不仅能提供更多虚拟地址,还能保护存储在段中的数据。
它可以解决内存被覆盖和一些缓冲区溢出问题,例如:
将程序、数据和栈存储在不同的段中
可使程序段只执行,数据段不可执行
还能避免因操作系统线性分配地址导致动态数据结构相互覆盖,从而:
防止系统崩溃或系统安全漏洞
防止黑客控制计算机系统、停止服务和窃取数据
20、如何保护内存以防止缓冲区溢出攻击?
可以采用分段技术,将程序、数据和栈存储在不同的段中,使程序段只可执行,数据段不可执行,以此解决内存覆盖和一些缓冲区溢出问题。
21、断电后动态随机存取存储器(DRAM)仍能保留数据。(对/错)
错
22、云服务提供商为众多用户提供大量的私有虚拟云。在服务器端,所有用户的数据都被加载到缓存内存中。研究云平台的潜在漏洞,并撰写一篇300字的总结及应对措施。
云平台潜在漏洞及应对措施
潜在漏洞
1. 数据隔离问题
不同组织可能共享同一云环境
三级缓存被所有核心或虚拟处理器共享
可能导致隔离失效,造成数据泄露
2. 跨虚拟机数据访问攻击
例如
:Spectre 和 Meltdown 攻击
可跨虚拟机访问数据
威胁云数据安全
3. 分布式拒绝服务(DDoS)攻击
黑客利用分布式计算平台
控制僵尸主机向目标发送大量数据包
耗尽目标资源
应对措施
针对数据隔离
加强技术手段确保不同用户数据严格分离
避免缓存共享带来的风险
针对跨虚拟机攻击
持续更新安全防护机制
及时发现并阻止此类攻击
针对 DDoS 攻击
采用流量监测和过滤系统
识别并拦截异常流量
建立应急响应机制
遭受攻击时迅速采取措施恢复服务
保障云平台的安全稳定运行
23、什么是系统总线?系统总线由什么组成?
系统总线
系统总线,也称为内部总线,通常指连接到处理器的所有信号。系统总线由三个子总线系统组成,即:
地址总线
数据总线
控制总线
24、一个处理器的数据总线宽度为8位。将一个28位的数据读入处理器需要多少次读取操作?如果处理器的数据总线为32位,又需要多少次读取操作?
8位数据总线需要4次读取操作;32位数据总线需要1次读取操作。
25、什么是并行总线?什么是串行总线?
总线类型
并行总线
并行总线是在主板上常见的总线类型。一次指令可从内存读取一个字的数据,能让多个数据信号通过多个并行通道同时传输。例如:
行业标准总线(ISA)
外设组件互连(PCI)
迷你PCI
STD – 总线
串行总线
串行总线是一次仅传输一位数据,按顺序通过通信通道或计算机总线传输数据的总线。主要用于长距离通信和大多数计算机网络。例如:
PCI Express
通用串行总线(USB)
随着技术发展,串行总线在短距离应用中也越来越普遍。
26、如果我们需要将低速设备连接到处理器,应该考虑哪些因素?
需要考虑以下方面:
同步通信问题
I/O设备与处理器速度不同,同步通信可能引发问题。若CPU用处理器周期收发数据,I/O设备可能丢失数据;鉴于I/O设备速度,CPU在每次I/O操作时需等待,导致性能下降。
采用中断机制
中断可用于高速处理器和低速I/O设备协作通信。I/O设备处理完从处理器接收的数据后,发出中断请求;CPU接收请求后,保存当前环境,收发数据,再恢复原任务。
选择合适接口
很多I/O设备配备通用串行总线(USB),它使用方便、支持即插即用和热插拔,速度较高,能支持大多数I/O设备,如Super Speed USB 3.0传输速度达5 Gb/s。
数据安全问题
数据存储在硬盘可能暴露给攻击者,尤其是内部攻击。对硬盘上所有数据加密虽可解决问题,但可能导致性能或可访问性问题。USB存储设备可作为可引导设备启动计算机,未经授权使用会让攻击者窃取计算机系统数据,在关注数据安全的地方应禁用USB启动。
27、一台计算机有连接显卡的AGP总线、连接SCSI的PCI总线、连接键盘和鼠标的USB接口,还有连接固态硬盘和光盘驱动器的SATA总线。为什么这台多总线计算机仍被视为单总线冯·诺依曼架构?
AGP只是图形加速器,它通过一个桥接器与PCI相连;SATA和USB也通过桥接器与PCI进行信号交换。所以本质上它是一个有一些变化的单总线系统。
28、人们认为双核或四核计算机是单总线冯·诺依曼架构。你是否同意,为什么?
同意。因为从架构上看,双核或四核计算机中的多个处理器都连接到一个总线接口,使用一条总线与外部连接,多个处理器(核心)只是增加了计算能力,所以仍应归类为单总线系统,属于单总线冯·诺依曼架构。
29、USB 启动攻击是如何进行的?如何防止此类攻击?
USB 启动攻击的运作方式与防范方法
运作方式
大多数现代计算机能够从连接到 USB 端口的闪存驱动器启动。攻击者插入 USB 闪存驱动器,并在当前操作系统之上启动虚拟服务或虚拟机。该虚拟服务或虚拟机随后可能能够访问本地硬盘以获取数据。
防止此类攻击的方法
物理阻止
:对 USB 端口的访问进行物理封锁。
禁用 USB 端口
:默认禁用这些端口。
禁用 USB 启动功能
:使任何程序都无法从 USB 设备执行。
设置 USB 端口
:将所有 USB 端口设置为不可启动。
关闭未使用的端口
:禁用未使用的 USB 端口。
30、什么是 DMA?为什么 DMA 可以减少 CPU 的工作量?
DMA 简介
DMA 即
直接内存访问
。
工作原理
DMA 控制器受 CPU 控制
,接收来自处理器的数据传输指令。
通常,CPU 会向 DMA 控制器发送以下信息:
I/O 设备编号
内存起始地址
字节数
接收到指令后,DMA 控制器会自行发起传输,直至数据全部读取。
从内存到 I/O 的写入过程类似,只是数据移动方向相反。
优势
DMA 可以减少 CPU 工作量,原因如下:
利用 DMA 技术,I/O 设备和内存之间的数据传输可以直接进行。
数据传输过程
无需占用 CPU 资源
。
31、当发生中断时,CPU将响应中断并执行中断处理程序。CPU如何知道恢复当前任务呢?
中断处理过程的步骤如下:
保存当前程序计数器
首先将当前程序计数器(PC)加1(即
PC + 1
)保存到栈中。
执行中断服务程序
中断服务程序依次执行以下功能:
– 保存处理器状态
– 处理中断
– 从中断返回
恢复程序执行
中断服务完成后:
– 从栈中弹出并获取返回地址
PC + 1
– 跳转到该地址(即
PC + 1
),从而恢复被中断的程序或任务的执行
程序连续性保障
除非出现以下情况:
– 异常无法恢复
– 中断导致当前程序终止
否则,被中断的程序或任务将不会丢失程序连续性。
32、可引导的USB闪存驱动器可以在主机计算机上设置虚拟机,在虚拟机上用户可能能够访问主机计算机上的文件和数据,这一方便功能有时可能对安全造成威胁。描述如何有效解决这个问题?
为有效解决该问题,可采取以下措施:
计算机总线方面
:
物理阻止对USB端口的访问;
默认禁用这些端口;
禁用USB启动功能,防止从USB设备执行程序。
输入/输出安全方面
:
将所有USB端口设置为不可引导;
禁用未使用的USB端口。
33、网卡上至少存在一个MAC地址。MAC地址的用途是什么?
MAC地址用于提供底层寻址系统,使计算机能够在计算机网络上进行通信,通过它NIC(网络接口卡)可以在网络中识别不同的设备,实现数据的准确传输。
34、描述网卡的发送和接收过程。
数据传输过程
发送过程
主机操作系统得知主机内存中有帧准备发送,在主机内存中构建关于此帧的缓冲区描述符。
操作系统通知网卡主机内存中有新的缓冲区描述符,准备好被获取和处理(“邮箱”事件)。
网卡发起对挂起的缓冲区描述符的直接内存访问(DMA)读取并处理它。
确定待发送帧的主机地址后,网卡发起对帧内容的DMA读取。
当帧的所有段(可能使用多个缓冲区描述符和缓冲区)都到达后,网卡将帧发送到以太网上。
根据操作系统对网卡的配置,网卡可能会中断主机以指示帧已发送完成。
接收过程
网卡从网络接收帧到其本地接收缓冲区。
假设主机有足够的内存用于接收此帧,网卡发起将帧内容的DMA写入主机内存,通过检查下一个空闲的缓冲区描述符确定起始主机地址。
网卡修改之前获取的缓冲区描述符,记录新帧占用的空间,并填写帧长度等信息。
35、一个32位CPU可以有多大内存?
一个32位计算机可以有多达4GB的内存。因为对于一个地址宽度为k位的计算机,总内存地址数$ M = 2^k $。
32位计算机的总内存地址数为
232=22×210×210×210232=22×210×210×210
约为
4×103×103×103=4×1094×103×103×103=4×109
而1GB约等于$ 10^9 $字节,所以总内存为4GB。
36、什么是虚拟机和宿主机?
虚拟化概述
硬件虚拟化
或
平台虚拟化
会创建
虚拟机(VM)
,这些虚拟机的行为类似于带有操作系统的实际计算机。在这些虚拟机上运行的软件与底层硬件资源相分离。
宿主机
:指的是进行虚拟化的实际机器。
虚拟机
:是虚拟出来的机器。
使用“
宿主机
”和“
虚拟机
”这两个术语,是为了清楚地区分在实际机器上运行的软件与在虚拟机上运行的软件。
37、为什么缓存可以提高计算机系统的性能?
以下是将给定文本内容调整为 Markdown 格式的结果:
缓存通过使用块和预测机制,将块从主内存移动到缓存,当预测准确时,处理器可直接从快速的缓存中获取数据,无需访问主内存;发生读未命中时,预测算法会将更多相邻位置的数据移入缓存,统计显示这种块数据移动能减少整体访问时间,从而极大地改善了内存访问时间,提高了计算机系统的性能。
38、命中率定义为在缓存中找到的访问次数占总访问次数的比例。一个处理器的未命中率为1%,这个数字意味着什么?
这意味着在处理器的所有数据访问操作中,有1%的数据不在缓存中,需要从主存等其他存储位置获取,而有99%的数据可以直接从缓存中获取。
39、对于缓存读取,如果发生未命中(MISS),处理器通常会将一块数据读入缓存。这样做的好处是什么?
统计显示,每当发生读取未命中时,将块数据从主存移动到缓存可减少整体访问时间,从而提高机器速度。
40、计算机 A 比计算机 B 快 n 倍意味着:[ ] 性能(A) / 性能(B) = n [ ] 执行时间(B) / 执行时间(A) = n [ ] 性能(A) / 性能(B) = 1/n [ ] 执行时间(B) / 执行时间(A) = 1/n
性能(A) / 性能(B) = n;执行时间(B) / 执行时间(A) = n
41、将左侧的每个术语与右侧相应的事实进行匹配。基础设施即服务(IaaS):云上的存储和其他资源。软件即服务(SaaS):客户可以选择使用的软件。平台即服务(PaaS):云提供Windows和Linux系统。
IaaS对应云上的存储和其他资源
SaaS对应客户可以选择使用的软件
PaaS对应云提供Windows和Linux系统
42、一台主机电脑有4GB内存。每个虚拟机需要1GB内存。这台主机电脑上可以驻留多少个虚拟机?
4个
43、虚拟化通常涉及一台物理计算机和一个主机操作系统。主机计算机通过一个称为虚拟机监视器(VMM)的层来支持虚拟机。VMM 能否取代主机操作系统?
VMM可以在某些情况下取代主机操作系统。VMM可以直接运行在真实硬件上而无需“主机”操作系统,此时VMM就是(最小化的)操作系统;也可以作为应用程序运行在主机操作系统之上,使用主机操作系统的API来完成各项操作。
44、对AWS中的移动计算进行研究。列出AWS提供的移动服务。
AWS提供的移动服务
Amplify
可对移动应用的后端进行配置和管理。
用户可选择所需功能(如身份验证、分析或离线数据同步等)。
Amplify会自动配置和管理支持各功能的AWS服务。
可通过Amplify库和UI组件将这些功能集成到应用中。
AWS IoT Device SDK
使设备能使用MQTT、HTTP或WebSockets协议与AWS IoT Core连接、认证和交换消息。
支持C、JavaScript和Arduino。
包含客户端库、开发指南和制造商移植指南。
AWS CloudWatch
为所有设备和网络使用情况提供集中监控服务。
45、如今大多数程序用C和Java编写。编写汇编语言程序有什么好处吗?
汇编语言的重要性
汇编语言是最接近与计算机通信的语言,它以易于记忆和理解的格式呈现CPU使用的机器语言(1和0)。
只有汇编语言能充分利用处理器架构的优势。
它可以直接与硬件交互,发挥硬件的最大性能。
处理器架构差异
例如:
Intel和AMD处理器使用不同的汇编语言。
即使在Intel处理器中,不同的CPU也有不同的汇编语言指令。
汇编语言能针对特定的处理器架构进行优化,实现其他高级语言难以达到的效率。
46、加法是将两个数相加。解释如何使用单操作数指令进行加法运算。
单地址机器通常使用
累加器(ACC)
和一个地址(通常是一个寄存器)来执行操作。
累加器中存放一个操作数,另一个操作数通过地址指定,执行加法后结果存于累加器中。
47、一个队列有两个指针FRONT和BACK。编写两个函数,(1)Enqueue() — 将数据移入队列。(2)Dequeue() — 将数据移出队列。
以下是使用Python实现的
Enqueue()
和
Dequeue()
函数示例:
class Queue:
def __init__(self):
self.items = []
self.front = 0
self.back = 0
def Enqueue(self, data):
self.items.append(data)
self.back += 1
def Dequeue(self):
if self.front == self.back:
return None
data = self.items[self.front]
self.front += 1
return data
上述代码定义了一个
Queue
类,其中
Enqueue
函数用于将数据添加到队列尾部,
Dequeue
函数用于从队列头部移除数据。
48、一家手机服务提供商每秒可连接1000人。由于突发紧急情况,每秒的来电请求达到999人。计算等待服务的人数。解释为什么结果显示几乎无人得到服务?
根据公式,流量强度 $
ho = frac{lambda}{mu}$,其中 $lambda = 999$,$mu = 1000$,所以 $
ho = frac{999}{1000}$。
队列中预期的用户数量
N=ρ1−ρ=99910001−9991000=999N=ρ1−ρ=99910001−9991000=999
当到达率 $lambda$ 接近处理率 $mu$ 时,流量强度 $
ho$ 接近 1,队列中的用户数量 $N$ 接近无穷大,意味着越来越多的数据包会在队列中等待处理,所以几乎无人能得到服务。