虚拟存储器
摘要:结合高速缓存与虚拟存储器的数据查找地址转换:发生在高速缓存查找以前,本文讨论高速缓存只能用物理地址查询1虚拟地址VPN---在TLB(组相关映射)中查询PTE2命中---返回PPN(物理页号)--3若不命中MMU从主存中获取页表,查询PTE 命中---返回PPN 不命中---MMU发出缺页异常信号,缺页调度程序---换页----更新PTE,TLB--再次执行导致缺页的指令---重新运行加载指令,此时命中查找到PPN--33MMU计算出实际物理地址---发生给缓存---组,行匹配若命中返回数据字节若不命中---从主存中加载页面,LRU替换缓存页面---再执行加载指令---查询命中
阅读全文
posted @
2011-09-12 14:42
chegvra
阅读(147)
推荐(0)
异常控制流
摘要:四种异常控制流:1 硬中断(IO设备处理请求,硬件故障):异步异常2 trap:系统调用。3 故障异常:缺页异常,如果可以处理故障,返回重新执行指令,如果不行终止4 终止异常:O除,访问越界。进程:1 逻辑控制流---独享cpu2 独立的地址空间---虚拟内存进程的模式:1 用户态2 内核态(更大权限)进程上下文切换:目的:多任务运行过程:保持当前进程的上下文:cpu状态,寄存器值,进程映像,恢复先前某一进程上下文,转交控制权。可能发生情景:1 系统调用: ---系统调用IO,执行IO阻塞,执行切换,当IO完成,内核判断当前进程是否执行够久,切换 在磁盘读取数据期间,计算机会采用DMA控制传输
阅读全文
posted @
2011-09-12 11:27
chegvra
阅读(158)
推荐(0)
单例模式
摘要:有两种方法:第一种:饿汉式:(一般比较安全)public class Singleton{private static Singleton singleton=new Singleton();//注意这是private 只供内部调用private Singleton(){System.out.println("已产生对象实例");}public Singleton getInstance(){return singleton;}//这里提供了一个供外部访问本class的静态方法,可以直接访问 }第二种:懒汉式:public class Singleton { private
阅读全文
posted @
2011-09-03 21:29
chegvra
阅读(104)
推荐(0)
解题
摘要:判断整数序列是不是二元查找树的后序遍历结果思想,找到序列的根,然后将序列划分左右子树,再递归判断boolean Is_postOrder_traverse(int a[],int begin,int end) {if(a == null || begin>end) return false; root=a[end]; for(int i=begin;i<end;i++){ if(a[i]>root) break; } for(int j=i;j<end;j++){ if(a[i]<root) return false; } booleanleft =true; b
阅读全文
posted @
2011-09-01 19:41
chegvra
阅读(138)
推荐(0)