计算机操作系统复习---内存管理

1、内存管理的方式
(1、块式管理:把主存分为一大块一大块的,当所需要的程序片段不在主存时就分配一块主存空间,把程序片段加载到主存之中,就算所需要的程序片段只有几个字也只能把这一块主存分配给它。这样会造成很大的浪费,平均浪费了50%的内存空间,但是易于管理。
(2、页式管理:把主存分为一页一页的的,每一页的空间比每一块的空间要小的多,这种方法的空间利用率比块式管理高很多。
(3、段式管理:把主存分为一段一段的,每一段的空间又要比每一页的空间小很多,这种方法在空间利用率要比页式管理高得多,但是也有另外一个缺点。一个程序可能会别分为几十段,这样很多时间又会被浪费在计算每一段的物理地址上。
(4、段页式管理:结合了段式管理和页式管理的优点。把主存先分为若干段,每个段又分为若干页。地址结构由段号,段内页号及页内地址三部分组成,段页式管理每取一次数据要访问三次内存。

2、分页和分段的区别
页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率,或者说分页仅仅是由于系统管理的需要,而不是用户的需要。
段是信息的逻辑单位,它含有一组其意义相对完整的信息,分段的目的是为了能更改地满足用户需要。页的大小固定由系确定。把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。而段的长度却不固定,段的长度决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
分页的作业地址空间是一维的,即单一的线性空间,程序员只需要一个记忆符号,即可表示一页地址。分段的作业地址是二维的,程序员在标识一个地址时,既需要给出段名,又需要给出段内地址。
3、虚拟内存
虚拟内存简称虚存,是计算机系统内存管理的一种技术。它是相对物理内存而言的,可以理解为假的内存。它使得应用程序认为它拥有连续可用的内存(一个完整的地址空间),允许程序员和编写允许比实际系统拥有的内存大的多的程序,这使得许多大型软件项目能够在具有有限的内存资源的系统上实现。而实际上,它通常被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
虚存的优点
(1、扩大地址空间。无论是段式虚存还是也是虚存护着是段页式虚存,寻址空间都比实际主存要大。
(2、内存保护。每个进程运行在各自的虚拟内存地址空间,互相不能干扰对方。另外,虚拟内存还对特定的内存地址提供了写保护,可以防止代码或者数据被恶意篡改。
(3、公平分配内存。采用虚拟内存之后,每个进程都相当于有太阳大小的虚拟内存空间。
(4、当进程需要通信时,可采用虚拟内存共享方式实现。
虚拟内存的缺点
(1、虚拟内存需要建立很多数据结构。这些数据结构要占用额外的内存。
(2、虚拟地址到物理地址的转换,增加了指令的执行时间。
(3、页面的换入换出需要磁盘IO,这是很耗时间的。
(4、如果一页之中只有一部分的数据,会很浪费内存。

猜你喜欢

转载自blog.csdn.net/weixin_43352448/article/details/87908764