我以为一个核心负责处理一个线程。那么,当有人说一个进程占用了 75% 的资源时,这是什么意思?是内存吗?计算能力?
答案1
问题
某个进程使用了 75% 的 CPU 资源是什么意思?
我以为一个核心负责处理一个线程。那么,当有人说一个进程占用了 75% 的资源时,这是什么意思?是内存吗?计算能力?
比喻
让我们打个比方:想象一位双手灵巧的名人坐在桌旁签名。
技术规格
以下是该系统(整个签名活动)的规格:
明星(CPU)正在签名(做工作)。
有一排粉丝(流程)上前来要求他在照片、签名簿、衬衫、身体等(记忆、文件等)上签名(做工作)
这位名人有双手(手心)并能用双手写字。
有些粉丝是 VIP (优先等级较高),因此可以插队并在桌边停留更长时间。
有些是普通粉丝,他们自己排队(单线程),而有些是“高级用户”,比如经理和其他商务人士(多线程),他们有几位助手(线程)拿着宣传材料排队,这样他们就可以一次完成更多工作(让他用双手而不是一只手签名)。
明星的经纪人(安排员)站在桌子旁边,决定明星是否在一位粉丝身上花费了足够的时间,是否必须转向下一位粉丝。
排列
现在让我们研究一下可能发生的不同类型的情况。
CPU 使用率和温度
高使用率
如果线路很短,那么他就以较低的速率(低 CPU 使用率 %)工作,并且不会变得太热,因为他不会以最高速度移动。
使用率低
如果排队很长,他就必须以更快的速度签名,直到达到他能够达到的最大速度,以跟上进度(高 CPU 使用率),并因额外的工作而感到疲惫。
线程
单线程
如果是普通粉丝,他会用一只手在照片上签名,粉丝便会离开。如果粉丝想要更多签名,他会尽力满足,但如果队伍太长,他会道歉,粉丝必须回到队伍后面再等一轮。
多线程
如果高级用户来到桌前,情况与普通粉丝完全相同,但因为他用双手签名,所以他可以在将商务人士打发到队伍后面之前完成更多工作。
优先事项
普通的
如果普通粉丝到达签售会现场,他们必须排队等待。
高的
如果有 VIP 到达签售会现场,他们可以先于普通粉丝进入,与其他 VIP 一起在靠近桌子的位置等候。他们到达后还可以在桌子旁停留更长时间。
低的
如果“低级别/优先权人士”(名人的助理?员工?巡演工作人员?)到达签名会现场,他们必须排队,但到达时允许普通粉丝排在他们前面。他们还必须更快地被赶到队伍的后面,以便优先权较高的人能够拿到他们的签名。
应用
那么,在给定的场景中,如果某个进程使用了 75% 的 CPU,会发生什么情况?
好吧,想象一下明星工作室的营销主管带着两名助理来到签售会现场,要签名一大堆照片,这些照片将在宣传活动中赠送。这位主管需要处理多个线程,而且优先级很高。
队伍不太长,因此这位明星不慌不忙地随意签名。
这位高管让两位助理插队,然后他们插队到队伍前面,迅速来到桌子旁。他们把一叠照片放在桌子上,明星立即开始用双手签名。
他加快了签字速度以适应大量必须完成的重要工作,但由于队伍不太长,他的体能只发挥到 75%(他的最高速度)。
由于助理们很重要,所以他们在桌子旁边待了好一会儿,但最终经理让他们回到队伍中,以便其他已经等待了一段时间的球迷能轮流坐一会儿。
答案2
一个核心只能处理一个任务,这个任务就是你的操作系统,这是正确的。它占用了整个 CPU、所有核心,但并没有真正用尽它的全部能力。这些未使用的时间被分配给操作系统的子进程。
这里需要用到一种叫做调度程序的东西,它针对不同的正在运行的进程,采用不同的方法来划分处理能力。
首先,考虑将 100% CPU 分成几个大小相同的时间片。现在,调度程序为每个进程分配一个或多个时间片,并在其中进行处理。
每个任务获得多少个切片取决于任务实际使用了最后一个切片的多少以及它必须有多大的反应能力。如果你有多个核心,每个核心都会有自己的一组时间片来分配给不同的进程。这称为循环调度(最简单的调度程序之一)。
事实上,这要复杂得多,因为进程必须对键盘按下(硬件中断)或程序故障(软件中断)等实时事件做出反应。但基本上这就是它的工作原理和时间百分比的测量方法。
答案3
这与您的进程占用的 CPU 时间量有关。多任务处理是通过上下文切换来实现的,切换速度非常快,以至于用户感觉多个程序同时运行。现在,对于上下文切换,有几种算法可以定义分配给特定进程的处理器时间量。给进程的时间太少,上下文切换开销就会大大增加,导致机器响应缓慢。时间片很大,意味着一个应用程序正在使用大量的 CPU 时间,而其他应用程序则会滞后且无响应。使用的资源百分比是正在使用的 CPU 时间量。