版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统课程设计题目:通用请求分页调度算法程序院 系:计算机科学与技术系专业班级:09软件工程学 号:学生姓名:指导教师:2011年 12 月12日 TOC o 1-5 h z 1课程设计目的 12课程设计内容 13系统分析与设计 23.1系统分析: 23.2系统设计: 23.3模块设计: 33.4数据结构说明: 43.5算法流程图: 44模块调试与系统测试 294.1模块调试: 294.2系统测试: 304.3调试分析: 305用户手册 316 体会与自我评价 327参考文献 33通用请求分页调度算法程序1课程设计目的操作系统是管理计算机硬件的软件。它也为应用程序提供一个基础,在计算机用户与
2、计算机硬件之间扮演一个中间者的角色。在完成操作系统各部分实验的基础上,对操作系统的整体进行一个模拟,通 过实践加深对各个部分的管理功能的认识,还能进一步分析各个部分之间的联系,最后达到对完整系统的理解。本课 程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方 法,掌握多道程序设计基本技能。研究计算机操作系统的基本原理和算法,掌握操作系统的进程管理、存储管理、文 件管理和设备管理的基本原理与主要算法。目的是使学生掌握常用操作系统的一般管理方法,了解它是如何组织和运 作的,对操作系统的核心概念和算法有一个透彻的理解,并对系统运行的机制有一个全面的
3、掌握,从而充分理解系统 调用与程序设计之间的关系。由于本课程设计比较复杂,因此也锻炼了同学们在编程方面的能力和解决实际问题的能 力,在软件开发方面,也提高了创新的能力;由于在设计的同时必须查阅大量的资料和书籍,所以也锻炼的调查研究 查阅技术文献以及编写软件设计文档的能力。2课程设计内容在进程运行过程中,当所要访问的页面不在内存时,则应将它调入内存。假如在此时内存已无空闲空间,则应选择一页调出。将哪个页面调出,则须根据一定的算法来确定。需要调入页面时,选择内存 中哪个物理页面被置换。把未来不再使用的或短期内较少使用的页面调出,通常只能在局部性原理指导下依据过去的 统计数据进行预测。模拟仿真请求分
4、页调度算法OPT、FIFO、LRU、LFU、CLOCK等模拟页面调度算法,并提供性 能比较分析功能。通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰 算法。通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。3系统分析与设计3.1系统分析:操作系统中的请求分页系统是建立在基本分页基础上的,为了能支持虚拟存储功能而增加了调页功能和页面置 换功能。每当程序所要访问的页面未在内存时,便向CPU发出一缺页中断,中断处理程序首先保留CPU环境,分析中 断原因后转入缺页中断处理程序。该程序通过查找页表后,得到该页在外存的物理块后,如果此时内存能容纳新页,则
5、 启动磁盘I/O将所却之页调入内存,然后修改页表。如果内存已满,则须先按照某种置换算法从内存中选出一页准备 换出;如果该页未被修改,可不必将该页写回磁盘;但如果此页已被修改,则必须将它写回磁盘,然后再把所缺的也调入内存,并修改页表中的相应表项,置其存在位为1”,并将此页表项写入快表 中。在缺页调入内存后,利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。整个页面的调入过 程对用户是透明的。3.2系统设计:在运行过程中,若其所要访问的页面不再内存而需把它们掉入内存,应将哪个页面调出需根据一定的算法来确定, 置换算法的好坏将直接影响到系统的性能。一个好的页面置换算法应具有较低的页面
6、更换频率。从理论上讲,应将那 些以后不会再访问的页面换出,或把那些再较长时间内不会再访问的页面调出。最佳置换算法(Optimal):它是由Belady于1966年提出的一种理论上的算法。其所选择的被淘汰页面,将是以后 永不使用的或许是在最长(未来)时间内不再被访问的页面。采用最佳置换算法,通常可保证获得最低的缺页率。但由于 人目前还无法预知一个进程在内存的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因而该算法是无法 实现的,便可以利用此算法来评价其它算法。先进先出(FIFO)页面置换算法:这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘
7、汰。该算法实现简单只需把一个进程已调入内存的页面,按 先后次序链接成一个队列,因此对首总是最先进去的页面,这样置换总是位于队首的一页。LRU置换算法:最近最久未使用(LRU)置换算法,是根据页面调入内存后的使用情况进行决策的。由于无 法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最 近最久未使用的页面予以淘汰。该算法可利用一个特殊的栈来保存当前使用的各个页面的页面号,每当进程访问某页 面时,便将该页面的页面号从该栈中移出,将它压入栈顶。因此,栈顶始终是最新被访问页面的编号,而栈底则是最 近最久未使用的页面。3.3模块设计:1)涉及的抽象数
8、据类型集合(ArrayList):集合可以随着元素的增加而自定增加长度,也可删除指定的元素,在指定的位置增加元素。队列(Queue):定义了一个可以先进先出的数组,进入时在队尾加入,出队时只能是队 首。栈(Stack):定义了一个先进后出的数组,进栈和出栈都是在栈顶执行的。二维数组:定义了第二维的元素就是第一维元素的标志位。2)主程序的流程以及模块之间的层次关系图1:程序模块图3.4数据结构说明:集合:定义了用来存放所有页面索引号的序列的一个集合,同时也定义了一个表示物理快的集合,用来存放内存 中物理块所存放的页面号,在使用过程中可以随时增加和删除,用在页面置换时,可以在指定位置增加和删除元素
9、。队列:定义了一个与内存物理块容量相同的队列,同内存快一样用来存放页面号,充分体现类先进先出的作用, 在FI FO算法中可以随时找出要置换的页面号,即位于队首的页面。栈:定义了一个与内存物理块容量相同的队列,同内存快一样用来存放页面号。每当进程访问某页面时,便将该 页面的页面号从栈中移出,将它压入栈顶。因此,栈顶始终是最新被访问页面的编号,而栈底则是最近最久未使用的 页面号。二维数组:在Clock算法中,定义一个二维数组,即给在内存中的每个页面号都定义一个访问位,在根据算法来 找到要置换的页面号;在LFU算法中定义一个二维数组,给每个页面号都定义一个访问位来计算被访问的频率,最后 比较频率来得
10、出应该被置换的页面号。3.5算法流程图:主程序流程图:实现各个算法的流程图:图3: FI FO算法流程图图4 : OPT算法程序流程图图5 : LRU算法程序流程图3 .6程序代码:Ge t S e q u e s e . j a va/*这个类用于设置和获取所输入的页面串*/ package com. model;import java.util.*;p u b l i c c l a s s Ge t S e q u e s e S t r i n g s e q u e s e =n u l l ;p u b l i c S t r i n g g e t S e q u e s e (
11、 )r e t u r n s e q u e s e;p u b l i c v o i d s e t S e q u e s e ( )S t r i n g Bu f f e r s e q u e s e =n e w S t r i n g Bu f f e r ();Ra ndom rd=new Random。;f o r ( i n t i =0 ; i 1 5 ; i +)i n t n u m=r d . n e x t I n t ( 1 0 );s e q u e s e . a p p e n d ( I n t e g e r . t o S t r i n g (
12、 n u m) + );t h i s . s e q u e s e = s e q u e s e . t o S t r i n g ();p u b l i c S t r i n g g e t S e q ( S t r i n g s e q u e s e )S t r i n g s e q =n e w S t r i n g 1 5 ; se q =s e q u e s e . s p l i t ( );r e t u r n s e q;OsView.javap a c k a g e c o m. v i ew;import java.awt.*;imp o r
13、t j a v a . t e x t . De c i ma l Fo r ma t ;import java.util.*;import java.awt.event.*;imp o r t j a v a x . s wi n g . *;imp o r t j a v a x . s wi n g . t a b l e . De f a u l t Ta b l e Mo d e l ;imp o r t c o m. mod e l . Ge t S e q u e s e;p u b l i c c l a s s Os Vi e w e x t e n d s J Fr a m
14、e i mp l e me n t s Ac t i o n Li s t e n e r , I t e mLi s t e n e r / * pa r a m a r gs*/p r i v a t e Ch o i c e c h o i c e =n u l l;p r i v a t e J La b e l l b =n e w J La b e l 6 ;p r i v a t e J Ch e c k Bo x c k b =n u l l;p r i v a t e JTe x t Fi e l d s e q 1 =n u l l ; pr i v a t e J Bu
15、t t o n g e t s e q =n u l l; p ri v a t e J Bu t t o n s u r e =n u l l;p r i v a t e J Bu t t o n c l e a r =n u l l;p r i v a t e J Te x t Fi e l d s e q 2 =n e w J Te x t Fie l d 15 ; pr i v a t e J Te x t Fi e l d p a g e =n e w J Te x t Fi el d 4 5;p r i v a t e J Te x t Fi e l d c t i me =n u
16、 l l; / / 记录缺页次数p r i v ate J Te x t Fi e l d p r ate =n u l l; / / 用于计算缺页率 p ri v a t e J Pa n e l p n =n e w J Pa n e l 1 3 ;p r i v a t e De f a u l t Ta b l e Mo d e l d f mo d e l =n u l l ; pr i v a t e J Ta b l e t a ble =n u l l ;p r i v a t e J S c r o l l Pa n e j s p =n u l l ; pr i v a t
17、 e Ve c t o r v e c t o r =n u l l ;S t r i n g s ele c t e d =n ull ;/ /记录所选算法/ /记录所选算法i n t a b t i me =0;/ /记录缺页次数i n t c h t i me =0;/ /记录置换次数d o u b l e a b r a t e =0;S t r i n g s e q 3 =n e w S t r i n g 1 5 ;的使用/ /记录置换次数/ /用于计算缺页率的使用/ /用于计算缺页率/ /用于暂存/ /用于暂存S e q 2的内容,便于FI FO算法和LRU算法S t r i
18、n g r a m =n e w S t r i n g 3 ;/ / 模拟内存块i =0;i ppublic OsView(String title)s u p e r ( t i t l e );s e l e c t e d = OPT;f o r ( i n t i =0 ; i p n . l e n g t h ; i +)p n i =n e w J Pa n e l ();顶部布局/ l b 0 =n e w J Lab el (请选择置换算法:”);l b 1 =n e w J La b e l (进程页面随机索引号顺序(页面号为09 ) : ); c h o i c e=n
19、 e w Ch o i c e ();c h o i c e . a d d ( ( OP T)最佳置换算法);c h o i c e . a d d ( ( FI FO)先进先出置换算法);c h o i c e . a d d ( ( LRU)最近最久未使用置换算法”);c h o ic e . s e l e c t ( 0 );c h o i c e . a d d I t e mLi s t e n e r ( t h i s );ckb=newJCheckBox(固定输入”);c k b . a d dAc t i o n Li s t e n e r ( t h i s );g
20、e t s e q =n e w J Butt o n (获得随机索引号);/ / g e t s e q . s e t Pr e f e r r e d S i z e ( n e w Di me n s i o n ( 5 0,3 0 ) ) ; ge t s e q . a d d Ac t i o n Li s t e n e r ( t h i s );s u r e =n e w J Bu t t o n (确定);s u r e . a d d Ac t i o n Li s t e n e r ( t h i s );p n 1 . s e t La y o u t ( n
21、e w Gr i d La y o u t ( 1 , 2 );p n 1 . a d d ( g e t s e q ) ; p n 1 . a d d ( s u r e );s e q 1 =n e w J Te x t Fi e l d ( ”, 5 0 );p n 0 . s e t La y o u t ( n e w Gr i d La y o u t ( 2,3 , 1 2 , 2 );pn0.add(lb0);pn0.add(ckb);pn0.add(lb1);p n 0 . a d d ( c h o i c e ) ; p n 0 . a d d ( p n 1 ) ;
22、p n 0 . a d d ( s e q 1 );页块布局/ l b 2 =n e w J Lab el (引用率:);l b 3 =n e w J La b e l (页框(物理块):);l b 4 =n e w J La b e l (该算法发生页面置换的次数:);l b 5 =n e w J La b e l (该算法的缺页率:);p n 2 . s e t La y o u t ( n e w Gr i d La y o u t ( 3 , 1 , 3,1 8 );p n 2 . a d d ( l b 2 ) ; p n 2 . a d d ( p n 7 ) ; p n 2 .
23、a d d ( l b 3 );p n 3 . s e t La y o u t ( n e w Gr i d La y o u t ( 1 , 1 5 , 1 3,3 );p n 4 . s e t La y o u t ( n e w Gr i d La y o u t ( 3, 15,13,1 );f o r ( i n t i =0 ; i s e q 2 . l e n g t h ; i +)s e q 2 i =n e w J Te x t Fi e l d ( ”, 2 );s e q 2 i . s e t Ho r i z o n t a l Al i g n me nt
24、(JTextFi e l d . CENTER) ; pn 3 . a d d ( s e q 2 i );f o r ( i n t i =0 ; i p a g e . l e n g t h ; i +)p a g e i =n ewJTextField( ,2);/p a g e i . s e t Ho r i z o n t a l Al i g n me n t ( J Te x t Fi e l d . CENTER);/p a g e i . s e t En a b l e d ( f a l s e );i n t t e mp =0 ;f o r ( i n t j =
25、0 ; j 3 ; j +)if (j =0 | | j =1 | | j =2 ) pn4 . a d d ( p a g e j );t e mp =j;f o r ( i n t i =0 ; i s e q 2 . l e n g t h ; i +)t e mp =t e mp +3 ;i f ( t e mp p a g e . l e n g t h )p n 4 . a d d ( p a g e t e mp );p n 5 . s e t La y o u t ( n e wBo r d e r La y o u t ();p n 5 . a d d ( p n 3 , N
26、o r t h ) ; p n 5 . a d d ( p n 7 , Ce n t e r ) ; p n 5 . a d d ( p n 4 , S o u t h );p n 6 . s e t La y o u t ( n e wFl o wLa y o u t ();p n 6 . a d d ( p n 2 );p n 6 . a d d ( p n 5 );c t i me =n e w J Te x t Fi e l d ( ”, 1 0 );/c t i me .s e t En a b l e d ( f a l s e );p r a t e =n e w J Te x
27、t Fi e l d ( ”, 1 0 );/p r a t e .s e t En a b l e d ( f a l s e );p n 8 . a d d ( l b 4 ) ; p n 8 . a d d ( c t i me );p n 9 . a d d ( l b 5 ) ; p n 9 . a d d ( p r a t e );c l e a r =n e w J Bu t t o n ( ” 清空数据”);c l e a r . s e t Pr e f e r r e d S i z e ( n e w Di me n s i o n ( 1 2 3 , 3 0 ) );
28、 cl e a r . a d d Ac t i o n Li s t e n e r ( t h i s );p n 1 0 . a d d ( c l e a r );p n 6 . a d d ( p n 8 );p n 6 . a d d ( p n 9 ) ; p n 6 . a d d ( p n 1 0 );统计布局/ s t r i n g h h = 算法,缺页率,描述说明;Ob j e c t o b j = ;d f mo d e l =n e w De f a u l t Ta b l e Mo d e l ( o b j , h h );t a ble =n e w
29、J Ta ble ( d fmo d el);t a b l e . s e t En a b l e d ( f a l s e );t a b l e . s e t Pr e f e r r e d S c r o l l a b l e Vi e wp o r t S i z e ( n e w Di me n s i o n ( 3 0 0 , 2 2 3 ) ); js p =n e w J S c r o l l Pa n e ( t a b l e );S tr i n g e l e me n t = ( OPT)最佳置换算法,(FI FO)先进先出置换算法,(LRU)最近最
30、久未 使用置换算法;f o r ( i n t i =0 ; i 1 6 ; i +)v e c t o r =n e w Ve c t o r ( ); if ( i 3 )v e c t o r . a d d ( e l e me n t i ); el s ev e c t o r . a d d ();v e c t o r . a d d ();v e c t o r . a d d ();d f mo d e l . a d d Ro w( v e c t o r );t h i s . s e t La y o u t ( n e w Bo r d e r La y o u t
31、 ();t h i s . a d d ( p n 0 , No r t h );t h i s . a d d ( p n 6 , Ce n t e r );t h i s . a d d ( j s p , S o u t h );this.setBounds(250, 123, 800, 500);this.setDefaultCloseOperation(EXlT_ON_CLOSE); t h i s . s e t Re s i z a b l e ( f a l s e );t h i s . s e t Vi s i b l e ( t r u e );p u b l i c v
32、 o i d a c t i o n Pe r f o r me d ( Ac t i o n Ev e n t e ) / / TODOAu t o - g e n e r a t e d me t h o d s t ub Ge t S e q u e s e g e t s =n e w Ge t S e q u e s e ();固定输入复选框的触发事件/ if(e.getSource() =ckb)i f ( c k b . i s S e l e c t e d ( ) ) g e t s e q . s e t En a b l e d ( f a l s e );e l s e
33、g e t s e q . s e t En a b l e d ( t r u e );获得随机索引号按钮触发事件/ i f ( e . g e t S o u r c e ()=g e ts e q)g e t s . s e t S e q u e s e ();a b t i me =0;a b r a t e =0;c h t i me =0;s e q 1 . s e t Te x t ( g e t s . g e t S e q u e s e ();for(int i=0;iram. length;i+)r a m i =;/ /确定按钮的触发事件/i f(e . get S
34、o ur c e ( ) = = s u r e)b o o l e a n b =t r u e ; / /作为检查输入的页面串数据是否有误的开关r a m 0 ;r a m 1 =;r a m 2 =;a b t i me =0;c h t i me =0;S t r i n g s e q =g e t s . g e t S e q ( s e q 1 . g e t Te x t ( ) . t r i m();f o r ( i n t i =0 ; i 15)J Op t i o n Pa n e . s h o wMe s s a g e Di a l o g ( n u l
35、l ,系统提示:输入格式错误,请输入1 9的数并以空格隔开!);b =f a l s e;b r e a k; e l s es e q 2 i . s e t Te x t ( s e q i ); se q 3 i =s e q i ;i n t l o c a t i o n =0;boolean absent=true;f o r ( i n t i =0 ; i s e q 2 . l e n g t h ; i +)f o r ( i n t j =3 * i , n =0 ; j =2 +i * 3 ; j +)i f ( t h i s . i s h a d ( s e q
36、2 i . g e t Te x t ( ) . t r i m( ) ) ) / / 如果已经在内存中,则不产生缺页中断a b s e n t =f a l s e; e l s e if(loca tion=this.isEmply()!=-1)/ / 如果内存有空闲块,则产生缺页中断r a m l o c a t i o n =s e q 2 i . g e t Te x t ( ) . t r i m();p a g e j . s e t Te x t ( r a m l o c a t i o n );a b t i me+ + ;b r e a k; e l s e i f (
37、s e l e c t e d . i n d e x Of ( OP T ) ! =- 1 )/ / 如果是 OPT 算法 th i s . OPT( i , s e q 2 i . g e t Te x t ( ) . t r i m();b r e a k;else if(selected.indexOf(FIFO )!=-1) /如果是 FI FO 算法 t h i s . FI FO(i , s e q 2i . g e t Te x t ( ) . t r i m();b r e a k;else if(selected.indexOf(LRU)!=-1) /如果是 LRU 算法
38、t h i s . LRU( i , s e q 2i . g e t Te x t ( ) . t r i m();b r e a k;f o r ( i n t j =3 * i , m=0 ; j =2 +i * 3;j +)i f ( ! a b s e n t )/ /如果不缺页pa g e j . s e t Te x t ();s e q 3 i =; e l s e/ /如果发生缺页pa g e j . s e t Te x t ( r a m m);m+ + ;a b s e n t =t r u e;De c i ma l Fo r ma t d f o r ma t =
39、n e w De c i ma l Fo r ma t ( #. 0 0 % ); a b r a t e =a b t i me / ( d o u b l e ) s e q . l e n g t h;i f ( b &s e l e c t e d . i n d e x Of ( OPT ) ! =- 1 )/ / 如果是 OP T算法 ct i me . s e t Te x t ( I n t e g e r . t o S t r i n g ( c h t i me );p r a t e . s e t Te x t ( d f o r ma t . f o r ma t
40、( a b r a t e );t a b l e . s e t Va l u e At ( d f o r ma t . f o r ma t ( a b r a t e ) , 0 , 1 );table.setValue At(页面总数:+seq.length+缺页次数:+a b t i me+置换次数:+c h t i me , 0 , 2 ); e l s e i f ( b&s e l e c t e d . i n d e x Of ( FI F O ) ! =- 1 ) /如果是FI FO 算法 c t ime . s e t Te x t ( I n t e g e r .
41、 t o S t r i n g ( c h t i me ) );p r a t e . s e t Te x t ( d f o r ma t . f o r ma t ( a b r a t e ) ) ;t a b l e . s e t Va l u e At ( d f o r ma t . f o r ma t ( a b r a t e ),1 ,1);table.setValue At(页面总数:+seq.length+缺页次数:+a b t i me+置换次数:+c h t i me , 1 , 2 ); e l s e i f ( b &s e l e c t e d .
42、 i n d e x Of ( LRU ) ! =- 1 ) / /如果是 LRU 算法 c t ime . s e t Te x t ( I n t e g e r . t o S t r i n g ( c h t i me ) );p r a t e . s e t Te x t ( d f o r ma t . f o r ma t ( a b r a t e ) ) ;t a b l e . s e t Va l u e At ( d f o r ma t . f o r ma t ( a b r a t e ) , 2 , 1 );table.setValue At(页面总数:+s
43、eq.length+缺页次数:+a b t i me+置换次数:+c h t i me , 2 , 2 ); 清除按钮的触发事件/ i f ( e . g e t S o u r c e () =c l e a r) s e q 1 . s e t Te x t ( ); a b t i me =0;a b r a t e =0;c h t i me =0;f o r ( i n t i =0 ; i s e q 2 . l e n g t h ; i +)s e q 2 i . s e t Te x t ();c t i me . s e t Te x t ();p r a t e . s
44、e t Te x t ();f o r ( i n t i =0 ; i p a g e . l e n g t h ; i +) p a g e i . s e t Te x t (); for(int i=0;iram. length;i+) r a m i =; TOC o 1-5 h z t a b l e .s e t Va lu e At ( ,0 ,1 );t a b l e .s e t Va lu e At ( ,0 ,2);t a b l e .s e t Va lu e At ( ,1 ,1 );t a b l e .s e t Va lu e At ( ,1 ,2 );
45、t a b l e .s e t Va lu e At ( ,2 ,1 );t a b l e .s e t Va lu e At ( ,2 ,2 );p u b l i c i n t i s Emp l y ( )/ /检查内存是否有空闲块i n t b =- 1;f o r ( i n t i =0 ; i r a m. l e n g t h ; i +)i f ( r a m i . e q u a l s ()b =i;r e t u r n b;r e t u r n b;p u b l i c b o o l e a n i s h a d ( S t r i n g s t
46、r )/ /检查是否已经存在内存中b o o l e a n b =f a l s e;f o r ( i n t i =0 ; i r a m. l e n g t h ; i +)i f ( r a m i . e q u a l s ( s t r )b =t r u e;r e t u r n b;public void OPT(int start,String seq)/ / OPT 算法i f ( s e q . e q u a l s ()f o r ( i n t i =0 ; i r a m. l e n g t h ; i +) r a m i =; e l s ei n
47、t l a r g e =0;/记录ram数组中的元素哪个是未来最长时间不被访问的in t a =0 , b=0 , c =0;S t r i n g Bu f f e r s t r =n e w S t r i n g Bu f f e r ();f o r ( i n t i =s t a r t ; i s e q 2 . l e n g t h ; i +)s t r . a p p e n d ( s e q 2 i . g e t Te x t ( ) . t r i m();/ System. out.println(str= = = = +str);/用于测试a =s t r
48、 . i n d e x Of ( r a m 0 );/ / /记录r a m 0 在剩余页面中第一次出现的位置b =s t r .i n d e x Of ( r a m 1 );/ / /记录r a m 1 在剩余页面中第一次出现的位置c =s t r .i n d e x Of ( r a m 2 );/ / /记录r a m 2 在剩余页面中第一次出现的位置i f ( a=-1 )r a m 0 =s e q;a b t i me+ + ;c h t i me+;r e t u r n;s e i f ( b =- 1 ) ra m 1 =s e q;a b t i me+ + ;c
49、 h t i me+;r e t u r n;s e i f ( c =- 1 ) ra m 2 =s e q;a b t i me+ + ;c h t i me+;r e t u r n;l a r g e =Ma t h . max ( a , b );l a r g e =Ma t h . ma x ( c , l a r g e );i f ( l a r g e =a )r a m 0 =s e q; e l s e i f ( l a r g e=b ) r a m 1 =s e q; e l s e i f ( l a r g e=c ) r a m 2 =s e q;a b t
50、 i me+ + ;c h t i me+ + ;public void FIFO( int start,String seq)/FI FO 算法i f ( s e q . e q u a l s ()f o r ( i n t i =0 ; i r a m. l e n g t h ; i +) r a m i =;int small=0;/ / /记录r a m数组中的元素哪个是最先进入内存的in t a=0 , b =0 , c =0;S t r i n g Bu f f e r s t r =n e w S t r i n g Bu f f e r ();f o r ( i n t i
51、 =0 ; i s t a r t ; i+)s t r . a p p e n d ( s e q 3 i );/System. out.println(str= = = = +str);/用于测试=s t r . la s t I n d e x Of(r a m 0 );/ / /记录m 0 在剩余页面中最后一次出现的位置a s t I n d e x Of(r a m 1 );/ / /记录m 1 在剩余页面中最后一次出现的位置c =s t r . la s t I n d e x Ofm 2 );/ / /记录m 2 在剩余页面中最后一次出现的位置sma l l =Ma t h .
52、mi, b );sma l l =Ma t h . mi, s ma l l ); if ( s ma l l =a )r a m 0 =s e q;s e i f ( s ma l l =b ) r a m 1 =s e q;s e i f ( s ma l l =c ) r a m 2 =s e q;a b t i me+ + ;c h t i me+ + ;public void LRU(int start,String seq)/LRU 算法i f ( s e q . e q u a l s ()f o r ( i n t i =0 ; i r a m. l e n g t h ; i
53、 +) r a m i =; e l s eint small=0;/ / /记录r a m数组中的元素哪个是最先进入内存的in t a=0 , b =0 , c =0;S t r i n g Bu f f e r s t r =n e w S t r i n g Bu f f e r ();f o r ( i n t i =0 ; i s t a r t ; i+)s t r . a p p e n d ( s e q 2 i . g e t Te x t ( ) . t r i m();/ System. out.println(str= = = = +str);/用 于测试a =s t
54、r . l a s t I n d e x Of ( r a m 0 );/ / /记录r a m 0 在剩余页面中最近一次出现的位置b =s t r . l a s t I n d e x Of ( r a m 1 );/ / /记录r a m 1 在剩余页面中最近一次出现的位置c =s t r . l a s t I n d e x Of ( r a m 2 );/ / /记录r a m 2 在剩余页面中最近一次出现的位置sma l l=Mat h .mi n ( a ,b );sma l l=Mat h .mi n ( c ,s ma ll ); if ( s ma l l =a )r
55、a m 0 =s e q; e l s e i f ( s ma l l=b ) r a m 1 =s e q; e l s e i f ( s ma l l=c ) r a m 2 =s e q;a b t i me+ + ;c h t i me+ + ;p u b l i c v o i d i t e mS t a t e Ch a n g e d ( I t e mEv e n t e )/ / TODO Au t o - g e n e r a t e d me t h o d s t ubi f ( e . g e t S o u r c e ( ) =c h o i c e )s
56、 e l e c t e d =c h o i c e . g e t S e l e c t e d I t e m();a b t i me =0;a b r a t e =0;c h t i me =0;p u b l i c s t a t i c v o i d ma i n ( S t r i n g a r g s ) / / TODO Au t o - g e n e r a t e d me t h o d s t ubOs Vi e w o s =n e w Os Vi e w(计算机操作系通用请求分页调度算法程序:”);4模块调试与系统测试4.1模块调试:输入的数据可以通过自动产生随机数获得,也可以通过输入获得。自动产生的随机数是为1 5个19的 随机i nt型数,而输入获得的数则是小于或等于15个的19 的int型数。如果输入的是字符或超过了 19的范围则会出现错误提示,并且在清除后可在重新输入。输出是19的页面号,即输出在访问每个页面时内存中物理块的页面号的情况,同时也输出每种算法的缺 页次数和缺页率,以及每个算法的基本性能。程序所能达到的基本功能是根据所选的算法输出运用该算法在内存中的页面调度情况,并根据缺页情况算 出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西钦州市统计局面向社会招聘编外人员2人备考题库及参考答案详解【能力提升】
- 2026宁夏银川永宁县卫生健康系统专业技术人员自主招聘59人备考题库及答案详解(全优)
- 2026云南曲靖市宣威市虹桥街道社区卫生服务中心、宣威市龙场镇卫生院、宣威市热水镇中心卫生院、宣威市羊场镇中心卫生院招聘8人备考题库【夺分金卷】附答案详解
- 2026西藏萨迦融媒体中心招聘农村电影放映员2人备考题库及完整答案详解【名师系列】
- 2026广东佛山市顺德区大良外国语学校招聘校医1人备考题库含完整答案详解【历年真题】
- 钢结构工程进场材料检验方案
- 2026四川宜宾酒股份有限公司下属子公司第一批员工招聘9人备考题库含完整答案详解【典优】
- 建筑材料市场调研方案
- 2026湖北黄冈罗田县教育系统面向国内普通高校招聘教师41人备考题库及参考答案详解【新】
- 2026江西省人力资源有限公司招聘生产服务一线人员16人备考题库【夺冠】附答案详解
- 2025年版蒙医医师资格考试大纲
- 统编版七年级语文下册第二单元阅读综合实践(课件)
- 半导体器件的封装技术考核试卷
- 北师大版小学六年级下册第二单元《比例》测试卷(含答案)
- 化工项目招投标评分细则
- 交通运输工程学(第3版)课件 第二篇 交通运输工程学理论基础
- 鼻后滴漏综合征的临床护理
- 2024年乌市水磨沟区九年级语文中考一模试卷附答案解析
- 《重庆市建设工程施工现场安全资料管理规程》
- 电线电缆基础知识技术资料
- 核电厂常规岛施工图设计文件内容深度规定 第9部分:水工工艺
评论
0/150
提交评论