寒江独钓

博客园 首页 新随笔 联系 订阅 管理

2013年12月3日 #

摘要: 为了节约页表占用的内存空间,x86将线性地址通过页目录表和页表两级查找转换成物理地址。32位的线性地址被分成3个部分:最高10位 Directory 页目录表偏移量,中间10位 Table是页表偏移量,最低12位Offset是物理页内的字节偏移量页目录表的大小为4KB(刚好是一个页的大小),包含1024项,每个项4字节(32位),表项里存储的内容就是页表的物理地址(因为物理页地址4k字节对齐,物理地址低12位总是0,所以表项里的最低12字节记录了一些其他信息,这里做简化分析)。如果页目录表中的页表尚未分配,则物理地址填0。页表的大小也是4k,同样包含1024项,每个项4字节,内容为最终物理页的 阅读全文
posted @ 2013-12-03 14:20 X.W.LIU 阅读(312) 评论(0) 推荐(0) 编辑

摘要: 一、基本概念1)物理地址(physical address) 用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。2)逻辑地址(logical address) Intel为了兼容,将远古时代的段式内存管理方式保留了下来。逻辑地址指的是机器语言指令中,用来指 定一个操作数或者是一条指令的地址。3)线性地址(linear address) 总的来说,CPU将一个虚拟内存空间中的地址转换为物理地址,需要进行两步: 首先将给定一个逻辑地址,CPU要利用其段式内存管理单元,先将为个逻辑地址转换成一个线性地 址, 再利用其页式内存管理单元,转换为最终物理地址。二、逻辑地址—>线性地址. 阅读全文
posted @ 2013-12-03 14:16 X.W.LIU 阅读(2115) 评论(0) 推荐(0) 编辑

2013年9月7日 #

摘要: 1)利用STL 1 #include 2 #include 3 #include //注意该引用比较好 可以进行字符串比较和字符串子串比较 4 using namespace std;//不区分大小写比较:统一转化成大写,再比较 5 bool IsEqual(char a,char b) 6 { 7 return toupper(a)==toupper(b); 8 } 9 void main()10 { 11 string a("Welcome To Www.Ok2002.Com!"); 12 string b("OK2002.COM"); 13 if( 阅读全文
posted @ 2013-09-07 18:29 X.W.LIU 阅读(216) 评论(0) 推荐(0) 编辑

摘要: 替换字符串中的空格为%20:#include void replaceSapace(char *str){ int len = strlen(str); int SpaceNum = 0; for (int i = 0;i =0 ; i--) { if (str[i] == ' ') { str[j--] = '0';str[j--] = '2';str[j--] = '%'; } else { str[j--] = str[i]; } //打印每次循环之后数组所有元素// for (int k = 0;k< len + S 阅读全文
posted @ 2013-09-07 16:15 X.W.LIU 阅读(285) 评论(0) 推荐(0) 编辑

2013年3月31日 #

摘要: 1 while(x-y>0)2 {3 x=x-y;4 } 阅读全文
posted @ 2013-03-31 17:45 X.W.LIU 阅读(289) 评论(0) 推荐(0) 编辑

2012年12月3日 #

摘要: 下载鬼火引擎1.8后, 利用工具VS2010编译后出现如下错误:1>------ 已启动生成: 项目: Test, 配置: Debug Win32 ------1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11280): error C2061: 语法错误: 标识符“__RPC__out_xcount_part”1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11281): error C2059: 语法错误:“ 阅读全文
posted @ 2012-12-03 16:43 X.W.LIU 阅读(621) 评论(0) 推荐(0) 编辑

2012年11月15日 #

摘要: 原文链接:http://www.apuebook.com/errata.htmlThe following errors were fixed in the second printing.Page 413, third paragraph. If a signal is related to an expiring timer, it is sent to an arbitrary thread, not necessarily to the thread that scheduled the timer. Hardware-related signals are usually deliv 阅读全文
posted @ 2012-11-15 23:58 X.W.LIU 阅读(220) 评论(0) 推荐(0) 编辑

2012年10月26日 #

摘要: 此文英文原文在http://blog.secaserver.com/2011/09/linux-vmware-tools-installation-error/我就是看到此博文解决的问题,又开始觉得外国人真是牛了。中国人的发的一些博文都没有说到问题的实质。至此,我复制下来,一备以后查看,比较此链接不是永远都存在的。 Linux: VMware Tools Installation ErrorbySECAGUYon30 SEPTEMBER 2011·LEAVE A COMMENT Yesterday, I was installing a newCentOS 6server w... 阅读全文
posted @ 2012-10-26 21:01 X.W.LIU 阅读(322) 评论(0) 推荐(0) 编辑

2012年10月18日 #

摘要: 1)vim编辑器基本使用,在附件ppt中2)我们安装snipMate插件可以加快代码书写,下载地址:http://www.vim.org/scripts/script.php?script_id=2540。安装这个插件十分简单: 只要将下载得到的snipMate:/Files/X-W-LIU/snipMate.zip包解压到vimfiles文件夹下载即可(必要时是可以覆盖的).其解压的文件中,重要的在snippets文 件夹下,里面有很多不同语言的代码片段注释。看看就应该知道怎么加入自己的快捷代码。使用也是十分简单,tab键即可!!!!3) xptemplate插件下载地址:1)htt... 阅读全文
posted @ 2012-10-18 13:25 X.W.LIU 阅读(1223) 评论(0) 推荐(0) 编辑

2012年10月17日 #

摘要: 1)记得我在做刘涛涛那个面试题目的时候,宏的展开实在令人烦恼,用vs也同样可以得到欲编译得到的文件,详情可查看: http://blog.csdn.net/chief1985/article/details/2132919 查看展开后的宏: vc6: project menu->settings project settings dialog C/C++ tab category : preprocessor Project options: 最后加上 /P rebuild all,会产生于.cpp同名的.i文件。在这里宏被展开了。注意此时,编译器会报错,这是没有关系的,因为我们只是想得 阅读全文
posted @ 2012-10-17 21:15 X.W.LIU 阅读(216) 评论(0) 推荐(0) 编辑