查看: 2986|回复: 3
收起左侧

[原创文章] 【MYts】D5引擎原理详解及常见实时优化原理算法解析!!!

[复制链接]
qwe542398
发表于 2012-11-21 18:59:44 | 显示全部楼层 |阅读模式
一.什么是进程调度?
无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。

二.基本属性
1.多态性 从诞生、运行,直至消灭。
2.多个不同的进程可以包括相同的程序
3.三种基本状态 它们之间可进行转换
4.并发性 并发执行的进程轮流占用处理器


三.基本状态
1.等待态:等待某个事件的完成;
2.就绪态:等待系统分配处理器以便运行;
3.运行态:占有处理器正在运行。
  运行态→等待态 往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
  等待态→就绪态 则是等待的条件已满足,只需分配到处理器后就能运行。
  运行态→就绪态 不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。例如时间片用完,或有更高优先级的进程来抢占处理器等。
  就绪态→运行态 系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态

三.进程调度分级
高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:
  高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存运行;
  低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;
  中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换

四.常见进程调度算法
先进先出算法
  算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
  例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,
  执行情况如下图:
  对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。
  可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。
  最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First)
  该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
  例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行  进程调度期分别是16、12、4和3个单位时间,执行情况如下图:
  P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。
  该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。
轮转法
  前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。
  简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。
  多级队列方法:将系统中所有进程分成若干类,每类为一级。
多级反馈队列
  多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权。
编辑本段
进程调度的实现

引起进程调度的原因
  正在执行的进程执行完毕或因发生某事件而不能再继续执行;
  执行中的进程因提出I/O请求而暂停执行;
  在进程通信或同步过程中执行了某种原语操作如P操作、阻塞、挂起原语等;
  在可剥夺式调度中,有比当前进程优先权更高的进程进入就绪队列;
  在时间片轮转法中,时间片完;
  △通常系统是按先来先服务或优先权形式来组织调度队列。
进程调度算法
  其中,RQ为就绪队列指针,EP为运行队列指针。



以上摘自百度百科:http://baike.baidu.com/view/1380355.htm


常见的外国优化软件理论解析:

1.asc和tup
  要说优化软件中最出名的非这两个莫属,asc在进行实时优化时的方法比较稳定,但是效果不明显。
  这里重点讲下tup,tup有两种实时优化一种是加速启动,一种是优化反应。主要原理是通过降低不常用的进程的优先级从而达到分配给经常使用的进程更多的资源,从而提高反应。

2.阿香婆
  阿香婆现在的实时优化主要是提高软件启动速度,方法在百度百科就有了。

3.pl
  由于pl发给我的邮件。。所以不能公开发布相关的算法和不能引用。。。

常见的国内优化软件理论解析

国内的优化软件从加速精灵到加速大师等等,都是采用提高前台进程优先级和限制CPU使用率达到实时优化的效果。


D5引擎解析

1.优化判定
D5引擎与国外的优化软件不同的地方就是优化判定,一般的实时优化是通过简单的判定进行分别,不考虑其它可能性。而D5引擎对进程调节前会对进程进行优化判定从而达到最好的效果。

2.C3算法
进程占用大于10%,+1
进程占用小于10%,-1
运行时间大于10m,+1
运行时间小于10m,-1
程序动作大于10个,+1
程序动作小于10个,-1
当进程+3时,-1
在有进程+2时运行新进程,-1
当cpu占用大于百分之50,-1
cpu占用小于百分之10,
子进程小于3,+1
子进程大于3,-1
+3时启用新进程,新进程+1,旧进程-1
父进程启用子进程时若为相反数则父进程归0,子进程+1,子进程结束后父进程+1
当进程优先级为-3时,+1

3.误判情况
大家如果用C3算法做出实例就会发现C3算法对游戏进程的误判会非常严重,而且需要很高的网速。
D5引擎当然也存在这种情况,但是不同的是在于云加速反转计算。

4.云加速
那么如何应用到云加速呢?
  很多人质疑myts是否真的有云加速,那么我们来看下myts的解决方案。
  我们想到云就会想到服务器,那么是否真的需要服务器呢?
  我们举个简单的例子:
在软件中设置变量如下:
3
2
1
0
-1
-2
-3
我们分别用3到-3一共七个变量代表了七个优先级。
到这里我们仅需要一个文本或者一个网页就可以做到云加速了,比如qq.exe需要最高优先级。
那么,
QQ.exe 优先级 3
当软件读取文本时,查找qq.exe,得到的数值是3,那么将它设为3所代表的优先级。
是不是很简单呢,当文本中不含有的话就使用C3算法计算,计算后再发给作者,作者可以再次验证是否合理。合理的话就可以更新到文本中了。
通过以上方法可以使开发者能够更统一和方便的管理库,用户也不用再为总是要升级进程库而烦恼了


5.云加速反转计算
D5引擎为了避免优化判定出现误判,从而引用了云加速反转计算的方式。首先通过读取云端的列表,再进行D5独有的算法进行运算,两者之间的值相差大于或等于1时,取中间值并四舍五入。如果云端没有列表,就会自己进行反转计算,通过C3算法判定后再通过D5引擎自己的算法判定,哪个值与0相近就取哪个值。

6.引擎分配
1.平均分配,对所有进程采用普通优先级
2.优先分配给系统,对系统进程的优先级默认为高
3.实时分配,对非系统进程的进程进行分析并分配一个适合的优先级。这个优先级不是不变的,而是会随着进程的状态的不同而改变。




进程调度对普通用户的好处?

windows本身有个进程调度的简单设置,相信大家都有见过就是那个分配给前台还是后台先的系统设置。
一般windows默认是分配给前台先,但是这样却会出现经常有的问题。比如在对窗口进行切换时会出现顿卡现象。这个就是由于系统资源大部分给前台了。当后台的程序变为前台时,系统就是即时调整了,但是如果CPU跟不上的话就会出现这种现象。

如果使用第三方的进程调度,可以使系统资源分配更加合理,因为分配得更加合理自然就能减少耗能。


如何测试
今天卡饭有个用户提出用super pi 进行测试。这个方法我并不认同,
Super π是一款计算圆周率的软件,但它更适合用来测试CPU的稳定性。
进程调度并不是用于提高CPU性能,而是为了更加合理的分配资源,所以用常见的软件根本测试不出。但是一个好的进程调度系统的性能会远远高于一般的进程调度系统。比如linux和windows。。。。
如果非要测试,建议进行cpu吞噬测试以及测试cpu吞噬后的恢复正常的速度
streamgo
发表于 2012-11-21 19:13:06 | 显示全部楼层
强烈支持!顶一个!赞!

基本等于公开了程序的思路了。万分感谢!
韩小墨
发表于 2012-11-21 19:18:52 | 显示全部楼层
  支持一下
qwe542398
 楼主| 发表于 2012-11-21 19:20:22 来自手机 | 显示全部楼层
streamgo 发表于 2012-11-21 19:13
强烈支持!顶一个!赞!

基本等于公开了程序的思路了。万分感谢!

如果要写很简单的。。就是加减乘除然后用如果真、如果或者判定。。。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-23 04:24 , Processed in 0.137481 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表