linux内核代码——页框的回收(2.4.18)
写这篇blog参照了O'Reilly 的《Understanding the Linux Kernel》,或者说是大部分参照,实际上这本书关于这章写得确实很经典。尽管如此,在看代码的过程中我仍然遇到了很多困惑,以至于看过两遍之后脑子里还是一团浆糊。所以还得感谢村爷帮我理清楚了思路,不敢怠慢,赶紧写下来防止忘记。(以下代码及解释均以2.4.18版本为准)
管理页框回收的主要函数是try_to_free_pages,函数原型是int try_to_free_pages(zone_t *classzone, unsigned int gfp_mask, unsigned int order)。这个函数的参数:classzone--要回收的页框所在的管理区;gfp_mask--标志,这个不好解释,建议大家看代码;order--释放一个页框所以是0。看这个函数之前需要了解一下LRU链表,活动链表与非活动链表是页框回收的核心数据结构,请先补全这部分的知识!下面以代码分析:
int try_to_free_pages(zone_t *classzone, unsigned int gfp_mask, unsigned int order)
{
int priority = DEF_PRIORITY; //默认优先级
int nr_pages = SWAP_CLUSTER_MAX; //释放的页框数
gfp_mask = pf_gfp_mask(gfp_mask); //检查标志位
do {
nr_pages = shrink_caches(classzone, priority, gfp_mask, nr_pages); //循环调用shrink_caches释放页框。每次循环优先级数值递减(优先级更高
if (nr_pages <= 0)
&n
相关文档:
etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时 ......
学linux有几天了 今天突然想在linux下看看视频 突然发现 adobe没有装 于是就去网上下载了一堆adobe 发现都没有用 问题还是没有解决 于是在论坛上求教 效果也不是很大 不是说的太专业 就是对我的情况不了解 没有办法 只好自己摸 ......
在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Lin ......
本文介绍如何在Linux下配置Java环境变量。配置共分十个步骤,从下载JDK开始,到Linux上JDK的安装,Eclipse的相应配置,最终在桌面上创建一个启动器,路径设置到Eclipse,就此完成Java环境变量的配置。
1.去http://java.sun.com/j2se/1.4.2/download.html
下载一个Linux Platform的JDK,
建议下载RPM自解压格式的(RP ......
进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait 就会收集这个子进程的信息, 并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。
wait(等待子进程中断或结束)
相关函数 waitp ......