![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux架构学习
文章平均质量分 89
胡涂涂~
这个作者很懒,什么都没留下…
展开
-
简单说一linux内核的内存模型(平坦,不连续,稀疏等三种内存模型)
目录Linux内核支持的三种内存模型CONFIG_FLATMEM(平坦内存模型)基本概念(以第一个为例,不在复述)所以说什么是平坦模型所以说什么是不连续模型Linux内核支持的三种内存模型CONFIG_FLATMEM(平坦内存模型)CONFIG_DISCONTIGMEM(不连续内存模型)CONFIG_SPARSEMEM_VMEMMAP(稀疏的内存模型)CONFIG_FLATMEM(平坦内存模型)基本概念(以第一个为例,不在复述)就像管理一个学校,我们一般不以个人为单位,而是选择以班级为单位进原创 2022-04-28 22:28:24 · 2765 阅读 · 0 评论 -
几句话说明Linux中读写锁的实现逻辑
目录基本概念(可以跳过不看)为什么需要读写锁读写锁的功能读写锁的实现逻辑(重点在这里!!!)具体代码(有能力的可以看看,只保留的重要部分的代码)基本概念(可以跳过不看)为什么需要读写锁..在操作系统中,有很多共享数据,进程对这些共享数据要进行修改的情况很少,而读取的情况却是非常多的,这些共享数据的操作基本都是在读取。如果每次读取这些共享数据都加锁的话,那就太浪费时间了,会降低进程的运行效率。因为读操作不会导致修改数据,所以在读取数据的时候不用加锁了,而是可以共享的访问,只有涉及到对共享数据修改的时候,原创 2022-04-18 21:49:51 · 473 阅读 · 0 评论 -
什么是cache?为什么需要cache?cache存在的合理性
文章目录为什么需要cache?为什么从cache里面读取就能提高cpu的数据处理效率?cache存在的合理性程序的局部性原理什么是cache?cache的工作流程如何写出提高 Cache 命中率的代码?结尾为什么需要cache?..这里用一句话概括,CPU的数据处理速度,远远高于从内存中读取数据的速度,也就是说,如果CPU直接从内存中读取数据进行处理,CPU很长一段时间会用在等待数据读取完毕,这显示十分浪费CPU资源的。所以通过cache来缓存一部分数据,CPU读取数据时,先从cache里面找,从而提原创 2022-04-17 19:31:35 · 7482 阅读 · 0 评论 -
什么是mmu?为什么要用mmu?
MMU即内存管理单元(Memory Manage Unit),是一个与软件密切相关的硬件部件,也是理解linux等操作系统内核机制的最大障碍之一。可以说,不懂MMU使很多人一直停滞在单片机与无OS的时代。博主之前对MMU也一直是雾里看花,似懂非懂。最近终于自认为云开雾散后,回头总结,感觉有几个概念是阻碍人们理解MMU的元凶。1)虚拟地址/物理地址如果处理器没有MMU,CPU内部执行单元产生的内存地址信号将直接通过地址总线发送到芯片引脚,被内存芯片接收,这就是物理地址(physical address),原创 2021-11-05 10:18:37 · 17220 阅读 · 0 评论 -
Linux进程如何实现用户空间与内核空间的转换
文章目录为什么进程需要从用户态进入内核态?用户态进入内核态的三种场景系统调用用户态进入内核态的具体实现用户栈和内核栈异常和硬件中断鸣谢单位为什么进程需要从用户态进入内核态?这里我不去细细区分什么是属于内核空间,什么又是属于用户空间。我讲一个逻辑:在用户空间,我们对进程不加限制,想干啥干啥,如果此时所有的资源都处于用户空间中,那么如果进程对那种系统级的资源随意修改,显然极易造成系统的崩溃。但同时又要保证进程有着足够的自由度,不然不利于开发。所以内核空间的开辟就显得极为重要,我们将不能随意修改的资源,放入内原创 2022-04-13 10:39:41 · 2747 阅读 · 0 评论