
比如:在给定一个逻辑地址,给定页面大小、给定页面部署情况下,由逻辑地址计算代码的物理地址。其本质是搞清分页式内存管理的基本思想,然后就是只是按步骤先计算逻辑页号,页内地址,再查找逻辑页与物理页的对应,找到相应的物理页,计算该物理页的起始地址,再加上刚才计算的页内地址,就完成了。
当然,这只是一个简单的例子,在OS各章节中,都有这样的计算。主要包括:
作业调度中,不同调度策略下(先来先服务、短作业优先等)计算用户作业的等待时间,平均周转时间,带权周转时间,系统的吞吐率等
内存管理中的地址转换;
虚拟内存中不同页面置换算法所产生的缺页率等
文件管理中索引形式、多级索引形式下文件逻辑存储单元的分配,其空闲单元的回收等。
1.可利用资源向量Available2.最大需求矩阵Max3.分配矩阵Allocation4.需求矩阵Need **功能介绍:模拟实现Dijkstra的银行家算法以避免死锁的出现.分两部分组成:第一部分:银行家算法(扫描)1.如果Request<=Need,则转向2否则,出错2.如果Request<=Available,则转向3,否则等待3.系统试探分配请求的资源给进程4.系统执行安全性算法第二部分:安全性算法1.设置两个向量(1).工作向量:Work=Available(表示系统可提供给进程继续运行所需要的各类资源数目)(2).Finish:表示系统是否有足够资源分配给进程(True:有False:没有).初始化为False2.若Finish[i]=False&&Need<=Work,则执行3否则执行4(I为资源类别)3.进程P获得第i类资源,则顺利执行直至完成!并释放资源:Work=Work+AllocationFinish[i]=true转24. 若所有进程的Finish[i]=true,则表示系统安全否则,不安全!欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)