湖南大学OS-2020(另一张)期末考试解析

news2024/11/27 15:41:40

【特别注意】

答案来源于@wolf以及网络

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

【试卷评析】

这张卷子很老了,我不知道具体的年份,部分题目可能有用。如果仔细研究应该会有所收获。

【试卷与答案】 

一、选择题(15%)

1.下列说法正确的是(多选):AE

A. CPU和设备能并行运行。

B. Cache里有的数据内存里不一定有。

C. 操作系统一直在CPU上执行,用于监视和管理各种进程。

D. 紧急情况下,CPU可以不通过设备控制器直接访问所有设备。

E. 下列存储介质的访问数据由快到慢的顺序依次是:寄存器、cache、内存、硬盘

2.系统调用与函数调用是一回事,只是说法不同。系统调用的说法突出了这些函数是操作系统提供的功能和服务这一特点。B

A.对

B.错

3.下列不属于不可抢占型调度器的调度位置的是:ADE

A.有进程从阻塞到就绪

B.有进程从运行到阻塞

C.有进程从运行到结束

D.有进程从新建到就绪

E.有中断发生

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

A. 对

B. 错

5.下面说法不正确的是:ACD

A.LRU算法是虚拟内存中页面置换的最优算法

B.最优页面置换算法是置换那些未来最长时间不会使用的页

C.最优页面置换算法是置换那些过去最长时间未使用的页

D.LRU算法实现代价低,所以存在于当前支持虚拟内存的大部分计算机系统中。

二、简答题 (30%)

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

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

2.(6%)请谈谈你对阿姆达尔定律的理解,并说明如何提高系统的加速比?

该定律的主要思想是,当我们对系统的某个部分加速时,起对系统整体性能的影响取决于该部分的重要性和加速程度。
要想显著加速整个系统,必须提升全系统中相当大的部分的速度。即相当于增加并行性。

3. (6%)试分析说明为何自旋锁(spinlocks)不适合单处理器系统但却常用于多处理器系统

自旋锁(进程在其等待锁时还在运行)的缺点是忙等待,当一个进程位于其临界区内时,任何其它试图进入其临界区的进程都必须在其进入代码中连续地循环。在单处理器系统中,忙等待浪费了CPU时钟(这些时钟本来可以有效地为其他进程所使用)。
自旋锁的优点就是,进程在等待锁时不会进行上下文切换,而上下文切换可能需要花费相当长的时间。因此,如果锁的占用时间短,自旋锁就可以变得非常有用。它常常用于多处理器系统中,这样一个线程在一个处理器自旋时,另一线程可在另一处理器上在其临界区内执行。

4.(6%)试说明内存管理系统中内部碎片和外部碎片产生的原因和可能的解决措施。

外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区域。解决外部碎片的方法是紧缩,将所有空闲空间合并到一块。
内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片,通常内部碎片难以完全避免。

5. (6%)试说明为何最短寻道时间优先算法(SSTF)在磁盘调度上不是最优算法。

SSTF算法选择与当前磁头位置最近的待处理请求。当新进程到来,磁头选择最近的,导致距离磁头位置较远的可能永远得不到服务,导致饥饿。
可以想象这样一个序列,磁头初始在最中间位置。
第一次寻道,离磁头最近磁道的在中点的左边,磁头移动到该位置。
第二次寻道,离磁头最近磁道的在中点的右边,磁头移动到该位置。
第三次寻道,离磁头最近磁道的在中点的左边,磁头移动到该位置。

如此,磁头一直在中点往复,显然不如寻完一侧的磁道再寻另一侧更优。

三、(10%)

文件系统中的连续分配和索引分配方案在内存管理中都有类似的分配方案,试分析论述为何链接分配方案不适合内存管理。  

链接分配只能有效地用于文件地顺序访问,要找到中间位置,必须跟随指针一块一块的移动。指针也是需要空间。可靠性较低。如果硬盘损坏,若损坏的是指针,那么这可能导致链接到错误的位置。所以链接分配不适合内存管理。

四、 (15%)

如果有内存中存按地址顺序存在如下大小内存空洞100KB、500KB、200KB、300KB和600KB,请问首次适配算法、最佳适配算法、最差适配算法各自将怎样放置大小分别为212KB、417KB、112KB和426KB(按顺序)的进程?在这一具体案例中哪一种算法更佳,为什么?

首次适配:分配第一个足够大的孔。所以212KB放置到500空洞,剩下288KB空洞;417KB放置到600KB空洞,剩余183KB空洞;112KB放置到288KB空洞,剩余176KB空洞;426KB没有足够的空洞放置。
最佳适配:分配最小的足够大的孔。所以212KB放置到300KB空洞,剩余88KB空洞;417KB空洞放置到500KB空洞,剩余83KB空洞;112KB放置到200KB空洞,剩余88KB空洞;426KB放置到600KB空洞,剩余174KB空洞。
最差适配:分配最大的孔。所以212KB放置到600KB的空洞,剩余388KB空洞;417KB放置到500KB的空洞,剩余83KB的空洞;112KB放置到388KB的空洞,剩余276KB的空洞;426KB没有足够大的空洞放置。
在这一个案例中最佳适配算法最佳,因为最佳适配将所有的进程都放置进去,而首次适配和最差适配则没有。

五、 (15%)

某寺庙,有小和尚、老和尚若干。庙内有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个水桶取水。水桶总数为3个。每次入、取缸水仅为1桶,且不可以同时进行。试用P(wait)V(signal)操作实现老和尚和小和尚的活动,请给出同步设计的理由和相应的伪代码。

【注意】

这里我使用jar作为水缸访问的互斥锁,well作为水井访问的互斥锁,bottle作为3个水桶的同步锁,full和empty分别表示信号量。锁的性质不同,它们赋初值的时候的值也不同。其中互斥锁是二值信号量。

void* little_monk()
{
	while(TruE)
	{
		P(empty);
		p(bottle);
		P(well);
		从井里打水;
		V(well);
		P(jar);
		往缸里面倒水;
		V(jar);
		V(bottle);
		V(full); 
	}
}

void* elderly_monk()
{
	while(TruE)
	{
		P(full);
		P(bottle);
		P(jar);
		从缸里面取水使用;
		V(jar);
		V(bottle);
		V(empty); 
	}
}

int main()
{
	……
    sem_init(&well,0,1);
    sem_init(&jar,0,1);
    sem_init(&bottle,0,3);
    sem_init(&full,0,0);
    sem_init(&empty,0,10);
    ……
}

六、

(15%) In demand paging(请求分页),the page table of a process is as following(某进程的页表如下).

Page number(页号)

Frame(物理帧号)

Valid/Invalid bit(有效位)

0

-

0

1

9H

1

2

254H

1

假定页面大小为4K,为该进程分配的物理帧数固定为2,采用最近最少使用页面置换算法(LRU)和本地帧分配策略;一次内存访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页(page fault)处理的时间为8ms(包含更新TLB和页表的时间);TLB初始化为空,地址访问时,先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);有效位为0,表示页面不在内存中,产生缺页处理。设有虚拟地址访问序列20A2H、1512H、104H,请计算:

  1. 依次访问该序列地址对应的各个物理内存所需要的时间;

  2. 基于上述访问序列,虚拟地址405H对应的物理地址;

  3. 若希望请求分页时内存的有效访问时间(EAT)为120ns, 缺页的概率应该控制在多少之内。

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

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

相关文章

机器学习 | 决策树 Decision Tree | 概念向

参考视频:【小萌五分钟】机器学习 | 决策树 文章目录 📚决策树是什么(根节点、叶子节点、分支、深度)📚决策树:分类树——算法思想📚分类错误率,熵,基尼指数&#x1f407…

蓝库云|实体店搭建一套巡店管理系统,能让大型连锁店立竿见影

传统巡店工作存在许多问题特别是大型连锁店,包括工作效率低、数据收集不便捷、信息共享困难等。为了解决这些问题,蓝库云认为拥有一套巡店管理系统就显得非常重要了。 巡店管理系统具备以下特点:手机电脑数据同步、实时数据采集和记录、可定…

谷粒商城学习笔记(二):简介- 谷粒商城项目微服务架构图

目录 项目前置知识一、前后端分离开发,分为 内网部署 和 外网部署。二、用户是通过使用 客户端 来完成各种的功能三、网关的作用四、Sentiel组件五、Feign组件六、OAuth2.0认证中心七、SpringSecurity组件八、关于数据存储的解决方案九、定位bug十、注册中心十一、配…

IDEA 远程 Debug 调试,你可以不需要,但是要会

文章目录 前言配置IDEA设置启动脚本改造 细节细节1:停在本地断点,关闭程序后会继续执行吗细节2:jar包代码和本地不一致会怎么样?细节3:日志打印在哪里?细节4:调试时其他人会不会卡住&#xff1f…

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

【特别注意】 答案来源于不确定的光子和wolf 是两位同学在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。 【试卷评析】 这张卷子比较正,个人感觉能够代表接下来几年的考试方向。如果仔细研究应该会有所收获。 【试卷与答案】 一、&…

网络安全认证CISP、CISSP对比及分析

好多网络安全行业或者打算转行该行业的人在纠结学是考取CISP认证还是CISSP认证,作为从事多年网络安全培训认证业务的专家,对这两个认证还是非常了解的,下面是这两个认证的一个对比说明,希望能够帮助到大家更好地选择到适合自己的认…

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

【特别注意】 答案来源于wolf以及网络 是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。 【试卷评析】 这张卷子有点老了,部分题目可能有用。如果仔细研究应该会有所收获。 【试卷与答案】 一、选择题(15%&#xff…

基于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. 人脸识别技术。**在添加动态贴纸时,第一步要做的肯定…