📜  操作系统中的分页(1)

📅  最后修改于: 2023-12-03 15:10:12.953000             🧑  作者: Mango

操作系统中的分页

简介

在计算机的操作系统中,分页是一种将物理内存划分成若干个大小相等的区域,每个区域称作一个页面,同时将程序的逻辑空间也划分为若干个大小相等的区域,每个区域称作一个页面,而且逻辑页面和物理页面相互映射的技术。因此,程序在访问逻辑地址空间时,会通过分页映射转化成实际的物理地址。

分页的原理

分页的主要原理是将程序中的逻辑地址映射到物理地址上。在分页的过程中,操作系统会将逻辑地址分成两部分,一部分是页号(page number),用于标识逻辑地址所在的页面,另一部分是页内偏移(page offset),用于标识逻辑地址在该页中的位置。物理地址也会被分成两部分,一部分是物理页号(physical page number),用于标识物理地址所在的页面,另一部分是页内偏移,同样表示物理地址在该页中的位置。

当程序访问逻辑地址时,操作系统首先根据页号找到对应的物理页号,将其与页内偏移组合成一个新的物理地址返回给程序。这种将逻辑地址转化为物理地址的过程称为分页映射(paging)。

优点

分页的主要优点有:

  1. 可以避免内存碎片的问题。由于每个页面的大小相等,因此当程序运行时,如果需要申请连续的内存空间,分页的方式可以保证这些空间都是页面的整数倍,从而避免了内存碎片的形成。

  2. 可以进行内存保护。通过分页映射,操作系统可以限制程序只能访问分配给它的页面,从而避免了程序越界访问内存带来的安全问题。

  3. 可以共享内存。通过将多个进程映射到同一物理页面,操作系统可以实现内存共享的功能,从而提高系统的效率。

缺点

分页的主要缺点是会引入一定的开销。由于每个访问到的逻辑地址都需要进行分页映射,因此会导致额外的CPU开销。此外,由于逻辑地址与物理地址之间的映射关系需要维护,因此会带来额外的内存开销。

操作系统中的分页实现

在操作系统中,分页是通过硬件和软件相结合的方式来实现的。具体地,CPU会提供一个特殊的寄存器,称为页表寄存器(page table register),用于存储逻辑地址映射到物理地址所需要的信息。此外,操作系统还需要维护一张页表,用于记录逻辑地址与物理地址之间的映射关系。

当程序访问逻辑地址时,CPU会将逻辑地址中的页号存储在页表寄存器中,并从页表中读取对应的物理页号和页内偏移,将它们组合成物理地址返回给程序。在实现分页时,操作系统还可以对每个页面开启或关闭读写权限,从而实现内存保护的功能。

总结

通过本文的介绍,我们了解了操作系统中的分页技术,并了解了分页的优点和缺点。分页是操作系统中非常重要的一个机制,它可以有效地管理物理内存,提高系统的效率和安全性。