内容系听课复习所做笔记,图例多来自课程截图
覆盖与交换
下图为覆盖技术图示:
交换技术和中级调度密切相关:
中级调度(内存调度):就是要决定将哪个处于挂起状态的进程重新调入内存
在哪保存被换出的进程
具有对换功能的操作系统中,通常把磁盘空间分为文件区和对换区两部分。
文件区主要用于存放文件,主要追求存储空间的利用率,因此对文件区空间的管理采用离散分配方式
对换区空间只占磁盘空间的小部分,被换出的进程数据就存放在对换区。
由于对换的速度直接影响到系统的整体速度,因此对换区空间的管理主要追求换入换出速度,因此通常对换区采用连续分配方式,故对换区的I/O速度比文件区的更快。
什么时候进行交换
交换通常在许多进程运行且内存吃紧时进行,而系统负荷降低就暂停。例如:在发现许多进程运行时经常发生缺页,就说明内有紧张,此时可以换出一些进程;如果缺页率明显下降,就可以暂停换出。
应该换出哪些进程
可优先换出阻塞进程;可换出优先级低的进程;为了防止优先级低的进程在被调入内存后很快又被换出,有的系统还会考虑进程在内存的驻留时间…
内存的分配与回收
连续分配管理方式
非连续分配管理方式
- 基本分页存储管理
- 基本分段存储管理
- 段页式存储管理
分页式管理方式
两级页表
分段式管理方式
段页式管理方式
优点 | 缺点 | |
---|---|---|
分页管理 | 内存空间利用率高,不会产生外部碎片,只会有少量的页内碎片 | 不方便按照逻辑模块实现信息的共享和保护 |
分段管理 | 很方便按照逻辑模块实现信息的共享和保护 | 如果段长过大,为其分配很大的连续空间会很不方便。另外,段式管理会产生外部碎片 |
当然,分段管理也可以使用紧凑技术
据此,提出兼具两者优点的段页式,在段页式管理中,一个进程在被分段之后还会进一步地被分页
注意上面的重点:用户不用考虑页号,只需给出段号和段内地址即可,段内地址拆分为页号和页内偏移量这是由操作系统自动完成的。因为知道段内地址是以及固定的页面大小后是可以推算出来的。
一个进程只能对应一个页表,但是可以对应多个页表
段式管理的段表和段页式的段表并不一样:前者由段长和起始地址构成,后者则是页表长度、页表存放块号(共同点是段号都是隐藏的)
需要三次访存,段页式也可以使用快表,若命中则只需一次访存
杂项
每个进程有自己的独立的地址空间,在操作系统(软件)和硬件的地址保护地址下,进程无法访问其他进程的地址空间。一个进程不能未被授权就访问另外一个进程的内存单元,内存保护的方法有界地址保护和存储键保护,一个进程中的程序不能跳转到另一个进程的指令地址中。
内存的保护依托软硬件两方面实现