2007年5月2日星期三

高手对50人口的理解(WAR3)

高手对50人口的理解--第一季(兽族篇)
为了兑现对大家的承诺,今天带来高手对50人口的理解--兽族篇
希望大家在看了之后会有帮助,有不足之处还望大家指教
今天我们先来说4K。GRUBBY
兽族的地洞是10个人口,高手们在长期的对战中已经养成了习惯在2本好之前出3个地洞也就是40人口的兵力,我们来看看瓜比是如何处理的
1。如果是打不死狗流的话,而且地图比较大。为了尽快的让飞龙走出来,他会选择2本后的继续单先知,这样不但能2本好后迅速放下双BE,还能双BE好后立刻出俩只飞龙。不出2英雄是为了要有足够的钱,同时也是为了省下英雄的5个人口来出飞龙。其主要目的就是为了在第一时间把龙出来让对方的小G的任何计划打消逃回家中,控制住地图。其最近的例子就是WC3L总决赛4K VS MYM瓜比在TM打LUCIFUER 那场,由于早出飞龙瓜比稳稳的把路大大压在家中很长一段时间。2英雄出的很晚,最后取得了胜利。当然有的时候面对一些2流选手他干脆连2英雄都不出了。建议大家不要学习

2。如果是打其他族正常打法的话,你会明显看到瓜比即便在造了4个地洞的时候也并不是第一时间爆出40人口,那么他在干什么呢?对了,他在侦察,高手们对50人口的组合非常看重,尤其是不死选手。能迅速拼凑出相当有质量的50人口科技化部队,其瞬间的爆兵能力令人惊叹。当然这都是后来要介绍的内容。40人口的瓜比绝对是在侦察对方的兵力组成后才决定其最终50人口的兵力组成。当然世界级的高手都是相当诡异的,哪能轻易让你看出门道来,所以瓜比往往是观察对方的建筑,人口,MF的怪,科技情况,英雄等级,经过多方面考虑后选择这决定胜负的40-50人口,再配合他前期扎实的操作,良好的大局观,往往会逼的对方先亮出自己的底牌,于是瓜比会选择最佳组合的50人口来迎战对方。大家要注意了,这40-50是瞬间爆出来的。因为兽族在这个时候是3个建筑,再加上兽族的兵本来人口基数就大,所以非常突然就成型了。可以绝对的说,50人口的决战世界上很少人能够赢瓜比。他往往因为出色的各方面表现在50人口的时候能开出一片矿来而对方打不掉


高手对50人口的理解--第2季(兽族篇)

关于50人口,我们就着瓜比的例子再说几点情况
1。当瓜比遇到的对手实力很相近,让他前期的优势不足以积累出一片矿时。他会先把第5个地洞造出来(60),部队在MF的同时侦察对方是否爆出50人口。相对于人族动不动就坚持不住要爆人口来说,兽族的人口压的很死,当瓜比要主动与人相遇或者通过侦察感觉到即将与对方相遇时,他会突然爆出50人口,因为这一仗下来需要损失人口,所以打完以后人口又会降回50,相当于省去了补充兵力的时间,钱也还是维持着10元的增长率。效率非常的高

2。有人要问有优势的瓜比开矿期间爆不爆50人口,答案是:不。在这方面,可以说他就像是一个机器人一样,第2片矿不造成,他是死活也不会爆50人口的。又有人问,万一对方利用这2分钟时间爆到60多人口来与瓜比决战怎么办?回答是:历史上经常有这种情况但瓜比很少被打败了,现在让我们来分析一下瓜比为什么能在50人口对对方60多人口还能够把对方逼回城的原因
首先,他要的是兵的质量而不是数量,压着50人口的瓜比会经常选择升级攻防。都是同样的兵但是质量却不同了
其次,他身上有良好的装备,商店是肯定占住了,群疗群补无敌什么都有。英雄的等级也高于对方
再次,他有充分的心理准备,开矿的同时不停的MF并且侦察对手是否爆兵。在短兵相接的时候不会因为对方的兵比自己的多就做出错误的判断,大家都知道瓜比的进攻性很强,是会第一时间利用对方的英雄位置不好把他赶回城的。
最后,我前面说过,瓜比会很清楚的分析自己在前期的优势,不到开出一片矿的优势他是不会开的,所以本来他就占有优势,对方比自己多10个人口的兵通过123点都能弥补。所以很难打下来,很经典的一场例子就是瓜比和队友CREO在GW的一场比赛,经过前期的交锋CREO被压在家中,而瓜比则顺利的开出离CERO很远的一片分矿并且在附近MF,这样的好处我不用说大家也知道了,所以说以后大家开矿不要关想着开离对手最远点的分矿,还要考虑到分矿附近MF的情况,如何让2英雄的等级快速的提升,瓜比就是这方面的专家。CREO一波将近70人口的部队压过去,就被瓜比一个速度卷轴加网加围化解了。等对方再来瓜比已经爆出50人口了。。


高手对50人口的理解--第三季(兽族片)

上一季我们讲到,瓜比成功的开出了分矿,接下来很自然的爆出50人口,不过这个爆也不是一般的爆,是瞬间爆,多场录象统计,分矿开成后的瓜比会在一分钟之内爆到65人口,之后是70人口,爆到这,就不再爆了。为什么呢?我想这也是许多中国选手值得学习的地方,一个高手,对前中后期的理解不能偏废,有人说前期看操作,中期是综合实力,后期是意识的比拼。我想说的是,加上主要就更确切了,一个真正的高手是在打法狂野,飘逸四射的同时无不隐藏着稳健的作风,瓜比在70人口的时候停一下,是要看看对方又在这个时候搞什么把戏,剩下这10个人口就是来对付他最后的转型的。这招对不死族尤其有用,因为你实在是很难从BC+BH就看出来他到底想干什么,组合实在太多了,不能乱猜。摸清楚了之后就可以爆出最后10个人口也就是70-80人口的制胜兵种了,例子不能光举正面的

下面来分析一下瓜比在80人口还输的那一场,也就是上一篇提到的TS图80人口对决路大大赢挂比,路大大为什么能赢,就是因为他动了动脑子。
1。其余几大不死看到瓜比分矿成型后,都是急于和对方决战,但是往往正中圈套,这里面也偶尔有思路不错的,比方说SWEET的50人口一拨,速度很快,科技含量也比较高,就是英雄等级底了点,运气好了能赢几吧,但还是不稳。
2。有些不死想拆一拨地洞。然后趁对方爆不出人口,自己突然爆人口,这个想法在以后几季还会讲到,是合理的。但是大家注意到瓜比往往很注意自己苦工的走位,让对方的的小G包不住整个地洞,拆的速度很慢,自己损伤也很大,就这么一小点操作就够自己回程救的了。有的时候还会互拆,有时候甚至还炸弹人炸的你爆不出人口。总之,你可以学到瓜比的思路但是很难学到他的时机,真的就像全图一样。
3。路大大的那场比赛前期应该说打的不错,瓜比没占多大光,但是对不死的霸气表现还是让他开起了自己的分矿。分矿好后老老实实在那等着,买一买装备等着决战,这一等不来二等不来,派出去侦察的狼又一一被歼灭。正当瓜比恍然大悟想改变一下作战方针的时候,人家已经练了3-4处怪,80人口成型,英雄等级不差,部队组成合理,人们一直在说是因为牛没操作好身上有这个那个没点上输了,我觉得不是,即使牛身上的东西用完了我认为还是路大大赢,所以说高手有的时候也愿意犯经验注意错误,希望大家借鉴
对于瓜比来说,第三矿不开起来是不会爆80人口的,而且我发现即使三矿开成了他也有点不情愿爆。因为第一矿要干了嘛。一爆就是要和人决战,意图把人口降下来,高手的钱在他们眼里真是钱,到一般人那就无缘无故的浪费了,我经常看见人族拖着51或者53人口的兵到处走,真是为他心疼钱啊!
仔细分析后会为大家发出第4季,是关于人族50,80,100人口的理解,兽族的理解就为大家介绍到这里,希望对你们有帮助~~


手对50人口理解--第4季(人族篇)

人族更多是依靠整体的力量,相对于其他族那么突出的英雄来说,人族的AM有时候在后期就是个累赘。这就决定着它和其他族的不同,团结就是力量,人族的兵种需要组合起来,多元化,立体化,才能适应现在时代的要求。目前世界上的人族高手,大家都知道的有SKY TOD 和INSOMNIA ,其他弱一些的还有SHOWBU INFI STORM SYC GUANGMO等等。他们的风格各有不同,下面综合的来说一下。

SKY选手的进攻性很强,在我们讨论的50人口范围内。他在对HUM NE ORC的时候都有用到,由于大家都注意其战术和操作,所以往往忽视了他对人口的理解。可能是由于SKY他练习太多的原因,我始终看不出他比赛的思路,似乎他的思路有时间性,就是说这次比赛我打兽人是这样的,下次就是那样的,大概的东西没变,可仅仅是进攻的时机,2英雄的选择变了我们就能看出他和以前的一拨流有很大的不同。关于他对50人口的一个完美诠释,这里可以给大家介绍一下,就是CEG西安站他和ZACARD在EI那场的比赛,选择了山丘作为2发英雄,接下来的思路就是练山丘,而ZAD看到该来的一拨没有来,开起了自己的分矿,补充装备,SKY在这期间一直压着50人口,攒了不少的钱,冲进其家中矿拆地洞,之后TP,回家以后马上就看见他所有出兵的建筑都在闪,而且还到下面去买雇佣兵,瞬间爆了15个人口,购买群疗群补后和ZAD决战,ZAD爆不出人口欲哭无泪。CEG西安站小组赛的比赛,SKY和众多人族选手分在一个小组,和GUANGMO 的那场比赛就比较有意义。50人口的比拼直接把对手压在家中,自己依然维持着50人口,当然不能是想当然了,侦察的作用不可替代。方法就是用破法跟着,这个魔免的单位分一个出来跟随对手再好不过了。在3本好了之后,SKY爆出了50人口。除了内战之外,每个高手都基本掌握了爆兵要突然这个原则,要不就不爆,要爆就多爆点,打的对方喘不过气来。打NE SKY的一拨是压50的,一拨没下来就不得不爆了,科技上有劣势不能兵力上也劣势吧?

为什么说人族打不死难,难是多方面的,在这里仅以人口的方式说一下,相同水平的人族和不死,部队组成互相克制,人族别想赢。很明显的例子是BN第4赛对前鬼王REGIN对insomnia,完美人族单矿的打法在前期很完美,没什么失误,多次抓到对方MF,但到不死最强一拨的时候还是打的INSO很难看,而这一拨稳稳的压着50人口,不死族的选手对50人口看的比任何一个族都重要,对于他们来说,爆出50人口就意味着放手一博,要和你决战了。INSO 将近70人口的部队和对方周旋了很长时间才将其拿下,所以说单矿的人族打不死,还有钱方面的劣势,你不爆50人口就打不过,爆了就亏钱,但是明知亏还要爆,这种心情其他族是很难理解的,就好像被兽人压在家中的UD一样,明知对方在外面练的很爽,却只能在心中默默的忍。

关于人族内战,TOD喜欢三本,还有一些选手也喜欢,那么在小地图上,就无所谓50不50了,我们经常能看到俩个人族选手在55或者58人口的时候来一场小决战,这就是各自刷小聪明的表现,都觉得对方不会爆的,我先爆兵打他一拨又降回人口。这种技巧在高手之间运用的很娴熟,到后来渐渐也就形成默契了。

正是由于一会儿要压,一会儿又不要压比其他族要复杂多的,所以才难写。像SKY和FOV的一场LT三矿还要压50人口攒3000+钱再爆兵。还有其他一些选手有自己的想法,光从录象很容易分析错他们的思路,误导了观众。


高手对50人口理解--第5季(UD篇)

在关于UD的50人口方面,重点围绕优秀亡灵选手MYM。LUCIFUER来讲解,同时又请来了SWEET和FOV作为辅助讲解。相信看完之后会对你有帮助,也希望你把自己宝贵的意见提出来,大家共同进步
在昨天刚刚结束的WE对MYM的比赛中,路大大以一人之力完成对对方的ALL KILL,其操作的优秀,战术的选择,对地图的理解无不给观众们留下了深刻的印象,而这4场比赛对人口的诠释也是相当的出色。对于一个亡灵来说,金钱就是他的生命,亡灵们习惯了过一个矿的生活,不死分矿极其麻烦的步骤使不死族成为了开矿最难的一个族。那么他们只能以压50人口来维持自己的经济相对较好。路大大在对UD方面,总还是想开出自己的一片分矿的,因为种族之间不能C使双方的攻击输出小了许多,而所有的C都用来救自己的兵又使得部队的防御力强了很多,在50人口的时候很难分出胜负,但是优势是可以占据的,这个时候他只需要积累出一片矿的优势,人口提前造好,在分矿好后突然爆出来就可以了。在这里想举个反面例子的他的对手TED,从最近的俩场录象看他是一个倾向于的战术主义者,TED的追求是卡时间,也就是游戏画面中上面的时钟,在加上他对蜘蛛的理解使他成为一个高手,但在对50人口的理解方面,确实还值得像老鬼王们学习。
前几天RTB的一场比赛TED和UST的一个人打,在50人口的时候占据了优势,这个时候他不是选择一片矿,也不是选择侦察对方是否爆人口,想当然的就造了一只冰龙达到57人口,只是将自己的战术意图实现了,用冰龙克制对方的天地双鬼,而剩下的却没考虑,如果换了路大大一定是清一俩拨怪压一拨,发现对方爆了他不得不爆才爆,拖到自己的分矿成型,再突然爆出。有人说UST的那个人和TED实力相差很多,用不着管那么多,快点灭了就算了。我想说的是,昨天NGL路大大打TED实力悬殊不?你认为路大大在和TED打之前心里没什么把握吗?但是比赛的进程中我们看到路大大还是和对待SWEET,FOV一样,打的非常的稳健。开起自己的分矿后,突然转出4只胖子,到70人口停一下看看对方的变化,然后决战,其对待人口的理解与瓜比惊人的相似,让我不禁感叹,想要战胜自己的对手必须先学习对方身上的长处,人口这方面可以说路大大完全学到了。

在对ORC方面,由于稍稍有点劣势,所以如果操作不甚压很容易被对方压在家中,开起一片矿。在这里不想说过多关于战术方面的东西,只想说说50人口的一拨。这一拨是现在很流行的,前一阵子SWEET喜欢狗加蜘蛛的一拨50人口,再往前一段时期FOV喜欢狗加4毁灭的一拨50人口。最近开始流行狗加1-俩只天鬼在中期不亏,48人口时压过去同时升级毁灭,决战时俩个车子腾空50人口整。战术在变大家看到人口没变,这就是本质的东西,是高手对游戏的一个深层次的根本理解。

在对NE方面,UD是有一点优势的,但是NE战术的多变使的高手们也不是从容就能应对的,50人口的一波压过去,组合很多样。当然有些时候高手们要用他们最强的一拨来保住自己的分矿成型,这涉及到地图的原因和分矿地形的原因也有对对方英雄发展潜力的考虑。这里想说一下有点例外的一场,也就是BN第4赛季SASE对FOV,比赛在TR上展开,50人口的FOV并没有让SASE打出GG,形成了单矿打S双矿的局面,这个时候我们看FOV回城后又补了个BC。之后一直维持着50人口,MF了几处怪,积攒了2000+的钱,而这个时候SASE已经爆到87人口了。突然!FOV爆人口了,4个建筑都在出兵,钱就像水一样瞬间全没了,FOV爆出了76人口!这里的道理就是高手宁愿多造一个出兵的建筑,让爆人口的时候迅速点,也不愿意爆出50,兵一点一点的出,让钱白白的浪费掉,也起不到出其不意的效果。稍微算一算你就可以知道他们的思路是很正确的,但是国内很多选手却。。。。。。

在对人族方面,高手UD们目前习惯用最高的机动性的部队来牵制对手的兵力,像昨天的SKY对路大大,路大大除了最后时刻转了蜘蛛以外,一直都是在用道具,英雄等级和天鬼在撑场面,其对人口的出色理解使对手矿干的时候他拥有3000+的钱,但我们看到最后他又压回了50人口,原因是他的第一片矿干了,UD们有这个资本经常压着人口,因为越往后打兵种相克的作用就越小了,随着英雄等级的提升,技能杀伤性的增强使得对比赛的理解发生了变化。当然SKY选手也是相当出色的,随时随地的侦察,三本好后才爆出50人口,而且爆兵的速度也很完美,可以说那是一场经典的比赛。


高手对50人口理解(大结局-NE篇)

NE:一个多变的种族,战术因为MOON的存在而无穷之多,又因为召唤英雄之多而变化多端.对手往往最惧怕的就是变化.所以NE一直不是一个弱势种族.我们熟知的选手有MOON,SUJU,REMIND,CREO,ZEUS,SHOURTROUND,STNITI,等等.

MOON选手对人口的理解很飘逸,他经常在大图上愿意开矿,开到俩个矿的时候才爆人口,像前一阵子W3联赛上就利用GW这张图大,他召唤了兽王加前期爆兵很大程度上限制住了瓜比,控制住了地图 ,等到瓜比冲出来了他已经多矿并且不断利用战鹰对对方的地洞进行打击.多矿的MOON对人口并不是很重视,他主要还是重视操作和战术.

单矿的MOON有的时候卡一拨人口发动总攻,有的时候直接爆人口,比别的NE都来的猛烈,吹风的时候MOON部队成型正好是50人口会和对方决战,但是胜败不是由人口决定的,因为对方也50人口,像前一阵输FLY那场就是50人口决战他输掉了.出熊的话MOON一般都会尽快的造出自己的第5个月井,直接爆出50,爆出不久就和对方决战了,这主要是因为对方的科多消化满且占人口,多出点熊会把原来的熊都给打出来直接让对方GG,要不然你压50没意义,等对方消化了你再去又被吞.

但是SUJU就不是了,他非常重视这50人口,除非他发现对方爆了,他才赶紧爆,有人说那么来不及了吗,他一般都选择缩在家里爆,爆到60了再出去,从他和ZAD的几场比赛录象来看,先压着人口也没什么不好,看对方爆自己再爆能为打后期持久战省下钱,也许你最终就赢在这点经济优势上.如果SUJU一拨被打回家,他就不敢爆了,选择50人口再冲出去,因为群疗群无敌等道具还是要购买才有的拼的.

2007年5月1日星期二

Intel HD Audio工作原理(部分)

原著:David Roachwe

Intel HD Audio Codec 层
codec与主板交汇于codec的针脚。codec与软件层交汇于转换器单元, 例如DAC、ADC, 连接在Intel HD Audio总线上。
http://i.cmpnet.com/audiodesignline/2006/09/Fig93.png

声卡插座与转换器之间的信号流是由声卡的功能驱动定义的。(Microsoft UAA class driver for Intel HD Audio)通用音频结构高清晰度音频类驱动程序包括codec的拓扑分析模块,它使用默认寄存器中的针脚配置数据来决定使用哪一路内部信号。
如果一个系统配置为独立多信号流,而你想要显示整个系统中的所有信号流,你需要创建位于其它层之上的分离层,每一层内都包含一个软件层。
主板层可以包含一个或更多的codec层,每个codec层当中包含一个软件层。codec的音频信号经由编号A至G的插座端口传送,主要是模拟信号, 但例如S/PDIF, ADAT, I2S, PWM之类的数字信号同样支持。
保真度指标是codec设计制造中重要一环。洁净、稳定的电源供应,codec内模拟信号的保真度通常要高于主板层的保真度。
Intel HD Audio总线,控制器,总线驱动程序
从信号流的角度看,Intel HD Audio 总线,及其控制器、总线驱动程序对音频流来说是透明的。总线那里是不发生音频处理过程的。就信号流来说,你可以把Intel HD Audio信号通道看作是是一条无损的直线。就流程图层来说,你可以氢Intel HD Audio总线看作是硬件层与软件层的分界线。Intel HD Audio总线上跑的是数字信号,没有模拟信号通过这条总线。
Windows XP中的内核模式软件层。内核模式软件层与codec相交于Intel HD Audio总线。内核模式软件层与用户模式软件层的交汇处是用户模式与内核模式的分界线,音频数据缓存块就是越过这条分界线进行复制,音频数据在复制中可以进行相关的处理。
每个codec层都包含有内核模式软件层. 每个内核模式软件层当中都包含一个用户模式软件层。软件层中的所有音频信号都是数字的。 软件层的信号保真度取决于信号的位深与采样率。 软件层中引起保真度降低的另一个原因是不正确使用DSP所致。
图9.4显示了在Windows XP系统中使用Windows Media Player (WMP) 播放7.1环绕声时的信号流。 你可以看到8声道的信号经过WMP内建的的EQ与SRS模块插件进行处理。接下来这个信号传送至Direct-Sound接口,过渡至用户模式。 DirectSound同样有处理信号的能力,虽然通常没有对来自Windows Media Player的音频流进行处理。信号通过系统音频驱动、 PortCls驱动,但以上过程都不对信号进行任何处理,他们等效于一条直线。
http://i.cmpnet.com/audiodesignline/2006/09/Fig94.png

前方两声道的音量调节是由Wave滑动条控制。KMixer同时也将所有输入音频流转换成与KMixer输出能相混合、格式一致的的音频格式。在输入音频流数量超过驱动的支持时,KMixer能够对输入音频流进行缩混。
内核输出中最后阶段的处理在驱动中是一个可选项。当虽然Microsoft UAA class driver for Intel HD Audio对此没作处理,但多数codec厂商提供的Windows XP声卡都包含各种各样的处理信号处理,例如第3章所提到的。
图9.5显示了一个使用Net Meeting进行语音通讯的近似图。一个单声道麦克风信号用作语音输入。位于miniport驱动中的一个处理节点是降噪处理,接着信号通过PortCls传送至分配器模块。 这个流是相对KMixer而言的: 当KMixer接收多输入流并将其混合成一条输出流时,分配器占用一条输入流并提供给多个应用程序。如果你打开一个波形录音程序, 这个程序也能从分配器接收到同样的信号。从功能上看,这个分配器相当于专业音频系统中的分配放大器。KMixer 同样为每个应用程序请求提供不同的采样率与格式。
http://i.cmpnet.com/audiodesignline/2006/09/Fig95.png

系统音频设备,Legacy API转换层,以及WaveIn()端口对音频信号通过不产生影响, 对信号流来说,他们等效为一条直线。
这个输出流程与7.1的输出流程非常相似,尽管在这个案例中应用程序是使用WaveOut() API而不是DirectSound。与DirectSound不同的是,WaveOut()在音频信号传送过程中没办法作任何处理。
有一个辅助的层在这张图中没有显示出来。每个信号处理节点能执行一个或多个类型的处理, 并且处理的顺序能按需要作改变。限压器位于EQ前、与限压器位于EQ之后产生的效果是差别很大的。图上的每个信号处理节点更进一步显示内部发生的处理过程。图8.4至8.7 显示了处理节点中典型的DSP功能列表,但他们不包括DSP连接的附加内部详细资料。
对Windows XP来说,应用程序与KMixer之间的信号通道的采样率与位深是由应用程序决定的。KMixer与codec之间的信号通道的位深是由驱动程序初始化时决定的,KMixer与codec之间的信号通道的采样率通常是由播放时的最高采样率决定。
Windows XP系统中的用户模式软件层。内核模式软件层与用户模式软件层的交汇处是用户模式与内核模式的分界线,用户模式软件层与用户的交互是通过应用程序的图形用户界面(GUI)。这一层通常位于音频流程图中的最里面。用户模式软件层显示在图9.4与9.5中心。运行中的每个应用程序都显示在自己的层,输出都在KMixer被混合。所有用户模式信号处理对象,例如DirectShow filters或Media Foundation Transforms通常由应用程序的进程调用运行,因此他们可以看作是应用程序的其中一部分。

Windows Vista系统中的用户模式音频引擎层(The User Mode Audio Engine Layer)。新的WaveRT驱动结构允许用户模式共用引擎与音频硬件之间的直接通讯,因此信号不再流经内核模式层。换句话说,共用音频引擎感觉自己像一个用户模式的驱动程序。Windows Vista标志系统认证程序使用WaveCyclic或WavePCI驱动程序, DPC与ISR的时间限制是如此的低因此禁止在内核中进行大量的信号处理, 因此即使这些类型的驱动程序被使用,也没有机会在内核中进行处理。输出信号处理在Media Foundation Transform (MFT)中进行,Local Effects (LFX), Global Mixer, 以及Global Effects (GFX),按照这个顺序。 输入信号使用以上相反的顺序,虽然GFX仅在输出中是可用的,不适用于输入。一个分配器代替了mixer。 图9.6显示了与图9.4同样的应用方案,但它根据Windows Vista结构作过调整。 Windows Media Player在MFT中执行它的EQ and SRS处理。 然后信号不作任何处理传送至Streaming Audio renderer与WASAPI层,在这以前它是被按顺序送至LFX、the Global Mixer、及GFX。
全局mixer以及GFX各自为每个音频节点使用独立的句柄,当MFT以及LFX为每个应用程序使用独立句柄时。LFX很适合用来处理virtualizers, spreaders, and downmixers, 因为输入的声道数能够与输出声道数不相同。 全局mixer执行音量调节与混合功能,但与KMixer不同的是,它不执行任何SRC操作。GFX执行的输出流处理很大程度上貌似Windows XP中miniport driver的处理方式。
http://i.cmpnet.com/audiodesignline/2006/09/Fig96.png

通常地在流程图的最里面,Windows Vista应用程序层由应用程序单独组成,在这以前所有从MFT到硬件的单元都是由全局音频引擎控制,运行中的每个应用程序都显示在自己的层,输出都在KMixer被混合。
综上所述
图x9.7把Windows XP的所有层综合显示在一起,虽然尺寸比较小,但 你能够看到整个信号流程。本图的大尺寸版本可以从本书的相关网站获取。
http://i.cmpnet.com/audiodesignline/2006/09/Fig97.png

当构思系统音频流时,总是设法从这张完整图表着手思考。为每个应用 方案创建单独的整体流程图,并沿着信号通道检查所有点是否有信号损害。
图w9.7展示了一个使用后面板上的共享ADC多路转换输入接口连接双声道线路输入信号,通过一个双声道ADC录音的应用。同一时间,Windows Media Player正在以96 kHz 、24 bits方式播放一个7.1的文件 (合计8个声道),输出到绿色、橙色、黑色、及灰色插孔,与此同时声音控制面板正在播放一个22kHz、16bit的单声道声音。这个流被混合到KMixer,并在7.1扬声器中的两个前方声道播放。不幸的是,Windows XP系统中没有为系统声音设置单独的音量控制,因此他们可能发出很高的音量的声音,除非他们是以低于正常电平录制的。
在另一个分离的使用Net Meeting的实时通讯流,A与B端口与一组头戴耳机连接。软件处理语音信号代替了以前miniport驱动程序和KMixer。
这只是许多实际应用中的其中一个,你会为系统中每一个可能使用的情景创建一个相似的图表。

蔡司主义

蔡司,这个创造了无数传说的光学巨人,在制作了一大批具有极高水准的高端产品的同时,对其低端产品仍然保持一丝不苟的态度。有蔡司以后,享受超高成像质量不再是富人俱乐部的专利。一支P50/1.7足以让你一窥摄影的精彩世界,仅仅千余元的P45/2足以和价格几倍于它的镜头分庭抗礼!作为一个以盈利为目的生产厂商,一分钱一份货本无可厚非,但是蔡司做到了一分钱三分货。以下是本人对蔡司的不负责任的狂想,取名蔡司主义。喜欢的色友不妨进来多看两眼,不喜的朋友尽可以嗤之以鼻.

嗬嗬,不知不觉又到了年末写总结的时候。总结嘛,当然是承前启后,总结过去展望未来!可是这个,这个康泰克斯,展望未来?开玩笑吧,起码近n年(和kyocera的契约结束以后)应该不会有什么未来吧。虽然也有传闻Zeiss要为contax发展数码机身,即便是真又能怎样?本人乃是顽固不化的胶片派!既然没有现实的未来,可是阻挡不住咱们想象的翅膀!网络世界嘛,虚拟现实,咱们就来无限YY一番 题目就叫蔡司梦幻镜头之YY
这里YY的都是已经设计成型,并且有原型机,只是由于种种原因没能投入到市场的镜头。
1 梦幻镜头之广角篇
PC-Apo-Distagon 25mm F3.5
在广角镜头比如Distagon结构上,由于是前后非对称的retrofocus结构,因此高次的色差不能被完全消除。蔡司在很早以前就注意到这个问题,并且和长焦镜头一样,试图通过加入具有折射率异常分散的镜片加以纠正(Apochromatic)。因此,1994年诞生了Distagon 21/2.8,并且一度讨论过是否用ApoDistagon来命名它。在此基础之上蔡司还试制了一支PC-ApoDistagon 25/3.5。又是蔡司擅长的25mm!1980年蔡司打造了PC-Distagon35/2.8。相信用过的朋友一定对它的优异品质赞不绝口。而这支PC-ApoDistagon25/3.5那就更是惊世骇俗了。从MTF来看,和PC-D35/2.8一般的超大像场,方便移轴,解像力和D21/2.8相仿,但是平坦度远超D21/2.8!如果这支镜头投入市场的话,那么,那么,老蔡已经开始结巴咯。单单一支PC-D35/2.8就定到39万日元的价格,我们是不是仅仅只能流口水?看到它的超超强性能是不是要砸锅卖血?!!¥#%……?〉
http://static.flickr.com/117/314882573_9e1fb1475d_o.jpg

D25/1.4 和D18/2.8
这两只镜头都有试做品,在蔡司的HP上能够找到它们的规格和构成。似乎都是1976年设计,均包含非球面镜片一枚和浮动镜片结构。可能是蔡司认为,连佳能都有FD24mm F1.4 S.S.C.,而自认为持光学设计及制造之牛耳的蔡司为了面子问题而开发的吧。纯属个人臆测,不负任何责任.

说到Distagon F1.4,那么就不得不让人联想起著名的D35/1.4,几十年前的设计,至今仍然被广大摄影爱好者所推崇。那么这支D25/1.4,虽然比D35/1.4的取景角度大了将近18度,但是在光圈全开的时候依然达到同等的解像能力。收到F2.8以后,从中心到变角更是达到良好均一解像,虽然是30年前的设计,但是和现在的镜头相比仍然毫不逊色!对D25/2.8的周边效果感到不满的朋友(D25/2.8有它的成功之处,或许只有蔡司才有这个本事吧),那么相信如果有可能获得这支D25/1.4的话应该不会再有怨言。这么好的镜头,怎么没有上市?先看看它尺寸把。长达130mm,比D25/2.8长了一倍多!这哪里是广角镜,分明又是一支巨炮,P135/2也不过如此嘛。再看看当时的市场情况。参照一下D28/2。够优秀的吧,但是在商业上是失败的。也就是说不管你性能有多高,没有一个合理的价格的话,那么市场是不会买你的帐的。连D28/2都卖不动,那么这支D25/1.4(相信价格又在倍以上)到底能有谁买呢?!

蔡司的梦幻长焦
在Y/C口上,焦距上了300mm以上的梦幻镜头有Mirotar 500mm F4.5(定价217万)和Mirotar 1000mm F5.6(定价470万)!这两只集蔡司折返望远镜头之大成,都是预约订制。由于是折返式结构当然也就不存在色差问题,当然也就无法用Apo来命名了。1986年石破天惊诞生了超超高性能的Tele-Apotessar T* 300mm F2.8,成为令蔡司迷夜不能寐的一品。可是价格也高到200万日元,非我等庶民所能及。除了上述3支镜头以外,在蔡司的数据库里面还有Tele-Apotessar T* 500mm F5.6 ,Tele-Apotessar T* 800mm F8 两支。外形,镜片构成,MTF一应俱全,由此推测,至少有试作品问世。除此之外还有一支Tele Apotessar T*600mmF4的白镜,白色镜身上印有巨大的Zeiss蓝色logo,实在够骚!

Tele-Apotessar T* 600mm F4
据传闻:此头曾经为纪念2000年在东京展出过。重达11.3公斤的怪物。设计的时候动用了蔡司显微镜以及电影镜头的Know-how,最短摄影距离为3.7m,可做1:4的放大摄影。Apochromatic设计完美除去二次色散,据说仅仅玻璃就用了6公斤之多!在加工上,专门采用了新型的液体结合工艺(?)用来减小热胀冷缩带来的负面影响。从加工精度上来讲,达到半导体工业水平,据说比一般的镜头精度要高出50倍。此头虽然有专配的1.4Mutar,但现行的Mutar II III也均可使用。此头的目的不在于批量生产,而是测试蔡司镜头设计,制作水平的一块试金石!

一般来讲contax的蔡司镜头,由于其优秀的描写性能,被广泛用于广告和自然风光摄影。但是不得不说的是,由于RTS机身的不可靠性(和尼康,佳能相比)极少用于新闻报道。也就是说在400-800mm这部分焦距的需要也极少。需求量不能满足生产的需要,叫好不叫座的镜头那也只能是胎死腹中了。随着ZF镜头的复活,那么对于这些梦断京瓷的梦幻镜头能不能的一复活呢,还是让我们拭目以待。

2007年4月29日星期日

CGI Historical Timeline

http://accad.osu.edu/~waynec/history/timeline.html

NetBurst: A Processor with Replay System

xbitlabs 经过数月的研究写成的报告
Prescott: The Last of the Mohicans? (Pentium 4: from Willamette to Prescott)
里面介绍了 P4 NetBurst 鲜为人知的架构秘密: Replay Queue
前两天用了 5 个小时慢慢的看了上下两篇文章,看完以后让人心里发毛....
L1 miss 以后竟然会执行出错误计算结果,然后指令进入 Replay Queue 被重新执行一遍
这就是 P4 架构效率低下的主要原因
简介(我对文章分析的理解):
P4 NetBurst 因为为了提高频率,采用了超长流水线,从而导致了 Decoder 和实际的 Execution Unit 相隔了很多个时钟周期
这个时候如果执行两条 Dependent Instructions 的话,就会出现麻烦:例如
mov eax, [ecx]
add ebx, eax
这个时候 [ecx] 所指向的数据不知道在 L1/L2 还是 RAM,甚至 Page File 中。如果等第一条指令的结果出来以后
Decoder 再发送第二条指令到流水线,那么第二条指令就要用十几个时钟周期才能传输到 Execution Unit,这将造成严重的流水线气泡,使效率降低一大截,是不可取得方案。而 Intel Netburst 设计团队想出了让人觉得不可思议的处理方法:
注意仔细阅读...........
首先记住 P4 Northwood 的 L1 Cache 延迟为 2 Clks,L2 延迟为 7 Clks
当遇到上述的 Dependent Instruction Chain 的时候,Netburst 会在发送 mov 指令的两个周期之后发送 add 指令,假设数据在 L1 中。
如果数据确实在 L1 中,那么两个 Clk 之后,数据就会到达 register,这个时候两条指令以 100% 效率运行,很不错的设计 呵呵
但是:当数据不在 L1 的时候,也就是 mov 产生了 L1-Miss,这个时候 add 已经离两个 clk 就要到达 Execution Unit
但是 L2 Cache 里去取数据的话需要 7 Clk。由于流水线里的指令不能后退,而把整个流水线停止来等待数据也是很不可取得方法
这个时候,add 指令就会被 错误的执行。而相关的电路监测到了这个情况,就会在指令结果被写回的时候
把指令废除,而进入一个称为 Replay Queue 的执行单元,顾名思义,Replay = 重放,也就 add 指令要在7 clk 之后被再次送回流水线执行。因为 L2 延迟为 7 Clk,所以如果数据在 L2 中,7 clk 之后正好到达 L1/Register,从而得出正确的结果。
但是,事实远比这个复杂。如果数据不在 L2 中,会发生生么???
add 指令 7 clk 后仍然被 错误执行,所以还会被 第二次送入 Replay Queue重新执行第三次
这种状况将一直持续下去,直到数据到达 Register。结果是,如果 [ecx] 的数据在 RAM 中,这条指令将被重复执行数十次,直到得出正确的结果
http://www.xbitlabs.com/articles/cpu/display/netburst-1.html
http://www.xbitlabs.com/articles/cpu/display/netburst-2.html

新手买牛的建议【少花冤枉钱】

随着原色牛知识的普及和养牛技术的普及,大家慢慢懂得穿出自己属于自己的牛仔裤是一件很令人激动的事情。于是新人们都想进一条或者几条的原色牛来养。为了避免新手在购牛的时候多花冤枉钱,所以我在这里把新手买牛常见的误区简单的说明一下。1.牛越贵越好 典型的攀比心里。越贵越好但是不一定适合你,对吗?大家不要“只买贵的不买对的”!建议新手入门不要盲目的听别人说某某的裤子怎么贵,怎么好。老老实实选择一条中低档原色日牛或者Nudie的RRDS来养起,至于什么津巴布韦的棉花,阿波正蓝的染法,还是作为你下一条裤子的选择吧。2.牛越多越好 一个新手往往因为攀比心里第一次就买3-4条原色牛那是根本没有必要的。完全养好一条人工染的原色牛大概需要9-18个月,你买那么多原色牛根本穿不过来,甚至最后会打击自己的养牛信心。建议大家开始买一条,等养成功了,再购入新的;如果有投资的想法,除了元年,LVC(555)和极小部分日牛有收藏价值的以外,其他的牛都不会升值,买来就是为了穿的。3.牛越限量越好 有些人开始盲目的追求限量了。限量从denimer给我讲的经济学角度来讲:限量产品如果发行失败,损失很小因为产量很小;成功了以后可以定型限量大规模生产,限量成了问路石。当然限量有的时候也会有些独特的地方,或者送送小礼品,但是相对其高昂的价格,并不适合广大入门的新手。如果你不是钱烧的,老老实实进条平民版吧。4.天然染的最好 染色是日牛的核心和灵魂。各个品牌的日牛的染色工艺都是不传之秘。天然染的成本大概是人工染的2-3倍,售价也高的惊人。所以新手们可能觉得天然染比人工染贵那么多,当然好了。其实天然染说落色及其有特点是要以极大的耐心作为基础的(12-24个月),而新手们恰恰的缺少这种耐心。买了这种牛却极难落色最后会彻底击跨入门新手的信心。5.越重磅越好 我在这里不是说重磅不好,而是说对于新手入门来说,往往对于重磅有一种迷信。其实重磅是棉花拧的比较紧,并不一定是棉花质量好;而且重磅并不一定耐磨,重磅新手穿起来肯定是非常不舒服的。所以建议新手入门选择一条14-17oz的牛,不要选择19oz以上的牛,那样对你是一种折磨。最终建议:新手入门买一条中低档次(18000日元)的日牛或者欧洲风格的Nudie RRDS作为入门,老老实实养好第一条入门裤子,等完全掌握了脱浆,洗裤子,上浆等等一系列养牛技术以后,再考虑根据经济条件上一些极品的牛。

深入Windows Vista 内核:PartI

本文的范围仅限于对 Windows Vista™ 内核的更改,尤其是对 Ntoskrnl.exe 和与其紧密关联的组件的更改。请记住,在 Windows Vista 中还存在许多其他重大更改,但这些却超出了内核的范围,因此本文将不予以说明。其中包括对外壳(如集成的桌面搜索)、网络(如新的 IPv6 堆栈和双向防火墙)和下一代图形模型(如 Aero™ Glass、Windows® Presentation Foundation、桌面窗口管理器和新图形驱动程序模型)的改进。而且未涉及的内容还包括新的 Windows 用户模式和内核模式驱动程序框架(UMDF 和 KMDF),因为在较早的 Windows 版本上它们在后级别才是可安装的。CPU 时钟周期计数  Windows Vista 包含了进程和线程方面的大量增强功能,其中包括使用 CPU 时钟周期计数器以较公平地进行 CPU 分配,以及使用新的多媒体类计划程序服务 (MMCSS),它有助于媒体应用程序提供稳定的播放。  所有 Windows NT® 版本,包括 Windows Vista 程序在内,大约在每 10 ms 或 15 ms(毫秒)执行一次间隔计时器中断例程,间隔取决于硬件平台。该例程查看它所中断的线程并更新线程的 CPU 使用统计数据,就好像该线程在整个间隔期间都在运行,而事实上,线程可能仅在间隔就要结束前才开始执行。而且,从技术上讲,可能已经为线程分配了 CPU,但却一直没有机会运行,因为执行的是硬件和软件中断例程。  虽然对于报告线程和进程 CPU 使用情况的诊断工具来说,基于时钟的时间计算是一个好方法,但是,若由线程计划程序使用该方法将导致不公平的 CPU 分配。默认情况下,Windows 客户端版本上的线程最多可运行 2 个时钟节拍(如果是在前台中运行则为 6 个时钟节拍)。然而,根据线程在系统上的行为和其他活动,线程实际上可能在 CPU 上根本没有时间或是最多得到 6 个时钟节拍(如果是在前台中运行则为 18 个时钟节拍)。    图 1 显示了两个具有相同优先级的线程同时准备好运行时发生的不公平情况。计划程序假定线程 A 在整个间隔期间内运行时,线程 A 一直运行到下一时间片间隔过期,因此也就可以确定线程 A 已运行完毕。而且,在线程 A 运行期间发生的中断应由线程 A 完全负责。在下一间隔内,计划程序挑选线程 B 来接续,并且要在整个间隔内运行。http://www.microsoft.com/technet/technetmag/issues/2007/02/VistaKernel/zh/fig01.gif图 1 不公平的线程计划  在 Windows Vista 中,计划程序使用现代处理器的时钟周期计数器寄存器精确地跟踪线程所执行的 CPU 时钟周期数。通过估计 CPU 在一个时钟间隔内能够执行的时钟周期数,它可以更准确地在 CPU 上布置轮循。另外,Windows Vista 计划程序不会根据线程的轮循计数中断执行。这就意味着,在 Windows Vista 上,线程始终会得到至少一次在 CPU 上运行的机会,而且永远不会执行多个额外时钟间隔,这使应用程序的行为更公平,也更具确定性。图 2 显示了 Windows Vista 如何响应图 1 中所示的情况,方法是为两个线程提供至少一个时间片的执行间隔。http://www.microsoft.com/technet/technetmag/issues/2007/02/VistaKernel/zh/fig02.gif图 2 Windows Vista 基于时钟周期的计划“查看进程的 CPU 使用情况”边栏说明了用户如何通过使用 Process Explorer 实用工具监视进程的 CPU 时钟周期使用情况。多媒体类计划程序服务  用户期望多媒体应用程序(包括音乐和视频播放器)能够提供无缝的播放体验。然而,其他同时运行的应用程序(如防病毒、内容索引甚至是邮件客户端)对 CPU 的要求会带来不和谐的因素。为了提供更佳的播放体验,Windows Vista 引入 MMCSS 来管理多媒体线程的 CPU 优先级。    像 Windows Media® Player 11 这样的多媒体应用程序使用能够表明其多媒体特性的新 API,通过 MMCSS 进行注册,它必须与下列按名称排列的注册表项之一匹配: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\Multimedia\SystemProfile\Tasks    各种任务注册表项可指定与不同多媒体类型相关联的线程为 CPU 和图形处理器资源获取的首选级别(尽管在 Windows Vista 中未实现图形处理器资源管理)。图 3 显示了在干净安装 Windows Vista 后其中一个任务注册表项的内容,尽管第三方开发人员能够添加自己的任务定义。http://www.microsoft.com/technet/technetmag/issues/2007/02/VistaKernel/zh/fig03_L.gif图 3 多媒体类计划程序音频任务定义 (单击该图像获得较小视图)     在 %SystemRoot%\System32\Mmcss.dll 中实现且在服务主机 (Svchost.exe) 进程中运行的 MMCSS 具有可在优先级 27 运行的优先级管理线程。(Windows 中线程优先级的范围是从 0 到 31。)此线程将已注册的多媒体线程的优先级推进到另一个范围内,该范围与任务注册表项(如图 4 所示)的计划类别值相关联。在 Windows 中,线程优先级 16 及更高级别处在实时优先级范围内并且高于系统上的其他所有线程(除了内核的内存管理器工作线程,该线程在优先级 28 和 29 运行)。仅管理帐户(如执行 MMCSS 的“本地系统”帐户)具有设置实时线程优先级所需的提升优先级权限。  在播放音频文件时,Windows Media Player 注册音频任务线程;在播放视频时,Windows Media Player 注册播放任务线程。对于已经指明它们在拥有前台窗口的进程中运行时并且在将任务的定义注册表项中的 BackgroundOnly 值设置为 True 时将同时传递流的所有线程,MMCSS 服务会对其进行提升。但是在 MMCSS 想要帮助多媒体线程获得所需的 CPU 时间的同时,它还想确保其他线程至少也能获得一些 CPU 时间,这样,系统和其他应用程序才能保持响应能力。因此,MMCSS 为其他活动保留了一定百分比的 CPU 时间,并在以下注册表值中进行指定: HKLM\Software\Microsoft\Windows NT\Currentversion\Multimedia\SystemProfile\SystemResponsiveness     默认情况下,此比例为 20%;MMCSS 监视 CPU 的使用情况,以确保在其他线程需要 CPU 时,在 10 ms 期间内提升多媒体线程所占的时间不超过 8 ms。为了使多媒体线程不占用剩下的 2 ms,计划程序将其优先级设置在 1-7 级的范围内。您可以通过阅读“查看 MMCSS 优先级提升”边栏了解 MMCSS 是如何提升线程优先级的。基于文件的符号链接  Windows Vista I/O 的相关更改包括基于文件的符号链接、更有效的 I/O 完成处理、对 I/O 取消的全面支持以及优先 I/O。  终于在 Windows Vista 中见到符号文件链接(或如在 UNIX 中那样称作软链接)了,许多人认为它是 NTFS 中缺少的文件系统功能。NTFS 的 Windows 2000 版本引入了符号目录链接(称为目录接合),允许用户创建指向其他目录的目录,但是在 Windows Vista 版本发布之前,NTFS 仅支持文件的硬链接。  Windows 解决符号链接和目录接合所采用的方式的最大区别在于处理所发生的位置。Windows 在本地系统上处理符号链接,即使它们引用远程文件服务器上的位置。Windows 在服务器本身上处理引用远程文件服务器的目录接合。因此,服务器上的符号链接可以引用仅从客户端才能访问的位置(如其他客户端卷),而目录接合则做不到。为了解决这个问题,Windows Vista 支持适用于文件和目录的新符号链接类型。  已经对许多文件系统命令进行了更新,以了解符号链接的含义。例如,Delete 命令知道不要跟随链接(这样会导致目标的删除),而是要删除链接。然而,由于不是所有的应用程序都能正确地处理符号链接,因此,创建符号链接需要新的创建符号链接权限,而默认情况下,仅有管理员才具有该权限。  您可以在命令提示符下使用 Mklink 命令创建符号链接。命令提示符的内置目录命令通过用 标记符号链接并在括号中显示目标的方式标识符号链接,如图 5 中所示。Windows 资源管理器也可识别符号链接,并使用快捷方式箭头显示。可以通过将“链接目标”列添加到浏览窗口中来查看资源管理器中的链接目标。http://www.microsoft.com/technet/technetmag/issues/2007/02/VistaKernel/zh/fig05_L.gif图 5 使用 Mklink 创建符号链接 (单击该图像获得较小视图) I/O 完成和取消  对 I/O 系统所做的大量更改可改进服务器应用程序的性能。这些应用程序通常使用称为完成端口的同步对象来等待异步 I/O 请求的完成。在 Windows Vista 之前,当此类 I/O 完成时,已发布 I/O 的线程将执行 I/O 完成工作,这可切换到线程所属的进程并中断所有正在进行的其他工作。然后,I/O 系统将更新完成端口的状态,以唤醒正在等待完成端口进行状态更改的线程。  在 Windows Vista 上,I/O 完成处理不必非由已发布 I/O 的线程执行,但是必须由等待完成端口将其唤醒的线程来执行。这个相对较小的更改避免了不必要的线程计划以及可能造成应用程序和系统整体性能下降的上下文切换。为了进一步提高性能,服务器可以从一个请求的完成中检索多个 I/O 操作的结果,避免转换到内核模式。  从最终用户的角度来看,I/O 系统中最可见的更改可能是 Windows Vista 所支持的取消同步 I/O 操作。如果曾经执行过 net view 命令或试图使用 Windows XP 或 Windows Server® 2003 访问过脱机远程系统的共享,您就已经体验到了无法取消的 I/O 操作问题:直到网络超时过期后,命令或文件浏览器才能响应。应用程序没有选择,只能等待,直至操作失败,因为它没有办法告知正在执行 I/O 的设备驱动程序不需再理会 I/O 了。  在 Windows Vista 中,大多数 I/O 操作都可以取消,包括 Net View 和资源管理器使用的打开文件 I/O。然而,必须更新应用程序以响应最终用户的取消 I/O 请求,而且许多与具有超时设置的设备进行交互的 Windows Vista 实用工具已得到必要的支持。例如,实际上由每个 Windows 应用程序(包括第三方应用程序)使用的文件打开和保存对话框现在允许在试图显示文件夹内容时启用“取消”按钮。在按 Ctrl+C 时,Net 命令也可取消其同步 I/O。可以通过在 Windows Vista 上打开命令提示符并键入以下内容来查看 I/O 取消所带来的好处: net view (\\nonexistentmachine)    在 Windows 试图联系不存在的系统时该命令将挂起,但可以通过键入 Ctrl+C 来终止该命令。在 Windows XP 中,Ctrl+C 不会产生影响,并且直到网络操作超时后命令才会返回。  在 Windows 以前的版本中会引发用户问题的另一类 I/O 就是设备驱动程序不能正确取消的 I/O,因为设备驱动程序轻易不会知道它们应该这样做。如果曾经终止过进程,但随后发现它在进程查看工具中有所延迟,那么,您已经亲眼目睹了设备驱动程序无法对进程终止做出响应,并且取消由未完成进程发布的 I/O 这两个过程。直到所有进程的 I/O 已经完成或已被取消,Windows 才能执行最终进程清理。在 Windows Vista 中,设备驱动程序能够很容易地注册进程终止的通知,因此,大多数无法终止的进程问题也就迎刃而解了。I/O 优先级  虽然 Windows 始终支持 CPU 使用情况的排列优先级,但是却未包括 I/O 优先级这一概念。如果没有 I/O 优先级,搜索索引、病毒扫描和磁盘碎片整理等后台活动会对前台操作的响应性带来严重的影响。例如,用户在另一进程正在执行磁盘 I/O 时启动应用程序或打开文档,则该用户将体验到延迟,因为前台任务要等待磁盘访问。同样的干扰也会影响到多媒体内容(如硬盘上的歌曲)流播放的质量。  为了有助于前台 I/O 操作获取首选项,Windows Vista 引入了两个全新类型的 I/O 优先级排列:单独 I/O 操作的优先级和 I/O 带宽保留。Windows Vista I/O 系统内部包括对五个 I/O 优先级的支持,如图 6 所示,但是仅使用了四个优先级(Windows 的未来版本可能支持“高”优先级)。  I/O 具有“中等”默认优先级,内存管理器想要在低内存情况下将脏内存数据写到磁盘中从而为其他数据和代码在 RAM 中留出空间时,将使用“关键”优先级。Windows Task Scheduler 将具有默认任务优先级的任务 I/O 优先级设置为“低”,并将由执行后台处理的应用程序(为 Windows Vista 而编写)指定的优先级设置为“非常低”。所有 Windows Vista 后台操作(包括 Windows Defender 扫描和桌面搜索索引)均使用“非常低”I/O 优先级。  系统存储类设备驱动程序 (%SystemRoot%\System32\Classpnp.sys) 强制使用 I/O 优先级,因此也就自动应用于指向大多数存储设备的 I/O。类和其他存储驱动程序将“中等”I/O 插入到队列内优先级为“低”和“非常低”的 I/O 之前,但是至少应每秒发布一个等待“低”或“非常低”I/O 的操作,这样后台进程才可以向前进行。使用“非常低”I/O 读取数据还会使缓存管理器立刻将修改写入磁盘,并绕过读取操作的预读逻辑,否则它会优先从正在访问的文件中进行读取。请将边栏“查看“非常低”I/O 优先级”作为使用 Process Monitor 实用工具的“非常低”I/O 优先级的示例了解一下。  Windows Vista 带宽保留支持对于媒体播放机应用程序非常有用,Windows Media Player 将其连同 MMCSS 优先级提升一起使用,以提供对本机内容近乎稳定的播放体验。媒体播放机应用程序要求 I/O 系统确保它能够以指定速率读取数据,如果设备能够以请求的速率传递数据而且现有保留也允许的情况下,它将针对发布 I/O 的频率以及 I/O 应具有的大小两方面为应用程序提供指导。I/O 系统不会为其他 I/O 提供服务,除非它能够满足在目标存储设备上做出保留的应用程序的要求。  在 I/O 系统中值得一提的一个最终更改与 I/O 操作的大小有关。因为第一版 Windows NT、内存管理器和 I/O 系统已将单独存储 I/O 请求所处理的数据数量限制为 64KB。因此,即使应用程序发布了一个更大的 I/O 请求,也会被分解为最大大小为 64KB 的多个请求。每个 I/O 都导致了转换到内核模式的开销并在存储设备上启动 I/O 传输,因此在 Windows Vista 中,存储 I/O 请求大小将不再受限。已对一些 Windows Vista 用户模式组件进行了修改,以利用对更大 I/O 的支持,包括资源管理器的复制功能和命令提示符的 Copy 命令(现在发布 1MB 的 I/O)。