摘要: 由于内核使用写时复制机制,fork之后父子进程是共享页表描述符的,如果让父进程先执行,那么有很大几率父进程会修改共享页表指向的数据,那么内核此时必须给父进程分配并复制新的页表供父进程修改使用,那么如果子进程被创建之后什么都没干后退出了,那么这个写时复制就是多余的。如果让子进程先执行,如果子进程什么都没做就退出了,那么就没有什么所谓的写时复制了,避免了不必要的页面复制。另外如果子进程确实运行了新的程序(我们的shell程序基本上是如此),那谁先谁后就无所谓了。 阅读全文
posted @ 2013-08-04 13:45 WendellYih 阅读(1698) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #define SWAP(a, b) \ do { \ int __tmp = a; \ a = b; \ b =... 阅读全文
posted @ 2013-07-21 23:46 WendellYih 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 良序原理指出,自然数集的每个非空子集都有最小元素,即自然数在其标准的大小关系下构成良序。 阅读全文
posted @ 2013-07-20 16:29 WendellYih 阅读(448) 评论(0) 推荐(0) 编辑
摘要: #include #include #define BLOCK_SIZE 1024#define BUFFER_SIZE (1024*1024) // 1Mstatic long NR_BUFFERS;struct buffer_head{ int b_dev; int b_dirt; int b_count; int b_lock; int b_uptodate; int b_wait; struct buffer_head* b_next; struct buffer_head* b_prev; struct b... 阅读全文
posted @ 2013-07-07 22:32 WendellYih 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 使用下面的语句(set-default-font "Monaco-12")前提是系统中安装了Monaco字体,后面的12代表字号,所以可以使用类似的格式设置任意字体。 阅读全文
posted @ 2013-06-08 22:25 WendellYih 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 配色方案需要安装插件,地址如下http://download.savannah.gnu.org/releases/color-theme/安装说明地址如下http://www.emacswiki.org/emacs/ColorTheme简要说明安装方法1.将下载的插件包解压到一个目录中,然后向.emacs文件中添加下面的代码;; 加载配置文件的路径(add-to-list 'load-path "~/.emacs.d")(require 'color-theme)(color-theme-initialize);; 下面的配色方案任选其一;;(color-t 阅读全文
posted @ 2013-06-08 22:15 WendellYih 阅读(1280) 评论(0) 推荐(0) 编辑
摘要: 首先,下载Emacs For Windows,地址如下http://ftp.gnu.org/pub/gnu/emacs/windows/其次,解压,运行bin目录下的addpm.exe,即可将向开始菜单添加GNU Emacs启动项。最后,配置路径,Windows 7下默认的路径为C:\Users\<username>\AppData\Roaming,然而这个路径过于隐蔽,而且是在C盘,重装系统容易丢失,所以给出两个更好的方法:1.向注册表中添加HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs\HOME=%emacs_dir%,GNU和Emacs都是新建的键 阅读全文
posted @ 2013-06-06 21:41 WendellYih 阅读(11195) 评论(0) 推荐(0) 编辑
摘要: (defun count-words-region (beginning end) "Print number of words in the region." (interactive "r") (message "Counting words in region ... ") (save-excursion (let ((count 0)) (goto-char beginning) (while (and (< (point) end) (re-search-forward "\\w+\\W*" end 阅读全文
posted @ 2013-06-05 23:24 WendellYih 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 用到了以下三个宏(第四个宏只是与之相关,并没用到): void va_start(va_list arg_ptr, prev_param); type va_arg(va_list arg_ptr, type); void va_end(va_list arg_ptr); void va_copy(va_list d, va_list s);va_list:用来保存宏va_start、va_arg和va_end所需信息的一种类型。为了访问变长参数列表中的参数,必须声明va_list类型的一个对象,它的定义: typedef char * va_list;va_start:访问... 阅读全文
posted @ 2013-05-16 11:30 WendellYih 阅读(296) 评论(0) 推荐(0) 编辑