Ⅰ、增大内存的容量
Ⅱ、增大磁盘交换区的容量
Ⅲ、减少多道程序的度数
Ⅳ、增加多道程序的度数
Ⅴ、使用更快速的磁盘交换区
Ⅵ、使用更快速的CPU
Ⅰ正确:增大内存的容量。增大内存可使每个程序得到更多的页框,能减少缺页率,进而减少换入/换出过程,可提高CPU的利用率。
Ⅱ错误:增大磁盘交换区的容量。因为系统实际已处于频繁的换入/换出过程中,不是因为磁盘交换区容量不够,因此增大磁盘交换区的容量无用。
Ⅲ正确:减少多道程序的度数。可以提高CPU的利用率,因为从给定的条件知道磁盘交换区的利用率为99.7%,说明系统现在已经处于频繁的换入/换出过程中,可减少主存中的程序。
Ⅳ错误:增加多道程序的度数。系统处于频繁的换入/换出过程中,再增加主存中的用户进程数,只能导致系统的换入/换出更频繁,使性能更差。
V错误:使用更快速的磁盘交换区。因为系统现在处于频繁的换入/换出过程中,即使采用更快的磁盘交换区,其换入/换出频率也不会改变,因此没用。
Ⅵ错误:使用更快速的CPU。系统处于频繁的换入/换出过程中,CPU处于空闲状态,利用率不高,提高CPU的速度无济于事。
综上分析:Ⅰ、Ⅲ可以改进CPU的利用率。
Ⅰ、修改页表
Ⅱ、磁盘I/O
Ⅲ、分配页框
缺页中断调入新页面,肯定要修改页表项和分配页框,所以Ⅰ、Ⅲ可能发生,同时内存没有页面,需要从外存读入,会发生磁盘I/O。
Ⅰ、撤销部分进程
Ⅱ、增加磁盘交换区的容量
Ⅲ、提高用户进程的优先级
在具有对换功能的操作系统中,通常把外存分为文件区和对换区。前者用于存放文件,后者用于存放从内存换出的进程。
抖动现象是指刚刚被换出的页很快又要被访问,为此又要换出其他页,而该页又很快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上,导致系统性能下降。
撤销部分进程可以减少所要用到的页面数,防止抖动。对换区大小和进程优先级都与抖动无关。
采用连续分配方式时,会使相当一部分内存空间都处于暂时或”永久“的空闲状态,造成内存资源的严重浪费,也无法从逻辑上扩大内存容量,因此虚拟内存的实现只能建立在离散分配的内存管理的基础上。有以下三种实现方式:请求分页;请求分段;请求段页式。
虚存的实际容量受外存和内存容量之和限制,虚存的最大容量是由计算机的地址位数决定的。
Ⅰ、处理越界错
Ⅱ、置换页
Ⅲ、分配内存
用户进程访问内存时缺页,会发生缺页中断。发生缺页中断时,系统执行的操作可能是置换页面或分配内存。系统内没有越界错误,不会进行越界出错处理。
Ⅰ、增大快表(TLB)容量
Ⅱ、让页表常驻内存
Ⅲ、增大交换区(swap)
虚实地址转换是指逻辑地址和物理地址的转换。增大快表容量能把更多的表项装入快表,会加快虚实地址转换的平均速率;让页表常驻内存可以省去一些不在内存中的页表从磁盘上调入的过程,也能加快虚实地址转换;增大交换区对虚实地址转换速度无影响,因此Ⅰ、Ⅱ正确,选C。
对各进程进行固定分配时页面数不变,不可能出现全局置换。而A、B、D是现代操作系统中常见的3种策略。
页面大小为4KB,低12位是页内偏移。虚拟地址为02A01H,页号为02H,02H页对应的页表项中存在位为0,进程P分配的页框固定为2,且内存中已有两个页面存在。根据Clock算法,选择将3号页换出,将2号页放入60H页框,经过地址变换后得到的物理地址是60A01H。
系统调用是由用户进程发起的,请求操作系统的服务。
对于A,当内存中的空闲页框不够时,操作系统会将某些页面调出,并将要访问的页面调入,这个过程完全由操作系统完成,不涉及系统调用。
对于B,进程调度完全由操作系统完成,无法通过系统调用完成。
对于C,创建新进程可以通过系统调用来完成,如Linux中通过fork系统调用来创建子进程。
对于D,生成随机数只需要普通的函数调用,不涉及请求操作系统的服务,如C语言中random()函数。
打开文件操作是将该文件的FCB存入内存的活跃文件目录表,而不是将文件内容复制到主存,找到指定文件目录是打开文件之前的操作。