1.为何要有unsafe
也许是为了实现CLR类型安全的目标吧,默认情况下,C#没有提供指针的使用算法,但是有些情况下也可能需要指针这样直接访问内存的东西(虽然目前我还没有用过),但是有时候程序员非常清楚程序的运行状况,需要使用指针直接访问内存以便于提高性能或者调试、监控程序运行的内存的使用状况,以...
分类:
其他好文 时间:
2014-05-17 23:47:46
阅读次数:
448
系统访问数据或调用方法有两种操作方式:一种是通过名称访问或调用,另一种是通过所在的内存地址来访问调用。为了系统的安全与稳定,NET
Framework的CLR库不允许程序通过指针来直接操作内存中数据或方法,而是通过托管机制
来访问内存中数据或调用内存中的方法。委托就是C#提供的一种以托管机制调用方法的特殊数据类型
,其作用于房屋租凭中介机构类似。
下面我们要所的主要围绕以下三点...
分类:
其他好文 时间:
2014-05-16 01:39:17
阅读次数:
362
在开发node.js实现的http应用时会发现,无论你修改那一行代码,都必须终止nodejs再重新运行才能奏效。这是因为nodejs只有在第一次引用到某部分时才会去解析脚本文件,以后都会直接访问内存,避免重复载入。nodejs的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希...
分类:
Web程序 时间:
2014-05-09 16:43:15
阅读次数:
380
Linux中的每个进程都有自己的虚拟地址空间。操作系统的一个最重要的基本管理目的就是避免进程之间的相互影响。下面将介绍虚拟地址空间。
1.虚拟地址空间的优势:
通过虚拟地址访问内存有以下优势:
程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区。
程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区。当物理内存的供应量变小时,内存管理器...
分类:
其他好文 时间:
2014-05-04 08:53:13
阅读次数:
418
1.段寄存器
8086CPU有4个段寄存器:CS、DS、SS、ES。当8086CPU访问内存时,由这4个段寄存器提供内存单元的段地址。
CS和IP是8086中最关键的寄存器,他们指示了CPU当前要读取指令的地址。CS是代码段寄存器,IP为指令指针寄存器。在8086PC机中,任意时刻,设CS中的内容是M,IP中的内容是N,8086CPU将从内存地址:M*16+N处读取指令并执行。也可以这...
分类:
其他好文 时间:
2014-04-29 13:13:21
阅读次数:
333
内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡.
CPU也可以将自己从一个程序切换到另一个程序用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺,
CPU资源可以被其他程序获取为什么要有用户态和内核态由于需要限制不同的程序之间的访问能力, 防止他...
分类:
其他好文 时间:
2014-04-28 12:32:05
阅读次数:
465