linux内核学习读书笔记

  • 格式:pdf
  • 大小:126.66 KB
  • 文档页数:2

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux内核学习读书笔记

2011-05-21 16:07

hexdump -C filename 将显示对应的十六进制的信息,并显示在终端上

mount -t tmpfs -o

size=1G testmem/ testmem/

mount |grep testmem

dd if=/dev/zero of=testmem/file bs=1M

count=500

这样就完成了占用内存空间的效果

通过上述的学习,发现访问内存的速度为访问磁

盘速度的10倍左右。

rq结构体中的timestamp_last_tick为本CPU上最后一次发生调度的时间。

struct prio_array *active, *expired, arrays[2];

这其中有两个数组链表,分别为过期数

组,活动数组,每个数组都是由140个位图,每个位图对应一个运行队列。

为什么会有等待的

进程,因为该进程如果需要访问某个inode,而该节点并没有在缓冲区里,需要从物理介质中

寻找,这样进程会进入等待状态。

asmlinkage long sys_setscheduler()...

在sched.c文件当

中,你就会看到会有这样的函数那么以sys_开头的函数就是系统调用函数模型,可以被用户使用。

task_struct中的cpus_allowed的作用是记录是哪个CPU 来处理该进程。

#ifdef CONFIG_SMP

#define NR_CPUS CONFIG_SMP

#else

#define NR_CPUS 1说明默认的配置为1

#endif

如果不进行任何配置,内核自己的选择。

linux的写时拷贝技术大大的提高了系统的性能,当需要的时候再拷贝该进程的信息,因为当新的进程产生的时候可能会进行exec族的操作,这样就避免了不必要的复制的信息。当父子进程发生了写入的操作的时候,操作系统在写某一个页面的时候会发生保护性的错误,系统会自动拷贝该页面。compiler.h学习

在该文件中有对GNU的版本的一些说明,如果该版本太

高,将会说版本太高无法编译

#if __GNUC__ > 4

#error no compiler-gcc.h file for this gcc version

#elif __GNUC__ == 4 //这里是Gcc支持的一个内置宏,表示了gcc的版本。

# include

#elif __GNUC__ == 3

# include

#else

# error Sorry, your compiler is too old/not recognized. //否则显示你的编译器太旧,无法编译。

#endif