存储管理技术可以分为:
- 简单存储管理技术
- 虚拟存储管理技术
简单存储管理技术:
相对于虚拟存储而言,简单存储指为了实现简单,执行之前操作系统必须将待执行的程序全部装入内存,这是早期使用的。
虚拟存储管理技术:
现代操作系统大都支持虚拟存储功能,允许进程装入部分程序即可开始执行,其余部分保留在外存。当执行所需要的部分不在内存时,中断进程执行,使之阻塞等待,直到相应部分装入内存,进程进入就绪队列,等待调度。
程序在内存中如何组织
- 连续存储:
需要内存中的一块连续的、足够大的分区。
可能出现问题:如果内存中没有足够大的连续空闲分区,但存在总量足够的独立小分区,即外零头。系统要么拒绝分配空间,要么采用紧凑技术拼接外零头,要么采用交换技术。 - 非连续存储:
允许进程的程序和数据分别装在内存的不同分区中。
常用的非连续存储技术:
- 分页存储技术
- 分段存储技术
- 段页式存储技术(程序分段,内存分页)
分页
逻辑地址被分为2部分,页号和页内偏移量。
当一个进程被装入物理内存时,系统将为该进程的每个页面分配一个独立的页框,同一个进程的多个页面不必存放在连续的多个页框中。
数据结构:页表
系统为每个进程建立一张页面映射表。
页表用于记载进程的各页面到物理内存中页框的映射信息。
进程的每个页面依次对应页表中的一个表项,表项中包含相应页面在内存中对应的物理页框号和页面存取控制权限等字段。