分页式存储管理方法
操作系统采用分页式存储管理方法,以解决连续分配内存方式产生的碎片问题。传统的连续分配方式会形成许多“碎片”,为了解决这个问题,可以通过紧凑的方式将碎片拼接成一块大的空间,但是这个拼接过程会导致系统开销过大。因此,人们开始探索一种新的存储管理方式,即离散分配方式。
离散分配方式
离散分配方式允许将一个进程直接分散地装入到许多不相邻的分区中,不需要进行“紧凑”操作。根据离散分配的基本单位不同,可以有两种存储管理方式:分页存储管理方式和分段存储管理方式。
在分页管理方式中,基本单位是页,称为分页存储管理方式。每个进程的逻辑地址空间被分成若干个大小相等的页面或者页,并为每个页面加以编号。对应地,内存空间也被分成与页面相同大小的若干个存储块,称为物理块或页框,并加以编号。在为进程分配内存时,将进程中的若干个页面分别装入到多个可以不相邻的物理块中。但是,在分页系统中,如果不具备页面对换功能(将处于阻塞状态且优先级低的进程对换到外存),则称为基本的分页存储管理方式,或称为纯分页存储管理方式。它不具有支持实现虚拟存储器的功能,要求把每个作业全部装入内存后才能运行。
页面与页表
在分页存储管理方式中,页面是逻辑地址空间的基本单位,物理块是内存空间的基本单位。页面和物理块之间通过页表进行映射。页面和物理块的大小对分页系统的性能有着重要影响。
页面大小的选择需要权衡内存利用率和页表长度。如果页面太小,会减小内存碎片的总空间,提高内存利用率,但会导致页表过长,占用大量内存,降低页面换进换出的效率。而如果选择的页面较大,可以提高页面换进换出的速度,减少页表的长度,但会增加页内碎片的大小。通常页面的大小应选择适中,且为2的幂次方。
页表和地址变换机构
在分页系统中,为了能够找到每个页面所对应的物理块,系统为每个进程建立了一张页表。页表记录着逻辑地址到物理块号的映射关系。当进程执行时,通过查找页表找到对应的物理块号。
为了实现从逻辑地址到物理地址的转换,操作系统需要设置地址变换机构。地址变换机构的基本任务是将逻辑地址转换为物理地址。在基本的地址变换机构中,页表的功能可以由一组专门的寄存器来实现。一个页表项用一个寄存器表示。页表大多数情况下驻留在内存中,只有一个页表寄存器用于存放页表在内存的起始地址和长度。当进程要访问某个地址时,地址变换机构会自动将逻辑地址分为页号和页内地址两部分,并根据页号查找页表,获取对应的物理块号,然后构成物理地址。
具有快表的地址变换机构
为了提高地址变换速度,可以在地址变换机构中增设一个具有并行查询能力的高速缓冲寄存器,也称为联想寄存器或块表。这个高速缓冲寄存器用来存放当前访问的页表项,以减少对内存的访问次数。当CPU给出一个逻辑地址后,地址变换机构会将页号与高速缓存中的所有页号进行比较,如果找到匹配的页号,则直接从快表中读取物理块号,并构成物理地址。如果没有找到匹配的页号,则还需访问内存中的页表,找到对应的物理块号,并将该页表项存入快表中。
两级和多级页表
在现代计算机系统中,逻辑地址空间很大,页
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。