HNU-操作系统OS-2023期中考试复习-刷题

news2024/11/28 18:45:28

往年期中卷极难获得,这里找了几套卷子。可以看看。

因为往年都是从第一周开始上课的,所以进度会快一点,这学期是从第四周开始上课的,所以进程会慢些,讲到第九章所以只考到第九章。

同样因为太忙了,答案找时间再更新

 

试卷一

仅看题目即可,答案有一部分是错误的,但大部分是正确的。

这张试卷有很大的参考价值。许多题目与今年的很像。

这张试卷要感谢隔壁班的大佬y神!fy大佬yyds!

 试卷二

1.什么是多道程序技术,它带来了什么好处?(15分)

答:
多道程序设计,就是在内存中存放多个进程来执行人们赋予计算机的任务,
这些在内存中的多个进程共享计算机的硬件资源,如CPU,各种I/O设备等等。
多道程序设计的优点是
(1)资源利用率高,多道程序共享计算机资源,从而使各种资源得到充分利用;
(2)系统吞吐量大,CPU和其他资源保持“忙碌”状态。
这些优点是由多道程序设计的特点决定的,多道程序设计的特点有:
1.多道:计算机内存中同时存放多道相互独立的程序。
2.宏观上并行:同时进入系统的多道程序都处于运行过程中,
即它们先后开始了各自的运行,但都未运行完毕。
3.微观上串行:内存中的多道程序轮流占有CPU,交替执行。

2.什么是用户线程,什么是内核线程,简述其区别与联系。(15分)

用户线程指的是完全建立在用户空间的线程库,
用户线程的建立,同步,销毁,调度完全在用户空间完成,
不需要内核的帮助。因此这种线程的操作是极其快速的且低消耗的。
内核线程就是内核的分身,一个分身可以处理一件特定事情。
这在处理异步事件如异步IO时特别有用。内
核线程的使用是廉价的,
唯一使用的资源就是内核栈和上下文切换时保存寄存器的空间。
支持多线程的内核叫做多线程内核(Multi-Threads kernel )。
支持多线程的操作系统中一般采用三种用户线程与内核线程映射模型,
分别是“一对一模型”、“多对一模型”、“多对多模型”。

3.论述短期,中期和长期调度之间的区别. (15分)

        长期调度,又称为作业调度或高级调度,这种调度将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并进入主机,当该作业执行完毕时,还负责回收系统资源,在批处理系统中,需要有作业调度的过程,以便将它们分批地装入内存,在分时系统和实时系统中,通常不需要长期调度。它的频率比较低,主要用来控制内存中进程的数量。

        中期调度,是能将进程从内存或从CPU竞争中移出,从而降低多道程序设计的程度,之后进程能被重新调入内存,并从中断处继续执行,这种交换的操作可以调整进程在内存中的存在数量和时机。其主要任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或内存等待状态的进程交换到外存交换区。

        短期调度,又称为进程调度。这也是通常所说的调度,一般情况下使用最多的就是短期调度。它的主要任务是按照某种策略和算法将处理机分配给一个处于就绪状态的进程,分为抢占式和非抢占式。

4、对于系统进行监测后表明平均每个进程在I/O阻塞之前的运行时间为T一次进程切换需要的时间为S,这里S实际上即为开销。对于采用时间片长度为Q的时间片调度算法,对以下各种情况给出CPU利用率的计算公式。(20分)

Q为无穷大,  2、Q>T, 3、S<Q< T,  4、Q=S,  5、Q趋近于0  

1)Q=无穷大 CPU利用率=T/(T+S)  

2Q>T CPU利用率=T/(T+S)  

3)S<Q<T CPU利用率= Q /( Q +S)  

4)Q=S CPU利用率= Q /( Q +S)]  

5)Q接近于CPU利用率>0

Min(Q,T)/[min(Q,T)+S]

5、公共汽车上,司机和售票员各施其责,在汽车不断地到站,停车,行使过程中,他们两个活动有什么同步关系?请用P、V操作描述他们的行为实现他们的同步。(15分)

解答:可以用两个信号量s1、s2,分别表示可以开门和可以开车,其初始值都为0,用PV操作实现为:

司机:                     售票员:

   正常行车                    售票   

   到站停车                    P(S1)        

    V(S1)                      开车门       

    P(S2)                      关车门        

   启动开车                   V(S2)

6、假定在单道批处理环境下有5个作业,各作业进入系统的时间和估计运行时间如下表所示,求先来先服务算法,最短作业优先算法(含抢占式和非抢占式)和轮转调度(时间片为5分钟)算法的平均等待时间。(20分)

作业 进入系统时间 估计运行时间/分钟

1      8:00           40

2      8:05           30

3      8:10           12

4      8:15           18

5      8:20           5

  1. 先来先服务算法

   P1

  P2

  P3

  P4

P5

0              40              70             82              100

平均等待时间=(0+(40-5)+(70-10)+(82-15)+(100-20))/5=48.4

  1. 最短作业优先算法(非抢占式)

  P1

  P5

  P3

  P4

P2

0              40              45             57              75

平均等待时间=(0+(75-5)+(45-10)+(57-15)+(40-20))/5=33.4

  

最短作业优先算法(抢占式)

P1

P2

P3

P5

P4

P2

P1

0         5          10         22          27         45           70

平均等待时间=(65+(5+35)+(10)+(27)+(22))/5=32.8

这里存疑?(65+35+12+2)/5

  1. 轮转调度(时间片为5分钟)

P1

P2

P3

P4

P5

P1

P2

P3

P4

P1

P2

P3

P4

P1

0  5   10   15   20   25   30   35    40   45    50   55    57   62   67    

P2

P4

P1

P2

P1

P2

P1

P1

72    75    80    85    90    95     100     105

平均等待时间=((20+15+12+8+5+5)+(20+15+12+8+5)+(20+15)+(20+12+10)+(0))/5=40.4

试卷三

1. (20%) 简述进程的概念。画出进程的状态图,并就状态图中可能发生CPU调度决策的四种情况进行说明。结合进程控制块PCB对内核在两个进程间进行上下文切换过程进行描述。

参考答案:进程,执行中的程序;执行一个程序所需要的资源集的系统抽象;一个程序的运行实例;

进程状态图:

 

CPU调度决策可以如下四种情况下发生:

当一个进程从运行状态切换到等待状态

当一个进程从运行状态切换到就绪状态

当一个进程从等待状态切换到就绪状态

当一个进程终止时。

进程切换:

 

 

2. (10%) 简述系统调用(System call)、系统程序(System program)的用途。

参考答案:系统调用,允许用户进程请求操作系统提供的服务。由OS内核实现并提供访问接口,由用户程序调用,程序员使用。

系统程序,给用户提供基本的功能,这样用户在解决公共问题的时候不用写自己的程序。提供程序开发和执行的环境,普通操作用户使用。

3. (15%) 线程通常可分为用户级线程和内核级线程,请回答两种线程之间的区别,并就两者之间的关系,对多线程模型的类型及其优缺点进行简要说明。

参考答案:用户线程不受内核支持,无需内核管理,使用用户级的线程库完成线程的管理,对用户线程的支持通常处于内核之上,通过一个用户级线程库(thread library)实现。线程库提供了对线程的创建、调度和管理的支持,这无需来自内核的支持。因为内核并不知道用户级线程的存在,所有的线程创建和调度工作都在用户空间完成,而且整个过程不受内核的干涉。

内核线程由操作系统直接支持:内核在内核空间内实现了线程的创建、调度和管理。

常见的多线程模型包括以下三种:

多对一, 优点线程管理由线程库在用户空间进行,效率较高,缺点一旦某个线程执行了阻塞,则整个进程也会被阻塞

一对一, 允许线程并发的执行并且运行在多处理器系统上,不会导致单一线程阻塞进程的情况,缺点用户线程和内核线程一一对应,开销较大,限制了系统线程的数量。

多对多, 多路复用了许多用户级线程到同样数量或更小数量的内核线程上,允许OS创建足够数量的内核线程,且在某个线程发生阻塞时,可调度其他线程执行。

4. (15%) 对于一个多任务的应用软件,分析比较采用多进程实现和多线程实现的优劣,并举例说明。

仅供参考:从资源或系统开销、维护、进程阻塞、崩溃、安全等情况分析。

以web浏览器为例(360浏览器从多线程到多进程实现)。

5. (10%) 如下所示程序使用Pthread API实现,请将空白部分补充完整,并说明LINE C和LINE P将会输出的结果。

#include <pthread.h>

#include <stdio.h>

int value = 0;

void *runner(void *param); /* the thread */

int main{int argc, char *argv[])

{

int pid;

pthread_t tid;

pthread_attr_t attr;

pid = fork () ;

if (pid == 0) {/* child process */

pthread_attr_init (    1    ) ;

       2         (&tid, &attr , runner, NULL) ;

      3         (tid, NULL) ;

printf("CHILD: value = %d",value);   /* LINE C */

}

else if (pid > 0) {/* parent process */

wait(NULL);

printf("PARENT: value = %d",value);   /* LINE P */

}

}

void       4        (void *param){

value = 5;

pthread_exit (0) ;

}

参考答案:

1、&attr  

2、pthread_create  

3、pthread_join 

4、*runner

LINE C、CHILD: value =0

LINE P、PARENT: value =5

6. (20%) 有5个待运行的作业A、B、C、D、E,它们的运行时间分别为10、6、2、4和8分钟,其提交时间分别为第0、2、3、5、7分钟,其优先级别分别为3、2、5、1、4,其中5级为最高优先级。对于下列进程调度算法,试计算其平均周转时间。

1)、先来先服务;

2)、非抢占式优先级调度;

3)、抢占式优先级调度。

参考答案:

 

7. (10%) 阅读下列代码,回答A、B、C、D、E处代码的作用。

ORG 0x7c00

entry:

MOV AX,0

MOV SS,AX

MOV SP,0x7c00

MOV DS,AX

MOV ES,AX

MOV AX,0x0012     ; A设置显示模式

INT     0x10 ; B调用显示的BIOS

MOV SI,msg

putloop:

MOV AL,[SI]

ADD SI,1

CMP AL,0

JE     fin

MOV AH,0x0e

MOV BL,0x02 ;C 指定字符颜色(IRGB)

INT     0x10

JMP putloop

fin:

HLT

JMP fin

msg:

DB 0x0a    

DB "Hello, Demo OS boot sector!"

DB    0x0a

DB 0

RESB 0x7dfe-$ ;D 填写0x00直到0x7dfe

DB 0x55, 0xaa ;E 设置可引导扇区标志

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

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

相关文章

图像分类卷积神经网络模型综述

图像分类卷积神经网络模型综述遇到问题 图像分类&#xff1a;核心任务是从给定的分类集合中给图像分配一个标签任务。 输入&#xff1a;图片 输出&#xff1a;类别。 数据集MNIST数据集 MNIST数据集是用来识别手写数字&#xff0c;由0~9共10类别组成。 从MNIST数据集的SD-1和…

ctfshow web入门web119-124

1.web119 和118题类似&#xff0c;只不过是过滤了PATH 0可以用任何字符代替&#xff0c;比如A,{A},A,{0} KaTeX parse error: Expected }, got # at position 2: {#̲SHLVL}1&#xff0c;或者{##},${#?} {PHP_VERSION:~A}2,php版本为x.x.2时 ${#IFS}3(linux下是3&#xff0c;…

IntelliJ IDEA 2023.1正式发布,Maven项目大提速支持Apache Dubbo

你好&#xff0c;我是YourBatman&#xff1a;做爱做之事❣交配交之人。 &#x1f4da;前言 一年一个大版本&#xff0c;共计3个中型版本&#xff0c;北京时间2023年3月月29日终于迎来了IntelliJ IDEA今年的首个版本2023.1。老规矩&#xff0c;吃肉之前&#xff0c;可以先把这…

顺丰科技x腾讯安全iOA联合案例获云安全联盟CSA 2022安全革新奖

近年来&#xff0c;随着云计算、大数据、物联网等技术的加速创新和应用&#xff0c;一场数字化的变革开始席卷各行各业。远程办公、业务协同、分支互联等需求涌现&#xff0c;随之而来的还有更加复杂多元的高级网络攻击。在此背景下&#xff0c;传统的基于边界的网络安全防护理…

矩阵键盘+CH559制作国产USB矩阵键盘

矩阵键盘+CH559制作国产USB矩阵键盘 文章目录 矩阵键盘+CH559制作国产USB矩阵键盘为什么选择CH559作为主控芯片?如何实现该款矩阵USB键盘?如何将矩阵键盘的信号转化为USB键盘信号?原材料: 矩阵键盘(附带行列键码定义)CH559开发板将矩阵键盘的所有排线连接到单片机的GPIO引…

基于stm32mp157 linux开发板ARM裸机开发教程5:ARM微处理器指令系统(连载中)

前言&#xff1a; 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中&#xff0c;使其内容更加丰富&#xff0c;讲解更加细致&#xff0c;全文所使用的开发平台均为华清远见FS-MP1A开发板&#xff08;STM32MP157开发板&#xff09; 针对对FS-MP1A开发板&…

Python | Python的自我介绍(前世今生)

本文概要 本篇文章主要介绍Python这门语言的前世今生&#xff0c;适合刚入门的小白或者想了解Python历史的同学&#xff0c;文中描述很详细&#xff0c;具有一定的学习价值&#xff0c;感兴趣的小伙伴快来一起学习吧。 个人简介 ☀️大家好&#xff01;我是新人小白博主朦胧的…

【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

目录问题提出问题重述与再理解第一个问题&#xff1a;假如样本不均衡&#xff0c;哪种分类器的泛化性能较好&#xff1f;第二个问腿&#xff1a;在样本不均衡的情况下&#xff0c;如何获得更健壮的模型问题解决方法样本不均衡对机器学习模型会造成什么影响什么模型适合样本不均…

小黑今天上午着急忙慌实习公司楼下笔试,晚上准备和尚香疯狂星期四明天继续现场笔试的leetcode之旅:1091. 二进制矩阵中的最短路径

小黑代码1 class Solution:def shortestPathBinaryMatrix(self, grid: List[List[int]]) -> int:# 一定无解的情况if grid[0][0] 1 or grid[-1][-1] 1:return -1# 矩阵长度n len(grid)# 起点即终点if n 1:return 1# 访问集合seen {(0, 0)}# 初始化队列q collections.…

射频功率放大器在空气耦合超声检测系统中的应用

实验名称&#xff1a;空气耦合超声检测系统研究方向&#xff1a;超声测试设备&#xff1a;ATA-8202射频功率放大器、探头、ATA-5620前置放大器、超声波接收器、数据采集卡、计算机。实验过程&#xff1a;图&#xff1a;空气耦合超声检测锂电池系统锂电池空气耦合超声检测具体过…

TryHackMe-Year of the Dog(Linux渗透测试)

Year of the Dog 谁知道呢&#xff1f;狗咬了一口&#xff01; 端口扫描 循例nmap Web枚举 进80 用gobuster扫了一圈没有任何发现&#xff0c;图像也没有隐写 在主页的请求头的cookie有一个id 改成其他错误值会导致异常&#xff0c;看见叫id&#xff0c;习惯性加个了引号 爆…

【java】集合类

文章目录集合根接口LIST列表迭代器Queue|Deque|PriorityQueueSet集合HashSetLinkedHashSetTreeSet键盘读入MapHashMapLinkedHashMapStream流stream()ints()Collections工具类集合根接口 所有的集合类最终都是实现自集合根接口的&#xff0c;比如ArrayList类&#xff0c;它的祖先…

走向国际市场,怎样用Facebook广告抢占商机?

在当今全球化的商业世界中&#xff0c;企业要想在国际市场中占据一席之地&#xff0c;除了打造优质产品和服务外&#xff0c;有效的营销手段也是至关重要的。 而Facebook作为全球最大的社交媒体平台&#xff0c;其广告投放服务为企业提供了一个快速、便捷、有效的推广途径。那…

安全校验和框架---JWT和Shrio

安全架构 加密 分类 可逆加密和不可逆加密 不可逆加密&#xff1a;常见的不可逆加密算法有MD5&#xff0c;HMAC&#xff0c;SHA1、SHA-224、SHA-256、SHA-384&#xff0c;和SHA-512&#xff0c;其中SHA-224、SHA-256、SHA-384&#xff1b; 可逆加密分为对称加密和非对称加密…

2023最新面试题-Java-5

自定义类加载器 1. 为什么需要自定义类加载器 网上的大部分自定义类加载器文章&#xff0c;几乎都是贴一段实现代码&#xff0c;然后分析一两句自定义ClassLoader的 原理。但是我觉得首先得把为什么需要自定义加载器这个问题搞清楚&#xff0c;因为如果不明白它的作用的情况 …

人工智能动物农场的猪、牛和蟑螂

人工智能动物农场的猪、牛和蟑螂 农业正在成为由人工智能驱动的以数据为中心的业务。中国的大型科技公司正在使用神经网络支持的计算机视觉、可穿戴设备和预测分析算法来重新构想猪、鸡、牛、鹅和蟑螂养殖。 《南华早报》报道称&#xff0c;好医生制药集团每年在中国东南部的四…

OpenHarmony社区运营报告(2023年3月)

目录 本月快讯 一、代码贡献 二、生态进展 三、社区治理 五、社区活动 六、社区及官网运营 本月快讯 • 《OpenHarmony 2022年度运营报告》于3月正式发布&#xff0c;2022年OpenAtom OpenHarmony&#xff08;以下简称“OpenHarmony”&#xff09;开源项目潜心务实、深耕发展&am…

优化Key顺序提升ClickHouse查询性能

ClickHouse 键列顺序不仅影响表压缩效果&#xff0c;对查询性能也有很大影响&#xff0c;正确使用键列的顺序可以跳过大粒度数据范围&#xff0c;提高查询效率。本文通过示例进行测试不同场景的查询性能&#xff0c;从而让我们了解如何选择键列及其顺序。 测试数据 首先创建并…

从DY用户页面获取作品列表

最近DY的web端更新比较频繁&#xff0c;所以搞了很多方案来应对更新问题。 本文内容是其中一种方案&#xff0c;从用户主页的HTML响应内容中抽取user信息和作品列表数据。 下图中出现的内容都是在html名为RENDER_DATA的script标签中&#xff0c;以urlencode编码。 比如昵称、粉…

copilot技巧

copilot技巧 csdn排版不太好&#xff0c;推荐notion查看&#xff1a;https://superb-face-6ae.notion.site/copilot-25cf0f9882364056b5c76909b3a66ef9 一些基础原理&#xff1a; 我们想要使用copilot来干嘛呢&#xff1f;来生成代码。 怎样让它生成代码呢&#xff1f;给它一…