2011.5.21

最近一直过的浑浑噩噩,对生活没有太多思考,终于明白古人说的那句话“学而不思则罔,思而不学则殆”的意思了,于是准备从这周开始,每周对所做的事做个总结,也算是对一周的回顾吧。
前一段时间,我变成了无组织人士,小老板召集我们开会,把我分到另外一个组去做平台和编译器相关的工作,我们的平台是基于OSATE开源软件做的,编译器也是用开源的ANTLR来写词法解析器和语法解析器,和LEX、YACC功能上差不多。看了一段时间的ANTLR相关的文档,算是对ANTLR的用法有了基本的掌握。但是EMF框架的书,还没来得及看。原来的组找老板讨论,老板问起我,原来我才知道不是老板让我换组的,两个老板互相推,结果我就变成流浪汉了,坑爹啊!现在我又回到原来的组,做软件演化技术、重构相关的工作。老板申请了一个项目叫CPS(信息物理融合系统),据说在米国是排在TOP1的技术,但是一到中国来就变味了。CPS重点在于3C融合(计算、通信、控制),它的基本流程就是在物理世界中部署广泛的传感器,通过传感器采集物理世界中的各种信息(比如,温度、湿度等),将采集到的信息传给计算单元,计算单元对信息进行整合和计算,从而调用控制单元对物理世界进行控制。现在对CPS的应用领域主要在智能电网,智能交通控制系统。它与现在炒的火热的物联网比较相像,但是比物联网要更加复杂一些,然而CPS已经被淹没在物联网的喧闹声中。虽然看了一些CPS相关的论文和书,还是对其中概念的界定不清,比如什么是物理世界?什么是信息世界?如何控制?这些看似简单的概念,当真正拿到学术研究上,会发现对它们的界定还真不简单。以后还是要读写书,至少要把概念分清吧。我现在的研究方向就在软件演化和重构技术上,我们所做的演化和重构其实都是动态的,就是软件在运行过程中动态的演化和重构,我理解的演化就是系统在运行过程中,遇到外界环境的改变,使得软件代码从当前模块跳转到另一个模块,从而使系统能够动态适应外界环境的变化,说白了就是智能化的适应,不需要人工的干涉。最近看了IBM的automatic computing相关的文章,发现IBM2001年提出的自主计算和我们所做的动态演化很相似,我打算把automatic computing作为切入点来做演化,还没和老板讨论,吼吼。。
本周还看了点其它技术类的书,Unix技术内幕,OSGi原理与最佳实践。其中,让我体会最深的算是Unix中虚拟内存地址到物理内存地址的转换机制了。还记得去年到计算所面试,导师问我的第一个问题就是“逻辑地址到物理地址的转换方式是什么”,当时我回答有两种方式:1、直接转换2、通过页表转换。导师点点头也没往下问了,如果他再往下问,我猜我肯定要冷场了,因为在操作系统课上,我只学到了基本的概念,对它内部到底是如何实现的却全然不知。虚拟地址到物理地址的转换主要是通过MMU来实现的,CPU将逻辑地址传送给MMU,MMU转换之后再将转换后的物理地址传送给CPU,CPU使用物理地址去物理内存中取指令或者数据。那么MMU是如何将虚拟地址转换为物理地址的呢?原来它里面有一个叫做活动页寄存器(APR)的单元,在Unix中共有8个APR,每个APR32位,APR又由两部分组成,PAR(页地址寄存器)和PDR(页描述寄存器),其中PAR在APR的第一个字,PDR在APR的第二个字上。我们都知道虚拟内存是通过Page划分的,物理内存是通过Block划分的,PAR就是存放虚拟地址所在页在物理内存上的块号,PDR是描述该页的读写属性(如,只读、读写),块增大的方向等。通过这种映射的关系,就可以将虚拟地址转换为物理地址。对于OSGi,才刚刚看了点毛皮,只知道它是一种动态的模块化的框架,书中的例子我在运行的时候,发现少了一个jar包,找了一下午都没搞定,还得继续找哇。。
本周打酱油的时间还是花了不少的,周五被拉去改错别字去了,我了个去啊,软件工程这一套害死人啦。。。。
Tags: 

延伸阅读

最新评论

发表评论