操作系统的功能包括:处理器管理、存储器管理、文件管理、设备管理等。
内存管理的功能有:1.内存空间的分配与回收,包括内存的管理和共享。2.地址转换,把逻辑地址转换成相应的物理地址。3.内存空间的扩充,利用虚拟存储技术或自动覆盖技术,从逻辑上扩充内存。4.存储保护,保证各道作业在各自的存储空间内运行,互不干扰。
逻辑地址转换为物理地址的过程叫做地址重定位。
内存分配管理方式
内存分配管理方式:连续分配管理方式(包括:单一连续分配,固定分区分配,动态分区分配)与非连续分配管理方式(包括:基本分页存储方式和请求分页存储管理方式)。
基本分页存储管理方式: 32位是这样划分的=页号P(31...12)+页内偏移量M(11...0)
基本分段存储管理方式:32位是这样划分的=段号S(31...16)+段内偏移量W(15...0)
段页式管理方式:32位=段号+页号+页内偏移量。这里每一个分段都有一张页表,每个分段一张段表。
虚拟内存管理
基于局部性原理,在程序装入中,可以将程序的一部分装入内存中,而将其余部分留在外存,就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。另一方面,操作系统将内存中暂时不用的内容换出到外存上,从而腾出空间存放将要调入内存的信息,这样,系统好像为用户提供了一个比实际内存大得多的存储器,成为虚拟存储器。
虚拟内存的实现方式有3种:1.请求分页存储管理,2.请求分段存储管理,3.请求段页式存储管理。
需要的硬件支持有:一定容量的内存和外存;页表机制(或段表机制),作为主要的存储结构;中断机构,地址变换机构等
常用的置换算法有:最佳置换算法,先进先出(FIFO)页面置换算法,最近最久未使用(LRU)置换算法。
Belady:随着分配页面的增加,缺页率不增反减的异常现象(FIFO算法中可能会产生)。
FIFO是基于队列实现的,LRU是基于堆栈类的算法。
抖动(Thrashing):页面置换过程中的一种最糟糕的情形,刚刚换出的页面马上又要换入内存,刚刚换入的页面马上就要换出主存,这种频繁的 页面调度行为成为抖动,或颠簸。