关注
1: 操作系统如何访问一个跨多页的对象?
当一个对象大于页的大小(例如4KB),且跨越多个页时,操作系统通过维护一个连续的虚拟地址空间来访问这个对象。每个页在虚拟地址空间中会有一个对应的页表项。操作系统和硬件协作,使用页表将虚拟地址映射到物理地址。当访问跨页对象时,操作系统通过虚拟地址连续性,结合页表项中的映射信息,将虚拟地址转换为物理地址,从而能够访问到对象的全部内容。
虚拟内存管理: 操作系统使用虚拟内存管理机制,将程序的地址空间分隔成多个虚拟页。每个虚拟页通过页表映射到物理内存中的页框。
连续虚拟地址空间: 即便物理上非连续,操作系统确保对象在虚拟地址空间中占据连续的地址。这意味着,从程序的视角看,对象是存储在一个连续的内存区域内。
页表和TLB: 操作系统和处理器一起使用页表和转换后援缓冲器来高效地将虚拟地址转换为物理地址。当程序访问一个对象时,它使用对象的虚拟地址。处理器自动查找页表或TLB来找到对应的物理地址。
2: 写时拷贝时的处理机制
写时拷贝,是一种优化策略,用于节约内存和减少拷贝操作。当多个进程共享相同的物理内存页时,这些页被标记为只读。如果一个进程尝试写入这些只读页,会触发一个写保护中断。操作系统响应这个中断,决定是拷贝单个页还是多个页。
中断处理: 当写操作触发写保护中断时,操作系统的中断处理程序会被调用。它会检查触发写操作的虚拟地址,确定哪个虚拟页需要被复制。
页的拷贝: 对于写时拷贝,操作系统通常仅拷贝被写入的那个页,而不是整个对象占用的所有页。这是因为每个页表项独立管理各自的虚拟页到物理页的映射。因此,只有当对具体某个虚拟页进行写操作时,操作系统才会为该虚拟页创建一个新的物理页,并更新页表项以反映这一变化。
优化: 操作系统可以通过各种机制(如页表项的属性)来识别和跟踪哪些页是共享的,哪些已经被拷贝。这样,即使对象跨越多个页,操作系统也只在必要时拷贝修改的页,而不是整个对象的所有页。
查看原帖
点赞 1
相关推荐
牛客980221808号:这还准备啥啊,把老师关系维护好就稳了,其他的入职再说别给老师丢人
点赞 评论 收藏
分享
10-27 19:23
中山大学 Java AI牛可乐:嗯哼,华子听起来有点担心呢,这个情况确实需要小心处理哦。通常来说,企业会在意向明确后再进行下一步的操作,不过每个公司的情况都可能有所不同。如果担心风险,可以先和企业沟通清楚流程和条款,保护自己的权益哦。想不想听听可乐的一些小建议呢?或者我们可以私信聊聊,给你一些更具体的建议哦~点击我的头像,私信我吧!🐮🎉
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
270158次浏览 2276人参与
# 学历or实习经历,哪个更重要 #
44935次浏览 339人参与
# 北方华创开奖 #
23960次浏览 261人参与
# 地方国企笔面经互助 #
2992次浏览 7人参与
# 如果实习可以转正,你会不会放弃秋招 #
205070次浏览 2793人参与
# 选完offer后,你后悔学本专业吗 #
14712次浏览 107人参与
# 你觉得专业和学校哪个对薪资影响最大 #
28501次浏览 213人参与
# 0offer是寒冬太冷还是我太菜 #
889802次浏览 7934人参与
# 查收我的offer竞争力报告 #
20382次浏览 258人参与
# 你最想要的公司福利是? #
42568次浏览 151人参与
# 如何一边实习一边秋招 #
988047次浏览 12610人参与
# 应届生被毁约被毁意向了怎么办 #
28568次浏览 244人参与
# 一觉醒来,我觉醒了超级打工人系统 #
3424次浏览 36人参与
# 当你面对裁员会如何? #
26270次浏览 152人参与
# 来聊聊机械薪资天花板是哪家 #
66651次浏览 448人参与
# 没有实习经历,还有机会进大厂吗 #
807741次浏览 13859人参与
# 面试体验感最好的是哪家? #
83882次浏览 819人参与
# 机械应届生薪资要多少才合适? #
12577次浏览 61人参与
# 如果公司降薪,你会跳槽吗? #
24905次浏览 236人参与
# 如何写一份好简历 #
605984次浏览 8529人参与
# 寒假躺平还是提前实习 #
59804次浏览 459人参与