本系列的第三篇文章主要来介绍与共享物理页面相关的两个函数。
//在发生缺页异常的时,首先看看能否与运行同一个文件的其他进程进行页面共享处理。该函数首先判断系统中是否有另外进程也在运行与当前进程一样的执行文件。若有,则在系统当前任务中找寻这样的任务。若找到了这样的任务就尝试与其共享指定地址处的页面。判断系统中是否有另一个进程也在执行同一个可执行文件的方法是利用进程任务数据结构中的executabl...
分类:
系统相关 时间:
2014-06-05 03:47:01
阅读次数:
350
计算机系统是由硬件和系统软件组成,它们共同协作以运行应用程序。计算机内部的信息被表示为一组组的0和1二进制位,它们依据不同的上下文有不同的解释方式。程序被其他程序编译成不同的形式,开始时是源代码文本,然后被编译器和连接器翻译成二进制可执行文件。
处理器读取并解释存放在主存里的二进制指令。因为计算机花费了大量的时间在存储器、I/O设备和CPU寄存器之间拷贝数据,所以系统中的存储设备就被按层次排列,CPU寄存器在顶部,接着是多层的硬件高速缓存存储器,DRAM主存储器,DRAM主存储器和磁盘存储器。在层次模型中...
分类:
其他好文 时间:
2014-06-05 00:26:30
阅读次数:
235
有时,用户在双击安装某个软件时,经常会弹出“XX不是有效Win32应用程序”的错误提示。即使我们双击运行任意一个EXE格式的可执行文件,可能同样会出现这样的错误提示。那么如何解决“不是有效的win32应用程序”的提示呢?答案:很大可能是程序感染病毒了http://jingyan.baidu.com/...
源程序->预处理->编译和优化->生成目标文件->链接->可执行文件
分类:
编程语言 时间:
2014-05-30 20:24:34
阅读次数:
454
[内存结构]C程序通过编译-汇编-连接,最后到可执行文件。载入内存有这几个部分:text:正文段,存放的是可执行的机器码段data:存放初始化之后的全局变量和静态变量bbs:存放未初始化的静态变量和全局变量heap:堆,由程序员自己分配和释放,程序结束时,操作系统也会释放。stack:
栈,编译器自...
分类:
编程语言 时间:
2014-05-30 08:35:07
阅读次数:
373
Vsftpd是很安全的ftp软件VSFTPD的目录结构/usr/sbin/vsftpd:VSFTPD的可执行文件/etc/rc.d/init.d/vsftpd:启动脚本/etc/vsftpd/vsftpd.conf:主配置文件/etc/pam.d/vsftpd:PAM认证文件/etc/vsftpd....
分类:
其他好文 时间:
2014-05-30 02:47:13
阅读次数:
286
空白工程新建DLL后,将DLL和LIB文件放入需要调用的“指定目录”项目-》属性->连接器-》常规-》附加库目录->添加“指定目录”项目-》属性->连接器-》输入-》附加依赖项->添加“LIB文件”添加头文件到项目中,则DLL可用!VC6.0:使一个项目编译生成DLL库而不生成可执行文件:删除mai...
分类:
其他好文 时间:
2014-05-29 23:25:09
阅读次数:
616
rocess对象,我说的是对象。这个对象包含的方法和属性非常的多,它向我们打开了一个通往Node.js的大门,让我们队Node.js有更多的了解。你知道安装的Node.js的版本吗?你知道你的Node安装在上面平台下吗?你知道你的Node可执行文件的绝对路径吗?你想得到你env环境变量内容吗?上面输...
分类:
Web程序 时间:
2014-05-28 04:17:45
阅读次数:
274
1.安装 doxygen有两种获得 doxygen 的方法。可以下载预编译的可执行文件,也可以从
SVN 存储库下载源代码并自己编译。清单 1 演示的是后一种方法。清单 1. 安装和构建 doxygen 源代码bash-2.05$svn co
https://doxygen.svn.sourcefo...
分类:
编程语言 时间:
2014-05-28 00:04:06
阅读次数:
501
1.gcc的-g选项
如果要使用gdb进行调试,必须在编译时在gcc中加入-g选项,使用参数 -g 表示将源代码信息编译到可执行文件中。
如果不使用-g选项:
#include
int main(void)
{
int i = 1;
i = i + 1;
printf("i = %d\n",i);
return 0;
}gcc main.c
gdb a.out
(...
分类:
其他好文 时间:
2014-05-25 21:38:46
阅读次数:
238