操作系统是如何提高CPU的使用效率

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

之前一直困惑任务一直在运行,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之间的偶数,此时两个任务没有必要设置休眠时间。所以这种情况下就不能提高。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值