961题库 北航计算机 操作系统 附答案 简答题形式

有题目和答案,没有解析,不懂的题问大模型即可,无偿分享。

第1组

习题

  1. 某计算机系统中的磁盘有 300 个柱面,每个柱面有 10 个磁道,每个磁道有 200个扇区,扇区大小为 512B。文件系统的每个簇(或称数据块)包含 2 个扇区,且同一柱面相邻磁道的簇号存在相邻情况。请回答下列问题:
    (1)磁盘的容量是多少?
    (2)假设磁头在 85 号柱面上,此时有 4 个磁盘访问请求,簇号分别为 100260, 60005, 101660 和 110560。若采用最短寻道时间优先(SSTF)调度算法,则系统访问簇的先后次序是什么?
    (3)第 100530 簇在磁盘上的物理地址是什么?将簇号转换成磁盘物理地址的过程是由 I/O 系统的什么程序完成的?

  2. 某文件系统采用索引结点(或可理解为索引表)存放文件的属性和地址信息,簇大小为 4KB。每个文件索引结点占 64B,有 11 个地址项,其中直接地址项 8 个,一级、二级和三级间接地址项各1 个,每个地址项长度为 4B。请回答下列问题。
    (1)该文件系统能支持的最大文件长度是多少?(给出计算表达式即可。)
    (2)文件系统用 1 M ( 1 M = 2 20 ) 1M(1M = 2^{20}) 1M1M=220个簇存放文件索引结点,用 512M 个簇存放文件数据。若一个图像文件的大小为 5600B,则该文件系统最多能存放多少个图像文件?
    (3)若文件 F1 的大小为 6KB,文件 F2 的大小为 40KB,则该文件系统获取 F1 和 F2 最后一个簇的簇号需要的时间是否相同?为什么?

答案

  1. 1) 磁盘容量 = 磁盘的柱面数每个柱面的磁道数 × 每个磁道的扇区数 × 每个扇区的大小 = ( 300 × 10 × 200 × 512 / 1024 ) K B = 3 × 1 0 5 K B 磁盘容量 = 磁盘的柱面数每个柱面的磁道数×每个磁道的扇区数×每个扇区的大小 =(300×10×200×512/1024) KB = 3×10^5KB 磁盘容量=磁盘的柱面数每个柱面的磁道数×每个磁道的扇区数×每个扇区的大小=(300×10×200×512/1024)KB=3×105KB
    2)磁头在 85 号柱面上,对 SSTF 算法而言,总是访问当前柱面距离最近的地址。注意每个簇包含 2 个扇区,通过计算得到,85 号柱面对应的簇号为 85000~85999。通过比较得出,系统最先访问离 85000~85999 最近的 100260,随后访问离 100260 最近的 101660,然后访问110560,最后访问 60005。顺序为 100260、101660、110560、60005。
    3)第 100530 簇在磁盘上的物理地址由其所在的柱面号、磁道号、扇区号构成。柱面号 = [簇号/每个柱面的簇数] = [100530/(10×200/2)] = 100。磁道号 = [(簇号%每个柱面的簇数)/每个磁道的簇数] = [530/(200/2)] = 5。扇区号 = 扇区地址%每个磁道的扇区数 = (530×2)%200 = 60。将簇号转换成磁盘物理地址的过程由磁盘驱动程序完成。

  2. 1)簇大小为 4KB,每个地址项长度为 4B,故每簇有 4KB/4B = 1024 个地址项。最大文件的物理块数可达 8 + 1 × 1024 + 1 × 102 4 2 + 1 × 102 4 3 8 + 1×1024 + 1×1024^2 +1×1024^3 8+1×1024+1×10242+1×10243,每个物理块(簇)大小为 4KB,故最大文件长度为 ( 8 + 1 × 1024 + 1 × 102 4 2 + 1 × 102 4 3 ) × 4 K B = 32 K B + 4 M B + 4 G B + 4 T B (8 + 1×1024 + 1×1024^2 + 1×1024^3)×4KB = 32KB + 4MB + 4GB + 4TB (8+1×1024+1×10242+1×10243)×4KB=32KB+4MB+4GB+4TB
    2)文件索引结点总个数为 1M×4KB/64B = 64M,5600B 的文件占 2 个簇,512M 个簇可存放的文件总个数为 512M/2 = 256M。可表示的文件总个数受限于文件索引结点总个数,故能存储 64M 个大小为 5600B 的图像文件。
    3)文件 F1 的大小为 6 K B < 4 K B × 8 = 32 K B 6KB < 4KB×8 = 32KB 6KB<4KB×8=32KB,故获取文件 F1 的最后一个簇的簇号只需要访问索引结点的直接地址项。文件 F2 的大小为 40KB, 4 K B × 8 < 40 K B < 4 K B × 8 + 4 K B × 1024 4KB×8 < 40KB < 4KB×8 + 4KB×1024 4KB×8<40KB<4KB×8+4KB×1024,故获取 F2 的最后一个簇的簇号还需要读一级索引表。综上,需要的时间不相同。


第2组

习题

  1. 某计算机采用页式虚拟存储管理方式,按字节编址。CPU 进行存储访问的过程如图所示。

    根据图回答下列问题。
    (1)主存物理地址占多少位?
    (2)TLB 采用什么映射方式?TLB 是用 SRAM 还是用 DRAM 实现?
    (3)Cache 采用什么映射方式?若 Cache 采用 LRU 替换算法和回写(Write Back)策略,则 Cache 每行中除数据(Data)、Tag 和有效位,还应有哪些附加位?Cache 的总容量是多少?Cache 中有效位的作用是什么?
    (4)若 CPU 给出的虚拟地址为 0008 C040H,则对应的物理地址是多少?是否在 Cache 中命中?说明理由。若 CPU 给出的虚拟地址为 0007 C260H,则该地址所在主存块映射到的 Cache组号是多少?

  2. 请根据上题的图给出的虚拟存储管理方式,回答下列问题。
    (1)某虚拟地址对应的页目录号为 6,在相应的页表中对应的页号为 6,页内偏移量为 8,该虚拟地址的十六进制表示是什么?
    (2)寄存器 PDBR 用于保存当前进程的页目录起始地址,该地址是物理地址还是虚拟地址?进程切换时,PDBR 的内容是否会变化?说明理由。同一进程的线程切换时,PDBR 的内容是否会变化?说明理由。
    (3)为了支持改进型 CLOCK 置换算法,需要在页表项中设置哪些字段?

答案

  1. 1)物理地址由实页号和页内地址拼接,因此其位数为 16 + 12 = 28 或直接可得 20 + 3 + 5 = 28。
    2)TLB 采用全相联映射,可以把页表内容调入任一块空 TLB 项中,TLB 中每项都有一个比较器,没有映射规则,只要空闲就行。TLB 采用静态存储器 SRAM,读写速度快,但成本高,多用于容量较小的高速缓冲存储器。
    3)从图中可以看到,Cache 中每组有两行,故采用 2 路组相联映射方式。因为是 2 路组相联并采用 LRU 替换算法,所以每行(或每组)需要 1 位 LRU 位;因为采用回写策略,所以每行有 1 位修改位(脏位),根据脏位判断数据是否被更新,若脏位为 1 则需要写回内存。28 位物理地址中 Tag 字段占 20 位,组索引字段占 3 位,块内偏移地址占 5 位,故 Cache共有 2 3 2^3 23 = 8 组,每组 2 行,每行有 2 5 2^5 25 = 32B,故 Cache 总容量为 8 × 2 × ( 20 + 1 + 1 + 1 + 32 × 8 ) = 4464 位 = 558 8×2×(20 + 1 + 1 + 1+32×8) = 4464位 = 558 8×2×(20+1+1+1+32×8)=4464=558 字节。Cache 中有效位用来指出所在 Cache 行中的信息是否有效。
    4)虚拟地址分为两部分:虚页号、页内地址;物理地址分为两部分:实页号、页内地址。利用虚拟地址的虚页号部分去查找 TLB 表(缺失时从页表调入),将实页号取出后和虚拟地址的页内地址拼接,就形成了物理地址。虚页号 008CH 恰好在 TLB 表中对应实页号 0040H(有
    效位为 1,说明存在),虚拟地址的后 3 位为页内地址 040H,则对应的物理地址是 0040040H。物理地址为 0040040H,其中高 20 位 00400H 为标志字段,低 5 位 00000B 为块内偏移量,中间 3 位 010B 为组号 2,因此将 00400H 与 Cache 中的第 2 组两行中的标志字段同时比较,可以看出,虽然有一个 Cache 行中的标志字段与 00400H 相等,但对应的有效位为 0,而另一 Cache行的标志字段与 00400H 不相等,故访问 Cache 不命中。因为物理地址的低 12 位与虚拟地址低 12 位相同,即为 001001100000B。根据物理地址的结构,物理地址的后八位 01100000B 的前三位 011B 是组号,因此该地址所在的主存映射到 Cache的组号为 3。

  2. (1)0180 6008H
    (2)PDBR 为页目录基址地址寄存器(Page-Directory Base Register),其存储页目录表物理内存基地址。进程切换时,PDBR 的内容会变化;同一进程的线程切换时,PDBR 的内容不会变化。每个进程的地址空间、页目录和 PDBR 的内容存在一一对应的关系。进程切换时,地址空间发生了变化,对应的页目录及其起始地址也相应变化,因此需要用进程切换后当前进程的页目录起始地址刷新 PDBR。同一进程中的线程共享该进程的地址空间,其线程发生切换时,地址空间不变,线程使用的页目录不变,因此 PDBR 的内容也不变。
    (3)改进型 CLOCK 置换算法需要用到使用位和修改位,故需要设置访问字段(使用位)和修改字段(脏位)。


第3组

习题

  1. 有A、B两人通过信箱进行辩论,每个人都从自己的信箱中取得对方的问题,将答案和向对方提出的新问题组成一个邮件放人对方的信箱中。假设A的信箱最多放 M M M个邮件,B的信箱最多 N N N个邮件。初始时A的信箱中有 x x x个邮件( 0 < x < M 0<x<M 0<x<M),B的信箱中有 y y y个邮件( 0 < y < N 0<y<N 0<y<N)。辩论者每取出一个邮件,邮件数减1。A和B两人的操作过程描述如下:

    当信箱不为空时,辩论者才能从信箱中取邮件,否则等待。当信箱不满时,辩论者才能将新邮件放入信箱,否则等待。请添加必要的信号量和P、V(或wait、signal)操作,以实现上述过程的同步。要求写出完整的过程,并说明信号量的含义和初值。

  2. 某计算机系统按字节编址,采用二级页表的分页存储管理方式,虚拟地址格式如下所示:

    请回答下列问题。
    (1)页和页框的大小各为多少字节?进程的虚拟地址空间大小为多少页?
    (2)假定页目录项和页表项均占4个字节,则进程的页目录和页表共占多少页?要求写出计算过程。
    (3)若某指令周期内访问的虚拟地址为0100 0000H和0111 2048H,则进行地址转换时共访问多少个二级页表?要求说明理由。

答案

  1. 如下:
semaphore Full_A = x ;//Fuu_A表示A的信箱中的邮件数量
semaphore Empty_A = M-x;//Empty_A表示A的信箱中还可存放的邮件数量
semaphore Full_B = y ;//Full_B表示B的信箱中的邮件数量
semaphore Empty_B = N-y;//Empty_B表示B的信箱中还可存放的邮件数量
semaphore mutex_A = 1 ;//mutex_A用于A的信箱互斥
semaphore mutex_B = 1 ;//mutex_B用于B的信箱互斥
 

A{

while(TRUE){
 P(Full_A)P(mutex_A);
 从 A 的信箱中取出一个邮件;
 V(mutex_A)V(Empty_A);
 回答问题并提出一个新问题;
 P(Empty_B)P(mutex_B);
 将新邮件放入 B 的信箱;
 V(mutex_B)V(Full_B)} 
 
 }




B{

while(TRUE){
 P(Full_B)P(mutex_B);
 从 B 的信箱中取出一
 个邮件;
 V(mutex_B)V(Empty_B);
 回答问题并提出一个
 新问题;
 P(Empty_A)P(mutex_A);
 将新邮件放入 A 的
 信箱;
 V(mutex_A)V(Full_A)} 
 
 }
 
 
 
 

  1. (1)页和页框大小均为4 KB。进程的虚拟地址空间大小为 2 32 / 2 12 = 2 20 2^{32}/2^{12}=2^{20} 232/212=220页。
    (2) ( 2 10 ∗ 4 ) / 2 12 + ( 2 20 ∗ 4 ) / 2 12 = 1025 (2^{10}*4)/2^{12} + (2^{20}*4)/2^{12}=1025 (2104)/212+(2204)/212=1025页。
    (3)需要访问一个二级页表。因为虚拟地址0100 0000H和0111 2048H的最高10位的值都是4,访问的是同一个二级页表。

第4组

习题

  1. 三个进程 P1、P2、P3 互斥使用一个包含 N(N>0)个单元的缓冲区。P1 每次用 produce()生成一个正整数并用 put()送入缓冲区某一空单元中;P2 每次用 getodd()从该缓冲区中取出一个奇数并用 countodd()统计奇数个数;P3 每次用 geteven()从该缓冲区中取出一个偶数并用 counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义信号量的含义。要求用伪代码描述

答案

  1. 如下:

semaphore odd = 0, even = 0, empty = N, mutex = 1;
P1( ) 
{ 
x = produce(); ∥生成一个数
P(empty); ∥判断缓冲区是否有空单元
P(mutex); ∥缓冲区是否被占用
Put();
V(mutex); ∥释放缓冲区
if(x%2 == 0)
V(even); ∥如果是偶数,向 P3 发出信号
else
V(odd); ∥如果是奇数,向 P2 发出信号
} 
P2( ) 
{ 
P(odd); ∥收到 P1 发来的信号,已产生一个奇数
P(mutex); ∥缓冲区是否被占用
getodd();
V(mutex); ∥释放缓冲区
V(empty); ∥向 P1 发信号,多出一个空单元
countodd(); 
} 
P3( ) 
{ 
P(even); ∥收到 P1 发来的信号,已产生一个偶数
P(mutext); ∥缓冲区是否被占用
geteven();
V(mutex); ∥释放缓冲区
V(empty); ∥向 P1 发信号,多出一个空单元
counteven(); 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/672188.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

王源演唱会火爆开枪

王源演唱会火爆开抢&#xff01;当夜幕降临&#xff0c;繁星点点&#xff0c;无数粉丝的心随着一个名字而狂跳——王源&#xff01;就在昨晚&#xff0c;王源的演唱会门票正式开抢&#xff0c;然而&#xff0c;就在这个激动人心的时刻&#xff0c;猫眼突然停止&#xff0c;让无…

Java集合:数据存储与操作的瑞士军刀

Java集合概述 集合是用来存储多个元素的容器。文章从四个方面来概述下集合&#xff0c;让读者对集合有一个大致的了解。 一、 多样化的容器 Java 集合大致包含 2 大体系 Collection体系 List&#xff1a;存储有序、重复的元素 Set&#xff1a;存储无序、不可重复的元素…

MySQL数据表的设计

实际工程中, 对于数据表的设计和创建, 我们遵循以下步骤: 首先确定实体, 找到关键名词, 提取关键信息, 设计表有哪些列, 每一列是什么. (有几个实体, 一般就创建几个表, 一般一个表对应一个实体) 实体之间的关系: 1. 一对一关系 例如: 一个学生, 只能有一个账号; 一个账号只…

simulink中调用C语言:S-Function

S函数的简单介绍 S函数&#xff1a;S-Function 可以使用 MATLAB&#xff0c; C&#xff0c; C&#xff0c; Ada&#xff0c;或 Fortran 语言来编写。使用 MEX 实用工具&#xff0c;将 C&#xff0c; C&#xff0c; Ada&#xff0c;和 Fortran 语言的 S-Function 编译成 MEX-文…

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——03.差异表达基因筛选之热图绘制(4)

内容如下: 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的相关性分析…

【C语言】文件操作(中卷)

前言 在文件操作&#xff08;上卷&#xff09;中&#xff0c;讲到的主要都是正式文件操作开始之前的前置知识&#xff0c;而这一卷中&#xff0c;我们将开始正式地操作文件。 在上卷中我们已经说到&#xff0c;stdin stdout stderr是三个C语言程序启动时默认打开的流。这三个流…

猫头虎分享已解决Bug || **Eslint插件安装问题Unable to resolve eslint-plugin-猫头虎

猫头虎分享已解决Bug || **Eslint插件安装问题Unable to resolve eslint-plugin-猫头虎 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的…

cmake的基础使用

根据源程序文件生成可执行文件: 生成可执行文件&#xff1a; set设置变量&#xff1a; 指定输出路径&#xff1a; 搜索一个目录下的所有源文件&#xff1a; 制作静态库&#xff1a; 指定生成库的路径&#xff1a; 包含库文件&#xff1a; cmake中使用if语句&#xff1a; 使用me…

猫头虎分享已解决Bug || SyntaxError: Unexpected token < in JSON at position 0

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

Python爬虫之简单学习BeautifulSoup库,学习获取的对象常用方法,实战豆瓣Top250

BeautifulSoup是一个非常流行的Python库&#xff0c;广泛应用于网络爬虫开发中&#xff0c;用于解析HTML和XML文档&#xff0c;以便于从中提取所需数据。它是进行网页内容抓取和数据挖掘的强大工具。 功能特性 易于使用: 提供简洁的API&#xff0c;使得即使是对网页结构不熟悉…

有损线、上升边退化与材料特性(七)

有损线的不良影响 当信号沿着实际有损线传输时&#xff0c;高频分量的幅度减小&#xff0c;而低频分量的幅度保持不变。由于这个种选择性的衰减&#xff0c;信号的带宽降低&#xff0c;信号的上升边会增长。如果上升边的退化与单位间隔比很小&#xff0c;同位模式将比较稳定与…

Redis学习笔记【实战篇--短信登录】

开篇导读 实战篇有什么样的内容 短信登录 这一块我们会使用redis共享session来实现 商户查询缓存 通过本章节&#xff0c;我们会理解缓存击穿&#xff0c;缓存穿透&#xff0c;缓存雪崩等问题&#xff0c;让小伙伴的对于这些概念的理解不仅仅是停留在概念上&#xff0c;更…

【多模态】34、LLaVA-v1.5 | 微软开源,用极简框架来实现高效的多模态 LMM 模型

文章目录 一、背景二、方法2.1 提升点2.2 训练样本 三、效果3.1 整体效果对比3.2 模型对于 zero-shot 形式的指令的结果生成能力3.3 模型对于 zero-shot 多语言的能力3.4 限制 四、训练4.1 数据4.2 超参 五、代码 论文&#xff1a;Improved Baselines with Visual Instruction …

什么是ACP?

前言 ACP指的是应用程序控制平面&#xff0c;是微服务架构中的一个关键组成部分。它负责管理微服务架构中的各个微服务&#xff0c;包括服务发现和注册、负载均衡、服务路由、熔断和降级、配置管理等方面的功能。 A&#xff1a;可用性 所有请求都有响应。C&#xff1a;强一致…

五种最新算法求解柔性作业车间调度问题(Flexible Job Shop Scheduling Problem,FJSP),提供MATLAB代码

一、WSA求解FJSP FJSP&#xff1a;波搜索算法(Wave Search Algorithm, WSA)求解柔性作业车间调度问题&#xff08;FJSP&#xff09;&#xff0c;提供MATLAB代码-CSDN博客 二、SBOA求解FJSP FJSP&#xff1a;蛇鹫优化算法&#xff08;Secretary bird optimization algorithm&a…

打造你的专属Vue组件:基于FullCalendar超实用“日程任务管理组件”实战

打造你的专属Vue组件&#xff1a;基于FullCalendar超实用“日程任务管理组件”实战 在现代Web应用中&#xff0c;日程管理是一个常见而又关键的功能&#xff0c;它帮助用户高效安排和追踪日常任务及会议。Vue.js作为一个流行的前端框架&#xff0c;以其简洁的语法和强大的组件…

鸿蒙开发接口资源管理:【@ohos.i18n (国际化-I18n)】

国际化-I18n 说明&#xff1a;开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。I18N模块…

寄存器、缓存、内存(虚拟、物理地址)、DDR、RAM的关系

寄存器、缓存、内存、DDR、RAM的关系 1. 主要概念内部存储器&#xff1a;2.1 寄存器&#xff0c;register2.2 主存储器&#xff0c;内存&#xff0c;memory2.3 缓存&#xff0c;高速缓冲存储器&#xff0c;cache 外部存储器2.4 快闪存储器&#xff0c;闪存&#xff0c;flash Me…

快手游戏《无尽梦回》官宣开测:热血动作肉鸽来袭

易采游戏网最新消息&#xff1a;5月30日11:00&#xff0c;快手自研的梦境主题动作冒险手游《无尽梦回》正式宣布开启测试。此次测试名为“肉鸽进化实验”&#xff0c;旨在测试多角色技能交会的玩法。游戏将开放32人同局竞技&#xff0c;让玩家在激烈的战斗中角逐出唯一的胜利者…

Go语言之GORM框架(四)——预加载,关联标签与多态关联,自定义数据类型与事务(完结篇)

前言 本来是想着写多表关系的&#xff0c;不过写了一半发现重复的部分太多了&#xff0c;想了想与其做一些重复性工作&#xff0c;不如把一些当时觉得抽象的东西记录一下&#xff0c;就当用一篇杂记完成专栏的最后一篇文章吧。 预加载 简单示例 预加载主要用于在多表关系中…