之前一直困惑任务一直在运行,CPU是如何提高使用效率的?下面博主将按照自己的的理解来说明这个问题。

图中有两个任务A,B按照以往没有操作系统的情况下就不需使用一个任务一个任务的运行所以连个任务运行完就的22个周期
但是有了操作系统情况就不一样了,虽然CPU只有一个,但是操作系统会使用硬件的定时器中断来切换任务来实现多任务的情况,那我们就来计算下在有操作系统的情况下两个任务运行的周期数,按理说总时间大小应该取决于任务周期长的那个任务即11.5个周期,这样计算是不是没有啥毛病?但是并不是说同一时刻两个任务都在运行,在单CPU的情况下还是只有一个任务在运行,即在任务睡眠的时候将切换到下个等待运行的情况所以总时间就应该是 1(A)+1.5(B)+1.5(A)+2(B)+2(A)+2(B)+2.5(A)+3(B)
+1(A)=16.5个周期,但是还有任务切换的时间,一般是大于16.5个周期的,但是比22个周期要小。
有些人或许会问任务为啥会有休眠状态,那我们就拿一个具体的例子来分析下,比如读写磁盘,大家知道CPU的时钟主频很快的,每秒钟可以处理很大的数据量,但是硬盘的主频却CPU慢得多,所以CPU会等待磁盘的响应,此时可以调用系统的sleep来达到任务调度的效果让cpu去做别的事。
那是不是说操作系统可以提高所有任务的CPU使用效率呢,并不是,比如说任务A是取出1-100之间的奇数,任务B是用于取出1-100之间的偶数,此时两个任务没有必要设置休眠时间。所以这种情况下就不能提高。

博主阐述操作系统多任务如何提高CPU使用效率。无操作系统时任务依次运行,有操作系统则利用定时器中断切换任务。以任务A、B为例,计算出有系统时运行周期小于无系统时。还指出如读写磁盘等情况可通过任务休眠调度CPU,但并非所有任务都能借此提高效率。
3032

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



