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信息,当用户登录时 ......
1.配置文件
/etc/hosts(本地主机ip地址映射,可以有多个别名)。
/etc/services(端口号与标准服务之间的对应关系)。
/etc/sysconfig/network(设置主机名,网关,域名)。
HOSTANME=zjw.com(主机名)(需要重启计算机才有效)
GATEWAY=192.168.1.1(网关)
/etc/rc.d/init.d/network restart(脚本服务启动)
servi ......
du -sh * 查看当前目录下的文件夹大小
du 命令
用途
概述磁盘使用。
语法
du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] [ -x ] [ -H | -L ][ File ... ]
描述
du命令显示用于文件的块的数量。
如果指定的File参数实际上是一个目录,就要报告该目录内的所有文件。如果没有提供 File参数,du命令使用当前目录 ......
和进程相比,线程的最大优点之一是数据的共享性,各个进程共享父进程处沿袭的数据段,可以方便的获得、修改数据。但这也给多线程编程带来了许多问题。我们必须当心有多个不同的进程访问相同的变量。许多函数是不可重入的,即同时不能运行一个函数的多个拷贝(除非使用不同的数据段)。在函数中声明的静态变量常常带来问题, ......
1、用虚拟机加windows开发linux程序
2、编辑器用SourceInsight
3、构建共享目录,挂载共享目录
4、windows下共享目录权限的设置
5、用编译器编译出可执行程序
linux下 网络编程 必备头文件
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <netinet/in.h>
......