OS习题课部分答案.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OS习题课部分答案

OS习题课部分答案 存储管理 2、某系统采用请求分页式管理,页面淘汰算法为LRU,每个作业占15页,其中一页用来存放程序,每一页存放200个整型变量,考虑如下程序: int a[20][100],b[20][100],i,j; for(i=1;i=20;i++) for(j=1;j=100;j++) a[i][j]=0; for(i=1;i=20;i++) for(j=1;j=100;j++) b[i][j]=a[i][j]; 设数组ab均按行存储,程序已经调入主存,变量ij放在程序页中,问此程序会产生多少次缺页中断?最后留在内存中有哪些页面? 解: 数组a,2000个元素,共需占用10个页面,每两行一页 数组b,2000个元素,共需占用10个页面,每两行一页 第一个循环,a[I,j]=0会将a矩阵全部调入内存被赋值0,发生10次缺页中断,还剩4块; 第二个循环,先读a,再写b,剩余的空闲4块内存,可放入b数组的0~7行,此时内存已满,若用A1表示a数组的a[0]和a[1]行占据的页面编号,则a数组的A0~A19和b数组的B0~B3页面(b[0]~b[7]行)均被读入内存, 即b[i][j]=a[i][j];的循环中从b[8]行开始要进行LRU淘汰,根据该循环特点,b[8]行=a[8]行 与b[9]行=a[9]行这两次循环的页面访问是A4B4A4B4,整个循环序列为: A4B4A4B4,A5B5A5B5,…A13B13A13B13,可化简为A4B4,A5B5,…A13B13 A4 B4 A5 B5 A6 B6 A7 B7 A8 B8 A9 B9 A10 B10 A11 B11 A12 B12 A13 B13 A0 B4 B11 1 B5 B12 2 B6 B13 3 B7 4 A4 A11 5 A5 A12 6 A6 A13 7 A7 8 A8 9 B8 b0 A9 b1 B9 b2 A10 b3 B10 14次缺页中断 + + + + + + + + + + + + + + + 总共发生14+15=29次缺页中断,内存中最终页面A7-A13,B7-B13 3. 考虑以下程序: int a[100][150],b[150][200],c[100][200],i,j,k; For (i=1;i=100;i++) for(j=1;j=200;j++) for(k=1;k=150;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; 设a、b矩阵已经置好初值,c矩阵初始为0,各矩阵以页为单位连续存放;主存初始为空,请求分页时采用fifo算法。 问:当作业分配10个页面,每个页面可存储100整数,缺页次数是多少?留在内存的最后的页面abc矩阵各占多少页? 解: 矩阵a[100][150] 共需150页 每行占1.5个页面 矩阵b[150][200] 共需300页 每行占2个页面 矩阵c[100][200] 共需200页 每行占2个页面 程序的逻辑地址空间中,总共需要650个页面,试编号为: a占用1-150号页面;b占151-450号;c占451-650号. c[i][j]=c[i][j]+a[i][k]*b[k][j](读a,读b,计算a*b,读c,计算c+a*b,写c;而与内存访问有关的操作可简化为:读a,读b,读c,写c 对于依次访问的a,b,c矩阵,只要不跨页,不会发生缺页中断;比如每次访问a[I,k]和c[I,j]时;但是,在每次访问b[k][j]的时候,由于是按列读取,必然跨页。采用fifo算法,页面调度过程如下: 循环变量 读写操作 内存页面

您可能关注的文档

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档