博客园 - lbq1221119
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=705710
2015-04-06T00:08:50Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
feed.cnblogs.com
https://www.cnblogs.com/lbq1221119/archive/2010/01/14/1647829.html
时间同步算法与Simple Ring-based election algorithm算法分析 - lbq1221119
时间同步算法的应用非常广泛。譬如在Unix系统里面,Make命令,只是用来编译新修改过的代码文件。Make命令使用运行的客户端的时钟来决定哪个文件是被修改过的。但是,如果把代码放到文件服务器上面,而运行make命令的主机与文件服务器的时间不同的时候,make命令就有可能工作不正常。譬如玩dota的时候,几个客户端需要一个同步过的时钟来使每个人的画面保持一致。、再譬如PC电脑同步服务器上面的时间可以...
2010-01-14T08:03:00Z
2010-01-14T08:03:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】时间同步算法的应用非常广泛。譬如在Unix系统里面,Make命令,只是用来编译新修改过的代码文件。Make命令使用运行的客户端的时钟来决定哪个文件是被修改过的。但是,如果把代码放到文件服务器上面,而运行make命令的主机与文件服务器的时间不同的时候,make命令就有可能工作不正常。譬如玩dota的时候,几个客户端需要一个同步过的时钟来使每个人的画面保持一致。、再譬如PC电脑同步服务器上面的时间可以... <a href="https://www.cnblogs.com/lbq1221119/archive/2010/01/14/1647829.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/09/14/1566543.html
SSCLI中GC垃圾回收源码分析(3) - GarbageCollectGeneration()与SuspendEE - lbq1221119
上一节中的GarbageCollect()方法,主要是传递不同的Generation做为参数,来调用GarbageCollectGeneration方法,实现对heap中不同的Generation进行回收。 精简了以后的GarbageCollectGeneration方法以后的代码如下: 在第一次调用该方法的时候,Gen传递过来的参数值为max_generation,表示对GC Heap中所有G...
2009-09-14T10:39:00Z
2009-09-14T10:39:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】上一节中的GarbageCollect()方法,主要是传递不同的Generation做为参数,来调用GarbageCollectGeneration方法,实现对heap中不同的Generation进行回收。 精简了以后的GarbageCollectGeneration方法以后的代码如下: 在第一次调用该方法的时候,Gen传递过来的参数值为max_generation,表示对GC Heap中所有G... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/09/14/1566543.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/09/14/1566539.html
SSCLI中GC垃圾回收源码分析(2) - GarbageCollect()与Spin Lock - lbq1221119
继续接着上篇的分析, F11从Fcall中跳出来,就到了sscli20\clr\src\vm\gcsmp.cpp中关于Garbage Collect的最外部的方法GCHeap::GarbageCollect: HRESULTGCHeap::GarbageCollect (int generation, BOOL collect_classes_p){ UINT GenerationAtEntry...
2009-09-14T10:31:00Z
2009-09-14T10:31:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】继续接着上篇的分析, F11从Fcall中跳出来,就到了sscli20\clr\src\vm\gcsmp.cpp中关于Garbage Collect的最外部的方法GCHeap::GarbageCollect: HRESULTGCHeap::GarbageCollect (int generation, BOOL collect_classes_p){ UINT GenerationAtEntry... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/09/14/1566539.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/09/11/1564640.html
SSCLI中GC源码分析(1) - EE与BCL之间的调用接口FCall - lbq1221119
首先在SSCLI2.0源代码的\clr\src\vm\comutilnative.cpp文件中的GCInterface类的CollectGeneration方法上下个断点,该宏方法主要实现了一个调用转换: /*==============================CollectGeneration===============================**Action: Collect...
2009-09-11T03:13:00Z
2009-09-11T03:13:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】首先在SSCLI2.0源代码的\clr\src\vm\comutilnative.cpp文件中的GCInterface类的CollectGeneration方法上下个断点,该宏方法主要实现了一个调用转换: /*==============================CollectGeneration===============================**Action: Collect... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/09/11/1564640.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/09/08/1562603.html
(北京宇思信德科技公司)诚聘C#软件工程师 , Middle及Senior Level - lbq1221119
Job Description:Responsibilities:- Design and implement software modules in .NET.Qualifications:- 2+ years commercial software development experience in C# after the BS degree, or MS degree graduates ...
2009-09-08T07:46:00Z
2009-09-08T07:46:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】Job Description:Responsibilities:- Design and implement software modules in .NET.Qualifications:- 2+ years commercial software development experience in C# after the BS degree, or MS degree graduates ... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/09/08/1562603.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/06/17/1505264.html
.Net Micro framework在开发过程中的bugs/problems及解决方案。 - lbq1221119
1.在开启了主板的DHCP功能之后,由于主板每次重启之后,都会需要一定的时间获取一个IP地址,这个需要一定的时间。而在Visual Studio中debug的时候attach到电路板上面的时候,会reset一下来连接上tinyCLR的debug engine。连接和重试的时间,会小于主板获取IP地址的时间,这个时候,就会出现attach不上主板的现象。解决 这个问题的方法可以是: 打开注册表,...
2009-06-17T10:49:00Z
2009-06-17T10:49:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】1.在开启了主板的DHCP功能之后,由于主板每次重启之后,都会需要一定的时间获取一个IP地址,这个需要一定的时间。而在Visual Studio中debug的时候attach到电路板上面的时候,会reset一下来连接上tinyCLR的debug engine。连接和重试的时间,会小于主板获取IP地址的时间,这个时候,就会出现attach不上主板的现象。解决 这个问题的方法可以是: 打开注册表,... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/06/17/1505264.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/06/11/1501010.html
MF中使用GPRS:如何通过一个串口终端实现GPRS Modem拨号上网 - lbq1221119
在.Net micro framework的一个项目的开发过程中,有一个GPRS的Modem。我们在主板上通过串口,提供了5v的电压。 GPRS Modem设计板如图: 我们使用TXD和RXD,对应到另外一块主板芯片上面的COM4,在开始实现GPRS Modem拨号的过程中,我想是使用GSM 7.07的标准,在Tera Term终端中,经由STK500开发电板连接上GPRS Modem上面的串口...
2009-06-10T16:37:00Z
2009-06-10T16:37:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】在.Net micro framework的一个项目的开发过程中,有一个GPRS的Modem。我们在主板上通过串口,提供了5v的电压。 GPRS Modem设计板如图: 我们使用TXD和RXD,对应到另外一块主板芯片上面的COM4,在开始实现GPRS Modem拨号的过程中,我想是使用GSM 7.07的标准,在Tera Term终端中,经由STK500开发电板连接上GPRS Modem上面的串口... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/06/11/1501010.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/05/26/1489460.html
博客园北京俱乐部第三次活动讲义PPT - lbq1221119
周六参加了博客园北京俱乐部第三次活动,作为主讲人之一,我给出的题目是.Net 下垃圾回收算法与实现。内容主要包括三个部分:经典基本垃圾回收算法 CLR中垃圾回收算法介绍 SSCLI中Garbage Collection源码分析PPT可以在这个地址下载到: http://files.cnblogs.com/lbq1221119/GC_Algorithm_inside_dotNET.pptx这次活动的...
2009-05-26T03:30:00Z
2009-05-26T03:30:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】周六参加了博客园北京俱乐部第三次活动,作为主讲人之一,我给出的题目是.Net 下垃圾回收算法与实现。内容主要包括三个部分:经典基本垃圾回收算法 CLR中垃圾回收算法介绍 SSCLI中Garbage Collection源码分析PPT可以在这个地址下载到: http://files.cnblogs.com/lbq1221119/GC_Algorithm_inside_dotNET.pptx这次活动的... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/05/26/1489460.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/03/03/1402551.html
ValueType.Equals(null)的底层实现及CLR虚拟机对其结构支持 - lbq1221119
在定义任何一个ValueType之后,它都是从System.ValueType继承过来的,默认的就继承了Equals方法和GetHashCode方法,在使用的时候,必须主意的是最好重写自定义ValueType的这两个方法,因为可能带来性能上面的严重问题或者是比较的不正确。譬如定义下面这样的一个结构体值类型: struct TestValueType { public int Myint; publ...
2009-03-03T13:01:00Z
2009-03-03T13:01:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】在定义任何一个ValueType之后,它都是从System.ValueType继承过来的,默认的就继承了Equals方法和GetHashCode方法,在使用的时候,必须主意的是最好重写自定义ValueType的这两个方法,因为可能带来性能上面的严重问题或者是比较的不正确。譬如定义下面这样的一个结构体值类型: struct TestValueType { public int Myint; publ... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/03/03/1402551.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2009/01/08/1372104.html
WebService传输数据流及数据交互解析 - lbq1221119
key words:DPWS,嵌入式设备,WebService,Http,嗅探,Micro Framework。。 为了实现一个嵌入式设备和一个host在IIS server上面的WebService交互,使用了MF3.0里面的DPWS方法。不过这个东西实在是Hard to use。今天就记录下使用的过程中的第一步,首先分析一个Client和一个Webservice是如何交互的,发送的数据流的格式...
2009-01-08T10:43:00Z
2009-01-08T10:43:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】key words:DPWS,嵌入式设备,WebService,Http,嗅探,Micro Framework。。 为了实现一个嵌入式设备和一个host在IIS server上面的WebService交互,使用了MF3.0里面的DPWS方法。不过这个东西实在是Hard to use。今天就记录下使用的过程中的第一步,首先分析一个Client和一个Webservice是如何交互的,发送的数据流的格式... <a href="https://www.cnblogs.com/lbq1221119/archive/2009/01/08/1372104.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/12/31/1366003.html
托管线程退出之后Dump文件特征 - lbq1221119
抓到一个dump文件之后,很多托管命令不能用,查看托管线程的时候,现如下显示: XXXX表示这个托管线程已经被结束了,同时在等待GC的回收。这个时候,用~[N]s命令来切换线程是不可以的。如果是Framework 1.1下,可以使用!dumpallexceptions (!dae)来查看所有的Exception。2.0的SOS下面,咋同样可以使用类似的命令: 然后用!pe address打印出相...
2008-12-31T10:13:00Z
2008-12-31T10:13:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】抓到一个dump文件之后,很多托管命令不能用,查看托管线程的时候,现如下显示: XXXX表示这个托管线程已经被结束了,同时在等待GC的回收。这个时候,用~[N]s命令来切换线程是不可以的。如果是Framework 1.1下,可以使用!dumpallexceptions (!dae)来查看所有的Exception。2.0的SOS下面,咋同样可以使用类似的命令: 然后用!pe address打印出相... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/12/31/1366003.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/12/30/1365652.html
国外精品研究论文(持续更新) - lbq1221119
收集整理看过的一些论文用,不定期更新:MMTk: The Memory Management Toolkithttp://cs.anu.edu.au/~Robin.Garner/mmtk-guide.pdf讲在JikesRVM,一个叫jikes写的虚拟机里面,结合Eclipse来实现一个Gabarge Collector。GCspy: An Adaptable Heap Visualisation...
2008-12-30T15:08:00Z
2008-12-30T15:08:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】收集整理看过的一些论文用,不定期更新:MMTk: The Memory Management Toolkithttp://cs.anu.edu.au/~Robin.Garner/mmtk-guide.pdf讲在JikesRVM,一个叫jikes写的虚拟机里面,结合Eclipse来实现一个Gabarge Collector。GCspy: An Adaptable Heap Visualisation... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/12/30/1365652.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/12/25/1362189.html
Random()中具体实现(含种子数组的实现) - lbq1221119
Random函数到底是如何返回一个随机数的呢?下面看实现: 调用了一个内部方法: 另外还有在random的构造函数里面实现初始化seed数组: 最后就是涉及到一些变量的定义: seed数组的初始化有点麻烦,其中为什么用55和21俺也不太清楚,估计是定义一个特定的随机取数方法吧。比较有意思,呵呵。发这篇文章的目的,主要是为了检验下cnblog用live writer发图片的效果。。
2008-12-25T03:47:00Z
2008-12-25T03:47:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】Random函数到底是如何返回一个随机数的呢?下面看实现: 调用了一个内部方法: 另外还有在random的构造函数里面实现初始化seed数组: 最后就是涉及到一些变量的定义: seed数组的初始化有点麻烦,其中为什么用55和21俺也不太清楚,估计是定义一个特定的随机取数方法吧。比较有意思,呵呵。发这篇文章的目的,主要是为了检验下cnblog用live writer发图片的效果。。 <a href="https://www.cnblogs.com/lbq1221119/archive/2008/12/25/1362189.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/12/09/1351083.html
From double Click to Main: PAL initialization - lbq1221119
在上一篇文章,讲到了双击一个应用程序之后,操作系统如何初始化Process,以及创建相关的context,最后引导到应用程序的Main方法中。在托管代码中,对于Main的启动还有点不同,有一个PAL层在启动main方法之前启动:#ifdef __cplusplus extern "C"#endifint __cdecl main(int argc, char **argv) { struct _m...
2008-12-09T13:12:00Z
2008-12-09T13:12:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】在上一篇文章,讲到了双击一个应用程序之后,操作系统如何初始化Process,以及创建相关的context,最后引导到应用程序的Main方法中。在托管代码中,对于Main的启动还有点不同,有一个PAL层在启动main方法之前启动:#ifdef __cplusplus extern "C"#endifint __cdecl main(int argc, char **argv) { struct _m... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/12/09/1351083.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/12/07/1349744.html
From double Click to Main: The initialization of Process in OS - lbq1221119
从双击一个应用程序到生成一个OS的process,然后到执行这个exe文件的Main方法,中间做了些什么呢?经常看着call stack的这块灰色的地方,总是想看看其是如何实现的。 Process的creation分为两个级别的创建:NT级别的和Windows级别的。CreateProcess这个方法,就会进行这两个级别的创建,同时创建Threads。俺们找到c:\Program Files\Mi...
2008-12-07T14:03:00Z
2008-12-07T14:03:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】从双击一个应用程序到生成一个OS的process,然后到执行这个exe文件的Main方法,中间做了些什么呢?经常看着call stack的这块灰色的地方,总是想看看其是如何实现的。 Process的creation分为两个级别的创建:NT级别的和Windows级别的。CreateProcess这个方法,就会进行这两个级别的创建,同时创建Threads。俺们找到c:\Program Files\Mi... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/12/07/1349744.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/12/05/1348591.html
Microsoft Micro Framework 3.0对Serial Peripheral Interface 的支持 - lbq1221119
在3.0的Micro Framework中,咱可以使用SPI(Serial Peripheral Interface)来和外围设备进行通信了。SPI是一种串口总线系统,和I2C,CAN,USB一样。 使用SPI来进行串口通信中,从设备的通讯模式如下: 两个数据口,一个进一个出,另外两个控制口。在标准SPI通信模式中,设备分为master设备和slave设备。Master设备决定clock信号和线...
2008-12-05T15:23:00Z
2008-12-05T15:23:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】在3.0的Micro Framework中,咱可以使用SPI(Serial Peripheral Interface)来和外围设备进行通信了。SPI是一种串口总线系统,和I2C,CAN,USB一样。 使用SPI来进行串口通信中,从设备的通讯模式如下: 两个数据口,一个进一个出,另外两个控制口。在标准SPI通信模式中,设备分为master设备和slave设备。Master设备决定clock信号和线... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/12/05/1348591.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/11/17/1332819.html
使用CorDbg进行托管调试 - lbq1221119
Cordbg是和.Net Framework,以及Windows SDK一起ship的托管代码的调试工具,相对于VS来说,它是一个比较low-level的调试工具. 本文的主要目的,就是看看Cordbg如何来进行托管调试,然后演示下其功能,看看其和其它的托管调试工具,譬如MDBG和windbg+SOS有啥不同. Mdbg,是一个使用dbgeng.dll的调试接口来开发的一个开源调试工具,版本ms现...
2008-11-17T14:23:00Z
2008-11-17T14:23:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】Cordbg是和.Net Framework,以及Windows SDK一起ship的托管代码的调试工具,相对于VS来说,它是一个比较low-level的调试工具. 本文的主要目的,就是看看Cordbg如何来进行托管调试,然后演示下其功能,看看其和其它的托管调试工具,譬如MDBG和windbg+SOS有啥不同. Mdbg,是一个使用dbgeng.dll的调试接口来开发的一个开源调试工具,版本ms现... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/11/17/1332819.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/11/13/1332254.html
CLR内核调试之:Malloc函数实现 - lbq1221119
自从可以动态调试SSCLI之后,发现这个玩意还真是个宝山,越玩越有意思,就像捅开一扇门,发现门后面还有一座宝山……不光CLR的内部实现细节,可以象是放电影一样呈现在眼前,Visual Studio里面的一些底层的技术,还有OS的底层技术,查看起来那是相当的便捷。 这里就说说malloc函数是具体如何实现的,能够F10,F11动态的在VS里面跟踪其一步一步的实现的源码,真...
2008-11-13T12:52:00Z
2008-11-13T12:52:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】自从可以动态调试SSCLI之后,发现这个玩意还真是个宝山,越玩越有意思,就像捅开一扇门,发现门后面还有一座宝山……不光CLR的内部实现细节,可以象是放电影一样呈现在眼前,Visual Studio里面的一些底层的技术,还有OS的底层技术,查看起来那是相当的便捷。 这里就说说malloc函数是具体如何实现的,能够F10,F11动态的在VS里面跟踪其一步一步的实现的源码,真... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/11/13/1332254.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/11/12/1331912.html
Build SSCLI20 under VS2008 full Document (完全手册) - lbq1221119
以前build过几次sscli2都成功了,这次换了个新的环境,没想到出了一大堆的问题。折腾了半天,最终搞定,把解决问题的过程和方法都记录下来。首先说说build的过程中参考过的链接和资源。1. 首先就是sscli自带的文档:Building the Shared Source CLI 2.0 and C# 2.0 Source Tree(\sscli20\docs\buildtools\build...
2008-11-12T10:48:00Z
2008-11-12T10:48:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】以前build过几次sscli2都成功了,这次换了个新的环境,没想到出了一大堆的问题。折腾了半天,最终搞定,把解决问题的过程和方法都记录下来。首先说说build的过程中参考过的链接和资源。1. 首先就是sscli自带的文档:Building the Shared Source CLI 2.0 and C# 2.0 Source Tree(\sscli20\docs\buildtools\build... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/11/12/1331912.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/lbq1221119/archive/2008/11/05/1327334.html
MethodTable内存空间分配中加法运算算法解析 - lbq1221119
在分析MethodTable具体分配内存实现的时候,看到了计算MethodTable的大小,然后分配空间的算法。其中有个加法运算实现的非常赞,特地截取出来。 所有的MethodTable的分配,都是通过methodtable中的一个static方法AllocagteNewMT来实现的,该方法定义如下:MethodTable * MethodTable::AllocagteNewMT(EEClass...
2008-11-05T10:12:00Z
2008-11-05T10:12:00Z
lbq1221119
https://www.cnblogs.com/lbq1221119/
【摘要】在分析MethodTable具体分配内存实现的时候,看到了计算MethodTable的大小,然后分配空间的算法。其中有个加法运算实现的非常赞,特地截取出来。 所有的MethodTable的分配,都是通过methodtable中的一个static方法AllocagteNewMT来实现的,该方法定义如下:MethodTable * MethodTable::AllocagteNewMT(EEClass... <a href="https://www.cnblogs.com/lbq1221119/archive/2008/11/05/1327334.html" target="_blank">阅读全文</a>