程序地址空间(是程序编译时的给定程序内存安排方式)进程的空间(百度网盘)

程序地址空间(是程序编译时的给定程序内存安排方式)进程的空间(百度网盘)

物理内存:32位系统的内存最大为4G

     

在编译程序时就已经安排好了一个进程的全部地址分布,而且在这个安排好 的进程里,所有的地址都是连续的

(但是这是安排而已,是一种虚拟的安排,不存在实际的物理内存中)

 

 

 

 

 

页表的存在:1、由于程序的空间是连续的,但是为了追求内存的利用率,所以就把程序空间的地址进行转化,分割,然后寻找合适的物理内存,这样的一种离散式存储的机制,能够很好的利用的内存的空间

                    2、内存访问控制

task_struct{     //        '   //usr/src/kernels/3.10.0-693.el7.x86_64/include/linux/sched.h  '文件中1400行左右就有struct task_struct{}

    mm_struct{                   //内存描述符

 

       }

}

                    3、在fork时,连同页表也一同复制

 

【重要】写时拷贝技术:操作系统通过复制父进程创建子进程,子进程初始化时于父进程指向同一块物理内存,当内存数据发生变化时,会为子进程重新开辟内存,并更新页表

 

虚拟地址空间和页表的作用

1.提高内存利用率(分割->再分配)

2.增加内存访问控制(写时拷贝技术:标记子进程的数据)

3. 保持进程独立性(mm_struct的控制产生新的进程号)

 

页表是如何将虚拟地址转化成物理地址的

(每个读取单元式是4096个字节,4K)

 

分段式内存管理

【段号+段内偏移】操作系统里有一个段表,这个段表里存的是很多的段号;段号里存的是段的起始位置和段内偏移的信息

段页式内存管理

【虚拟段号+页号+页内偏移】

分页式内存管理

【页号+页内偏移】

分页式与分段式相似

 

内存置换

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值