mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-06-18 01:19:14 +08:00
更新计算机组成原理
This commit is contained in:
@@ -257,7 +257,7 @@ $D.$死锁
|
||||
|
||||
## 虚拟内存管理
|
||||
|
||||
### 虚拟内存的基本概念
|
||||
<!-- ### 虚拟内存的基本概念 -->
|
||||
|
||||
### 请求分页管理方式
|
||||
|
||||
@@ -281,8 +281,36 @@ $D.$Ⅰ、Ⅱ和Ⅲ
|
||||
|
||||
解:$B$。用户进程访问内存时缺页,会发生缺页中断。发生缺页中断时,系统执行的操作可能是置换页面或分配内存。越界错误是编程时访问内存越界,系统内没有越界错误,不会进行越界出错处理。
|
||||
|
||||
**例题** 有一个矩阵`int A[100,100]`以行优先方式进行存储。计算机采用虚拟存储系统,物理内存共有三页,其中一页用来存放程序,其余两页用于存放数据。假设程序已在内存中占一页,其余两页空闲。若每页可存放$200$个整数,程序$1$、程序$2$执行的过程中各会发生多少次缺页?每页只能存放$100$个整数时,会发生多少次缺页?以上结果说明了什么问题?
|
||||
|
||||
```c
|
||||
\\ 程序1:
|
||||
for(i=0;i<100;i++)
|
||||
for(j=0;j<100;j++)
|
||||
A[i,j]=0;
|
||||
|
||||
\\ 程序2:
|
||||
for(j=0;j<100;j++)
|
||||
for(i=0;i<100; i++)
|
||||
A[i,j]=0;
|
||||
```
|
||||
|
||||
解:缺页与页数无关,与每页数据数量有关。
|
||||
|
||||
程序$1$按行优先的顺序访问数组元素,与数组在内存中存放的顺序一致,每个内存页面可存放$200$个数组元素。这样,程序$1$每访问两行数组元素就产生一次缺页中断,所以程序$1$的执行过程会发生$50$次缺页。
|
||||
|
||||
程序$2$按列优先的顺序访问数组元素,由于每个内存页面存放两行数组元素,因此程序$2$每访问两个数组元素就产生一次缺页中断,整个执行过程会发生$5000$次缺页。
|
||||
|
||||
若每页只能存放$100$个整数,则每页仅能存放一行数组元素,同理可以计算出:程序$1$的执行过程产生$100$次缺页;程序$2$的执行过程产生$10000$次缺页。
|
||||
|
||||
以上说明缺页的次数与内存中数据存放的方式及程序执行的顺序有很大关系;同时说明,当缺页中断次数不多时,减小页面大小影响并不大,但缺页中断次数很多时,减小页面大小会带来很严重的影响。
|
||||
|
||||
#### 资源利用情况
|
||||
|
||||
+ $CPU$利用率低,磁盘利用率高:物理内存短缺,反复换入换出,页面抖动。需要增大内存容量,减少多道程序并发数。
|
||||
+ $CPU$利用率低,磁盘利用率低:$CPU$没有充分里利用。增加并非进程数
|
||||
+ $CPU$利用率高,磁盘利用率低:系统正常。
|
||||
|
||||
**例题** 测得某个采用按需调页策略的计算机系统的部分状态数据为:$CPU$利用率为$20\%$,用于交换空间的磁盘利用率为$97.7\%$,其他设备的利用率为$5\%$。由此判断系统出现异常,这种情况()能提高系统性能。
|
||||
|
||||
$A.$安装一个更快的硬盘
|
||||
|
||||
Reference in New Issue
Block a user