Cache
Cache是介于CPU与内存之间的一种高速缓存。
这种存储器速度比内存快了很多倍,利用到局部性原理,只需要少量的Cache,便能使整个机器访问内存数据得到极大的提升。
所以Cache是一种应用非常普遍的技术, Cache在实际应用中,可以分多级,如1级Cache, 2级Cache。
1级Cache往往位于CPU中,其容量比在主板上的2级Cache小,但速度比2级Cache快。
影响Cache命中率的因素包括高速存储器的容量、存储单元组的大小、组数多少、地址联想比较方法、替换算法、写操作处理方法和程序特性等,这些因素相互影响,没有关键影响因素。
考点选项:在容量确定的情况下,替换算法是影响Cache命中率的关键因素,而不是时间复杂度。
考点选项:Cache的设计思想是在合理的成本下提高命中率。
CISC、RISC

CISC-微程序
RISC-增加通用寄存器
哈佛结构
冯·诺依曼结构:
特点:指令与数据存储器合并在一起;指令与数据都通过相同的数据总线传输。
典型应用:一般用于PC处理器。(常规计算机属于冯·诺依曼结构)
哈佛结构:
特点:指令与数据分开存储,可以并行读取,有较高的吞吐率;有4条总线:指令和数据的数据总线与地址总线
典型应用:一般用于嵌入式系统处理器。(DSP属于哈佛结构)
输入/输出技术
输入/输出技术的三种方式:
直接查询控制:有无条件传送和程序查询方式,都需要通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。在这种情况下CPU不做别的事情,只是不停地对外设的状态进行查询。
中断方式:当I/O系统与外设交换数据时, CPU无须等待也不必查询I/O的状态,而可以抽身来处理其他任务。当I/O系统准备好以后,则发出中断请求信号通知CPU, CPU接到中断请求信号后,保存正在执行的程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。
DMA:直接寄存器存取方式,是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程开始启动与过程结束时的处理,实际操作由DMA硬件直接执行完成。
考点选项:中断方式与DMA方式都可实现外设与CPU之间的并行工作。
考点选项:程序中断方式和DMA方式在数据传输过程中都不需要CPU的干预。❌️错误
死锁预防
死锁预防就是采用某种策略,限制并发进程对资源的请求,使系统在任何时刻都不满足死锁的必要条件。死锁预防主要是针对破坏死锁的四个必要条件进行的。
而死锁避免是将限制条件弱化,允许死锁的存在,但不让它发生,设置一种安全状态,进程按照某种顺序来为其分配资源。
考点选项:产生死锁有四个必要条件,分别是互斥条件、不剥夺条件、请求与保持条件和环路条件考点选项:银行家算法是用来判断系统状态是否安全,从而决定是否为进程分配资源的一种方法。
进程线程
1.线程资源
同一进程开多个线程,线程独享栈指针,共享打开的文件。

2.进程的状态

运行:当一个进程在CPU上运行时。 单处理机处于运行态的进程只有一个,多进程在CPU上交替运行)
就绪:一个进程获得了除CPU外的一切所需资源,一旦得到处理机即可运行。
阻塞:阻塞也称等待或睡眠状态,一个进程正在等待某一事件发生(例如请求1/0、等待1/0完成等)而暂时停止运行,此时即使把CPU分配给进程也无法运行,故称进程处于阻塞状态。
三种基本状态转换:
就绪→执行:处于就绪状态的任务,当任务调度程序为之分配了处理机后,该任务便由就绪状态转变成执行状态。
执行→就绪:处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,便从执行状态转变成就绪状态。
执行→阻塞:正在执行的任务因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
阻塞→就绪:处于阻塞状态的任务,若其等待的事件已经发生,于是任务由阻塞状态转变为就绪状态。
局部性原理
程序局部性包括时间局部性和空间局部性。
时间局部性是指程序中的某条指令一旦执行,不久以后该指令可能再次执行。产生时间局部性的典型原因是由于程序中存在着大量的循环操作;
空间局部性是指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。
性能评估
性能评估是为了一个目的,按照一定的步骤,选用一定的度量项目,通过建模和实验,对一个系统的性能进行各项检测,对测试结果作出解释,并形成一份文档的技术。
性能评估的一个目的是为性能的优化提供参考。
在Web服务器的测试中,反映其性能的指标主要有:最大并发连接数、响应延迟、连接速度和吞吐量等。
常见的Web服务器性能评测方法有基准性能测试、压力测试和可靠性测试。
性能评价
指令执行速度法:在计算机发展的初期,曾用加法指令的运算速度来衡量计算机的速度,速度是计算机的主要性能指标之一。因为加法指令的运算速度大体上可反映出乘法、除法等其他算术运算的速度,而且逻辑运算、转移指令等简单指令的执行时间往往设计成与加法指令相同,因此加法指令的运算速度有一定代表性。表示机器运算速度的单位是MIPS(每秒百万条指令)。
等效指令速度法(Gibson mix,吉普森混合法) :通过各类指令在程序中所占的比例(Wi)进行计算得到的。特点:考虑指令比例不同的问题。
综合理论性能法(CTP , Composite Theoretical Performance ) : CTP用MTOPS (Million TheoreticalOperations Per Second,每秒百万次理论运算)表示。
CTP的估算方法是,首先算出处理部件每个计算单元的有效计算率,再按不同字长加以调整,得出该计算单元的理论性能,所有组成该处理部件的计算单元的理论性能之和即为CTP
基准程序法:把应用程序中用得最多、最频繁的那部分核心程序作为评估计算机系统性能的标准程序,称为基准测试程序(benchmark) 。基准程序法是目前一致承认的测试系统性能的较好方法。
信号量

数据传输方式
在计算机中,常用的输入输出控制方式主要有4种,分别是程序查询方式(程序控制方式)、程序中断方式、DMA工作方式、通道方式。
这4种方式占用主机CPU时间按多到少排序为:
程序查询方式(程序控制方式)、程序中断方式、DMA工作方式、通道方式。
注释:为什么通道方式 占CPU 比DMA 占用时间短
通道方式比DMA方式占用的CPU时间更短,因为通道方式(Channel I/O)将数据传输任务交给通道控制器,CPU只需发出一次指令启动,通道接管并完成整个数据块传输后才中断CPU,而DMA(Direct Memory Access)在分块传输(如Cycle Stealing模式)时会频繁地“窃取”总线,虽然总体比中断高效,但仍需CPU干预更多次、更频繁地占用总线资源,通道方式通过执行通道程序彻底解放CPU,实现更精细的资源管理和更多设备控制。
详细对比解释:
- 通道方式 (Channel I/O):
- CPU介入: 极少,只需在传输前设置通道、启动通道指令,结束后由通道通知。
- 任务分派: 通道控制器像一个小型CPU,能执行通道程序,管理多设备,直接与内存和设备通信。
- CPU解放度: 极高,CPU几乎完全脱离数据传输,专注于计算。
- 优点: 适用于大量数据、多设备,大幅减轻CPU负担,效率高。
- DMA方式 (Direct Memory Access):
- CPU介入: 比中断方式少,但比通道方式多,需要CPU设置DMA控制器来控制数据块大小和内存地址。
- 工作模式: 有多种(如块传输、周期窃取),周期窃取模式会频繁占用总线,让CPU有空隙,但增加了总线争用和切换开销。
- 总线占用: 块传输时独占总线,周期窃取时频繁释放,总体影响CPU。
- 优点: 提高I/O效率,避免数据丢失,是现代I/O主流。
- 为何通道更优:
- 通道方式将整个传输过程(包括数据块大小、内存位置等)的控制权完全交给通道控制器,CPU无需持续干预每个数据块,效率更高,对CPU的“占用”更短,因为通道能执行更复杂的通道程序,而DMA通常只负责块数据的直接传输,且分块操作时对总线干预较多。
- 总结:
- 中断/轮询 < DMA < 通道 这种由低到高的CPU解放程度和效率排序。
- 通道方式是更高级的I/O控制方式,它通过增加硬件(通道控制器)来显著减少CPU的负担和占用时间
注释:为什么DMA 占CPU 比中断 占用时间短
DMA(直接内存访问)比中断占用的CPU时间短,主要是因为DMA将数据传输任务从CPU完全转移给了独立的DMA控制器,让CPU只负责一次性初始化传输,大大减少了数据搬运过程中CPU的介入,将CPU从繁琐的字节级或块级数据操作中解放出来,能处理更多计算任务,从而提高系统效率。
中断方式 vs. DMA方式
- 中断:
- 外设数据准备好后,发出中断请求。
- CPU暂停当前任务,响应中断。
- 在中断服务程序中,CPU亲自将外设的数据一个字节或一个块地读取并写入内存。
- 传输完成后,CPU才继续原任务。
- 当传输大量数据时,CPU会频繁被中断,消耗大量时间在数据搬运上。
- DMA:
- CPU只负责初始化一次DMA传输:告诉DMA控制器要传输的源地址、目标地址、数据量等。
- 数据传输过程由DMA控制器独立完成,无需CPU干预。
- 数据直接在外设和内存之间高速传输。
- 传输完成后,DMA控制器会再通知CPU一次(通常是发送一个中断),CPU只需处理一次终结通知。
为什么DMA占用的CPU更短
- 任务分工:中断方式是“CPU + 外设”共同完成数据搬运,而DMA是“DMA控制器”独自完成,CPU只做“启动和结束”的“跑龙套”工作。
- 粒度差异:中断处理的数据量小(一个字节/字),而DMA处理数据量大(一个缓冲区/块),将成百上千次的中断操作合并成一次DMA传输,大大减少了CPU的响应开销。
- 高效利用CPU:在DMA传输期间,CPU可以去做计算、执行其他程序,不会被数据搬运所“卡住”,提升了整体吞吐量。
总结
DMA通过硬件分担了数据传输的负担,将CPU从重复、低效的数据移动工作中解放出来,使其能专注于更重要的计算任务,因此在处理大批量数据I/O时,DMA比中断更高效,占用的CPU时间更短。
个人理解:查询最占CPU;中断需要暂停当前任务响应中断;DMA初始化一次,分块模式会占用总线,不如通道设置、启动快捷;通道方式通过执行通道程序彻底解放CPU。DMA搬数据搬一块,通道开闸防水,启动就运输。
吞吐率
吞吐率 = 需要处理的任务数/处理这些任务所需要的时间。

370

被折叠的 条评论
为什么被折叠?



