02323_历年考试部分试题答案及解析

文章目录

选择与填空

201810.4 进程控制块包含的信息: 标识信息(进程标识符信息), 说明信息(处理机状态信息), 现场信息(进程调度信息), 管理信息(进程控制信息)

201810.7 32位字长的计算机, 若页页式存储管理, 设页面长度为4096B,则32位逻辑地址可表示的最大页数为: 1M

解析: 212=4096B, 说明32位中已经有12位用来存储偏移量, 那么剩余20位用来存储页号,也就是220,也就是1024*1024即1M了

简答题

201904.33 什么是局部性原理, 局部性原理表现在哪两个方面?(p114, 内存管理)

  • 官方指导的理解:
    • 程序执行时呈现出局部性规律, 即在段较短的时间内, 程序的执行仅局限于某本个部分, 相应地, 它所访问的存储空间也局限于某个区域.
  • 主要表现在时间和空间两个方面
    • 时间局限性: 如果程序中的某条指令一旦执行, 则不久后该指令可能再次执行
    • 空间局限性: 一旦访问了某个单元, 则不久会其附近的存储单元也将被访问.

201904.34 文件系统为文件分配磁盘空间是以簇为单位, 簇的尺寸太大或太小都不合适. 请问: 簇的尺寸太大会有什么缺点? 簇的尺寸太小会有什么缺点?

  • 自己的理解:
    • 簇尺寸太大: 若文件较小较多, 则会造成很多页内碎片, 导致磁盘利用率不高
    • 放尺寸太小, 若文件较大较大, 则会造成占用过多的簇, 导致读取数据缓慢
  • 官方指导的理解(p170):
    • 大的簇尺寸意味着小文件也要占用很大的空间, 造成磁盘空间的浪费.
    • 小的簇尺寸表示大的文件需要跨越多个簇进行存取, 因此需要多次寻道与旋转延迟才找出需要的数据, 延长了访问的时间.

201904.35 当用户进程请求IO服务, 请简述该IO中断的处理过程.

自己的理解:
用户进程发出IO请求, 因为在等待IO操作完成,所以被阻塞了, CPU去做其它的事情了, IO操作完事后, 控制器向CPU发了个中断请求信号, CPU此时过来执行中断处理程序, 由中断处理程序唤醒了之前被阻塞的用户进程.
官方指导的理解:

  1. 用户进程发出IO请求后, 由于等待IO操作的完成而被阻塞
  2. CPU转去执行其他任务
  3. 当IO任务完成后, 控制器向CPU发中断请求信号
  4. CPU转去执行中断处理程序, 由中断处理程序唤醒被阻塞的用户进程.

201810.31 从网络操作系统和分布式操作系统的主要功能看, 这两种操作系统有什么区别?

网络操作系统的主要功能是实现网络上各台计算机之间的通信及网络中各种资源的共享.
分布式操作系统能使系统中若干台计算机相互协作完成一个共同的任务, 或者说,把一个任务分布在几台计算机上并行地运行.

201810.32 区分强迫性中断和自愿中断?

强迫性中断不是正在运行的进程所期待的, 是由于自身或外界的原因迫使正在运行的进程被打断,
自愿中断是正在运行的进程所期待的, 是为了请求调用操作系统功能而执行的一条访管指令所引起的.

201810.33 假定一个磁盘共有100个柱面, 每个柱面上有4个磁道, 每个盘面分成16个扇区, 扇区的容量与磁盘块容易相等, 用位示图法记录磁盘中的各个块是否已经被占用. 设内存的字长为64位. 这里涉及的所有编号, 例如柱面号,磁道号, 扇区号和块号,以及位示图中的内存字的次序和二进制位都是0开始编号.请问:

我去, 这怎么算? 课本中没有相关的计算机逻辑啊, PASS

  1. 位示图中的第50个字的第20个二进制位对应的是什么磁盘地址?
    50号柱面的第1号磁道的第3号扇面.
  2. 第99号柱面的第3号磁道的第15号扇区在位示图中对应第几个字中的第几位?
    第99个内存字的第63位.

201810.34 试列出主存中某空间去回收区后空闲区表项变化的四种情况

有上邻空闲区, 无下邻空闲区, 空闲区表项数不变, 长度增加, 始址前移.
有下邻空闲区, 无上邻空闲区, 空间区表项数不变, 长度增加, 始址不变,
即有上邻空闲区, 也有下邻空闲区, 空间区表项数减1, 长度增加,始址前移,
即无上邻空闲区,也无下邻空闲区, 空间区表面数加1, 新增一表项.

201810.35 给出磁盘移臂调度的目的和三种常用的调度算法.

目的: 减少寻道时间
算法: 先来先服务, 最短寻道时间优先, 电梯调度算法.

201804.31 相比于进程, 请简述线程在地址空间资源,通信关系,并发性及系统开销方面有哪些特点?

  • 资源和调度. 线程是程序执行的基本单位 , 进程是拥有资源的基本单位.
  • 地址空间资源. 不同进程的地址空间是相互独立的, 而同一进程内的各线程共享同一地址空间.
  • 通信关系. 进程之间的通信必须使用操作系统提供的进程间通信机制,而同一进程中各线程间可以通过直接读或写全局变量来进行通信,甚至无需操作系统参与
  • 并发性. 多进程之间可以并发执行. 多线程之间也可以并发执行, 而且同一进程中的多个线程之间也可以并发执行.
  • 系统开销.由于创建进程或撤销进程时,系统都要为之分配或回收资源, 操作系统付出的开销远大于创建和撤销线程时的开销.在进行进程上下文切换时,涉及整个当前CPU环境的保存及新调度到进程的CPU环境的设置. 而线程上下文切换时, 只需要保存和设置少量寄存器内容, 因此开销很小. 另一方面, 由于同一进程内的多个线程共享地址空间, 因此同一进程内的线程的上下文切换要更快.

201804.32 为了实现实时调度, 系统需要为调度程序提供哪些信息? 在单处理机情况下, 如果有6个实时进程, 周期时间都是30ms, 系统为每个进程分配6ms的处理时间, 请问系统能否保证每个实时进程都能在截止时间内完成吗? 为什么?(p94)

  • 就绪时间, 是一个实时任务成为就绪态的起始时间
  • 开始截止时间和完成截止时间,
  • 处理时间, 一个实时任务从开始执行直至完成所需要的时间
  • 资源要求, 任务执行所需要的资源信息
  • 优先级
    不能在截止时间内完成.
    因为: 6个实时进程不能满足 6*(6ms/30ms) = 6*0.2=1.2<1的条件, 所以,系统处于不可调度状态,即不能在截止时间内完成.

201804.33 在内存管理中, 分页管理与分段管理的主要区别是什么?(p153)

页是按物理地址划分的, 段是按逻辑地址划分的.
页的大小是固定的, 段的大小不固定的
分页的地址是一维的, 分段的地址空间是二维的
分页管理中 逻辑地址是一维的, 一个进程的逻辑地址形成一个地址空间.
分段管理中,逻辑地址是二维的, 一个数用来表示段, 另一个数来表示段内偏移,

201804.34 某文件系统的i结点包括12个地址项, 每个地址项存64位地址(8个字节),其中10个地址用来存直接地址, 一个地址项存一次间接地址, 一个地址项存二次间接地址, 当簇大小为4KB时,请问,系统能管理的单个文件最大长度是多少?(请写出计算的中间步骤)(p167)

首先,10个直接地址存放的是簇号, 因此可以表示的文件是: 104KB=40KB
其次, 每个簇大小为4KB(4096B), 每个地址项为8B, 所以每个簇中可以存放4096/8=512个簇号(此处是关键, 理解有多少个簇号比较难)
因此一次间接地址可以表示的文件大小: 512
4KB = 2M
二次间接地址可以表示的文件大小为: 5125124KB=1024KB1024 = 1G
三次间接地址可以表示的文件大小为: 512*512*512*4KB = 512G
所以系统能管理的单个文件最大长度为: 40KB + 512
4KB + 5125124KB = 40KB + 2M +1G

201804.35 请简述SPOOLing技术的优点

  • 提高了I/O效率
  • 将独占设备改造为共享设备
  • 实现了虚拟设备功能.

综合题

201904.37 有5个进程ABCDE, 他们的到达时间为0, 10, 20,30, 35ms, 预计他们的运行时间为100, 60, 20, 40, 80ms, 其优先数分别为3, 1, 4,5,2(优先数据越小, 表示优先级越高)要求:

  1. 分别给出采用短进程优先调度算法, 非抢占式优先权调度算法时, 进程的启动顺序.
  • 自己的理解:
    • 短进程优先调度算法:
      CDBEA
    • 非抢占式优先权调度算法
      BEACD
  • 官方指导答案:
    • 短进程优先调度算法:
      ACDBE
      非抢占式优先权调度算法
      ABECD
      why? 难道因为是A进程的到达时间为0, 表示已经在执行了?
  1. 分别计算上述两种调度算法的平均周转时间
    周转时间 = 作业在外存设备上等待调度的时间 + 进程在就绪队列中等待进程调度的时间 + 进程在CPU上运行的时间 + 进程等待IO操作完成的时间
    自己的理解:

第一个进程的开始时间为它的提交时间,其他的进程都为上一个进程的完成时间;
完成时间 = 开始时间+运行时间
周转时间 = 完成时间-提交时间

短进程优先调度算法
此时A进程到达时间为0, 运行时间为100, 因为周转时间为100-0=100
调入C进程, C的开始时间=A的完成时间=100, C的运行时间为:20,到达时间为20, 所以周转时间为: 100+20-20=100
调入D进程, D的开始时间=C的结束时间=100, D的运行时间为: 40, 到达时间为:30, 周转时间:100+40-30=110
调入B进程, B的开始时间=D的结束时间=110, B的运行时间为:60, 到达时间为10, 周转时间: 110+60-10=160
调入E进程, E的开始时间=B的结束时间=160, E的运行时间为:80, 到达时间为:35, 周转时间: 160+80-35=205
所以平均周转时间为: (100+100+110+160+205)/5=135

官方指导的答案:

这就让人纳闷儿了, 怎么一肥四?

201904.38 在采用基本分页内存管理方式的系统中, 一个由3个页面(页号: 0, 1, 2),每页由2K字节组成的程序, 把它装入一个由8个页框(页框号分别为0, 1, 2, 3,4,5,6, 7)组成的容器中,其0, 1, 2页分别被分配到内存的6, 7, 3页框中.

要求:1. 请简述地址置换的过程;

  • 自己的理解:
    -.不知该从何说起, 看官方理解
  • 官方指导
    • 在基本分页系统中进行地址置换时, 地址变换机构将自动把逻辑地址转化为页号和页内偏移量, 如果页号超过页表长度, 将产中越界中断; 否则以页号为索引去检索页表, 从中得到对应的页框号, 并把页框号和页内偏移量送入物理地址寄存器中,形成物理地址.
  1. 根据上面的已知条件计算逻辑地址320, 2345, 5374分别对应的物理地址
    320: 页号=INT(320/2048) = 0, 页内偏移量=MOD(320/2048)=320. 页框号为:6, 则物理地址为: 62048+320=12608
    2345: 页号=INT(2345/2048) = 1, 页内偏移量=MOD(2345/2048)=297, 页框号为:7, 则物理地址为:7
    2048+297=14633
    5374,页号=INT(5374/2048)=2, 页内偏移量=MOD(5374/2048)=1278, 页框号为3,则物理地址为:3*2048+1278=7422

201904.39 假设磁盘有500个磁道, 磁盘请求中是一些随机请求, 它们按照到达的次序分别处于198, 383,237, 422,14, 424,165, 267号磁道上,当前磁头在153号磁道上,并向磁道号增加的方向移动, 要求:分别给出FCFS和SCAN算法进行磁盘调度时满足请求的次序, 并计算出它们的寻道长度.

FCFS:153-198-383-237-422-14-424-165-267
间隔相加即为寻道长度
45+185+146+185+405+410+259+102=1740
平均寻道长度: 1740/8=217.5

SCAN: 153-165-198-237-267-383-422-424-14
寻道长度: 271+410=681
平均寻道长度: 681/8=85.125

201810.36 试述可变分区存储管理中采用移动技术的作用和限制.

201810.37 在一个多道程序,采用响应比高者优先算法管理作业, 现有如下所示的作业序列, 请列出各个作业的开始时间, 完成时间, 和周转时间. 注意: 忽略系统开销.

作业名进入输入井时间需计算时间开始时间完成时间周转时间解析
job18.0时1小时899-1=1处于队首, 优先执行这一作业
job28.2时0.8小时9.410.210.2-8.2=2响应比=(9-8.2)的等待时间+0.8的运行时间/运行时间0.8, 所以就是(0.8+0.8)/0.8 = 2
job38.4时0.4小时99.41响应比=((9-8.4)+0.4)/0.4=2.5
job48.6时0.6小时10.210.810.8-8.6=2.2响应比=((9-8.6)+0.6)/0.6=1.6

解析:
先看看怎么计算的, 响应比 =(等待时间+要求服务时间)/ 要求服务时间。

  1. job1位于队首, 首先进入调度, 所以job1开始时间为8.0时, 结束时间为9.0时, 周转时间为1
  2. 此时进行响应比计算, 以确定下一步由哪个作业进入调度, 因为job1的结束时间为9.0时, 所以后面的进程都要和job1进程进行对比,
    job2作业8.2时进入队列了, 但job1要到9.0时才能完成任务, 因此需要等待9.0-8.2=0.8时间, 运行时间为0.8, 所以响应比为: (0.8+0.8)/0.8=2
    job3作业8.4时进入队列了, 但job1要到9.0时才能完成任务, 因此需要等待9.0-8.4=0.6时间, 运行时间为0.4, 所以响应比为: (0.6+0.4)/0.4=2.5
    job4作业8.6时进入队列了, 但job1要到9.0时才能完成任务, 因此需要等待9.0-8.6=0.4时间, 运行时间为0.6, 所以响应比为: (0.4+0.6)/0.6=1.6
    由此看出调度顺序为: job1-> job3->job2->job4
  3. 开始计算其它作业的时间
    首先是job3,
    它的开始时间就是job1的完成时间, 所以是9, 完成时间9+0.4=9.4, 周转时间为9.4-8.4=1
    其次是job2,
    它的开始时间是job2的完成时间,就是9.4, 完成时间就是9.4+0.8=10.2, 周转时间为:10.2-8.2=2
    再次是job4,
    它的开始时间是job2的完成时间10.2, 完成时间即为:10.2+0.6=10.8, 周转时间为10.8-8.6=2.2
    解析完成.

201804.37

在这里插入图片描述
解析:
(1)
在这里插入图片描述
(2) 是安全的, 可以找到序列: p3->p5->p4->p2->p1
(3) 不能分配,因为在T0时刻, 请求的资源量为: 3, 0, 3, 而此时拥有的资源量为: 2, 5, 2,不能满足进程请求的资源数量, 所以不能实施资源分配
(4)在T0时刻, P4进程请求2, 0, 1, 小于此时拥有的资源量2, 5, 2, 可以满足P4的进程请求, 所以可以分配资源.

201804.38(p133)

在这里插入图片描述

  1. 逻辑地址空间32页, 即2的5次方, 页号需要5位来描述; 每页2K即2的11次方, 即需要11位来描述页内偏移
    在这里插入图片描述

2 逻辑地址空间为32页, 所以进程的页表项最多为32项
因为拥有物理地址空间是1M,即2^10, 即需要10位来表示页号,
每个页表项至少有9项, 这个是怎么算出来的?
3.

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值