必背八股文-操作系统(3)

分页和分段有什区别?

分页是将物理内存和虚拟内存分成大小相等的页,每个页的大小通常为2的幂次方,如4KB、8KB等。进程使用的虚拟地址空间被分成相同大小的页,物理内存也被划分成相同大小的页帧。在地址转换时,进程使用的虚拟地址通过页表转换成对应的物理地址,因此不同进程之间的虚拟地址空间是独立的。分页机制可以方便地进行内存分配和回收,并且允许多个进程共享物理内存中的同一页面。

而分段是将程序的逻辑地址空间划分为若干个逻辑段,每个段的大小是不同的,且逻辑段之间可以重叠。在地址转换时,进程使用的逻辑地址通过段表转换成对应的物理地址。因为逻辑地址空间的划分是按照程序的逻辑结构进行的,所以分段机制更适用于非均匀性的内存管理。分段机制可以更好地支持动态内存分配,允许程序的代码、数据和堆栈等部分位于不同的逻辑段中。

什么是交换空间?

交换空间(Swap Space)是指操作系统中用于暂时存储内存中未使用的数据和程序的一部分的硬盘空间。在内存资源紧张的情况下,操作系统可以将部分未使用的内存数据和程序暂时移动到交换空间中,从而释放内存空间给其他进程或程序使用。

交换空间通常是操作系统在安装时自动分配的一部分硬盘空间,也可以手动设置其大小。交换空间的使用可以避免出现内存不足的情况,从而防止进程或程序因为内存不足而被迫终止。

交换空间虽然可以缓解内存不足的问题,但由于硬盘的读写速度较慢,使用交换空间可能会对系统性能产生较大的影响。因此,在实际应用中,需要根据实际情况调整交换空间的大小和使用策略,以平衡内存使用和系统性能。

物理地址、逻辑地址、有效地址、虚拟地址的区别?

  1. 物理地址(Physical Address):物理地址是指计算机中实际的物理存储单元的地址,它是由硬件电路生成的。计算机系统将逻辑地址转换为物理地址,然后使用物理地址访问内存中的数据。
  2. 逻辑地址(Logical Address):逻辑地址是指程序中使用的地址,也称为虚拟地址(Virtual Address)。程序使用逻辑地址进行内存访问,而不需要关心实际物理存储单元的地址。
  3. 线性地址(Linear Address):线性地址是指逻辑地址通过段基址和偏移量转换得到的地址。线性地址可以看作是逻辑地址的中间结果,它还需要通过分页机制或分段机制等方式转换为物理地址。
  4. 虚拟地址(Virtual Address):虚拟地址是指程序使用的地址,它是逻辑地址的一种别称,也可以看作是线性地址的中间结果。
  5. 有效地址(Effective Address):有效地址是指程序在运行时使用的地址,它是由逻辑地址或线性地址经过地址转换得到的实际地址。

 

虚拟地址怎么转换到物理地址

虚拟地址到物理地址的转换是通过内存管理单元(Memory Management Unit,MMU)完成的,它使用一个叫作页表(Page Table)的数据结构来进行映射。这个过程分为以下几个步骤:

  1. 分割虚拟地址:虚拟地址被分为两部分,一部分是虚拟页号(Virtual Page Number,VPN),另一部分是页内偏移(Offset)。虚拟页号用于查找页表,页内偏移在转换完成后直接添加到物理页号(Physical Page Number,PPN)。
  2. 查找页表:MMU使用虚拟页号在页表中查找对应的物理页号。页表通常由操作系统管理,并存储在内存中。查找过程可能涉及多级页表,这取决于具体的内存管理方案。
  3. 检查权限:在找到对应的物理页号后,MMU还会检查访问权限(如读、写、执行等),以确保程序对该地址的访问是合法的。如果访问违反权限设置,MMU会触发异常(如访问错误、页面错误等)。
  4. 计算物理地址:将物理页号与虚拟地址的页内偏移组合起来,得到物理地址。此时,访问请求会被发送到实际的物理内存。
  5. 使用缓存:为了提高地址转换的性能,MMU通常包含一个称为地址变换高速缓存

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要是介绍嵌入式软件开发岗位的相关知识和学习攻略,为大家提供一份笔试与面试手册。包括有嵌入式软件开发岗位介绍与学习攻略;校园招聘和offer疑惑问题的介绍;在笔试方面,如何刷题为笔试作准备,提供往年笔试真题;在面试方面,提供相关知识的复习重点,提供面试真题。包括有:华为、蔚来、文远、大疆、三一、深信服、亚马逊、Intel、百度、科大讯飞、OPPO、京东、中兴、比特大陆|算能、美团等等

全部评论
分页机制可以更好地支持虚拟内存,因为可以将不常用的页面换出到磁盘上,从而释放物理内存
点赞 回复 分享
发布于 2023-05-13 20:57 天津
分段机制可以更好地支持动态链接,因为可以将不同的库函数放在不同的段中,从而实现动态链接。
点赞 回复 分享
发布于 2023-05-13 20:15 湖北

相关推荐

12-19 20:28
已编辑
门头沟学院 Java
美团履约 全栈工程师 (n+1)*15.5 其他
点赞 评论 收藏
分享
评论
2
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务