首页 > 编程知识 正文

FIFO例题及解析(操作系统:FIFO算法详解及代码演示)

时间:2023-05-05 02:15:23 阅读:121215 作者:556

FIFO算法FIFO算法是最简单的页面替换算法。 FIFO算法记录了每页向内存的传输时间。 如果必须替换页面,请选择最旧的页面。

通俗地说,每次进入主存

如果主内存中不存在此页面,则第一个进入的页面离开团队。 如果主页存在,内存将保持不动。 下面是面向c对象的写法的代码。

这就解释了为什么不用容器Queue。 由于队列没有迭代器,因此无法查找是否包含页面。

直接使用线性表的话,可以简单且迅速地使用。

在基于//分页的虚拟存储管理中,使用键盘输入分配给一个作业的物理块数量和作业依次访问的10个页码,并在用//先进先出(FIFO )页面替换后使用//# includeiostreamusingnamespacestd; # definemax 20类{ public : void seta (} { intc,i=1; cout '输入以任意符号结尾的10个页码' endl; cin c; a[0]=c; while(CINc ) { a[i]=c; I; } } void geta () cout )第10页编号分别为: ); for(intI=0; i 10; I ) { cout a[i] '; } cout endl; (intIndex ) inti ) ) { return a[i]; (}~Work ) ) cout ) }~Work已发布(endl )。 }private: int a[10]; (; class space{public: //初始化构造函数,将除物理块大小之外的其他区域设置为其他值//将初始化区域设置为-1space(inti ) ) { size=i; for(intj=0; j i; j({s[j]=-1; } s[i]=-999; //指示物理块的当前状态的void getSpace (() { int i=0; cout---------物理块的当前状态为---------endl; while(s[I]!=-999 ) (if ) s[I]==-1 ) ) cout'Nan'-|-'; I; 继续; } couts[i]' -||- '; I; } coutendl; cout---------------endl; (intfind ) intn ) for ) intI=0; isize; I () if ) s(I )==n ) { return i; } }返回- 1; //先进先出,去除第一个物理块,改变最后一个物理块。 语音更改(intn ) for ) intI=0; isize; I ) s(I )=s ) I1 ); } s[size-1]=n; (} ~} ~space ) ) cout ) space已发布) endl; }private: int s[MAX]; int size; (; 语音FIFO (worka,space s ) { int i=0; Int本地; int count=0; while(I10 ) if ) s.find ) a.index(I )=-1 ) (/物理块中找不到工作s.change (a.index ) I ) ); 在//中,将物理块改变为s.getSpace (); 计数=1; }else{ s.getSpace (); (I; }双精度q; q=(双) count/10; cout-------------endl; cout '缺失页面的中断次数为' countendl; cout '缺页终结率为' qendl; cout-------------endl; (}int main ) ) {工作a; int num=0; cout '物理块数' endl; cinnum; 空间(num; a.seta (; a.geta (; FIFO(a,s ); 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。