操作系统2012春习题课.pptVIP

  • 39
  • 0
  • 约1.08万字
  • 约 44页
  • 2021-01-07 发布于安徽
  • 举报
第三章 同步、通信与死锁 第三章 同步、通信与死锁 解:设置两个互斥信号量mutexa,mutexb,用来实现驳船和汽车对A桥和B桥的互斥使用;设置两个共享变量counta和countb,分别用来记录A桥和B桥上的汽车数并设置互斥信号量mutex1和mutex2,用来实现汽车对共享变量counta和countb的互斥访问。 semaphore mutexa, mutexb, mutex1,mutex2; mutexa = mutexb = mutex1 = mutex2 = 1; int counta, countb; counta = countb = 0; 第三章 同步、通信与死锁 cobegin process bargei() { P(mutexb); 吊起B桥; P(mutexa); 吊起A桥; 驳船通过A桥; 放下A桥; V(mutexa); 驳船通过B桥; 放下B桥; V(mutexb); } coend process carj() { P(mutex2); countb++; if(countb == 1) P(mutexb); V(mutex2); 汽车通过B桥; P(mutex2); countb--; if(countb == 0) V(mutexb); V(mutex2); 汽车通过AB段公路; P(mutex1); counta++; if(counta == 1) P(mutexa); V(mutex1); 汽车通过A桥; P(mutex1); counta--; if(counta == 0) V(mutexa); V(mutex1); } 第四章 存储管理 9、某计算机有cache、主存、辅存来实现虚拟存储器。如果数据在cache中,访问它需要20ns;如果在主存但不在cache,需要60ns将其装入缓存,然后才能访问;如果不在主存而在辅存,需要12μs将其读入主存,然后,用60ns再读入cache,然后才能访问。假设cache命中率为0.9,主存命中率为0.6,则数据平均访问时间是多少(ns)? 解:若数据在cache中:t1=0.9*20 若数据在主存中:t2=0.1*0.6*(60+2) 若数据在辅存中:t3=0.1*0.4*(12000+60+20) T = t1 + t2 + t3 = 506ns 第四章 存储管理 23、考虑下面的程序: for(int i=0;i20;i++) for(int j=0;j10;j++) a[i]=a[i]×j; 试举例说明该程序的空间局部性和时间局部性。 时间局部性:如果程序中的某条指令一旦执行,则不久之后该指令可能再次被执行 空间局部性:一旦程序访问了某个存储单元,则不久之后附近的存储单元也将被访问 第四章 存储管理 解:当数组元素a[0],a[1],…,a[19]存放在一个页面中时,其空间局部性和时间局部性较好,也就是说,在很短时间内执行循环乘法程序,而且数组元素分布在紧邻连续的存储单元中。当数组元素存放在不同页面中时,其时间局部性虽相同,但空间局部性较差,因为处理的数组元素分布在不连续的存储单元中。 第四章 存储管理 25、一个有快表的请页式虚存系统,设主存访问周期为1微秒,内外存传送一个页面的平均时间为5毫秒。如果快表命中率为75%,缺页中断率为10%。忽略快表访问时间,试求主存的有效存取时间。 解:内存命中率1-0.75-0.1 = 0.15 T = 1 * 75% 快表命中 + 2×15% 页表命中 + (5000+2)×10% 缺页中断 = 501.25us 第四章 存储管理 32、假设计算机有2M主存,其中,操作系统占用512K,每个用户程序也使用512K主存。如果所有程序都有70%的I/O等待时间,那么,再增加1M主存,吞吐率增加多少? 解: (1)2M内存:可以放3个进程 CPU的利用率为:1-(70%)3 =65.7% (2)增加1M主存后:可以放5个进程 CPU的利用率为:1-(70%)5 =83.2% 吞吐率增加了:(83.2%- 65.7%)÷65.7%=27% 第四章 存储管理 45、有两台计算机P1和P2,它们各有一个硬件高速缓冲存储器C1和C2,且各有一个主存储器M1和M2。其性能为: C1 C2 M1 M2 存储容量 4KB 4KB 2MB 2MB 存取周期 60ns 80ns

文档评论(0)

1亿VIP精品文档

相关文档