问题一:计算机操作系统中buffer和 cache什么区别?
1、缓冲区(buffer) 将数据写入到内存里,这个数据的内存空间被称为缓冲区(buffer)
先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
2、缓存区(cache) 从内存里读取数据,这个存数据的内存空间称为缓存区(cache)
最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
问题二:CPU利⽤率我们经常关注,然后另外是⼀个系统的负载,负载我们也经常关注,然后这俩是直接相关吗?
不直接相关:
CPU利用率
是计算机中央处理单元(CPU)的工作负载与其可用处理能力之间的比例,通常以百分比表示。它反映了CPU在一段时间内被占用的情况。
系统负载(特别是平均负载)
是指在一段时间内系统处于可运行状态和不可中断状态的平均进程数。它更侧重于描述系统整体的活跃进程数量,而不是直接反映CPU的使用情况。
平均负载包括了正在使用CPU的进程、等待CPU的进程以及等待I/O(输入/输出)的进程。因此,即使CPU利用率很高,如果系统中有很多进程在等待I/O操作,平均负载也可能很高。反之亦然,即使CPU利用率不高,但如果系统中有很多活跃的进程(无论是使用CPU还是等待I/O),平均负载也可能很高。
纠正
当提到“系统负载”时,它通常指的是系统的整体负载状况,包括CPU使用率、内存使用率、磁盘I/O性能、网络流量等多个方面的综合表现。然而,在日常讨论中,人们更倾向于使用“平均负载”这个更具体的指标来描述系统的繁忙程度。
因此,虽然“系统负载”和“平均负载”在概念上有所区别,但在实际使用中,人们常常用“平均负载”来指代系统当前的负载状况。如果你听到“系统负载”,很可能是在讨论平均负载或者系统的整体负载状况。
总结来说,平均负载是系统负载的一个具体指标
问题三 cpu使用率会超过100%嘛,为什么(反正不正常就对了)
多核CPU的并行处理
在多核CPU系统中,每个核心都可以独立处理任务。CPU使用率通常以百分比表示,但在多核环境下,这个百分比是相对于单个核心而言的。(如果一个应用使用了两个CPU核心,并且每个核心的使用率都是100%,那么系统的总CPU使用率就会显示为200%。)
一个物理CPU核心模拟成两个逻辑CPU,从而提高系统的并行处理能力。即使物理CPU核心的使用率没有达到100%,系统的总CPU使用率也可能超过100%。
虚拟化和容器化技术
一个物理CPU可能会被多个虚拟机或容器共享。在这种情况下,每个虚拟机或容器都会报告自己的CPU使用率,而这些使用率加起来可能会超过物理CPU的实际使用率。然而,这并不意味着物理CPU的使用率真的超过了100%,而是由于虚拟化或容器化技术的资源隔离和分配机制造成的。
问题四:cpu的软中断和硬中断
打个比方,你在家里打电话,如果这时候有人敲门,你中断了打电话的行为就叫做软中断,而如果是因为电话线出了问题导致你的电话中断了,这就叫做硬中断。
软中断
也叫同步中断。软中断是由CPU执行中断产生指令时产生,是由程序预先实现好的,不是随机的。
此外,为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断来完成。
硬中断
也叫异步中断。是由硬件设备依照CPU时钟信号产生的,即意味着中断发生具有随机性和突发性,能够在指令正在执行时发生。例如键盘中断。硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等,主要是用来通知操作系统系统外设状态的变化。
中断请求分为两个阶段:
第一阶段(上半部请求):接受硬件中断请求(从硬件中取完数据后发送一次软断请求,复杂逻辑交给下半部分请求),称为硬中断,特点是处理速度快
第二阶段(下半部请求): 内核线程接受到上半部分软中断请求,就会异步的继续执行上半部未完成的请求, 称为软中断,特点延迟执行
举个网络接受数据例子: 当网卡接收到数据时,首先会发送一个硬中断请求,这个时候CPU就会执行中断处理程序,快速将网卡中数据读取到内存中,完成后会发送一个软中断请求,下半部被软中断信号唤醒后就会按照网络协议栈将内存数据进行解析处理,最终递给应用程序。(处理期间还是可以响应其他硬中断请求的)