【Linux-7】程序地址空间

目录:

 

  • 系统编程阶段内存地址
  • 虚拟地址
  • 页表
  • 内存置换算法

1.系统编程阶段:

进程概念->进程控制->基础IO->进程间通信->进程信号->多线程

进程概念:冯诺依曼体系结构------>现代计算机硬件体系结构

2.程序地址空间:


                                进程之间数据独有
                                内存地址->就是内存区域的一个编号
                                虚拟地址:相同的地址(☞虚拟地址)并不是相同的内存区域    mm_struct
                                    每个程序都需要连续的地址空间
                            虚拟地址如何存储数据:
                            虚拟地址空间又是什么?
                            我们所看到的程序地址空间其实时一个虚拟地址空间,操作系统通过mm_struct这个结构体我IE进程描述一个空间,称为内存描述符。
                                为什么要使用虚拟地址空间?
                                    页表中不但记录了
                                    
                            创建子进程都发生了什么?-->【写时拷贝技术】:操作系统通过复制父进程创建子进程,子进程初始时与父进程指向同一块物理内存区域,当内存


                            数据改变时,会为子进程重新开辟内存更新页表
                            进程的独立性:进程之间应该相互独立,因为独立才更加稳定


                            虚拟地址空间和页表的作用?-->提高内存利用率,增加内存访问控制,保持进程独立性
                                多进程之间可以传送地址,但不可以访问
                            
                            页表是如何将虚拟地址转换为物理地址?
                                分段式内存管理:
                                    内存地址的构成:段号+段内偏移
                                    段表--有很多的段表项


                                分页式内存管理:地址中的页号去找到页表项,通过页表项中的物理地址加上页内偏移地址获取到物理地址
                                    构成:页号+页内偏移
                                    页表--页表项()
                             ***段页式内存管理:
                                    内存地址的构成:段号+段内页号+页内偏移
                                    段表项中包含页内起始地址
                                    段内页表项中又包含物理页号
                            
                            内存置换算法:内存只有4G,但是想要处理5G的内存数据,怎么办?FIFO:先进先出 LFU:最近最少未使用 LRU:最近最久未使用
                            swap分区也叫交换内存,将内存中的数据置换到交换分区中,腾出内存处理数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值