Linux进程的虚拟地址空间(笔记)
进程虚拟空间是个32或64位的“平坦”(独立的连续区间)地址空间(空间的具体大小取决于体系结构)。 为了方便管理,虚拟空间被划分为许多大小可变的(但必须是4096的倍数)内存区域,如果要查看某个进程占用的内存区域,可以使用命令cat /proc/<pid>/maps获得.pid是进程的id号 [root@localhost user-mode]# cat /proc/16677/maps...
View Article内存条物理结构分析
Update 2015-07-04 我们经常接触物理内存条,如下有一根DDR的内存条,我们可以看到这个内存条上面有8个黑色的内存颗粒,在高端服务器上面通常会带有ECC校验,所以会存在9个黑色的内存颗粒,其中一个的内存颗粒是专门做ECC校验的。 从概念的层次结构上面分为:Channel > DIMM > Rank > Chip > Bank > Row/Column...
View Article内核页表和进程页表
最近在看vmalloc()分配代码,我们知道当通过alloc_page()分配出来page后,需要将这些分散的物理页框page映射到vmalloc区,这里我们就要修改内核页表,以前我学页表是把内核空间与用户空间割裂学习的,导致二者无法很好地衔接,这里我会把两个概念重新解释清楚。 下面代码映射到vmalloc区的关键就是map_vm_area()函数, for (i = 0; i <...
View Article《MySQL实战45讲》学习笔记 1~15讲
01 | 基础架构:一条SQL查询语句是如何执行的? MySQL分为Server层和存储引擎层两部分。 连接器:负责跟客户端建立连接、获取权限、维持和管理连接。 查询缓存:查询请求先访问缓存(key 是查询的语句,value 是查询的结果)。命中直接返回。不推荐使用缓存,更新会把缓存清除(关闭缓存:参数 query_cache_type 设置成 DEMAND)。 分析器:对 SQL...
View Article如何实现从执行到管理的角色转变?
成为管理者意味着成为领导——建立更大的团队,应对更大的挑战,承担更大的风险和责任。但无论如何,想要成为管理者就必须达到管理者应有的水平。关键是能够提升自己。 有的管理者因为本身业务能力强,在下属遇到困难时,会认为花时间教下属解决问题,远不如自己来做效率高。如果你也有这样的想法,就说明你现在还是处于「执行者」的状态,没有转化为管理者的思维方式。...
View Article