热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

操作系统错题记录

操作系统错题记录《961计算机基础综合配套习题》Q:有3个进程P1、P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2

操作系统 错题记录

《961计算机基础综合配套习题》



Q:
有3个进程P1、P2和P3并发工作。进程P1需用资源S3和S1;进程P2需用资源S1和S2;进程P3需用资源S2和S3。回答(北航期末考试题)
(1)若对资源分配不加限制,会发生什么情况?为什么?
(2)为保证进程正确地工作,应采用怎样的资源分配策略?为什么?

A:
(1)若对资源分配不加限制,上述进程可能会进入死锁状态。因为P1、P2、P3是兵法工作的,所以完全有可能发生下述情况,此时P1获得了S3,P2获得了S1,P3获得了S2,但同时他们又循环等待下一个进程释放锁占用的资源,从而进入死锁状态。

(2)为保证进程正确地工作,可采取下列资源分配策略:
①要求进程一次性的申请它所需的全部资源。这样可破坏“请求与保持”条件。
②要求进程严格按资源号递增的顺序申请资源,即P1先申请S1,再申请S3;P2先申请S1,再申请S2; P3先申请S2,再申请S#。这样可破坏“环路等待”条件。
③当一个进程申请资源时,如果系统已无此类资源可用,但某个拥有该资源的其他进程处于阻塞状态,则允许前者抢占后者的资源。这样可破坏“不剥夺”条件。



Q:
(1)主存利用率不高主要体现为哪几种形式?
(2)可以通过哪些途径来提高主存利用率?

A:
(1)内存利用率不高,主要有四种表现形式:
①内存存在着大量的、分散的难以利用的碎片;
②暂时不用或长期不能运行的程序或数据,占据了大量的存储空间;
③当作业较大时,内存中只能装入少量的作业,当其阻塞时,将使CPU空闲,从而降低了内存利用率;
④内存中存在着重复的拷贝。

(2)针对上述问题,可采用以下方法提高内存利用率:
①改连续分配方式为离散分配方式以减少内存的零头;
②增加对换机制,将那些暂时不能运行的进程或暂不需要的程序和数据环换出至外存,以腾出内存来装入运行的进程;
③引入动态链接机制,当程序在运行中需要调用某段程序时才将该程序装入内存,从而避免装入不会用到的程序段和数据;
④引入虚拟存储器机制,使更多的作业能够装入内存,提高CPU和内存利用率;
⑤引入存储器共享机制,允许一个正文段或数据段被若干进程共享以消除内存中的重复拷贝现象。



Q:在采用首次适应算法回收内存时,可能出现哪几种情况?应怎么样处理这些情况?

A:
a. 回收区与插入点的前一个分区相邻接,此时可将回收区与插入点的前一分区合并,不再为回收分区分配新表项,而只修改前邻接分区的大小;
b. 回收分区与插入点的后一分区相邻接,此时合并两区,然后用回收区的首址作为新空闲区的首址,大小为两者之和;
c. 回收区同时与插入点的前后两个分区邻接,此时将三个分区合并,使用前邻接分区的首址,大小为三区之和,取消后邻接分区的表项;
d. 回收区没有邻接空闲分区,则应为回收区单独建立一个新表项,填写回收区的首址和大小,并根据其首址,插入到空闲链中的适当位置.



Q:详述在设有快表的请求分页存储管理系统中,一个虚地址转换成物理内存地址的过程。

A:当CPU给出逻辑地址后,地址变换机构自动讲逻辑地址划分成页号和页内偏移两部分。然后将页号与快表中的所有页号进行比较,若快表中由于此匹配的页号,则表示所要访问的页表项在快表中,于是取出该页对应的物理块号,与页内地址拼接形成物理地址。同时还应修改页表项中的访问位,对于写指令还需要将修改位置为1.若快表中的所有页号与所查找页号不匹配,则还需要在访问主存中的页表。若该页在主存,则从页表中取出物理块号,与页内地址拼接形成物理地址。若该页不在内存,则产生缺页中断,请求操作系统将缺页调入内存,再按前述方式进行地址变换。如果地址变换是通过查找内存中表项完成的,则还应将这次所查到的页表项存入快表中,若快表已满,则必须按某种置换算法淘汰一个表项,以腾出位置存入此页表项。



Q:一个文件系统中有一个20MB大文件和一个20KB小文件,当分别采用连续、链接、链接索引、二级索引和LINUX分配方案时,每块大小为4096B,每块地址用4B表示。问:
(1)各文件系统管理的最大文件是多少?
(2)每种方案对大、小两文件各需要多少专用块来记录文件的物理地址(说明各块的用途)?
(3)如需要读大文件前面第5.5KB的信息和后面第(16M+5.5KB)的信息,则每个方案各需要多少次盘I/O操作?

A:
(1)


  • 连续分配:理论上是不受限制,可大到整个磁盘文件区。

  • 隐式链接:由于块的地址为4字节,所以能表示的最多块数为 232=4G,而每个盘块中存放文件大小为4092字节。链接分配可管理的最大文件为:4G×4092B=16368GB

  • 链接索引:由于块的地址为4字节,所以最多的链接索引块数为 232=4G,而每个索引块有1023个文件块地址的指针,盘块大小为4KB。假设最多有n个索引块,则1023×n+n=232,算出n=222,链接索引分配可管理的最大文件为:4M10234KB=16368GB

  • 二级索引:由于盘块大小为4KB,每个地址用4B表示,一个盘块可存1K个索引表目。
    二级索引可管理的最大文件容量为4KB×1K×1K=4GB。

  • LINUX混合分配:LINUX的直接地址指针有12个,还有一个一级索引,一个二级索引,一个三级索引。因此可管理的最大文件为48KB+4MB+4GB+4TB。
    (2)

  • 连续分配:对大小两个文件都只需在文件控制块FCB中设二项,一是首块物理块块号,另一是文件总块数,不需专用块来记录文件的物理地址。

  • 隐式链接:对大小两个文件都只需在文件控制块FCB中设二项,一是首块物理块块号,另一是末块物理块块号;同时在文件的每个物理块中设置存放下一个块号的指针。

  • 一级索引:对20KB小文件只有5个物理块大小,所以只需一块专用物理块来作索引块,用来保存文件的各个物理块地址。对于20MB大文件共有5K个物理块,由于链接索引的每个索引块只能保存(1K-1)个文件物理块地址(另有一个表目存放下一个索引块指针),所以它需要6块专用物理块来作链接索引块,用于保存文件各个的物理地址。

  • 二级索引:对大小文件都固定要用二级索引,对20KB小文件,用一个物理块作第一级索引,用另一块作二级索引,共用二块专用物理块作索引块,对于20MB大文件,用一块作第一级索引,用5块作第二级索引,共用六块专用物理块作索引块。

  • LINUX的混合分配:对20KB小文件只需在文件控制块FCB的i_addr[15]中使用前5个表目存放文件的物理块号,不需专用物理块。对20MB大文件,FCB的i_addr[15]中使用前12个表目存放大文件前12块物理块块号(48K),用一级索引块一块保存大文件接着的1K块块号(4M),剩下还有不到16M,还要用二级索引存大文件以后的块号,二级索引使用第一级索引1块,第二级索引4块(因为4KB×1K×4=16 M)。总共也需要6块专用物理块来存放文件物理地址。
    (3)

  • 连续分配:为读大文件前面和后面信息都需先计算信息在文件中相对块数,前面信息相对逻辑块号为5.5K/4K=1(从0开始编号),后面信息相对逻辑块号为(16M+5.5K)/4K=4097。再计算物理块号=文件首块号+相对逻辑块号,最后化一次盘I/O操作读出该块信息。

  • 链接分配:为读大文件前面5.5KB的信息,只需先读一次文件头块得到信息所在块的块号,再读一次第1号逻辑块得到所需信息,共2次。而读大文件16MB+5.5KB处的信息,逻辑块号为(16M+5.5K)/4092=4107,要先把该信息所在块前面块顺序读出,共化费4107次盘I/O操作,才能得到信息所在块的块号,最后化一次I/O操作读出该块信息。所以总共需要4108次盘I/O才能读取(16MB+5.5KB)处信息。

  • 链接索引:为读大文件前面5.5KB处的信息,只需先读一次第一个索引块得到信息所在块的块号,再读一次第1号逻辑块得到所需信息,共化费2次盘I/O操作。为读大文件后面16MB+5.5KB处的信息,(16MB+5.5KB)/(4KB×1023)=4,需要先化5次盘I/O操作依次读出各索引块,才能得到信息所在块的块号,再化一次盘I/O操作读出该块信息。共化费6次盘I/O操作。

  • 二级索引:为读大文件前面和后面信息的操作相同,首先进行一次盘I/O读第一级索引块,然后根据它的相对逻辑块号计算应该读第二级索引的那块,第一级索引块表目号=相对逻辑块号/1K,对文件前面信息1/1K=0,对文件后面信息4097/1K=4,第二次根据第一级索引块的相应表目内容又化一次盘I/O读第二级索引块,得到信息所在块块号,再化一次盘I/O读出信息所在盘块,这样读取大文件前面或后面处信息都只需要3次盘I/O操作。

  • LINUX混合分配:为读大文件前面5.5KB处信息,先根据它的相对逻辑块号,在内存文件控制块FCB的i_addr第二个表目中读取信息所在块块号,而只化费一次盘I/O操作即可读出该块信息。为读大文件后在(16MB+5.5KB)信息,先根据它的相对逻辑块号判断要读的信息是在二级索引管理范围内,先根据i_addr内容化一次盘I/O操作读出第一级索引块,再计算信息所在块的索引块号在第一级索引块的表目号为(4097-12-1024)/1024=2,根据第一级索引块第3个表目内容再化费一次盘I/O操作,读出第二级索引块,就可以得到信息所在块块号,最后化一次盘I/O读出信息所在盘块,这样总共需要3次盘I/O操作才能读出文件后面的信息。



推荐阅读
  • 本文详细探讨了 HAProxy 的基本概念及其与 LVS(Linux Virtual Server)的比较,特别是在内核空间与用户空间的工作差异。文章还深入介绍了 HAProxy 独有的数据结构——弹性二叉树,以及其在高并发场景下的表现。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 春季职场跃迁指南:如何高效利用金三银四跳槽季
    随着每年的‘金三银四’跳槽高峰期的到来,许多职场人士都开始考虑是否应该寻找新的职业机会。本文将探讨如何制定有效的职业规划、撰写吸引人的简历以及掌握面试技巧,助您在这关键时期成功实现职场跃迁。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • 本文详细探讨了 Android Service 组件中 onStartCommand 方法的四种不同返回值及其应用场景。Service 可以在后台执行长时间的操作,无需提供用户界面,支持通过启动和绑定两种方式创建。 ... [详细]
  • 本文探讨了服务器系统架构的性能评估方法,包括性能评估的目的、步骤以及如何选择合适的度量标准。文章还介绍了几种常用的基准测试程序及其应用,并详细说明了Web服务器性能评估的关键指标与测试方法。 ... [详细]
  • WebBenchmark:强大的Web API性能测试工具
    本文介绍了一款名为WebBenchmark的Web API性能测试工具,该工具不仅支持HTTP和HTTPS服务的测试,还提供了丰富的功能来帮助开发者进行高效的性能评估。 ... [详细]
  • 深入理解异步多线程编程模型
    现代计算机系统中的CPU通过并行处理提高效率,但所谓的并发处理实际上是一种基于轮询的模拟并行。本文探讨了现代处理器如何通过虚拟化技术实现更高的并发性能,以及在.NET框架中如何有效利用线程和异步编程模式。 ... [详细]
  • 本文旨在介绍一系列提升工作效率的浏览器插件和实用小工具,帮助用户在日常工作中更加便捷高效。内容由原作者授权发布。 ... [详细]
  • 深入解析 RuntimeClass 及多容器运行时应用
    本文旨在探讨RuntimeClass的起源、功能及其在多容器运行时环境中的实际应用。通过详细的案例分析,帮助读者理解如何在Kubernetes集群中高效管理不同类型的容器运行时。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • SSE图像算法优化系列三:超高速导向滤波实现过程纪要(欢迎挑战)
    自从何凯明提出导向滤波后,因为其算法的简单性和有效性,该算法得到了广泛的应用,以至于新版的matlab都将其作为标准自带的函数之一了&#x ... [详细]
author-avatar
小鱼2502907687
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有