热门标签 | 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操作才能读出文件后面的信息。



推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
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社区 版权所有