Q:什么是内存管理?
A:操作系统动态完成对内存的细分就是内存管理。
单道程序设计系统中:内存=内核(操作系统使用)+正在执行的程序使用的内存
多道程序设计系统中:内存=内核(操作系统使用)+正在执行的程序使用的内存+“用户”部分
Q:内存管理有什么作用?
A:提高处理器的利用率。(提高利用率减少等待时间)
术语
页框:内存中一个固定长度的块。
页:磁盘(或其他二级存储器)中一个固定长度的块,可临时复制到内存的页框中。
段:磁盘(或其他二级存储器)中一个变长的块,整个段可以临时复制到内存中的一个可用区域内(分段),段可以分为多页,可将页单独复制到内存中。
内存管理的需求
重定位:程序换出内存,下次换入时,不必放在换出前的相同位置。
保护:使进程免受其他进程的干扰。
共享:允许多个进程访问内存的同一部分。
逻辑组织:用户关心的部分。
物理组织:内存和外存。
内存分区
分页
大小不等的固定分区->产生内部碎片
大小可变的分区->产生外部碎片
于是乎,想改进它们:
内存划分为大小固定相等的块(块的大小很小)
每个进程也被划分为同样大小的小块
进程中的页块->指定到内存中的页框中的可用块。使用分页技术在内存中为每个进程浪费的空间,仅仅是进程最后一页的一小部分形成的内部碎片,没有外部碎片。
逻辑地址:页号+偏移量