26.2.20
1.程序的内存分配情况
从低到高:程序代码段、已初始化数据段、未初始化数据段、堆、文件映射、栈
2.程序从堆上动态分配内存,虚拟内存的操作
在页表上添加一个虚拟内存到物理内存的页表项。
3.常见内存分配错误
a.内存分配不成功
b.内存分配成功但未初始化就使用
c.访问越界
d.内存忘记释放
e.内存释放之后仍然使用
4.关于共享的知识
共享是指资源可以被多个进程使用,分成互斥共享和同时共享
5.死锁的解决方法
死锁检测和恢复、死锁预防、死锁避免
在不同阶段解决死锁
死锁的四个条件是互斥、请求和保持、不剥夺、循环等待
6.分段式存储和分页存储
分段存储按需分配但有外部碎片,分页存储是分的很完整但有内部碎片
7.外部碎片和内部碎片
外部碎片是指不能被进程分配的部分,因为过小造成的碎片,内部碎片是按照固定尺寸分但是没有被利用部分的碎片。
关于虚拟内存分配这里是用brk和mmap分配虚拟内存,移动指针,然后通过缺页处理等解决。