首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当一个页面错误从磁盘返回到物理内存时,该页面放在哪里?

当一个页面错误从磁盘返回到物理内存时,该页面会被放置在操作系统的页面交换空间中。页面交换空间是操作系统为了管理内存而设置的一块磁盘空间,用于存储被置换出物理内存的页面。当页面错误发生时,操作系统会根据页面置换算法将一部分当前不活跃的页面从物理内存中置换出来,然后将所需的页面从磁盘读入到空出来的物理内存中,使程序能够继续执行。这种页面置换的过程又被称为虚拟内存管理。通过虚拟内存管理,操作系统可以更有效地利用有限的物理内存,提高系统的性能和可用性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云弹性伸缩(Auto Scaling):https://cloud.tencent.com/product/as
  • 腾讯云负载均衡(Load Balancer):https://cloud.tencent.com/product/clb
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版(TencentDB for MySQL):https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云云数据库 PostgreSQL 版(TencentDB for PostgreSQL):https://cloud.tencent.com/product/cdb_postgresql
  • 腾讯云云硬盘(Cloud Block Storage):https://cloud.tencent.com/product/cbs
  • 腾讯云对象存储(Cloud Object Storage):https://cloud.tencent.com/product/cos
  • 腾讯云弹性文件存储(Elastic File System):https://cloud.tencent.com/product/efs
  • 腾讯云云原生容器服务(Tencent Kubernetes Engine):https://cloud.tencent.com/product/tke
  • 腾讯云内容分发网络(Content Delivery Network):https://cloud.tencent.com/product/cdn
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

谈谈物理内存与虚拟内存之间的映射(超详细~)

Windows会根据需要将数据页面文件移至内存,或将数据内存移至页面文件以便为新数据释放内存。也叫“交换文件”。 5、虚存的访问过程: 虚存空间的用户程序按照虚地址编程并存放在辅存(硬盘)中。...,此进程的数据,代码等磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪些地址有数据,哪些地址无数据...) 5.进程访问某个虚拟地址,去看页表,如果发现对应的数据不在物理内存中,则缺页异常 6.缺页异常的处理过程,就是把进程需要的数据磁盘上拷贝到物理内存中,如果内存已经满了,没有空地方了,那就找一个页覆盖...mmap是用来建立虚拟空间到磁盘空间的映射的,可以将一个虚拟空间地址映射到一个磁盘文件上,不设置这个地址,则由系统自动设置,函数返回对应的内存地址(虚拟地址),访问这个地址的时候,就需要把磁盘上的内容拷贝到内存了...,然后就可以读或者写,最后通过manmap可以将内存上的数据换回到磁盘,也就是解除虚拟空间和内存空间的映射,这也是一种读写磁盘文件的方法,也是一种进程共享数据的方法 共享内存 内存: 如果每个程序运行都直接占用内存

2.5K20

操作系统概述

如果哪里错误,请留言提醒我。 要让一个操作系统在计算机上运行起来,首先需要一个安装操作系统的硬盘。...,磁盘将目录A的目录文件调入内存,在其中寻找WPS.exe的FCB,由此得到WPS程序存放的磁盘块号,将WPS逻辑上的第0块(即物理上的磁盘第6块)调入内存。...运行应用程序 在磁盘第6块调入内存的同时,操作系统创建进程,也就是创建进程的PCB(PCB是进程存在的唯一标志!),在创建PCB,也创建了进程对应的页表,并初始化页表,页表存放在进程的PCB中。...假定调入进程的第0块后,WPS开始运行,如果在运行时需要用到第1块的数据或者代码,查阅页表后页面不在内存中且得知缺失的页面放在磁盘第8块,此时产生缺页中断,请求操作系统调入第1块(磁盘块号第8块)(假定页框为...985),与此同时进程阻塞,页面调入后进程重新回到原来中断的代码执行。

70620
  • 我所理解的性能测试是什么?

    2.查看页交换,swap交换(po,pi,so,si),磁盘IO(vmstat)si: 每秒交换区写到内存的大小so: 每秒写入交换区的内存大小page in :分页(Page)磁盘重新回到内存的过程被称作...由此可以得到这样的结论:主机上的物理内存已经不能满足系统运行的需要,内存已成为该系统性能的一个瓶颈。...2.内存不足需要跟磁盘进行页(page)交换,swap交换,从而产生磁盘IO。po,so释放物理内存,pi,si增加物理内存使用。交换分页的过程需要占用cpu时间。...交换技术是将整个进程,而不是部分页面,全部交换到磁盘上。分页(Page)写入磁盘的过程被称作Page-Out,分页(Page)磁盘重新回到内存的过程被称作Page-In。...内核需要一个分页,但发现此分页不在物理内存中(因为已经被Page-Out了),此时就发生了分页错误(Page Fault)。

    1.3K90

    Linux 内存管理

    Linux仅把可执行映像的一小部分 装入物理 内存需要访问未装入的页面 . 系统产生一个缺页中断 , 把需要的页读入 物理内存。 ...内存中的页面需要被换出 . 调用 get — swap —page函数 申请得到一个对换空间中的物理页面 。 如果成功, 就一个非零代 码 . 否则 回0。  ...系统中产生页面故障.如果虚拟内存地址有效.则产生错误的原因有如下两种:          虚拟内存地址对应的物理页不在内存中。...七、缺页中断具体说明 ---- 1、缺页中断定义: 现代操作系统通过虚拟内存技术来扩大物理内存,虚拟内存每一页都映射在物理内存磁盘上所以虚拟内存会比物理内存大,程序里访问的是虚拟地址,程序访问页映射在磁盘...需要访问未装入的页面 . 系统产生一个缺页中断, 把需要的页读入物理内存

    7.7K10

    (理论篇)基础文件IO说起虚拟内存内存文件映射,零拷贝

    当值为100,wa基本为50左右的值,这表示50%的CPU时间都在等待IO设备就绪(大好的CPU资源就这样被浪费了!)现在你明白瓶颈在哪里了吧?对,就是硬盘。...内存够大,无论页面文件的使用频率是高还是低都放在内存里,无须使用虚拟内存。 但是在这个例子中,swpd的值始终为0,这表示没有虚拟文件被使用。这说明内存容量是足够的,即使再增加内存,作用也不大。...它的不足是增加了页面错误的数目(由于操作系统只将一部分文件加载到内存,如果一个请求页面没有在内存中,它将导致页面错误)。   映射文件区域的能力取决于于内存寻址的大小。...虚拟内存是硬盘的一部分,是计算机RAM(随机存取存储器)与硬盘的数据交换区,因为实际的物理内存可能远小于进程的地址空间,这就需要把内存中暂时不用到的数据放到硬盘上一个特殊的地方,请求的数据不在内存...,系统产生缺页中断,内存管理器便将对应的内存页重新硬盘调入物理内存

    1.7K40

    操作系统之存储管理

    七、虚拟存储技术 所谓虚拟存储技术是指:进程运行时,先将其一部分装入内存,另一部分暂留在磁盘要执行的指令或访问的数据不在内存,由操作系统自动完成将它们磁盘调入内存的工作 虚拟地址空间即为分配给进程的虚拟内存...2.8 缺页异常处理 是一种页错误 在地址映射过程中,硬件检查页表发现所要访问的页面不在内存,则产生异常--缺页异常 操作系统执行缺页异常处理程序:获得磁盘地址,启动磁盘,将该页调入内存 如果内存中有空闲页框...这种方式使得已修改和未修改的页面都仍然留在内存中,进程以后再次访问这些页面,只需花较小的开销,使这些页面又返回到该进程的驻留集中。...被修改页面达到一定数量,才一次性地将他们写回到外存,这样就显著地减少了外存的I/O次数 假设采取FIFO固定分配局部置换,每次缺页都要淘汰该进程最早装入内存页面,而这里采用可变分配局部置换,即分配进程一个空白块...进程退出或显式地解除文件映射,所有被修改页面会写回文件 ? 4.2 支持写复制技术 ? 说明:如图,两个进程共享同一块物理内存,每个页面都被标志成了写复制。

    3.4K111

    操作系统之存储管理

    七、虚拟存储技术 所谓虚拟存储技术是指:进程运行时,先将其一部分装入内存,另一部分暂留在磁盘要执行的指令或访问的数据不在内存,由操作系统自动完成将它们磁盘调入内存的工作 虚拟地址空间即为分配给进程的虚拟内存...2.8 缺页异常处理 是一种页错误 在地址映射过程中,硬件检查页表发现所要访问的页面不在内存,则产生异常–缺页异常 操作系统执行缺页异常处理程序:获得磁盘地址,启动磁盘,将该页调入内存...这种方式使得已修改和未修改的页面都仍然留在内存中,进程以后再次访问这些页面,只需花较小的开销,使这些页面又返回到该进程的驻留集中。...被修改页面达到一定数量,才一次性地将他们写回到外存,这样就显著地减少了外存的I/O次数 假设采取FIFO固定分配局部置换,每次缺页都要淘汰该进程最早装入内存页面,而这里采用可变分配局部置换,即分配进程一个空白块...进程退出或显式地解除文件映射,所有被修改页面会写回文件 ? 4.2 支持写复制技术 ? **说明:**如图,两个进程共享同一块物理内存,每个页面都被标志成了写复制。

    1.4K20

    深入剖析虚拟内存工作原理

    程序引用到一段在物理内存的地址空间,由硬件立刻执行必要的映射;而程序引用到一段不在物理内存中的地址空间,由操作系统负责将缺失的部分装入物理内存并重新执行失败的指令。...(Dirty Page),则需要把最新的页面内容写回到磁盘保存,否则就表示内存磁盘上的副本内容是同步的,无需写回磁盘;而访问位同样也是系统在程序访问页面自动设置的,它也是页面置换算法会使用到的一个值...这里我们基于一个例子来分析页面命中,计算机各个硬件是如何交互的: 第 1 步:处理器生成一个虚拟地址 VA,通过总线发送到 MMU; 第 2 步:MMU 通过虚拟页号得到页表项的地址 PTEA,通过内存总线...如果该页面已经被修改过,则写回磁盘,更新该页面磁盘上的副本; 第 6 步:缺页中断处理程序磁盘调入新的页面内存,更新页表项 PTE; 第 7 步:缺页中断程序返回到原先的进程,重新执行引起缺页中断的指令...第 k 级页表中的每一个 PTE 都包含一个物理地址的页框号 PPN,或者一个磁盘块的地址(内存页已经被页面置换算法换出到磁盘中)。

    3K62

    2020年秋招最新操作系统之存储管理面试知识点集锦

    七、虚拟存储技术 所谓虚拟存储技术是指:进程运行时,先将其一部分装入内存,另一部分暂留在磁盘要执行的指令或访问的数据不在内存,由操作系统自动完成将它们磁盘调入内存的工作 虚拟地址空间即为分配给进程的虚拟内存...2.8 缺页异常处理 是一种页错误 在地址映射过程中,硬件检查页表发现所要访问的页面不在内存,则产生异常–缺页异常 操作系统执行缺页异常处理程序:获得磁盘地址,启动磁盘,将该页调入内存...这种方式使得已修改和未修改的页面都仍然留在内存中,进程以后再次访问这些页面,只需花较小的开销,使这些页面又返回到该进程的驻留集中。...被修改页面达到一定数量,才一次性地将他们写回到外存,这样就显著地减少了外存的I/O次数 假设采取FIFO固定分配局部置换,每次缺页都要淘汰该进程最早装入内存页面,而这里采用可变分配局部置换,即分配进程一个空白块...进程退出或显式地解除文件映射,所有被修改页面会写回文件 ? 4.2 支持写复制技术 ? **说明:**如图,两个进程共享同一块物理内存,每个页面都被标志成了写复制。

    68810

    内存:你跑慢点行不行?CPU:跑慢点你养我吗?内存:我不管!

    按照地址顺序在链表中存放进程和空闲区,有几种算法可以为创建的进程(或者磁盘中换入的进程)分配内存。我们先假设内存管理器知道应该分配多少内存,最简单的算法是使用 首次适配(first fit)。...一个表项被 TLB 中清除出,将修改位复制到内存中页表项,除了访问位之外,其他位保持不变。页表项页表装入 TLB 中,所有的值都来自于内存。 ?...一个虚拟地址被送到 MMU ,MMU 首先提取 PT1 域并把值作为访问顶级页表的索引。...页面置换算法 发生缺页异常,操作系统会选择一个页面进行换出从而为新进来的页面腾出空间。如果要换出的页面内存中已经被修改,那么必须将其写到磁盘中以使磁盘副本保持最新状态。...工作集时钟页面置换算法的操作:a) 和 b) 给出 R = 1 所发生的情形;c) 和 d) 给出 R = 0 的例子 最初的时候,表是空的。装入第一个页面后,把它加载到表中。

    1.1K11

    一文让你看懂内存与CPU之间的关系

    一旦用户键入了一个命令,操作系统就把需要的程序磁盘复制到内存中并执行;进程运行结束后,操作系统在用户终端显示提示符并等待新的命令。收到新的命令后,它把新的程序装入内存,覆盖前一个程序。...按照地址顺序在链表中存放进程和空闲区,有几种算法可以为创建的进程(或者磁盘中换入的进程)分配内存。我们先假设内存管理器知道应该分配多少内存,最简单的算法是使用 首次适配(first fit)。...一个表项被 TLB 中清除出,将修改位复制到内存中页表项,除了访问位之外,其他位保持不变。页表项页表装入 TLB 中,所有的值都来自于内存。...一个虚拟地址被送到 MMU ,MMU 首先提取 PT1 域并把值作为访问顶级页表的索引。...由操作系统维护一个所有在当前内存中的页面的链表,最早进入的放在表头,最新进入的页面放在表尾。在发生缺页异常,会把头部的页移除并且把新的页添加到表尾。 还记得缺页异常什么时候发生吗?

    12K63

    系统层面IO【原理笔记】

    分页区即从物理内存置换出来,存储在磁盘上的内存页面。 ? 进程A有5个页面,其中两个装入内存,其余存储于磁盘。...CPU中包含内存管理单元(MMU),逻辑上位于CPU与物理内存之间,设备包含虚拟地址向物理内存地址转换的映射信息。...不存在与虚拟页形成有效映射物理内存页,MMU会向CPU提交一个错误,内核验证页的有效性,内核会安排页面调入操作,把缺失的页面内容读回物理内存,通常此时别的页面会移除内存。...5.虚拟内存系统俘获页错误,安排页面调入,磁盘上读取页内容,使页有效 6.一旦页面调入操作完成,文件系统即对原始数据进行解析,取得所需文件内容或属性信息 备注:大多数操作系统假设进程会继续读取文件剩余部分...进程访问这些没有建立映射关系的虚拟内存,处理器自动触发一个缺页异常,进而进入内核空间分配物理内存、更新进程缓存表,最后返回用户空间,恢复进程运行。

    47010

    计算机系统 Lecture 1:虚拟内存详解

    页表(page table)的数据结构存放在物理内存(DRAM)中,操作系统负责维护页表结构,每次 MMU(内存管理单元)中的地址翻译硬件将一个虚拟地址转换成物理地址,都会读取页表。...MMU 通过页表来确定一个虚拟页是否缓存在 DRAM 中: 如果是(有效位为 1),则该条目指向虚拟页所存放在物理页的位置; 如果不是(有效位为 0),则该条目指向虚拟页所存放在磁盘的位置,在物理内存...一个运行在用户进程中的程序要求额外的堆空间(如调用malloc),操作系统分配一个适当数字(eg:k)个连续的虚拟内存页面,并且将他们映射到物理内存中任意位置的 k 个任意的物理页面。...MMU 接收一个虚拟地址,并且输出一个物理地址。如果这个虚拟地址在物理内存中存在,那么就叫做页命中。如果这个虚拟地址在物理内存中不存在,那么 MMU 将产生一个缺页错误。...缺页异常处理程序确定出物理内存中的牺牲页,如果这个页面被修改过了(D 标志位为 1),那么将牺牲页换出到磁盘。 缺页处理程序磁盘中调入新的页面到主存中,并且更新 PTE。

    43030

    mmap 分析

    真正的文件读取是进程发起读或写操作。 9、进程的读或写操作访问虚拟地址空间这一段映射地址,通过查询页表,发现这一段地址并不在物理页面上。...同时,如果进程A和进程B都映射了区域C,A第一次读取C通过缺页磁盘复制文件页到内存中;但B再读C的相同页面,虽然也会产生缺页异常,但是不再需要从磁盘中复制文件过来,而可直接使用已经保存在内存中的文件数据...注意:映射关系解除后,对原来映射地址的继续访问,将导致段错误发生。 msync函数 将共享内存区的数据,与磁盘上文件内容立即同步。...int msync( void *addr, size_t len, int flags); 一般说来,进程在映射空间的对共享内容的改变,不会立即写回到磁盘文件中,往往在调用munmap()后才执行操作...读字节5000 ~ 8191,结果全为0。写5000 ~ 8191,进程不会报错,但是所写的内容不会写入原文件中 。 读/写8192以外的磁盘部分,会返回一个SIGSECV错误

    58300

    MIT 6.S081 (BOOK-RISCV-REV1)教材第四章内容 -- Trap -- 下

    页面错误驱动的COW fork可以使父级和子级安全地共享物理内存CPU无法将虚拟地址转换为物理地址,CPU会生成页面错误异常。...Risc-v有三种不同的页面错误: 加载页面错误 (加载指令无法转换其虚拟地址) 存储页面错误 (存储指令无法转换其虚拟地址) 指令页面错误 (指令的地址无法转换) scause寄存器中的值指示页面错误的类型...COW fork中的基本计划是让父子最初共享所有物理页面,但将它们映射为只读。 因此,子级或父级执行存储指令,risc-v CPU引发页面错误异常。...利用页面故障的另一个广泛使用的功能是磁盘分页。如果应用程序需要比可用物理RAM更多的内存,内核可以换出一些页面: 将它们写入存储设备 (如磁盘),并将它们的PTE标记为无效。...如果该地址属于磁盘上的页面,则内核分配物理内存页面,将该页面磁盘读取到内存,将PTE更新为有效并引用内存,然后恢复应用程序。 为了给页面腾出空间,内核可能需要换出另一个页面

    39220

    mmap详解

    这样,进程对某一虚拟内存区域的任何操作需要用要的信息,都可以vm_area_struct中获得。mmap函数就是要创建一个新的vm_area_struct结构,并将其与文件的物理磁盘地址相连。...真正的文件读取是进程发起读或写操作。 9、进程的读或写操作访问虚拟地址空间这一段映射地址,通过查询页表,发现这一段地址并不在物理页面上。...同时,如果进程A和进程B都映射了区域C,A第一次读取C通过缺页磁盘复制文件页到内存中;但B再读C的相同页面,虽然也会产生缺页异常,但是不再需要从磁盘中复制文件过来,而可直接使用已经保存在内存中的文件数据...注意:映射关系解除后,对原来映射地址的继续访问,将导致段错误发生。 msync函数 将共享内存区的数据,与磁盘上文件内容立即同步。...读字节5000 ~ 8191,结果全为0。写5000 ~ 8191,进程不会报错,但是所写的内容不会写入原文件中 。 读/写8192以外的磁盘部分,会返回一个SIGSECV错误

    2.2K20

    4.虚存管理

    交换技术.png (1)交换技术 执行哪一个进程,就把哪一个进程外存中拿进内存中来。...缺点:每次仅调入一页,需花费较大的系统开销,增加了磁盘的I/O的启动频率。 进程在运行中需要访问某些部分程序和数据,若发现其所在的页面不在内存,便立即提出请求,由OS将其所需的页面调入内存。...② 系统缺少足够的对换区空间: 这时凡是不会被修改的文件,都直接文件区调入;而换出这些页面,由于它们未被修改而不必再将它们换出,以后再调入时,仍文件区直接调入。...由于内存中的每一页都在外存上保留一份副本,因此,若未被修改,在置换该页就不需再将该页写回到外存上,以减少系统的开销和启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中所保留的始终是最新的副本...简言之,M位供置换页面,判断是否需要写回到磁盘。 外存地址:用于指出该页在外存上的地址,通常是磁盘的扇区号,供调入该页寻找外存上的页面使用。

    95710

    操作系统核心原理-5.内存管理(中):分页内存管理

    分页系统的核心在于:将虚拟内存空间和物理内存空间皆划分为大小相同的页面,如4KB、8KB或16KB等,并以页面作为内存空间的最小分配单位,一个程序的一个页面可以存放在任意一个物理页面里。   ...使用分页也可以解决这个问题,只需将当前需要的页面放在内存里,其他暂时不用的页面放在磁盘上,这样一个程序同时占用内存磁盘,其增长空间就大大增加了。...翻译过程如下伪代码所示: if(虚拟页面非法、不在内存中或被保护) { 陷入到操作系统错误服务程序 } else { 将虚拟页面号转换为物理页面号 根据物理页面号产生最终物理地址...时钟算法的核心思想是:将页面排成一个时钟的形状,时钟有一个针臂,每次需要更换页面,我们针臂所指的页面开始检查。如果当前页面的访问位为0,即从上次检查到这次,该页面没有被访问过,将该页面替换。...这样每次需要替换页面指针指向的页面开始扫描,从而达到更加公平的状态。而且,按时钟组织的页面只是在内存里面的页面,在内存外的页面放在时钟圈里,从而提高实现效率。

    1.3K30

    认真分析mmap:是什么 为什么 怎么用【转】

    真正的文件读取是进程发起读或写操作。 进程的读或写操作访问虚拟地址空间这一段映射地址,通过查询页表,发现这一段地址并不在物理页面上。...同时,如果进程A和进程B都映射了区域C,A第一次读取C通过缺页磁盘复制文件页到内存中;但B再读C的相同页面,虽然也会产生缺页异常,但是不再需要从磁盘中复制文件过来,而可直接使用已经保存在内存中的文件数据...失败,munmap返回-1,error返回标志和mmap一致; 该调用在进程地址空间中解除一个映射关系,addr是调用mmap()返回的地址,len是映射区的大小; 映射关系解除后,对原来映射地址的访问将导致段错误发生...int msync( void *addr, size_t len, int flags ) 一般说来,进程在映射空间的对共享内容的改变并不直接写回到磁盘文件中,往往在调用munmap()后才执行操作...读字节5000~8191,结果全为0。写5000~8191,进程不会报错,但是所写的内容不会写入原文件中 . 读/写8192以外的磁盘部分,会返回一个SIGSECV错误

    3.3K32

    操作系统内存换入-请求调页---14

    利用换入和换出思想就可以实现上面的需求: 假设用户启动了程序1,那么首先需要为程序1在虚拟空间中开辟段空间存放,然后创建对应的页表,然后将程序1磁盘读入到物理内存。...假设用户此时又启动了程序2,那么还是重复前面两个步骤 最后要将程序2读入物理内存,发现进程1已经占满了物理内存,那么此时我们就需要将进程1相关数据换出到磁盘保存,然后再将进程2相关数据读入到物理内存...,并且会在内存中找到一个空闲页,来存放磁盘读取出来的缺失页数据 然后建立页表关于缺失页相关的映射,然后中断处理程序结束。...( ) ---- 一个实际系统的请求调页 这个故事哪里开始? 请求调页,当然从缺页中断开始 查询对应的手册可以发现,缺页中断对应的中断号为14。...//申请一个空闲页 page=get_free_page(); //磁盘将数据读入空闲页 //current->executable就是当前正在执行的程序的可执行文件 //current->executable

    65220
    领券