09 2011 档案

摘要:Linux文件预读算法磁盘I/O性能的发展远远滞后于CPU和内存,因而成为现代计算机系统的一个主要瓶颈。预读可以有效的减少磁盘的寻道次数和应用程序的I/O等待时间,是改进磁盘读I/O性能的重要优化手段之一。Linux文件预读算法磁盘I/O性能的发展远远滞后于CPU和内存,因而成为现代计算机系统的一个主要瓶颈。预读可以有效的减少磁盘的寻道次数和应用程序的I/O等待时间,是改进磁盘读I/O性能的重要优化手段之一。本文作者是中国科学技术大学自动化系的博士生,他在1998年开始学习Linux,为了优化服务器的性能,他开始尝试改进Linux kernel,并最终重写了内核的文件预读部分,这些改进被收录到 阅读全文
posted @ 2011-09-21 09:42 onemuji 阅读(696) 评论(0) 推荐(0)
摘要:关于驱动程序里StartIo例程的作用,部分摘自网络,有不正确的地方还望指正。 在很多时候,驱动程序不能立即处理I/O请求,此时需要通过一个队列保存Irp,然后返回,等到可以处理I/O请求时,再从队列中取出Irp进行处理。驱动程序可以自己维护一个队列,并通过系统线程来做处理。由于很多驱动程序都需要这 阅读全文
posted @ 2011-09-16 16:31 onemuji 阅读(276) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/orbit/article/details/2120086不知道从什么时候开始,switch-case语句成了代码坏味道的代名词,写代码的时候小心翼翼地避开它,看到别人代码中的switch-case就皱眉头,想想其实大可不必这样,switch-case语句并不是代码坏味道的根源,坏味道来自糟糕的代码(结构)设计,比如过多的switch-case分支,或者多重switch-case嵌套等等,这些都将导致代码可读性下降,如果再加上代码风格较差,代码不对齐,那么坏味道就相当地大了。 简短的switch-case还是继续用吧,但是对于分支太多的长swit 阅读全文
posted @ 2011-09-16 12:03 onemuji 阅读(874) 评论(0) 推荐(0)
摘要:[教训]异步IRP中,IoSetCompletionRoutine()要在IoCallDriver()的前面,不然底层驱动完成了读写之后,找不到完成例程,会导致出错。看似简单,不小心却可能带来大麻烦。 [经过]修改驱动,需要把原来较大的IO切成小IO发给磁盘驱动,结果改完后一读写数据就蓝屏,百思不得 阅读全文
posted @ 2011-09-09 16:39 onemuji 阅读(424) 评论(0) 推荐(0)
摘要://留着以备查询之用 来自WinDDK\6000\inc\ddk\rxcontx.htypedef struct _RX_CONTEXT { // // the node type, size and reference count, aka standard header // NODE_TYPE_CODE NodeTypeCode; NODE_BYTE_SIZE NodeByteSize; __volatile ULONG ReferenceCount; // // the list entry to wi... 阅读全文
posted @ 2011-09-08 16:02 onemuji 阅读(1443) 评论(0) 推荐(0)
摘要:CSDN博客首页看到的,怕忘了,还是转到自己博客了。转自:http://blog.csdn.net/morewindows/article/details/6742078当程序在进行大量的运算或IO操作时,常常需要耗很长时间,为了不让用户有一个乏味的等待或是错误的认为系统已经死机,有必要给程序添加进度提示功能。在窗口界面中要显示进度条和显示完成百分比是非常容易的,但如何在控制台下去完成这个任务了?一行一行的输出当前完成百分比肯定是不够美观的,最好能“原地踏步”一样的显示即旧的数字会被新的数字完全覆盖。其实这个是很容易的,下面先给出的示例代码,稍后再进行讲解。 //在控制台下显示进度 ... 阅读全文
posted @ 2011-09-02 22:56 onemuji 阅读(364) 评论(0) 推荐(0)