关注
1: 操作系统如何访问一个跨多页的对象?
当一个对象大于页的大小(例如4KB),且跨越多个页时,操作系统通过维护一个连续的虚拟地址空间来访问这个对象。每个页在虚拟地址空间中会有一个对应的页表项。操作系统和硬件协作,使用页表将虚拟地址映射到物理地址。当访问跨页对象时,操作系统通过虚拟地址连续性,结合页表项中的映射信息,将虚拟地址转换为物理地址,从而能够访问到对象的全部内容。
虚拟内存管理: 操作系统使用虚拟内存管理机制,将程序的地址空间分隔成多个虚拟页。每个虚拟页通过页表映射到物理内存中的页框。
连续虚拟地址空间: 即便物理上非连续,操作系统确保对象在虚拟地址空间中占据连续的地址。这意味着,从程序的视角看,对象是存储在一个连续的内存区域内。
页表和TLB: 操作系统和处理器一起使用页表和转换后援缓冲器来高效地将虚拟地址转换为物理地址。当程序访问一个对象时,它使用对象的虚拟地址。处理器自动查找页表或TLB来找到对应的物理地址。
2: 写时拷贝时的处理机制
写时拷贝,是一种优化策略,用于节约内存和减少拷贝操作。当多个进程共享相同的物理内存页时,这些页被标记为只读。如果一个进程尝试写入这些只读页,会触发一个写保护中断。操作系统响应这个中断,决定是拷贝单个页还是多个页。
中断处理: 当写操作触发写保护中断时,操作系统的中断处理程序会被调用。它会检查触发写操作的虚拟地址,确定哪个虚拟页需要被复制。
页的拷贝: 对于写时拷贝,操作系统通常仅拷贝被写入的那个页,而不是整个对象占用的所有页。这是因为每个页表项独立管理各自的虚拟页到物理页的映射。因此,只有当对具体某个虚拟页进行写操作时,操作系统才会为该虚拟页创建一个新的物理页,并更新页表项以反映这一变化。
优化: 操作系统可以通过各种机制(如页表项的属性)来识别和跟踪哪些页是共享的,哪些已经被拷贝。这样,即使对象跨越多个页,操作系统也只在必要时拷贝修改的页,而不是整个对象的所有页。
查看原帖
点赞 1
相关推荐
04-12 10:26
已编辑
点赞 评论 收藏
转发
03-27 15:06
福建理工大学 计算机类 点赞 评论 收藏
转发
牛客热帖
- 1... 携程oc了2.4W
- 2... 美团-Java后端-平台技术部-一面凉经(复活赛)8471
- 3... 31天勇闯盲审(附盲审经验5040
- 4... 我真是一个废物,废物本废,到现在也找不到实习不管回答上来,还是没回答上来,都不会有公司要我的。。。。。。。想发疯,我最最最最不理解的就是滴滴这个为啥没给我过!问的都很简单啊,我都答上来了,到底差在哪里了情绪每天都在边缘游走,精神状态好差啊,快抑郁了好了,emo完了,继续努力,总有眼瞎面试官能看上我的叭4990
- 5... 【话术建议】求职者和企业的互骗话术?4810
- 6... 微信支付二面4294
- 7... 捞简历这件事儿4235
- 8... 字节抖音电商后端日常实习一二三面已oc4025
- 9... 问一下xdm 怎么把拒绝过的Offer 再舔回来🥺3254
- 10... 美团暑期offer(我!爱!美!团!)2495
正在热议
# 牛客帮帮团来啦!有问必答 #
683179次浏览 11261人参与
# 市场营销面经 #
3902次浏览 114人参与
# 2022届毕业生现状 #
315184次浏览 4396人参与
# 你会选择考研还是直接就业 #
74551次浏览 853人参与
# 我的上岸简历长这样 #
160377次浏览 3208人参与
# 无实习如何秋招上岸 #
218971次浏览 3424人参与
# 浅聊一下我实习的辛苦费 #
79745次浏览 739人参与
# 你的简历改到第几版了 #
298526次浏览 4509人参与
# 投了多少份简历才上岸 #
55565次浏览 938人参与
# 软件开发投递记录 #
465473次浏览 7115人参与
# 运营面经 #
10385次浏览 260人参与
# 科大讯飞求职进展汇总 #
35969次浏览 364人参与
# Offer比较,你最看重什么? #
49367次浏览 479人参与
# 毕业后不工作的日子里我在做什么 #
51792次浏览 686人参与
# 夸夸我的求职搭子 #
63490次浏览 773人参与
# 租房前辈的忠告 #
32595次浏览 2067人参与
# 秋招开了,你想投哪些公司呢 #
116047次浏览 3241人参与
# 硬件人的简历怎么写 #
77155次浏览 780人参与
# 写简历别走弯路 #
285618次浏览 3509人参与
# 产品面经 #
21982次浏览 426人参与