湖南大学OS-2020期末考试解析

news2024/11/27 15:42:34

【特别注意】

答案来源于@wolf以及网络

是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。

【试卷评析】

这张卷子有点老了,部分题目可能有用。如果仔细研究应该会有所收获。

【试卷与答案】 

 

一、选择题(15%)

1.下列关于进程状态转换,不正确的是:C

A. 就绪->运行。

B. 运行->终止。

C. 阻塞->运行。

D. 运行->阻塞。

2.发生死锁后,应如何解决。B

A.执行死锁的预防算法

B.执行死锁的检测算法

C.执行银行家算法做死锁避免

D.杀死进程

3.下列不会产生外部碎片的内存分配方法是:C

A.连续内存分配

B.分段内存分配

C.分页内存分配

D.采用最佳适配的连续内存分配

4.系统发生一次中断最多有一个进程的状态发生切换。B

A. 对

B. 错

5.内核线程与进程的主要区别在于:B

A.内核不能调度线程

B.线程没有独立的地址空间

C.内核不保存线程的上下文

D.内核没有为线程创建内核数据结构

二、简答题 (30%)

1. (6%)据报道华为的鸿蒙操作系统采用了微内核设计。请问 操作系统采用微内核设计的主要优点和缺点分别是什么?

优点:便于扩充操作系统,所有的新服务可以在用户空间增加,因为不需要修改内核。当内核确实需要改变时,所做的改变也会很小,因为微内核本身很小。这样的操作系统很容易移植到不同的硬件平台设计。由于绝大多数服务作为用户而不是作为内核进程来运行的,因此微内核也就提供了更好的安全性和可靠性,如果一个服务器出错,那么操作系统的其他部分不受影响。
缺点:微内核系统的核心只实现了最基本的系统操作,这样内核以外的外部程序之间由于独立运行使得系统难以进行良好的整体优化。另外,进程间相互通信的开销也较单一内核系统大得多。

2.(6%)请你谈谈系统调用与函数调用的区别?

函数调用是调用函数库中的一个程序,而系统调用是调用系统内核的服务。
函数调用是与用户程序相联系,而系统调用是操作系统的一个进入点
函数调用是在用户地址空间执行,而系统调用是在内核地址空间执行
函数调用的运行时间属于「用户」时间,而系统调用的运行时间属于「系统」时间
函数调用属于过程调用,开销较小,而系统调用需要切换到内核上下文环境然后切换回来,开销较大

3. (6%)试简要介绍写时拷贝(Copy-On-Write)技术,并说明为何fork系统调用可以从该技术中受益。

略,可以CSDN搜一下。

原因主要是在改动前不用复制整个空间,免去了这个麻烦。

4.(6%)请简要介绍最优页面置换算法,并说明该算法为何是最优的。

(书P173)

5. (6%)试说明为何通用操作系统中要采用虚拟文件系统。

虚拟文件系统的主要功用,在于让上层的软件,能够用单一的方式,来跟底层不同的文件系统沟通。(其他的自己编一编就可以了)

三、(10%)

假设一个文件系统采用inode来表示文件。磁盘块大小为8KB,磁盘块指针为4B。这个文件系统具有10个直接块,以及一个一级、一个二级、一个三级的间接磁盘块。请问这个文件系统支持的文件的最大大小为多大(请给出计算过程和依据)。         

四、 (15%)

一个磁盘有5000个柱面(0~4999)。假定磁头当前在1243号柱面上,前一个请求是125号柱面。对于如下请求:86, 2069, 920, 1785, 948, 1509, 122, 4210, 130。请按照下列算法给出为满足上述请求从当前磁头位置开始移动的总柱面数。

  1. FCFS
  2. SSTF
  3. SCAN
  4. LOOK

本次不考,没做

五、 (15%)

桌上有一个空盘,允许存放一个水果。爸爸可向盘中放苹果,也可向盘中放橘子,儿子只吃盘中的橘子,女儿专吃盘中的苹果。规定当盘空时一次只能放一个水果,请用wait(),signal()原语实现爸爸、儿子和女儿之间的同步(给出伪代码)。

int put=1,apple=0,orange=0;//定义同步信号量

Father://父亲进程
While(1)
{
    P(put);
    放一个苹果或者橘子;
    if(fruit==apple)
        V(apple);
    else
        V(orange);
}

Daughter://女儿进程
While(1)
{
    P(apple);
    拿一个苹果;
    V(put);
    吃苹果;
}

Son://儿子进程
While(1)
{
    P(orange);
    拿一个桔子;
    V(put);
    吃桔子;
}

答案参考:https://blog.csdn.net/weixin_43800761/article/details/106796505

六、(15%) 某请求分页式系统中,某进程的页表如下:

Page number(页号)

Frame(物理帧号)

Valid/Invalid bit(有效位)

0

-

0

1

9H

1

2

254H

1

3

-

0

假定页面大小为4K,为该进程分配的物理帧数固定为2,采用最近最少使用页面置换算法(LRU)和本地帧分配策略,假设按虚拟地址10A0H,3542H, 2408H, 256H的序列顺序访问:

  1. 请给出访问10A0H时的完整地址转换过程(步骤)和对应的物理地址;

  2. 请给出访问3542H时的完整地址转换过程(步骤)和对应的物理地址;

  3. 如果采用最优页面置换算法和本地帧分配策略,请给出上述序列(10A0H,3542H, 2408H, 256H)对应的物理地址,并给出分析过程。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM+Vue的房屋租赁网站-求租合同设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

“混合办公”已来!

不知不觉中,你已经开启“未来办公模式”了。这听起来好像有些疯狂,但事实就是如此! 试想一下,近三年,你是不是很少去办公室,但却没有耽误工作?你有多少次是在出差的途中开视频会议,…

5分钟了解Kubernetes Ingress和Gateway API

了解Kubernetes Ingress和Gateway API之间的差异,以实现有效的流量管理。原文: Kubernetes Ingress Vs Gateway API Ingress vs Gateway API 概述 Kubernetes如今被广泛应用于容器管理、微服务编排解决方案。对于如何控制微服务的入口流量,Kubernetes提供…

未来制鞋厂的智能化改造: RFID技术的应用

近年来,RFID(射频识别)的应用在生产、物流、零售等方面得到了广泛的应用。在制鞋厂中,RFID的应用也越来越受到关注。 RFID技术可以让制鞋厂实现对鞋子的全程跟踪,从原材料的采购到鞋子的成品出货,都可以实…

OpenAI 新发布GPT 最佳实践;WordPress新增 AI写作助手;国产语言模型TigerBot发布

🦉 AI新闻 🚀 WordPress新增Jetpack AI Assistant AI写作助手 摘要:Automattic公司宣布,为其WordPress新增AI写作助手–Jetpack AI Assistant。该工具可根据用户提示撰写博文、详情页、结构化列表和表格,支持多种口吻…

代码质量规范测量

圈复杂度介绍 圈复杂度(Cyclomatic complexity)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出。在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为线性无关的路径条数,即合理的预…

脑洞大开:“Excel+中文编程”衍生新型软件,WPS用户:自家孩子

中国人脑洞有多大? 有时候,你不得不承认,中国人的脑洞有时候真是让人意想不到: 你只知道Excel表格,你也知道中文编程,但是你有没有想过,用Excel和中文编程嫁接起来的话,会衍生出一…

sessionStorage、localStorage、cookie你真的会用么

文章目录 前言会话存储:本地存储: 一、sessionStorage介绍使用演示存储数据到sessionStorage从sessionStorage中获取数据删除sessionStorage中的某个键值对清空sessionStorage中的所有数据从Chrome查看sessionStorage的存储情况 二、localStorage介绍使用…

最新 Adobe Photoshop AI (Beta) 下载安装教程

Adobe最近推出了新的Adobe Photoshop AI(Beta),这是一款融合了生成性AI和Adobe Firefly的新功能。 能够根据用户的自然语言提示,创建出极其出色的图像。这些提示可以用来添加内容、删除或替换图像的某部分,甚至扩展图…

Flutter:动画

前言 学习参考:老孟 flutter动画 基本上开发时使用的组件都有其动画,关于动画方面的知识,一般情况很少会用到。因此这里只学习关于动画的基本知识。 AnimationController Flutter中的AnimationController是一个用于控制动画的类。它可以控…

深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__Qt 事件循环

深入理解Qt多线程编程:QThread、QTimer与QAudioOutput的内在联系__QObject的主线程的事件循环 1. Qt多线程编程的基础1.1 QObject和线程(QObject and Threads)1.2 QThread的使用和理解(Understanding and Using QThread&#xff0…

ubuntu下安装transition_amr_parser

ubuntu下安装transition_amr_parser transition_amr_parser是IBM公司开源的AMR paraing和AMR text-to-generation工具,在NLP领域中经常会用到,但是这个安装过程中可能会存在很多坑,transition_amr_parser的github主页安装教程不清晰&#xf…

探秘美颜SDK的动态贴纸的技术原理

美颜SDK作为美颜相机的重要组成部分,其动态贴纸技术也是很多用户喜爱的功能之一。本文将探秘美颜SDK的动态贴纸技术,从技术原理、应用场景和未来发展等方面进行分析。 一、技术原理 **1. 人脸识别技术。**在添加动态贴纸时,第一步要做的肯定…

图的导航 - 最短路径算法

一个 恋爱关系图 胡图图love:98于小美 胡图图love:48何壮壮 胡图图love:99小怪 于小美love:10张帅子 何壮壮love:45张帅子 小怪love:100张帅子 胡图图到张帅子的最短路径 确定不是恋爱路径? 算法实现 先看猛料再看是否实现思路 // 定义深度优先搜索状态 struct DepthFirs…

【Android】WMS(六)Surface的创建和操作

Surface的创建流程 在Android系统中每个Activity都有一个独立的画布(在应用侧称为Surface,在SurfaceFlinger侧称为Layer), 无论这个Activity安排了多么复杂的view结构,它们最终都是被画在了所属Activity的这块画布上。 1.Surfac…

618数码好物全推荐,几款科技感满满的数码好物分享

6月18日将迎来一年一度的618狂欢购物节,这可谓是一场精彩绝伦的购物盛宴。每年都有诸多品牌参与其中,我们不仅需要应对复杂的折扣,还需要面对眼花缭乱的产品,这让我们不可避免地陷入了“选择困难症”的困扰中。为了让大家在今年61…

【Android】手持设备规格参数

系列文章 【Android】手持设备规格参数 本文链接:https://blog.csdn.net/youcheng_ge/article/details/130604517 【H5】avalon前端数据双向绑定 本文链接:https://blog.csdn.net/youcheng_ge/article/details/131067187 【H5】安卓自动更新方案&…

天空卫士在中国数据安全软件市场位列前五

IDC-中国数据安全软件市场份额,2022 数字经济迅速崛起 中央网信办5月份发布的《数字中国发展报告(2022年)》显示,2022年,我国数字经济规模达50.2万亿元,总量稳居世界第二,同比名义增长10.3%,占国内生产总…

C#,码海拾贝(39)——求解“对称正定方程组”的“共轭梯度法”之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 求解线性方程组的类 LEquations /// 原作 周长发 /// 改编 深度混淆 /// </summary> public static partial class LEquations { /// <summary> /…

vue3 script setup 获取父组件函数与参数方法

<script setup>真的可以说是一种非常方便的开发方式了 但没有直接性的setup 拿取父组件的参数和函数就会有点问题 其实vue官方给我提供了defineProps和defineEmits这两个方法是官方提供 不需要引入 直接用就好了 例如这里 我们给子组件传了三个参数 :imgSrc“user.images…