基本概念
1、物理CPU、逻辑CPU、CPU核数
(1) 一个物理CPU上有多个CPU核,如果采用了intel的超线程技术(HT), 就会再多出一倍的cpu核出来
(2)一般情况下,逻辑cpu数=物理CPU*cpu核数
(3)如果采用了超线程技术,则正常逻辑cpu数=物理CPU*cpu核数*2
top看到的cpu个数以及java中的Runtime.getRuntime().availableProcessors()获得到的都是逻辑cpu数。
2、 队列中的记录通常是进程的进程控制块。
3、CPU调度决策可在如下四种环境下发生
(1)当一个进程从运行状态切换到等待状态 例如,I/O请求或调用wait以等待一个子进程的终止
(2) 当一个进程从运行状态切换到就需状态 例如,当出现中断
(3)当一个进程从等待状态切换到就需状态 例如,I/O完成
(4)当一个进程终止
当调度只能发生在第一和第四种种情况时,称调度方案是非抢占的,否则调度方案是可抢占的。采用非抢占调度,一旦CPU被分配给一个进程,那么该进程会一直使用CPU直到进程终止或切换到等待状态时释放CPU
查看Android设备CPU信息
查看物理CPU的个数
#cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
查看逻辑CPU的个数
#cat /proc/cpuinfo |grep "processor"|wc -l
查看CPU是几核
#cat /proc/cpuinfo |grep "cores"|uniq

本文介绍了CPU的基本概念,包括物理CPU、逻辑CPU和CPU核数。讲解了如何查看Android设备的CPU信息,并探讨了CPU调度的重要性。文章详细阐述了CPU调度的四种环境,区分了抢占式和非抢占式调度。接着,列举并解析了多种CPU调度算法,如FCFS、SJF、优先级调度、转轮法(RR)和多级队列调度。最后,讨论了多CPU的负载均衡问题以及调度算法的评估方法。
最低0.47元/天 解锁文章
1526

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



