导读 本文适合有基本Linux内存管理概念的新手阅读,且本文旨在从工作流程和设计思想上介绍KSM,在涉及到源代码的地方,进行了部分删减,如果想详细了解KSM,推荐阅读源代码及源代码中的注释。 作者也是初次接触Linux内核源码,所以文章中难免出现纰漏,欢迎在评论中纠正。 ...
本文翻译自 How The Kernel Manages Your Memory 在介绍完进程中虚拟地址空间的布局后,我们来看一看内核是如何管理内存的: 内核中使用结构体 task_struct 来描述进程,其中含有一个 mm_struct 类型的成员 mm,该类型是内存管理的 ...
最近知乎和朋友圈都被 996.ICU 刷屏,朋友问我怎么看,当时我说:“还能怎么看,干看呗,不然还能有什么办法?” 996 这个现象,岂止出现在工作中,学校里的这种现象更加常见且不受到重视,甚至连出来发声的人都没有,因为大家都习以为常而至于忘记。 ...
C++11 中引入的 delete 描述符主要有如下两个使用场景: 禁止编译器自动生成拷贝 Effective C++ 中提到 通过“私有化 + 只声明、不定义” 的方法禁止编译器生成某些拷贝构造函数、拷贝操作符等。 在C++11及以后,可以通过 delete 描述符来实现。 ...
大年初三去看了电影,回来赶紧补原著。 原著中提到,人类抛弃了宗教,开始拥抱理性。而结尾人类背叛理性,发生全球范围的叛乱。 这是很矛盾的。宗教具有传染性,而理性没有。宗教是人类矛盾的一个载体,而叛乱只是矛盾的一次暴发。 ...
去悉尼是为了见一个同学 凌晨3点起床,早早到达阿瓦隆机场。 ...
The madvise() system call allows applications to tell the kernel how it expects to use some mapped or shared memory pages, so that the kerne ...
上周完成了澳洲5日游 某七天酒店,睡一觉去机场 香港机场,没有一个简体字,很不友好 飞了15个小时,来不及休息,立即赶到会议地点。 ...
装饰者模式可以动态地将责任附加到对象上,若上扩展功能,装饰者提供了比继承更有弹性的替代方案。 ...
线性哈希是一种动态扩展哈希表的方法,其“线性”的名字源于这种方法每次只扩展一个Bucket的容量。 这种方法需要两个哈希函数。 ...