2009年12月31日星期四

Don't boil the ocean!

甭想把整个海洋煮沸
  要更明智地工作,而不是更辛苦地工作。跟你的问题相关的数据太多了,你也可以做出很多分析。但对于其中的大多数数据和分析要忽略。

  ——————————————————————————–

  麦肯锡会收集足够的事实来证明或反驳一项假设,会收集足够的事实来支持或否决一项分析,但事实够用就行了。这只是以事实为基础的分析在商界运用的另一面。再多一点就是浪费时间和精力了,而时间和精力都是宝贵的商品。

  我得到这个教训是在有一天晚上,已经很晚了,我还在起草关于客户竞争对手的"事实集录"。我已经收集了成堆的数据,当时正在绞尽脑汁想从中得出一些新的看法。我的项目经理维克走进了我的办公室,他手里拿着公事包和外衣,问我工作进行得怎么样了。我告诉他,工作进行得很顺利,但我想我可以多归纳出一些图表。他拿起我的草案,翻了翻,说:"艾森,已经11点了。客户会喜欢你这样。在这儿,没有人比你更孜孜以求。今天到此为止吧,甭想煮沸整个海洋。'守是我们同乘一辆计程车回了家。

  "甭想把整个海洋煮沸"
的意思是别试图分析所有的事情。要有所选择,找出你做事情的优先顺序。一旦知道你所做的已经足够时就停下来。否则的话,你会花费许多的时间与精力而收效甚微,就像为得一把盐而去煮沸大海一样。

西游记知识

1、为什么猴子被五指山压住,他不变小出来?

答:孙悟空的老师是菩提祖师,属于道家的神仙。如来用五根手指化做五行山,以金木水火土五种基础元素压住孙悟空,又贴上六字真言,属于道家加佛家杠上开花的禁制。而孙悟空在如来掌心翻筋斗的时候,如来的手掌看上去不过荷叶大小,他却翻不出去,这说明如来的变化程度大于和快于孙悟空。


2、为什么他大闹天宫时无敌,而取经时次次搬救兵?

答:可以参考宋江,当他被整编为大宋政府军第108集团军中将司令之后,征方腊就损兵折将。但是之前,他进攻大宋政府军的时候,所向披靡。这个变化,就叫做体制化。另外,孙悟空之前是一个自由职业者,听从了观音的建议后,成了一名职员。职员工作时,不借用其他友邻部门的力量,而要单打独斗,那才是怪事。(详情请大家参考:为什么孙悟空大闹天宫时所向披靡,西天取经中却菜得喷血?)


3、玉皇大帝和王母娘娘是母子还是夫妻?

答:没有关系,他们之间是清白的。西王母在中国历史中出现得远比玉皇大帝早,玉皇大帝是后来道士们发明的天界一哥,把王母娘娘变成一个开瑶池Party
的女主人。他们勉强可以算作是同事关系,但是,王母娘娘的资格要更老一些,所以玉帝要参加她的蟠桃大会,为她祝寿。


4、为什么唐僧每次都不相信悟空的话,非要说别人不是妖精?

答:观世音把孙悟空交给他时交代过,这个人有历史问题,不能轻易信任,唐僧忠实地执行了这一命令。他清楚地知道,自己作为孙悟空的直接上级,冤枉孙悟空一万次都没有关系,大不了你辞职走人嘛。但是,唐僧绝对不敢得罪自己的直属领导观世音。


5、猴哥以前在东海想干吗干吗,后来为啥总说自己水性不好?

答:孙悟空以前下水是要念避水诀的。但是,被压了五百年之后,长期没有人交谈,他就变成了话痨,见谁都要狂喷一气。这样,他就无法一直专心致志地念避水诀了。此外,孙悟空在长期的职场生涯中也明白了一个道理:工作,一定要在领导面前做,所以他要叫猪八戒他们去诱敌出水,然后在陆地和空中表演给唐僧看。


6、到底是谁先传出吃唐僧肉可以长生不老的?

答:九九八十一难既然是用来考验唐僧的,说明就是设计好的局。那么,谁设计的局,想一想不就明白了吗……


7、为什么孙猴子的火眼金睛看不出牛魔王变的猪八戒?

答:请注意,牛魔王和孙悟空曾经是拜把兄弟。如果牛魔王本事不如孙悟空,大家怎么可能结拜?此外,之所以会有变形术,就是为了抵御三灾利害。牛魔王是高级魔怪,说明他已经抵御成功,所以也就能反火眼金睛。


8、孙悟空是不是暗恋唐僧的?

答:不是。暗恋唐僧的是白龙马,为了唐僧,他不惜在车迟国变成女身色诱敌人。孙悟空对于唐僧有斯德哥尔摩综合症,唐僧是他无法逃避的苦难,所以最后他变成了唐僧的坚决拥护者。这不是爱,而是唐僧用紧箍咒和话痨长期奴役的结果。


9、在最后拿经的时候那俩看经书的问猴子他们要好处,和尚给了他们那个紫金钵,很心疼的样子……猴子不是会变那么多东西,为什么不变个给他们?

答:因为变化出来东西,无非是个障眼法,本质还是一根猴毛。如来如果看不出来,当年怎么能把孙悟空压住?孙悟空根本就不会动这个念头,因为他知道根本无效。这就说明,你一次把别人收拾得服服帖帖的,以后对方就不会动任何邪念。


10、最后,为什么唐僧不肯分点肉给妖精们吃?

答:因为他很早就知道,这是游戏规则,别人要的,一定不能给。否则,为什么是他当孙悟空的领导呢?


11、为什么大闹天宫时,玉帝直到最后关头才去请如来佛祖?

答:关于玉帝直到最后关头才去请如来,是因为西方雷音与天庭政府是两个实质分立的实体,而非从属关系。一旦请如来出马,天庭可能会在以后的西方外交中处于被动地位从而付出巨大的代价。从大圣降伏后诸神仙对如来的殷勤态度也可以看出,天庭实际上是很折面子的。而从后来唐僧在西天取经途中对各路神仙大加劳碌的情况来看,天庭付出的代价也十分地明显。

深入DSP/BIOS的API函数 - 软件中断管理SWI

SWI模块管理软件中断服务程序。这些中断服务程序与HWI硬件中断服务程序有密切关系。一般情况下,会将日常的大多数处理函数放到这些软件中断服务程序中管理运行。


一、SWI模块概述


在DSP/BIOS内核中,系统管理并运行的线程分为四个等级:硬件中断服务程序、软件中断服务程序、任务和后台空闲函数,优先级依次降低。每个软件中断服务程序都对应一个函数,当然,每个软件中断夜可以单独设置优先级。高优先级的软件中断会抢占正在执行的低优先级的软件中断(因此可以说DSP/BIOS是一个基于优先级的抢占式实时内核)软件中断都是通过DSP/BIOS内核的API调用来启动。一旦启动了一个SWI对象,此时,系统将为该SWI对象中的函数创建一个运行时间表。因此,当一个软件中断被启动后,其对象函数不一定会立即执行,而是会按照时间表在执行队列中根据优先级排队等候运行。DSP/BIOS根据软件中断优先级来判断是否要暂停当前运行的线程。
为了便于控制,系统为每个SWI对象都设置有一个16位的邮箱(Mailbox),可以利用邮箱的值有条件的启动这个软件中断。系统内核会自动维护邮箱的管理。DSP/BIOS内核提供了SWI_disable和SWI_enable操作来禁止或允许软件中断。同时还为软件中断设置有15个优先级,最高优先级为SWI_MAXPRI(14),最低优先级为SWI_MINPRI(0),0优先级为KNL_swi对象保留,KNL_swi对象的任务是执行任务调度程序,该对象由内核自动创建,高优先级的软件中断会打断正在运行的低优先级的软件中断。如果启动的两个软件中断的优先级相同,那么先启动的软件中断会先执行。

中断线程(包括硬件中断和软件中断)都是使用相同的堆栈来执行的。当中断发生时,新的线程就会添加到栈顶,系统会执行一次任务切换(Context
Switch)。由于高优先级软件中断会打断低优先级的软件中断的运行,所以SWI模块在运行高优先级软件中断前会自动保存寄存器中的内容。在高优先级软件中断运行完成后,寄存器会恢复原来的内容,以便继续运行原来的低优先级中断。如果没有启动其他高优先级的软件中断,低优先级的软件中断就会运行。DSP/BIOS内核虽然具有抢占的特点,但如果没有导致任务切换的API函数调用,系统则不会主动切换道其他线程去执行的。(理解这点在实际应用中很重要,即如果现在运行的是低优先级软中断对应的函数,如果你不在函数中调用如SWI_post()启动更高优先级的软件中断或启动了比自身低的优先级中断,则当前软中断就不会被打断,执行直到退出)。

个人经验:尽量不要在一个软中断对应的函数中去启动另一个比其本身优先级高的软件中断,因为根据抢占原则,其本身将被打断,从而CPU转去执行高优先级软中断对应的函数,低优先级的实时性将得不到保证,当有多级优先级及系统复杂情况下甚至引起系统瘫痪。也不要设置很多的优先级。当然这也不是绝对的,如果系统规划的好,利用好软中断的基于优先级抢占式的特点会大大简化你的设计。

二、LOG模块配置


软件中断可以在DSP/BIOS的配置文件中静态说明。打开DSP/BIOS配置文件,展开"Scheduling"选项,即可选择SWI模块。
comment:添加一段注解来说明该SWI对象。
function:该软件中断对象将调用的函数名。
priority:显示SWI对象的优先级。
mailbox:设置邮箱的初始值。
arg0,arg1:软件中断函数的两个指针类型变量。该变量可以在启动运行软件函数时由内核传递给该函数。

三、LOG模块API函数说明


1、SWI_andn:该函数提供的参数与邮箱值做"与"运算,若邮箱为0,则启动该软件中断;
2、SWI_dec:邮箱值减1,若邮箱值为0,则启动该软件中断,并恢复邮箱到初始值;
3、SWI_disble:禁止软件中断;
4、SWI_enable:允许软件中断;
5、SWI_getmbox:返回邮箱的值,注意该函数只能在软件中断函数中调用;
6、SWI_getpri:返回软件中断优先级;
7、SWI_inc:启动该软件中断,并对邮箱值加1;
8、SWI_or:启动该软件中断,并且邮箱值与该函数提供的参数做"或"运算;
9、SWI_post:启动软件中断;
10、SWI_raisepri:将软件中断优先级升高;
11、SWI_restorepri:恢复软件中断的优先级;
12、SWI_self:返回SWI对象的地址。