虚拟空间与地址空间的管理

随着计算机技术的发展,应用程序的规模也随之越来越大,这也就造成了应用程序太大以至于内存容纳不下程序,因此引进了所谓的虚拟内存。对于虚拟内存,其基本思想就是程序、数据、堆栈的总大小可以超过物理内存的大小,操作系统把当前使用的程序段存放在内存中,而未被使用的部分保存在磁盘中。为了有效地对内存进行管理,ARM应用了内存管理单元MMU,它将虚拟地址映射为物理地址,完成虚拟地址到物理地址的重定位。

ARM存储管理器(MMU)将物理地址和虚拟地址都划分为一块一块的小空间,将虚拟地址的这种划分称为页,物理地址的划分称为页框,页和页框的大小必须相同;CPU访问的地址空间为虚拟地址空间,而存储器对应的是物理地址空间。当CPU去访问一个虚拟地址空间的时候,MMU会找到该虚拟地址空间对应的所属页,然后再根据预先设置好的对应规则去寻找相应的物理地址所属的页,最后在物理页的基础上加上偏移量就完成了虚拟地址向物理地址的映射。

如下图所示,当一条指令将0号地址的值传递进寄存器时,其执行过程如下:

           

首先,虚拟地址0将被送往MMU,MMU看到该虚拟地址落在页0范围(0~4095)内,从上图看出页0所对应的页框为2(页框2的范围为8192~12287),因此MMU将该虚拟地址转换为物理地址8192,并把地址8192送到地址总线上,从而完成了把0~4096的虚拟地址映射到8192~12287的物理地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
虚拟地址空间是操作系统为每个正在运行的进程分配的一段连续的虚拟内存地址范围。它是一个抽象的概念,使得每个进程可以在自己的地址空间中运行,彼此之间相互隔离,不会相互干扰。虚拟地址空间的大小可以根据操作系统的设计和硬件支持而有所不同。 虚拟地址空间的划分通常由操作系统内存管理单元负责。操作系统虚拟地址空间划分为多个部分,如代码段、数据段、堆、栈等,以支持不同类型的内存操作和数据存储需求。进程在运行过程中可以动态地申请和释放内存操作系统会把对应的虚拟地址转换为物理地址。 PCB(Process Control Block)是操作系统管理进程的数据结构,用于存储和维护进程的相关信息。PCB通常包含进程的标识符、状态、程序计数器、寄存器值、优先级、已分配资源等信息。每当操作系统创建一个新进程时,都会为该进程分配一个对应的PCB,用于记录和保存该进程的状态和相关信息。 PCB的主要作用是管理和调度进程的执行。通过维护进程的状态和相关信息,操作系统可以在进程之间进行切换,以实现进程的并发执行。当一个进程被暂停或者正在等待资源时,操作系统可以通过PCB保存并恢复进程的执行状态,使得进程可以在合适的时机继续执行。 之,虚拟地址空间和PCB是操作系统中重要的概念和数据结构。虚拟地址空间为每个进程提供了独立的内存空间,使得进程之间互不干扰。而PCB则用于管理和调度进程的执行,记录和保存进程的状态和相关信息。通过合理管理虚拟地址空间和PCB,操作系统可以实现进程的并发执行和有效的资源利用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值