三种离散分配方式:
1.分页式存储管理方式,将进程的逻辑地址空间分成若干个页,并为各页加以编号。在分页系统中,允许将进程的各个页离散地存储在内存的任意物理块中,为保证进程仍然能够正确地运行,即能在内存中找到每个页面所对应的物理块,系统又为每个进程建立了一张页面映像表,简称页表。页表的作用是实现从页号到物理块号的地址映射。
优点:体现在内存空间的管理上。以页面作为内存分配的基本单位,能有效地提高内存利用率。
缺点:容易产生“页内碎片”,页面大小不能过大也不能过小。
2.分段存储管理方式,提供了二维的逻辑地址,即每个段既包含了一部分地址空间,又表示了逻辑关系。逻辑地址由段号(段名)和段内地址(段内偏移量)组成。
优点:体现在地址空间的管理上。(1)以段作为内存分配的基本单位,它能够更好地满足用户多方面的需要。(方便编程,信息共享,信息保护,动态增长,动态链接);
(2)不会产生内部碎片.
3.段页式存储管理方式,是分页和分段原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每个段赋予一个段名。在段页式系统中,为了实现从逻辑地址到物理地址的变换,系统中需要同时配置段表和页表。
逻辑地址向物理地址转化:若给定逻辑地址A,页面大小L,页号P,页内地址d。p = int(A/L) d = A mod L 物理地址 = 块的大小(L)× 块号 + 页内地址d
优点:既有分段系统的便于实现,分段可共享、易于保护、可动态链接等一系列优点,又能像分页系统那样,很好地解决内存的外部碎片问题。