迈瑞/华为笔试准备

来源:互联网 发布:美工可以自学吗 编辑:程序博客网 时间:2024/06/05 11:30

1、一个以字符串表示的数 如9987655    让它乘以0~9间的一个数字, 把乘积的结果存成字符串 

char * MultiString(char *str,int n){assert(str!=0&&n>0&&n<10);int length=strlen(str);int add=0;char *newStr=new char[length+2];newStr[length+1]='\0';for(int i=length-1;i>=0;i--){int temp=(str[i]-'0')*n+add;add=temp/10;newStr[length-1-i]=temp%10+'0';}if(add)newStr[length]=add+'0';elsenewStr[length]='\0';reverseString(newStr);return newStr;}


2、 FIFO、LRU、OPT这三种置换算法的缺页次数-

    12342156212376321236

     当内存块数量分别为3时,试问FIFOLRUOPT这三种置换算法的缺页次数各是多少?

   答:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。

   

FIFO、LRU、OPT这三种置换算法的缺页次数 - yinzhezq - yinzhezq的博客

 

  发生缺页中断的次数为16

  在FIFO算法中,先进入内存的页面被先换出。当页6要调入时,内存的状态为415,考查页6之前调入的页面,分别为5124,可见4为最先进入内存的,本次应换出,然后把页6调入内存。

      

FIFO、LRU、OPT这三种置换算法的缺页次数 - yinzhezq - yinzhezq的博客

 

  发生缺页中断的次数为15

  在LRU算法中,最近最少使用的页面被先换出。当页6要调入时,内存的状态为521,考查页6之前调入的页面,分别为512,可见2为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。

    

FIFO、LRU、OPT这三种置换算法的缺页次数 - yinzhezq - yinzhezq的博客

 a.随机算法rang(Random Algorithm)
利用软件或硬件的随机数发生器来确定主存储器中被替换的页面。这中算法最简单,而且容易实现。但是,这种算法完全没有利用主存储器中页面调度情况的历史信息,吗也没有反应程序的局部性,所以命中率较低。
b.先进先出调度算法(FIFO)
先进先出调度算法根据页面进入内存的时间 先后选择滔滔页面,本算法实现时需要将页面按照进入的时间先后组成一个队列,每次调度队首页面予以淘汰。他的优点是比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,他没有反映程序的局部性,因为最先调入主存的页面,很可能也是经常要使用的页面。
c.最近最少调度算法 LFU
先进先出调度算法没有考虑页面的使用情况,大多数情况下性能不佳。根据程序执行的局部性特点,程序一旦方位了某些代码和数据,则在一段时间内会经常访问他们,因此最近最少用调度在选择淘汰页面是会考虑页面最近的使用,总是选择在最近一段时间以来最少使用的页面予以淘汰。算法实现是需要为每个页面设置数据结构的记录页面自上次访问以来所经历的时间。
d.最近最不常用调度算法 LRU
由于程序设计中经常使用循环结构,根据程序执行的局部性特点,可以设想在一段时间内经常被方位的diamo代码和数据将来也会经常被方位,,显然这样的页面不应该被淘汰。最近最不常用调度算法总是根据一段时间内页面的访问次数开选择淘汰页面,没次淘汰访问次数最少的页面。算法实现是需要为每个页面设置计数器,记录访问次数。计数器有硬件或操作系统自动定时清零。
e.最优替换算法 OPT
前面介绍的集中页面调度算法主要是以主存出奇中页面调度情况的历史信息为依据的,他假设将来主存出器中页面调度情况的历史信息为依据的,他假设将来主存储器中的页面调度情况与过去一段时间内主存储器的页面调度情况是相同的。显然,这种假设不总是真确的,最好的算法应该是选择将来最久不被方位的页面最为被替换的页面,这种算法命中率一定是最高的。他就是最优替换算法,也实现opt算法,唯一的方法就是让程序先执行一边,记录下实际的页地址流情况,根据这个页地址流才能找出当前要被替换的页面,显然,这样做是不现实的,因此,OPT算法只是一种理想化的算法,然而,特也是一种很有用的算法,实际上,经常把这种算法用来作为评价其他页面调度算法好坏的标准,在其他条件相同的情况下,哪中页面调度算法的命中率与opt想进,那么,他就是一种比较好的页面置换算法
却也调度册书和却也中断率,缺页置换率计算:
缺页中断次数是缺页是发出缺页中的次数
缺页中断率=缺页中断次数/中的页面引用次数
缺页调度次数是调入新页是需要进行页面调度的次数
缺页置换率=缺页调度次数/总的页面引用次数


2)判断一个页面调度算法好坏
一是命中率要高,而是算法要容易实现。

原创粉丝点击