自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

倪勋的专栏

智慧和勇气,人生的两个财富

  • 博客(14)
  • 收藏
  • 关注

原创 dm-thin-provision架构及实现简析

前言:    最近对快照感兴趣, 初步分析了下dm-thin-provision的代码, 初步感觉实现方式很不错, 但不足的是性能比较差, metadata写了数据过多.但整体实现方式还是值得参考的.1: dm-thin-provision简介    thin-provision是device mapper的一种, 可以完成存储设备的特定映射, 这种设备有下面的特点:

2017-07-11 20:29:09 4264

转载 管理PnP状态转换

<!--google_ad_client = "pub-2050647664789618";//728x90, 创建于 07-11-28google_ad_slot = "5411034739";google_ad_width = 728;google_ad_height = 90;//--><script type="text/javascript"src="http

2007-11-27 21:38:00 5699 1

转载 IRP

[返回] [下一页]数据结构有两个数据结构对I/O请求的处理至关重要:I/O请求包(IRP)本身和IO_STACK_LOCATION结构。下面我将详细描述这两个结构。IRP结构图5-1显示了IRP的数据结构,阴影部分代表不透明域。下面是该结构中重要域的简要描述。MdlAddress(PMDL)域指向一个内存描述符表(MDL),该表描述了一个与该请求关联的用户模式缓冲区。如果

2007-11-27 21:37:00 3739

转载 自旋锁

[返回] [上一页] [下一页] 自旋锁IRQL概念仅能解决单CPU上的同步问题,在多处理器平台上,它不能保证你的代码不被运行在其它处理器上的代码所干扰。一个称为自旋锁(spin lock)的原始对象可以解决这个问题。为了获得一个自旋锁,在某CPU上运行的代码需先执行一个原子操作,该操作测试并设置(test-and-set)某个内存变量,由于它是原子操作,所以在该操作完成之前其它CPU

2007-11-27 21:35:00 2555

转载 中断请求级

[返回] [上一页] [下一页] 中断请求级Windows NT为每个硬件中断和少数软件事件赋予了一个优先级,即中断请求级(interrupt request level - IRQL)。IRQL为单CPU上的活动提供了同步方法,它基于下面规则:一旦某CPU执行在高于PASSIVE_LEVEL的IRQL上时,该CPU上的活动仅能被拥有更高IRQL的活动抢先。图4-1显示

2007-11-27 21:34:00 3097

转载 内存管理

[返回] [上一页] [下一页] 内存管理这一节我们讨论内存管理。Windows 2000采用多种方式分割虚拟地址空间。一种方式是基于安全性和完整性,有两种地址:用户模式地址和内核模式地址。另一种方式基于处理器的分页能力,有两种内存:分页内存和非分页内存。全部用户模式地址和某些内核模式地址使用分页内存,内存管理器可以在分页内存页帧和磁盘扇区间交换内容,而另一些内核模式地址总是引用物理内

2007-11-27 21:32:00 7076 4

转载 WDM 驱动错误处理

[返回] [上一页] [下一页] 错误处理人总会犯错误,错误恢复是软件工程的一部分。程序中总会发生异常情况,其中一些源自程序中的Bug,或者在我们的代码中或者在调用我们代码的用户模式应用程序中。另一些涉及到系统装载或硬件的瞬间状态。无论什么原因,代码必须能对不寻常的情况作出恰当的反应。在这一节中,我将描述三种错误处理形式:状态代码、结构化异常处理,和bug check。一般,内核模式支

2007-11-27 21:27:00 5831

原创 好久没更新了。。。。。。

我决定,把我觉得有价值的文章都发上来,以备将来使用

2007-06-27 20:02:00 1727

原创 C++内联函数(Inline)介绍

介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似 。相信大家都用过预处理宏,我们会经常定义一些宏,如 #define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。   为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在 内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。 这种转移操作要求在转去执

2005-10-08 16:27:00 3281 1

原创 C语言测试:想成为嵌入式程序员应知道的0x10个基本问题

C语言测试:想成为嵌入式程序员应知道的0x10个基本问题C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗

2005-10-08 15:35:00 2487

原创 数据结构笔记(转载)

第一章 概  论1.数据:信息的载体,能被计算机识别、存储和加工处理。2.数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。3.数据结构:数据之间的相互关系,即数据的组织形式。它包括:1)数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机;2)数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言。3)数据的运算,定义在逻辑结构上,每种逻辑

2005-10-06 10:42:00 7459 1

原创 重温经典排序思想--C语言常用排序全解(转载)

/*===============================================作者:rerli时间:2003-12-15目的:重温经典排序思想,并用C语言指针实现排序算法================================================*//*=====================================================

2005-10-05 10:56:00 3589 1

原创 How to be creative

http://www.changethis.com/6.HowToBeCreative

2005-10-04 20:55:00 2481

原创 内部排序算法

1、起泡排序算法:核心思想是扫描数据清单,寻找出现乱序的两个相邻的项目。当找到这两个项目后,交换项目的位置然后继续扫描。重复上面的操作直到所有的项目都按顺序排好2、直接插入排序算法:经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1..i-1]的适当位置,使得L[1..i]又是排好序的序列。要达到这个目的,我们可以用顺序比较的方法。首先比较L[i]和L[i-1],如果

2005-10-04 20:52:00 4781

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除