本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/11619609

我的朋友里,至少有2.5个神童。

有的书上说,一个人的能力取决于他的朋友圈子的能力。所以,我是幸运的,因为我的很多朋友都比我更优秀。

雅丽是公认的神童。北漂族、帅气、博学、擅长多国语言,同时,公认的Oracle大神。他自认是个文科生,跟计算机毫无关系,不过大量的兄弟伙在他们的Oracle数据库快死的时候会向雅丽求救,同时,获得起死回生的灵药。

童鞋们感兴趣可以去他的院子逛逛:http://www.dbaleet.org/

在我的朋友里,老周是另外一个神童。或许,只有老周能在英语上与雅丽一较高下——老周的爷爷二战时,是美国大兵的翻译官。

他和雅丽有很多共同之处。比如说,语言上的天赋、年龄。

虽然他们都是神童,但并不是说,他们的年龄很小,相反,他们的年龄都比我大。只不过,他们的年纪相比于他们的能力,实在太小了。

今天聊了一个关于mlock的话题。

mlock的代码在Linux内核里只经历过2个作者的维护。

原作者是Linus Torvalds,起源于1995年。

修改者是Christoph Hellwig,修改于2002年。

之后一直没有变动。

自RedHat Linux 6之后,RedHat Linux内核给Lru list加了一个patch——Split Lru

详细介绍如下:

Starting from the premise that not all data is equal, a Red Hat engineer implemented a set ofpatches that handle different types of pages differently and finds pages that can be evicted withminimal scanning. These patches were, of course, pushed upstream and accepted into the Linuxkernel before being included in Red Hat Enterprise Linux 6. The result is the Split LRU VM (Splitleast recently used virtual memory manager).The Split LRU VM uses several lists of memory pages instead of a single, monolithic memorymanager. These include separate page lists for filesystem backed data (the master data exists ina file in the storage subsystem and can be read again whenever needed), swap backed data (theVM can page out memory to disk and read it back in when needed), and non-reclaimable pages(pages that can not be discarded by the VM).

那mlock是否会被split lru影响呢?

split lru把原本单一的lru list划分成了多个队列表。

其中,包括filesystem backed data zone,swap backed data zone,non-reclaimable pages zone。

关键点就在这里,Linux内核怎么知道一个page应该挂接在哪一个zone里呢?

翻一下mlock.c这个文件吧。

生命是多么美好:)

Linux内核源代码解析之——我与神童聊Linux内核的更多相关文章

  1. Linux内核源代码解析——TCP状态转移图以及其实现

    本文原创为freas_1990,转载请标明出处http://blog.csdn.net/freas_1990/article/details/10223581 TCP状态转移的原理并不高深,但是处理逻 ...

  2. Linux内核源代码解析之——sock's buffer参数

    本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/11539695 关于socket与sock的关系再简单 ...

  3. Linux内核源代码解析——用户发送数据包的起源之sendto

    本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/10162853 Jack:我想知道用户如何把数据发送到 ...

  4. Linux内核源代码解析之TCP面向字节流

    本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/11264237 大家都知道TCP是面向stream,而 ...

  5. Ubuntu:编译Linux内核源代码和内核模块

    1. 目的 内核模块需要运行在Linux 3.8.13内核中,因此需要为此内核重新编译内核模块源代码. 2. 步骤 1.在Ubuntu 14.04 64位(内核3.13.0-24-generic)上, ...

  6. Linux内核源代码情景分析系列

    http://blog.sina.com.cn/s/blog_6b94d5680101vfqv.html Linux内核源代码情景分析---第五章 文件系统  5.1 概述 构成一个操作系统最重要的就 ...

  7. linux device tree源代码解析--转

    //Based on Linux v3.14 source code Linux设备树机制(Device Tree) 一.描述 ARM Device Tree起源于OpenFirmware (OF), ...

  8. Linux内核源代码获取教程

    Linux内核源代码获取方法 什么叫Linux 什么叫Linux内核 Linux内核源代码的获取 什么叫Linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UN ...

  9. 如何切入 Linux 内核源代码

    Makefile不是Make Love 从前在学校,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉.毕业的时候,人家跟我说Makefile我完全不知,但是一说Make Love我就来劲了 ...

随机推荐

  1. Java ThreadLocal 学习

    同步机制是为了同步多个线程对相同资源的并发访问,是为了多个线程之间进行通信的有效方式. 而ThreadLocal是隔离多个线程的数据共享,从根本上就不在多个线程之间共享资源(变量),这样当然不需要对多 ...

  2. 【opengl】OpenGL中三维物体显示在二维屏幕上显示的变换过程

    转自:http://blog.sina.com.cn/s/blog_957b9fdb0100zesv.html 为了说明在三维物体到二维图象之间,需要经过什么样的变换,我们引入了相机(Camera)模 ...

  3. Hierarchical Storage structure

    1.hierarchical storage structure      This notion of inserting a smaller, faster storage device (e.g ...

  4. 柯里化函数之Javascript

    柯里化函数之Javascript 定义 依据定义来说,柯里化就是将一个接收"多个"參数的函数拆分成一个或者很多个接收"单一"參数的函数.定义看起来是比較抽象的. ...

  5. Java之旅(一)---说说“异常”那些事

     从開始学习VB,就听说过"异常",认为异常处理就是加上try..catch,不让错误抛出给用户,到此为止,不要再往下问了,再问也不会了.这就是那时候的理解.如今随时项目经验的 ...

  6. 高性能网站优化-创建快速响应的Web

    <高性能网站建设进阶指南> 优化原则 优化的目的是希望降低程序的整体开销. 减少开销 通常认为开销就是程序的执行时间.而在进行优化工作时,应该把重点放在对程序开销影响最大的那部分. 假设我 ...

  7. html相关介绍

    HTML(超文本标记语言)  超文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言 XHTML1.0 可扩展超文本置标语言(eXtensi ...

  8. [C#参考]委托机制

    1. 委托概述 这是一个新的概念,但是其本质并不是什么新鲜的事物,委托本质上就是一个类.只不过一般的类是数据的集合,委托保存的是一个或者多个方法.委托是引用类型,因此委托有引用和对象,同时委托对象中包 ...

  9. Collection类学习笔记

    binarySearch原理: public static index halfSearch(List<String> list, String key) { int max,min,mi ...

  10. js中判断按键的方法

    // 通过证件号码查询人员基本信息,响应回车事件的js函数, $('#sfwwsss [name="AAC002"]').keydown(function(event) { var ...