Linux子系统之【内存管理】
2024-10-20 04:27:43
1.内存管理的意义?
内存是进程运行的地方,相当于是战场。完善的机制能让进程多快好省地运行。
2.原始内存管理是怎么样的?
- 简陋(直接运行在物理内存上)、不安全(无隔离,无权限)
缺点:容易出错,进程吞吐量小。
3.内存分段管理
4.怎样能够确定一个内存段的范围?
段基址和段限长确定了一个内存段的范围。
5.段权限分为几种?
两种
- 有特权 : 内核权限
- 无特权 : 用户权限
6.怎么让进程不能再随意访问内核?
首先内存中分为了代码段和只读数据段和读写数据段
然后内核(数据段...)为特权段
进程(数据段...) 为 用户段
用户端无权访问内核段-- 简易地实现进程与内核隔离
7.内存访问的安全性怎么体现?
进程(用户段)无权执行敏感指令(内核权限)
分段后不能越界访问。
8.分段机制为什么不能禁止?
8.MMU是什么
硬件的内存管理单元
9.页面是谁在创建和维护?
内核
10.每个进程拥有自己的一套页表?
是的
每个进程都拥有一个自己的页表,在linux中,有一个页目录数组,这是分页机制的最高层,每个进程的页表对应其中的一个页目录项,通过cr3寄存器可以访问。
11.内核页表和进程页表的区别?
参看博客:[]:https://blog.csdn.net/weixin_43836778/article/details/123132998
11.每个进程拥有自己的一个虚拟内存空间?
12.虚拟内存空间有多少个内核空间和用户空间?
13.虚拟内存空间如何解决物理内存空间不足的问题?
14.页表机制是怎样的?
15.mmap的底层具体实现或者原理是什么?
16.物理地址与虚拟地址之间如何转换?
17.虚拟地址占用4G,意味着物理内存也占用着4G吗?
18.了解过伙伴系统吗?
19.内存回收了解过吗?
最新文章
- 03.LoT.UI 前后台通用框架分解系列之——多样的表格
- java多线程操作
- 开源安卓Http文件下载框架file-downloader的使用
- Android添加快捷方式(Shortcut)到手机桌面
- C# asp.net mvc 配置多个route 参数
- SQL语句查找重复记录
- jfinal想用到中大型项目中的项目经验分享
- Python 学习笔记(四)正则、闭合、生成器
- 对$NOMOD51的理解
- hdu 5620 KK's Steel(推理)
- 201521123015 《Java程序设计》第9周学习总结
- 【JDK1.8】JDK1.8集合源码阅读——LinkedList
- 1、mysql初识
- 2827: 千山鸟飞绝 非旋treap
- fread 不能读取最后一个数据块
- 【Graphite学习】系列学习文章-【转】
- 进入快速通道的委托(深入理解c#)
- STL容器(C11)--unordered_map用法
- EasyUI动态改变输入框width
- jenkins使用Publish Over SSH中遇到的问题