物理内存 swap 页面调度

1:实际内存
实际内存是指一个系统中实际存在的物理内存,称为RAM。实际内存是存储临时数据最快最有效的方式,因此必须尽可能地分配给应用程序,现在的RAM的形式有多种:SIMM、DIMM、Rambus、DDR等,很多RAM都可以使用纠错机制(ECC)。
2:交换空间swap
交换空间是专门用于临时存储内存的一块磁盘空间,通常在页面调度和交换进程数据时使用,通常推荐交换空间的大小应该是物理内存的二到四倍。
3:页面调度
页面调度是指从磁盘向内存传输数据,以及相反的过程,这个过程之所以被称为页面调度,是因为Unix内存被平均划分成大小相等的页面;通常页面大小为4KB和8KB(在Solaris中可以用pagesize命令查看)。当可执行程序开始运行时,它的映象会一页一页地从磁盘中换入,与此类似,当某些内存在一段时间内空闲,就可以把它们换出到交换空间中,这样就可以把空闲的RAM交给其他需要它的程序使用。
4:交换
页面调度通常容易和交换的概念混淆,页面调度是指把一个进程所占内存的空闲部分传输到磁盘上,而交换是指当系统中实际的内存已不够满足新的分配需求时,把整个进程传输到磁盘上,交换活动通常意味着内存不足。

UNIX内存管理:UNIX系统通过2种方法进行内存管理,“调页算法”,“交换技术”。
调页算法是将内存中最近不常使用的页面换到磁盘上,把常使用的页面(活动页面)保留在内存中供进程使用。
交换技术是系统将整个进程,而不是部分页面,全部换到磁盘上。正常情况下,系统会发生一些交换过程。

当内存严重不足时,系统会频繁使用调页和交换,这增加了磁盘I/O的负载。进一步降低了系统对作业的执行速度,即系统I/O资源问题又会影响到内存资源的分配。

好的,我了解了你的问题。以下是一个简单的程序实现示例,实现FIFO页面调度算法: ```c++ #include <iostream> #include <queue> #include <vector> #include <algorithm> using namespace std; int main() { int n; // 物理块数 cout << "请输入页框大小:"; cin >> n; vector<int> page_seq; // 页面需求序列 cout << "请输入页面需求序列,以-1结束输入:" << endl; int page; while (cin >> page && page != -1) { page_seq.push_back(page); } int page_faults = 0; // 页面缺失次数 queue<int> page_frames; // 页面框队列 for (int i = 0; i < page_seq.size(); i++) { int page = page_seq[i]; // 判断页面是否在页面框中 auto it = find(page_frames.begin(), page_frames.end(), page); if (it == page_frames.end()) { // 页面不在页面框中,发生页面缺失 page_faults++; // 判断页面框是否已满,若已满则进行页面替换 if (page_frames.size() == n) { page_frames.pop(); } page_frames.push(page); } // 屏显页面框内容 cout << "页面框内容:"; for (auto p : page_frames) { cout << p << " "; } cout << endl; } // 计算并屏显置换率 double swap_rate = (double)page_faults / page_seq.size(); cout << "页面缺失次数:" << page_faults << endl; cout << "置换率:" << swap_rate << endl; return 0; } ``` 程序运行时,首先要输入页框大小和页面需求序列,输入时以-1结束,然后程序就会按照FIFO页面调度算法模拟页面调度过程,并屏显每次页面调度结果和置换率。 需要注意的是,这只是一个简单的示例程序,没有进行输入数据的完整性和合法性检查,实际使用时需要根据具体情况进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值