OS内核(xv6)探究-分段&分页

分段和分页是操作系统管理内存的关键技术。分段主要用于实现内存保护,提供程序的逻辑结构,而分页则提高了内存利用率,减少了内存碎片。每个进程拥有虚拟地址空间,通过分页机制将虚拟地址映射到物理地址。分页通过页表进行内存映射管理,当发生缺页中断时,操作系统会分配物理页并建立映射。段页结合方式结合了两者的优点,提供了一种高效的内存访问方式。

分段与分页

分段和分页是现代操作系统管理和使用内存的方式,一般需要操作系统(软件)配合CPU(硬件)一起来实现分段和分页的功能。我的理解,分段的主要目的是为了实现对内存的保护,即操作系统的保护模式;分页的主要目的是为了提高对内存的利用率,减少内存碎片

分段是程序员能在开发过程中够感知到的部分,例如我们常说的代码段(TEXT段),数据段(DATA段),堆和栈都是段的概念,还有CS,DS,SS等寄存器也是分段机制相关的寄存器。

分页则是上层应用开发的程序员通常感知不到的部分,我们在开发上层应用时,面对的是逻辑地址空间,分页功能对我们来说是透明的。但这也不是说了解分页机制对我们来说没有必要的,例如抖音基于二进制重排的启动优化就是基于对分页技术的理解和应用。如果你不了解分页机制,自然也不会了解缺页中断,不了解缺页中断,自然也就不能输出二进制重排的优化方案。

虚拟地址空间

在了解分段和分页之前,我们得先了解一下进程的虚拟地址空间。每个进程在执行的时候,它都会面对一个虚拟地址空间,为什么叫做虚拟地址空间呢?因为这些地址确实是虚拟的,并且是完整的,巨大的(远超实际物理内存)。虚拟内存会被划分成两个大的部分,内核虚拟空间和用户虚拟空间,我们写的代码运行在用户空间,当我们需要一些特殊操作的时候(例如读写磁盘),会通过系统调用进入到内核空间。而在用户地址空间,空间又会被划分成一些,不同段会放不同类型的数据,有不同的访问权限和使用方式。

我们在日常开发中,只需要了解进程虚拟地址空间的结构就可以了。但虚拟内存究竟是怎么和物理内存对应上的呢?分页机制就在这里发挥了重要作用。

虚拟内存主要的几个作用:

  1. 保护每个进程的地址空间,防止互相影响
  2. 优化内存结构,简化内存管理<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值