逻辑地址到物理地址的映射可以通过以下两种方式实现:
静态地址映射:在系统启动时,操作系统将分配物理内存块的地址范围,并将其与逻辑地址空间的一部分进行映射。这样,每次程序访问一个逻辑地址时,都可以通过一个简单的数学公式将其转换为对应的物理地址。这种方式适用于不需要频繁地创建或关闭进程的场景。
动态地址映射:在动态地址映射中,操作系统会为每个进程分配一个虚拟地址空间,并动态地将其映射到物理内存上。当进程需要访问某个地址时,操作系统会将虚拟地址转换为物理地址,然后将数据从物理内存中读取到进程的虚拟地址空间中。这种方式适用于多进程环境下,由于各个进程的内存需求不同,需要动态地管理内存分配。
扩充存储空间可以通过以下几种方式实现:
增加物理硬盘:可以通过添加物理硬盘的方式增加存储空间。这种方式需要开机后重新分区、格式化、挂载等操作,可能需要重启系统才能生效。
RAID技术可以将多个物理硬盘组合成一个逻辑卷组,从而达到增加存储空间的效果。RAID技术有多种级别,常见的有RAID0、RAID1、RAID5、RAID6等。不同级别的RAID技术具有不同的性能和容错能力。
LVM技术可以将多个物理硬盘组合成一个逻辑卷组,从而实现存储空间的扩充。LVM技术可以将多个物理分区或硬盘组合成一个逻辑分区,还可以按需扩展、缩小逻辑分区。
使用网络存储:网络存储技术可以使多台计算机共享存储设备,从而实现存储空间的共享和扩充。网络存储技术有多种,如NAS、SAN等。
云存储可以使用户通过网络存储和管理数据。用户可以根据需要购买不同大小的存储空间,实现存储空间的扩充。
虚拟存储的“虚拟”指的是它提供给程序的是一种逻辑上的地址空间,而不是实际的物理地址空间。在虚拟存储的体系结构中,每个程序都可以访问一个独立的、连续的、私有的虚拟地址空间,这个地址空间的大小通常比物理内存大小大得多。虚拟地址被映射到物理内存,这个映射是由操作系统和硬件实现的。
虚拟存储的“虚拟”使得程序可以不受物理内存大小的限制运行,因为操作系统可以将程序暂时不用的部分存储到磁盘上,等到需要使用时再将其读回物理内存。因此,虚拟存储可以帮助程序实现了在有限的物理内存下运行更大的程序。对于程序而言,它认为自己在使用一个比实际物理内存更大的地址空间,而这个地址空间被操作系统和硬件映射到了实际的物理内存和磁盘空间。这种基于虚拟存储技术的内存管理方式,可以让计算机系统变得更为高效和灵活。
优点:实现简单,易于理解;适用于内存不紧张的场景。
缺点:存在"先进先出"的缺陷,可能会选择替换掉有用的页面,导致程序性能下降;与访问时间无关,不能反映出不同页面的访问频率。
LRU算法
优点:能更好地体现出不同页面的访问频率及访问时间,替换掉相对不常用或者访问时间较长的页面;
命中率相对较高。
缺点:实现比较复杂;如果出现访问时间相同但访问频率不同的情况,那么也可能替换掉有用的页面
优点:对于未来一段时间内不再访问的页进行替换,因此具有最低的缺页率。
缺点:需要预测每个页在未来的使用情况,实际中难以实现,并且会产生大量的开销。
优点:实现简单;不像FIFO算法一样会选择替换掉有用的页面;不像LRU算法一样需要按照访问时间排序。
缺点:置换淘汰的结果可能不是最优的,也可能存在较差的命中率;算法对于访问时间较长的页面容易替换掉,不能完全保证所有访问频率不同的页面都能被保留。
采用OPT页面置换算法时,对应的页面情况如下表所示:
页面走向 |
5 |
1 |
2 |
3 |
4 |
5 |
3 |
4 |
1 |
2 |
3 |
4 |
物理块0 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
1 |
2 |
2 |
2 |
物理块1 |
1 |
1 |
1 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
|
物理块2 |
2 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在OPT算法中,缺页为7,缺页率为7/12.
采用FIFO算法时,对应的页面置换情况如下表所示:
页面走向 |
5 |
1 |
2 |
3 |
4 |
5 |
3 |
4 |
1 |
2 |
3 |
4 |
物理块0 |
5 |
5 |
5 |
3 |
3 |
3 |
3 |
3 |
1 |
1 |
1 |
4 |
物理块1 |
1 |
1 |
1 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
|
物理块2 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
5 |
3 |
3 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在FIFO算法中,缺页为10,缺页率为5/6.
在采用LRU算法时,对应的页面置换情况如图下表所示:
页面走向 |
5 |
1 |
2 |
3 |
4 |
5 |
3 |
4 |
1 |
2 |
3 |
4 |
物理块0 |
5 |
5 |
5 |
3 |
3 |
3 |
3 |
3 |
3 |
2 |
2 |
2 |
物理块1 |
1 |
1 |
1 |
4 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
|
物理块2 |
2 |
2 |
2 |
5 |
5 |
5 |
1 |
1 |
1 |
4 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在LRU算法中,缺页为10,缺页率为5/6.
采用OPT页面置换算法时,对应的页面情况如下表所示:
页面走向 |
1 |
3 |
6 |
7 |
1 |
3 |
6 |
7 |
1 |
3 |
6 |
7 |
物理块0 |
1 |
1 |
1 |
1 |
1 |
3 |
||||||
物理块1 |
3 |
3 |
3 |
6 |
6 |
|||||||
物理块2 |
6 |
7 |
7 |
7 |
||||||||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在OPT算法中,缺页为6,缺页率为6/12.
采用FIFO算法时,对应的页面置换情况如下表所示:
页面走向 |
1 |
3 |
6 |
7 |
1 |
3 |
6 |
7 |
1 |
3 |
6 |
7 |
物理块0 |
1 |
1 |
1 |
7 |
7 |
7 |
6 |
6 |
6 |
3 |
3 |
3 |
物理块1 |
3 |
3 |
3 |
1 |
1 |
1 |
7 |
7 |
7 |
6 |
6 |
|
物理块2 |
6 |
6 |
6 |
3 |
3 |
3 |
1 |
1 |
1 |
7 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在FIFO算法中,缺页为12,缺页率为12/12.
在采用LRU算法时,对应的页面置换情况如图下表所示:
页面走向 |
1 |
3 |
6 |
7 |
1 |
3 |
6 |
7 |
1 |
3 |
6 |
7 |
物理块0 |
1 |
1 |
1 |
7 |
7 |
7 |
6 |
6 |
6 |
3 |
3 |
3 |
物理块1 |
3 |
3 |
3 |
1 |
1 |
1 |
7 |
7 |
7 |
6 |
6 |
|
物理块2 |
6 |
6 |
6 |
3 |
3 |
3 |
1 |
1 |
1 |
7 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在LRU算法中,缺页为12,缺页率为12/12.
采用OPT页面置换算法时,对应的页面情况如下表所示:
页面走向 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
3 |
2 |
1 |
3 |
1 |
3 |
2 |
物理块0 |
1 |
1 |
1 |
1 |
3 |
3 |
|||||||||
物理块1 |
2 |
2 |
2 |
2 |
2 |
||||||||||
物理块2 |
3 |
4 |
4 |
1 |
|||||||||||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在OPT算法中,缺页为,6缺页率为6/15.
采用FIFO算法时,对应的页面置换情况如下表所示:
页面走向 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
3 |
2 |
1 |
3 |
1 |
3 |
2 |
物理块0 |
1 |
1 |
1 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
2 |
物理块1 |
2 |
2 |
2 |
1 |
1 |
1 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
|
物理块2 |
3 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
1 |
1 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在FIFO算法中,缺页为10,缺页率为10/15.
在采用LRU算法时,对应的页面置换情况如图下表所示:
页面走向 |
1 |
2 |
3 |
4 |
1 |
2 |
3 |
4 |
3 |
2 |
1 |
3 |
1 |
3 |
2 |
物理块0 |
1 |
1 |
1 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
物理块1 |
2 |
2 |
2 |
1 |
1 |
1 |
4 |
4 |
4 |
1 |
1 |
1 |
1 |
1 |
|
物理块2 |
3 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在LRU算法中,缺页为9,缺页率为9/15.
采用OPT页面置换算法时,对应的页面情况如下表所示:
页面走向 |
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
物理块0 |
1 |
1 |
1 |
1 |
1 |
1 |
3 |
|||||
物理块1 |
2 |
2 |
2 |
2 |
2 |
2 |
||||||
物理块2 |
3 |
4 |
5 |
6 |
6 |
|||||||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在OPT算法中,缺页为7,缺页率为7/12.
采用FIFO算法时,对应的页面置换情况如下表所示:
页面走向 |
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
物理块0 |
1 |
1 |
1 |
4 |
4 |
4 |
4 |
6 |
6 |
6 |
6 |
3 |
物理块1 |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
|
物理块2 |
3 |
3 |
3 |
3 |
5 |
5 |
5 |
1 |
1 |
1 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在FIFO算法中,缺页为10,缺页率为10/12
在采用LRU算法时,对应的页面置换情况如图下表所示:
页面走向 |
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
物理块0 |
1 |
1 |
1 |
4 |
4 |
4 |
5 |
5 |
5 |
1 |
1 |
1 |
物理块1 |
2 |
2 |
2 |
2 |
2 |
2 |
6 |
6 |
6 |
6 |
3 |
|
物理块2 |
3 |
3 |
3 |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在LRU算法中,缺页为10,缺页率为10/12.
采用OPT页面置换算法时,对应的页面情况如下表所示:
页面走向 |
7 |
2 |
3 |
1 |
2 |
5 |
3 |
4 |
6 |
7 |
7 |
1 |
物理块0 |
7 |
7 |
7 |
1 |
1 |
1 |
1 |
1 |
||||
物理块1 |
2 |
2 |
2 |
5 |
4 |
6 |
7 |
|||||
物理块2 |
3 |
3 |
3 |
3 |
3 |
3 |
||||||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在OPT算法中,缺页为9,缺页率为9/12.
采用FIFO算法时,对应的页面置换情况如下表所示:
页面走向 |
7 |
2 |
3 |
1 |
2 |
5 |
3 |
4 |
6 |
7 |
7 |
1 |
物理块0 |
7 |
2 |
3 |
1 |
2 |
5 |
3 |
4 |
6 |
7 |
7 |
1 |
物理块1 |
7 |
7 |
7 |
1 |
1 |
1 |
1 |
1 |
6 |
6 |
6 |
6 |
物理块2 |
2 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
7 |
7 |
7 |
|
缺页 |
3 |
3 |
3 |
3 |
3 |
4 |
4 |
4 |
4 |
1 |
由该表可知,在FIFO算法中,缺页为10,缺页率为
在采用LRU算法时,对应的页面置换情况如图下表所示:
页面走向 |
7 |
2 |
3 |
1 |
2 |
5 |
3 |
4 |
6 |
7 |
7 |
1 |
物理块0 |
7 |
7 |
7 |
1 |
1 |
1 |
3 |
3 |
3 |
7 |
7 |
7 |
物理块1 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
1 |
|
物理块2 |
3 |
3 |
3 |
5 |
5 |
5 |
6 |
6 |
6 |
6 |
||
缺页 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
缺 |
由该表可知,在LRU算法中,缺页为10,缺页率为.