存档于: 2009-05

无锁队列

2009-05-31 12:16  分类: 技术   标签: . .

计算机的资源是有限的,如果不加限制,对资源的并发访问将产生一系列问题,因此在并行计算中广泛使用了锁(lock)。

锁的引入带来的问题是效率的降低,因此在高效系统中,应尽可能避免锁的使用,关于无锁队列的理论研究和实践已经进行了很多年,理论已经证明,单生产者-单消费者队列的锁可以去掉,从而形成一个并发无锁队列(lock free queue)

除了高效,无锁队列还能防止优先级倒置(priority inversion)。

有三个优先级不同的task,A,B,C;A的优先级最高,B次之,C最低。其中A和C有共享的临界区。如果C已进入临界区,那么A在进入临界区之前,就会被阻塞。task B有可能打断C而进入运行状态,这样C什么时候从临界区退出,就是一个未知的时间。A只有C从临界区退出后才能被调度,A被阻塞的时间也是未知的。这样,低优先级的B先于高优先级的A被调度,优先级发生了逆转。

解决这个问题有两种手段:
1:Priority inheritance(优先级继承),如果一个高优先级的task被阻塞,与它共享临界区的低优先级的task在进入临界区后,优先级就会继承高优先级 task的优先级,保证它不会被其他优先级次高的任务打断。从临界区退出后,C的优先级恢复正常。这种方法的缺点是动态改变线程的优先级耗费了大量时间。
2:A priority ceiling(最高优先级),给临界区分配最高优先级,如果一个task进入临界区,就把临界区的优先级赋给它,已保证它不会被打断。从临界区退出后,task的优先级恢复正常。这种方法的缺点是假如没有高优先级A的存在,B将被延迟执行。

这两种解决方案带来的代价都是效率的降低,在实际系统中,除了无锁队列,还应采用其他方案,尽量避免对锁的使用,否则可能出现与预期相反的结果,而问题相当难于查找。

关于优先级倒置,和著名的火星探路者软件故障联系在一起,因而名声大噪。

在发生问题之前,探路者被认为是没有缺陷的,直到着陆几天后,系统被整个重置了,接下来发生的一切,带给我们很多启示。

发生如此重大的问题,如何迅速查找问题根源并解决?探路者所使用的系统记录了所有需要关心的事件,航天局工程师们通宵达旦一遍又一遍的重复运行这些事件,当只剩下一个工程师没有回家休息时,终于重现了故障,原来是优先级倒置。这提示我们,详细记录系统的运行对我们改正错误很重要,黑盒跟踪错误几乎是不可能的。

事实上,在发射前的测试中,出现过1、2次系统重置的现象,但无法重现和解释,出于本能,他们拒绝认为这是软件问题,而把其归结为硬件问题。各类系统中,有很多问题都是这么遗漏的,不应忽略任何异常偶发事件,直到找到根源。

这次事件也向我们展示了理论的重要性,多年前有人研究了此类问题并给出了解决方案,使得问题能得以迅速查找并解决。

这次事件还提示,长期运行的系统,在效率和正确性之间,首先应关注的是正确性,效率应该是其次的。

发生了重置事件,探路者的工作受影响了吗?答案是几乎没有,这不得不感谢它的设计者,设计充分考虑了容错性,即使系统完全重置,重新启动后也能不受影响的在原来基础上继续工作。

刚才扯远了,回到无锁队列,实现无锁队列,需要考虑到原子操作和内存屏障(memory barrier)。原子操作我们就不谈了,重点说一下内存屏障。

单核系统不会存在内存屏障问题,对多核系统,为提高效率,允许乱序执行,这样应该先写入内存的数据未必先写入,逻辑上会出现错误,解决的方法是在写入前,强迫cpu串行化,这就是内存屏障技术。

在intel系列cpu中,因为使用了强排序技术,很难测试到cpu乱序执行问题,但并非不会发生,因此在程序中还是要考虑这个问题。测试内存屏障的最佳cpu是power pc。

关于无锁队列的最详细介绍和实现,请参照http://www.audiomulch.com/~rossb/code/lockfree/ ,优先级倒置和内存屏障,请在google中查找。

美国Creighton大学商科学生近距离了解HiPiHi

2009-05-22 19:53  分类: HiPiHi声音   标签: . . . .

近期,美国Creighton大学组织了一个商科学生的代表团,来到中国实地参观与了解微软中国等中国各领域代表性企业的发展情况。5月21日,Creighton大学的陈雷达教授及Beverly Kracher教授带着其工商管理学院的十多名本科及MBA学生来到HiPiHi,从一线近距离地了解中国的3D虚拟世界创建者。

在会议中,我首先向大家介绍了HiPiHi公司及HiPiHi世界的基本情况。接着,山人在Q&A环节热情而详细地回答了大家关于虚拟世界、HiPiHi公司以及创业等各方面的问题。其中大家对山人的创业经历及虚拟世界的功能与管制表现出了很大的兴趣。

00011

当看到虚拟武汉等视频时,Creighton大学的学生们反响十分热烈。一方面感叹其中城市与建筑的别样风情,另一方面也感叹虚拟世界能如此有效的拉近世界各个地域之间的距离,以后足不出户也可以方便的在虚拟世界中游览中国的城市风景。

00021

纪念5.12一周年,放飞孔明灯祈福

2009-05-15 15:26  分类: HiPiHi世界内故事   标签: . . . .

在过去的一年里,我们都经历了一生中最难忘的事。汶川512特大地震,震动了华夏13亿同胞的心。震后的日日夜夜里,我们为电视上一幕幕的画面和感人的事情所颤抖和感动。人们通过各种方式捐款捐物,用尽可能知道的方式去帮助震区失去家园、失去亲人和身受重伤的同胞们,大家怀着虔诚的心情为在512地震中步入天国的人们祈福悼念。

而在今年纪念汶川一周年的日子里,我们中国虚拟世界里的人们在用别样的方式悼念这些逝去的人们。在思考了一段时间后,大家自发的决定用孔明灯寄托我们的哀思,让孔明灯带上我们的祝福,传达给远在天国的亲人和朋友们,希望你们一切安好。

e5ad94e6988ee781af1

当天晚上,HiPiHi的居民虽然身处不同的地域,但都自觉的在新手村的悼念地集合。大家纷纷用孔明灯包裹住自己的人物形象,由简单的幸福MM作为指挥官,号令我们同时起飞。眼前一盏盏带着自己独特名字的孔明灯飘飘启程,飞向月亮飞向天堂(视频)。我们用孔明灯带去一年来亲人灾后重建家园和重建生活的信息,也带去我们对遇难同胞的祝福。祈求平安、祈求祝福、放飞希望,祝愿同胞们重新建设出更美好的家园。

e5ad94e6988ee781af2

e5ad94e6988ee781af3

HiPiHi世界第一艘虚拟航母诞生啦!

2009-05-15 15:11  分类: HiPiHi世界内故事   标签: . .

都说我们HiPiHi世界居民的创意无限,在知道网络上有人自己设计了中国航母之后,他们也开始在HiPiHi世界中开始实施着他们的创想了。在短短的十几天时间中,他们就创造出了我们HiPiHi世界中的第一艘航母,虚拟的航母就是这样静静的矗立在海上,看看下面的图片就知道它的精彩了。

e6b189e9a38e1

除此之外,居民小团队还举行了一个小小的航母下水仪式的活动,很多我们世界中的居民都来参加了这个很有意义的活动,大家一边参观着航母,一边交谈着在制作航母时的心情和感受。

我们期待着我们的居民小团队还能组织更多的活动!

e6b189e9a38e21

e6b189e9a38e3

HiPiHi应邀参加虚拟世界中的“World Intraverse Awards”典礼

2009-05-08 17:55  分类: 行业动态   标签: . . .

昨晚,HiPiHi应邀作为亚洲虚拟世界的代表,参加了于ApplySeriousGames & Virtual Worlds 2009 会议期间,在Second life中举办的“World Intraverse Awards(WIVA)”典礼。这个典礼的独特之处在于它在现实世界与虚拟世界内同时举办。来自伦敦、巴黎、北京、香港等世界各地的相关公司代表在虚拟世界中齐聚一堂,让我再次切身感受到了虚拟世界突破地域限制的魔力。伦敦的下午1点半,巴黎的下午2点半,北京的晚上8点半...大家应着虚拟的巴黎风光,通过语音彼此交流,聆听演讲者的发言...每个Avatar就像在真实会场一样,介绍着自己,彼此热情地互加好友,就相当于互换了名片...

典礼中,大家通过语音系统收听发言者的讲话。一些与会者悠闲的坐在四周的白色休闲椅上,少数人站立着会场的前侧,认真聆听。

1

会场四周的布景是实时变换的巴黎美景,让我感觉彷佛真的身处异乡。很可惜的是,我没能拍下埃菲尔铁塔做背景时的快照。那是从塞纳河上凝望埃菲尔的景色——夕阳西下,照耀在河面上熠熠生辉,埃菲尔庄重的伫立在一旁,像一个会呼吸的钢铁巨人...

201

我想,3D虚拟世界的魅力其实除了体现在娱乐型的应用上,还更是在于它能让各式传统的严肃应用焕发新的生机。

八戒打酱油

2009-05-06 17:40  分类: 文化   标签: .

博客是新开的
仙魔是很hi的
页面是精美的
灌水是应该的

山人是掌舵的
方向是不错的
项目是延期的
心中是难过的

唐僧是执着的
意志是耐磨的
抬头是思考的
低头是干活的

悟空是强悍的
行为是模范的
内功是超强的
别人是滴汗的

二郎是很累的
晚上是不睡的
技术是全能的
没有他不会的

牛王是面善的
沙僧是实干的
白马是个性的
八戒是吃饭的

白骨是精干的
白鼠是灿烂的
太白是和谐的
董永是哪来的

美术是关键的
形态是多变的
妖魔是很多的
创意是无限的

运营是辛苦的
作息是没谱的
创作是艰辛的
bug是靠堵的

月兔是嫦娥的
仙姑是姓何的
神仙是太多的
都是去拜佛的

天庭是新建的
神仙是妖变的
仙魔是同心的
传奇会再现的

风雨兼程,一路上有我们

2009-05-05 16:03  分类: 文化   标签: . .

我们HiPiHi的官方博客终于开张了,作为运营部门的我们当然也要上来喊喊了。昨天下午我们想了半天该怎样呈现我们,该如何让更多的居民们看到我们充满创意、活力和魔力的一面。就来张大合照在官博上和我们可爱的居民们问声好,希望在之后的时间里依然能陪伴在大家的左右,和大家一块体验喜悦的心情,我们也会经常将我们的想法和创意在这里和大家一块分享。

e59bbee789871

我们的西行路在继续,我们都是西行路上的仙魔,傻兔当然就是嫦娥手里抱着的月兔、表哥就是那大闹龙宫的哪咤了、猫猫就是女儿国国王了、我们的地主婆小卷就是金角大王了。下面的这张大合照是昨天在哪咤的带动下照的,是不是看上去很奇怪,我们就是那无所不能的外星人了,直逼羊村。当然这只是我们的一面,当我们要一起肩并肩战斗时,我们就会变成这样,打倒一切的困难,冲向胜利的终点。

当然,生活中的我们还是很可爱的,来一张生活照的我们吧,哪咤是我们中唯一的男士,下面我们中的每一个伙伴都有一些话要和大家说。

e59bbee789872

金角大王说:
Hi,大家好呀,我是运营部的小魔——金角大王!
来HiPiHi运营部已经快满一年了,在这里感受到了一个大家庭的温暖。有自认为小仙的月兔(其实她跟我们一样,是妖怪~),有温柔可人的女儿国国王(今天她忘记爬楼了,害我也没爬),还有正义使者哪咤(其实我觉得他才是真正的大妖!),能和这样一个充满着奇思妙想的团队一直共事,实在是很快乐的事情。

偷偷的说,其实在运营部蛮好的,有时候还可以得到居民小朋友所赠送的礼物。不过话说回来,好歹我也是个魔啊,不“骗”些小礼物,我不白混了么。

人家说是金子总会发光的,我顶着个金角,天天发光,多不容易啊。发光我一家,造福千万家,所以居民朋友,你们大家以后一定要多支持我们运营部,多支持闪闪发光的金角大王啊!

女儿国国王说:
我是女儿国国王,来自女儿国所以成了女儿国国王,众多妖魔鬼怪中做一个凡人是多么的幸运,我和大多数人一样平凡,和大多数人一样怀揣梦想,对虚拟世界满怀希望,虽然取经路途漫漫,很幸运这一路上有你、有我、有他的相伴,相互搀扶,一切都变得美好,坚定一条路一直走下去,胜利一定属于我们。

哪咤说:
我是哪咤,我是最平凡、最“严肃”的一员,但是在做一些不平凡的事情。(偷乐...)

月兔说:
从傻兔升级到月兔,也是一种进化吧,金角大王说月兔不是仙,也是妖,伤心了半天,大家一块加油,有和我一块并肩作战的伙伴们,还有可爱、坚持的小样们、小P孩们,我们会像吃了菠菜一样,力量无穷。西行路上有了大家不寂寞!

运营部的仙呀、魔的已经发言完毕!感谢大家阅读完。

希望居民朋友们从我们的官博中能了解到我们更多的文化和生活,还有我们更多的信息以及来自我们居民自己的心声,我们一块度过在HiPiHi世界中的快乐生活。

欢迎来到仙言魔语,你还没有 登录 Sign Up
RSS

about

小时候读过“西游记”、庄周梦蝶,后来又看过什么“黑客帝国”......冥冥之中,有种直觉,我们应该可以有另一个“我”,去开始另一种生活,变成 “仙鬼神魔”之类,法力无边、“上九天揽月,下五洋捉鳖”......也许,这就是所谓我们HiPiHi梦想的起源。……

more