软考:软件设计师 — 2.操作系统

news2024/7/30 18:00:47

二. 操作系统

1. 操作系统概念

(1)操作系统的作用

操作系统是计算机硬件之上的第一层软件系统。

操作系统通常用来:

  • 管理系统的硬件、软件、数据资源。
  • 控制程序运行。
  • 人机之间的接口。
  • 应用软件与硬件之间的接口。

可概括为:

  • 进程管理
  • 存储管理
  • 文件管理
  • 作业管理
  • 设备管理

例题:

计算机系统的层次结构如下图所示,基于硬件之上的软件可分为 a、b、c 三个层次,图中 a、b、c 分别表示()。

A.操作系统、系统软件和应用软件

B.操作系统、应用软件和系统软件

C.应用软件、系统软件和操作系统

D.应用软件、操作系统和系统软件

解析:

由操作系统的定义可知,它是计算机硬件之上的第一层软件系统,并且用户使用的通常是有具体功能的应用软件,所以选项 C 正确。    

(2)特殊的操作系统

分类特点
批处理操作系统

单道批:一次一个作业入内存,作业由程序、数据、作业说明书组成。

多道批:一次多个作业入内存,多道、宏观上并行、微观上串行。

分时操作系统

采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统。

特点:多路性、独立性、交互性和及时性。

实时操作系统实时控制系统和实时信息系统,交互能力要求不高,可靠性要求高(规定时间内响应并处理)
网络操作系统

方便有效共享网络资源,提供服务软件和有关协议的集合。

主要有:Unix、Linux 和 Windows Server

分布式操作系统任意两台计算机可以通过通信交换信息,是网络操作系统的更高级形式,具有透明性、可靠性和高性能等特性。
微机操作系统

Windows:Microsoft 开发的图形用户界面、多任务、多线程操作系统。

Linux:免费使用和自由传播的类 Unix 操作系统,多任务、多用户、多线程和多 CPU 的操作系统。

嵌入式操作系统

运行在智能芯片环境中。

特点:微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(HAL 和 BSP 支持)

例题:

从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置。该要求体现了嵌入式操作系统的()。

A.可定制性  B.实时性  C.可靠性  D.易移植性

解析:

根据嵌入式操作系统的特点可知,这是可定制性,针对硬件变化配置,选项 A 正确。容易与易移植性混淆,易移植性是由 HAL(硬件抽象层)和 BSP(板级支持包)支持。

2. 进程的概念

(1)进程与线程

进程:进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。由程序块、数据库、进程控制块(PCB)三部分组成。

PCB:PCB 是进程存在的唯一标志。包含进程标识符、状态、位置信息、控制信息、队列指针(链接同一状态的进程)、优先级、现场保护区等。

进程的 2 个基本属性:可拥有资源的独立单位;可独立调度和分配资源的基本单位。

进程与程序的区别:进程是程序的一次执行过程,没有程序就没有进程。

程序是一个静态的概念,进程是一个动态的概念。进程由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。

可参考文章:Java 知识点整理 2 — 多线程 ;Java 知识点整理 9 — JVM

例题:

在支持多线程的操作系统中,假设进程 P 创建了若干个线程,那么()是不能被这些线程共享的。

A.该进程中打开的文件

B.该进程的代码段

C.该进程中某些线程的栈指针

D.该进程的全局变量

解析:

根据上图可得,栈指针不能共享,选 C。

(2)进程的状态

进程的状态变化主要有三态模型和五态模型两种。

三态模型

运行:当一个进程在 CPU 上运行时候。(单处理机处于运行态的进程只有一个) 

就绪:一个进程获得了除 CPU 外的一切所需资源,一旦得到处理机即可运行。

阻塞:阻塞也称等待或睡眠状态,一个进程正在等待某一事件发生(如请求 I/O、等待 I/O 完成)而暂时停止运行,此时即使把 CPU 分配给进程也无法运行,故称进程处于阻塞状态。

五态模型

相比于三态模型,五态模型多了对就绪和阻塞状态的静止状态,即静止就绪和静止阻塞。

导致挂起的原因:

  • 进程过多,主存资源不足,此时必须将某些进程挂起,放到磁盘,暂时不参与调度,以平衡系统负载。
  • 系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。

 例题:

在单处理机系统中,采用先来先服务调度算法。系统中有 4 个进程 P1、P2、P3、P4(假设按此顺序到达),其中 P1 为运行态,P2 为就绪态,P3、P4 为等待态,且 P3 等待打印机,P4 等待扫描仪。若 P1(),则 P1、P2、P3、P4 的状态分别是()。

A.时间片到  B.释放了扫描仪  C.释放了打印机  D.已完成

A.等待、就绪、等待和等待

B.运行、就绪、运行和等待

C.就绪、运行、等待和等待

D.就绪、就绪、等待和运行

解析:

第一个空不好直接得出,先看第二个空。由于是单处理机系统,所以系统中最多只能存在一个运行状态的进程,并且该题目中进程只有三种状态,即三态模型,三态模型中等待状态无法直接变成运行状态,所以排除 BD。选项 A 中没有运行态,当 P1 变成等待态后,CPU 空闲,此时 P2 应该进入运行态,所以 A 错误。选项 C 正确,P1 进入就绪态,空出了 CPU,P2 获得 CPU 进入运行态。由此可得,P1 进入就绪态只能是时间片用完,所以第一个空选 A。

3. 进程调度

(1)PV 操作的概念

同步与互斥:

同步存在直接制约关系,速度不一致,在一定情况停下等待。例如两人同时出发,一人步行一人开车,开车先到的人等待步行的人抵达,然后再进行后续操作。

互斥存在间接制约关系,如千军万马过独木桥。

而独木桥可以看作是各进程之间互斥访问的资源,称为临界资源。进程中访问临界资源的那段代码称为临界区

进程之间存在并发的特点,通过 PV 操作来实现资源的同步与互斥访问。

PV,即 P(S) 和 V(S)。P 也叫加锁,S 也叫解锁。

S 指信号量,是一种特殊的变量,是全局变量。

  • 信号量可以表示资源数量;
  • 信号量为负数时表示排队进程数(欠的资源数)。

S 代表资源数,有进程申请资源,那么 S 的数量会相应减少,然后判断资源是否足够,例如本来资源有 1 个,申请后还剩 0 个,资源是充足的,够进程用,所以执行后续操作,但如果此时又来了个进程申请资源,此时 S  = -1,资源不够了,进程就会进入阻塞队列等待,S = -1 也表示有一个进程在排队,或者说欠了一个资源。等上一个进程用完后,释放了资源,S 的数量会相应增加,然后检查是否有进程正在排队,注意,此时 S = 0,也代表有进程正在排队,然后通知排队的进程有资源可用了(此时排队的进程进入就绪态)。

例题1:

PV 操作是操作系统提供的具有特定功能的原语。利用 PV 操作可用()。

A.保证系统不发生死锁。

B.实现资源的互斥使用。

C.提供资源利用率。

D.推迟进程使用共享资源的时间。

解析1:

PV 操作就是加锁和解锁,所以可能会发生死锁,A 选项错误。PV 操作能够实现资源的互斥访问,所以 B 选择正确。加锁和解锁会降低资源的利用率,C 选项错误。PV 操作是对临界资源的访问进行控制访问,所以不会影响共享资源,D 选项错误。

例题2:

假设系统中有 n 个进程共享 3 台扫描仪,并采用 PV 操作实现进程同步与互斥。若系统信号量 S 的当前值为 -1,进程 P1、P2 又分别执行了一次 P(S) 操作,那么信号量 S 的值应为()。

A.3  B.-3  C.1  D.-1

解析2:

信号量 S 代表资源数,一开始应为 3,现在的值为 -1,说明有一个进程在排队,之后 P1、P2 又分别进行了一个 P(S),即申请资源,并且信号量为全局变量,所以 S = -1 - 1 -1 = -3,选 B。

(2)信号量与 PV 操作

PV 操作与互斥模型

如,多个进程共享一台打印机问题:

在使用打印机前先去申请资源,检查资源是否足够,加锁使用,使用后释放资源,并通知其它排队者。

在互斥模型中,PV 操作成对存在于一个进程中。互斥信号量 S 的初始值为 1,因为打印机资源一次只能一个进程使用。

PV 操作与同步模型

如,单缓冲区生产者、消费者问题:

在同步模型中,同一对 PV 操作不在一个进程中,而存在于两个进程中。

由分析可知,一个产品被放到缓冲区前,需要先检查缓冲区资源是否足够,即 P(S1),而释放缓冲区资源,是在消费者取出产品后才释放,即 V(S1),所以信号量 S1 代表缓冲区资源,初始值应该为 1。一个产品被放到缓冲区后,产品资源数量应该相应增加,即 V(S2),而产品资源被消耗,是在消费者取出前,去申请使用并检查是否有产品资源,所以信号量 S2 代表产品资源,初始值应该为 0

PV 操作与混合模型

如,在单缓冲区生产者、消费者问题的基础上,增加了互斥模型的概念:

在同步模型中已经提到,S1、S2 分别代表缓冲区资源和产品资源,在这个基础上再增加互斥模型的概念,即信号量 S 代表对缓冲区的访问权,初始值为 1。生产者将产品送到缓冲区前,需要先申请访问权并检查是否有资源,送完后,释放访问权,消费者同样如此,从缓冲区取产品时需要先申请访问权,取到后再释放。P(S) 和 V(S) 存在于同一个进程中,是互斥模型,这样就形成了一个同步模型与互斥模型同时存在的混合模型。

例题:

假设铁路自动售票系统有 n 个售票终端,该系统为每个售票终端创建一个进程 Pi(i = 1,2,…,n)管理车票销售过程。假设 Tj(i = 1,2,…,m)单元存放某日某趟车的车票剩余票数,Temp 为 Pi 进程的临时工作单元,x 为某用户的购票张数。Pi 进程的工作流程如下图所示,用 PV 操作实现进程间的同步与互斥。初始化时系统应将信号量 S 赋值为()。图中(a)、(b)、(c)处应分别填入()。

A.n-1  B.0  C.1  D.2

A.V(S)、P(S) 和 P(S) 

B.P(S)、P(S) 和 V(S)

C.V(S)、V(S) 和 P(S)

D.P(S)、V(S) 和 V(S)

解析:

由图可知,进程首先按用户需求找到单元 Tj,然后将 Tj 的值赋值给临时工作单元 Temp,即剩余车票数,接下来是对 Temp 的判断,看 Temp 的值(剩余车票数)是否大于用户购票数。如果大于,则购票并减少剩余车票数,输出 x 张票;如果小于,则提示无票。因此整个购票过程相当于是依靠 Temp 来进行暂存,因为不可能让多个用户同时去操作剩余票数,假设 Tj = 2,即还剩两张票,如果来了两个用户都去购买两张票,肯定只有一个用户能成功买上,另一个会提示无票。因此 Temp 就相当于缓冲区资源,每次仅允许一个进程使用,所以初始信号量 S 的值为 1,代表缓冲区资源,即 Temp 的数量。那么用户在购票前,就需要先加锁,即 P(S),Temp 的值要么大于等于 x,可以购票,要么小于 x,无法购票,两条路只能走一条,所以每条路都会进行解锁释放缓冲区资源,即 V(S)。典型的互斥模型,同一对 PV 操作同时存在于一个进程中。所以选择 CD。

(3)前趋图与 PV 操作

前趋图

图中每个节点代表一个进程;每个节点所指向的下一个节点,为它的后继,自己为下一个节点的前趋,如 D 是 A 的后继节点,A 是 D 的前趋节点;每个节点的间线流出代表 V,即释放资源,流入代表 P,申请资源。

举例:上述前趋图代表包饺子的过程,A 是绞肉,B 是切葱末,C 是切姜末,D 是搅拌,E 是包饺子。

整个流程有严格的先后顺序,肯定不能先搅拌再绞肉切葱姜末。信号量 Sa、Sb、Sc、Sd 的初始值都是 0。进程 A、B、C 完成后,都进行 V 操作,即先释放资源,资源数增加,然后进程 D 在搅拌前,需要先申请资源并判断是否充足,即进行 3 次 P 操作,然后搅拌,搅拌完成后,再 V(Sd),释放资源,最后进程 E 在进行包饺子前先申请资源并判断,然后包饺子。 

先根据前趋图标注每个节点的 PV,然后顺着做就可以了。记住,流出代表 V,流入代表 P

例题:

进程 P1、P2、P3、P4、P5 的前趋图如下所示:

若用 PV 操作控制进程 P1、P2、P3、P4、P5 并发执行的过程,则需要设置 5 个信号 S1、S2、S3、S4、S5,且信号量 S1 ~ S5 的初值都等于零。下图中 a 和 b 处应分别填();c 和 d 处应分别填();e 和 f 处应分别填()。

1.  A.V(S1) P(S2) V(S3)  B.P(S1) V(S2) V(S3)  C.V(S1) V(S2) V(S3)  D.P(S1) P(S2) V(S3)

2.  A.P(S2) P(S4)  B.P(S2) V(S4)  C.V(S2) P(S4)  D.V(S2) V(S4)

3.  A.P(S4) V(S4) V(S5)  B.V(S5) P(S4) P(S5)  C.V(S3) V(S4) V(S5)  D.P(S3) P(S4) V(S5)

解析:

先根据前趋图标出每个节点的 PV:

根据图示,首先看 a 和 b。P1 有两个流出,所以应该有两个 V 操作,分别流向 P2 和 P3,所以 a 应该填两个 V 操作,即 V(S1) 和 V(S2),P2 进程得到 S1 资源后先进行 P 操作,即 P(S1),已给出,然后进行 V 操作,即 V(S3)。所以第一个空选 C;然后看 c 和 d,P3 进程得到 S2 资源后应该先进行 P 操作,即 P(S2),然后进行 V 操作,即 V(S4),因此第二个空选 B;最后看 e 和 f,P4 进程得到 S3 资源后先进行 P 操作,即 P(S3),已给出,然后进行 V 操作,V(S5),然后 P5 进程有两个 P 操作,分别申请 S4、S5,所以有 P(S4) 和 P(S5),第三个空选 B。注意每个进程释放后的资源标识。

后续会不断更新整理。

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

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

相关文章

7.11 cf div3 C

Problem - C - Codeforces 操作 根据给定的索引数组ind和字符串c,按照一定的顺序修改字符串s中对应位置的字符。具体来说,第i次操作会修改s中索引为indi的位置的字符,将其设置为ci。 将c字符串按照从小到大排序,替换ind数组所表…

迅为RK3588S开发板广泛用于边缘技术,人工智能,智能家居,智慧零售,智能网关等

性能强 iTOP-3588S开发板采用瑞芯微RK3588S处理器,是全新一代AloT高端应用芯片,搭载八核64位CPU,四核Cortex-A76和四核Cortex-A55架构主频高达2.4GHZ,8GB内存,32GBEMMC。 四核心架构GPU内置GPU可以完全兼容0penGLES1.1…

vscode c++可以找到声明却无法自动补全

这个问题折磨了我将近一个月,今天终于被解决了,特此记录 情景再现 事情的起因是我在学习华为的Ascend C算子,需要编写C代码。关于怎么下载库文件怎么编译之类的不是本文的重点,重点是自动补全。 我已经拿到库文件了&#xff0c…

动漫3d模型设计需要注意什么?---模大狮模型网

设计动漫3D模型时,有几个方面需要注意: 保持角色风格一致性: 动漫通常有独特的风格和美学,设计时要确保模型与所代表的角色或作品的整体风格相符。注意保持线条和比例的一致性,使模型能够忠实地呈现原作的特点。 注重…

论文降痕降重全攻略:从技巧到工具,助你轻松应对学术挑战

AIGC降重工具:快速降低论文查重率 高查重率是许多毕业生的困扰。通常,高查重率源于过度引用未经修改的参考资料和格式错误。传统的降重方法,如修改文本和增添原创内容,虽必要但耗时且成效不一。 鉴于此,应用AI工具进…

VMWare桥接模式上网

1. 前提条件: 1) 宿主机 可以上网 2)虚拟机网卡配置桥接模式 3)虚拟机设置ip和宿主机在同一网段,配置网关和宿主机一致 4)虚拟机网卡配置DNS 具体如下: 5)虚拟机和宿主机可以相互ping 通2. 记录问题解决步骤

@RequiredArgsConstructor实现构造器注入

RequiredArgsConstructor实现构造器注入 1. Autowired 和 Resource 注解 Autowired Autowired 是 Spring 框架提供的注解,用于自动装配依赖。可以用于字段、构造函数和 setter 方法。 Autowired private ISysUserService userService;Resource Resource 是 Jav…

Python-PLAXIS自动化建模技术与典型岩土工程

原文链接:Python-PLAXIS自动化建模技术与典型岩土工程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608744&idx3&sn41d9fd9ab6e792850000c4990b3f8c65&chksmfa82684fcdf5e15990e4681f032ce9b295a9e2071051218f550a7e63e4ebedee29559d56…

Linux下vim工具应用

1.简介 Vim(Vi IMproved)是一种高度可配置的文本编辑器,用于有效地创建和更改任何类型的文本。它是从vi发展而来,vi是Unix和类Unix系统上最初的文本编辑器之一。Vim被设计为程序员和文本编辑的爱好者使用,它以其强大的…

广度优先(BFS)

先看一道简单的题&#xff0c;迷宫问题&#xff1a; 洛谷P1746 离开中山路&#xff1a;P1746 离开中山路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<iostream> #include<cstring> #include<queue> #include <utility> #define N 1002 …

Jenkins设置开机自启(以war包方式启动jenkins)

配置环境&#xff1a;Centos7.6/Jenkins 2.452.2/jdk-21.0.3 jenkins启动命令&#xff1a; nohup java -jar jenkins.war > /dev/null 2>&1 & 1、创建sh脚本文件 # jenkins.war包&#xff0c;放在了/root/software目录 cd /root/software vim jenkins-start.sh …

Matter Open Day:全球生态首秀,中国力量引领智能家居新纪元

▲ 会场全景 7月8日下午&#xff0c;广州南丰朗豪大酒店内人声鼎沸&#xff0c;由连接标准联盟和连接标准联盟‍中国成员组(CMGC)共同主办的首届 Matter Open Day 活动圆满落下帷幕。 此次盛会不仅标志着智能家居领域的一次重要聚首&#xff0c;更见证了连接标准联盟(原Zigbee…

用Python编写一个模拟usb摄像头的程序

昨天有个朋友找我要刷点政府的再就业的视频课&#xff0c;说是就是用浏览器打开固定的网站&#xff0c;然后用身份证号码登录&#xff0c;然后播放里面的视频&#xff0c;不定时的网页会通过usb摄像头拍照做人脸识别&#xff0c;就是这么一个简单的要求&#xff0c;叫我给想想办…

论文AI痕迹过重怎么办?AI降痕工具来帮忙

如何有效利用AI工具提高工作效率&#xff1f;探索这5款顶级AI写作工具 不知道大家有没有发现&#xff0c;随着人工智能技术的快速发展&#xff0c;AI工具正逐渐渗透到我们日常生活的各个方面&#xff0c;极大地提高了我们的工作和学习效率。无论是AI写作、AI绘画、AI思维导图&…

AI算力发展现状与趋势分析

综合算力发展现状与趋势分析 在数字经济的疾速推动下&#xff0c;综合算力作为驱动各类应用和服务的新型生产力&#xff0c;其价值日益凸显。我们深入探讨了综合算力的定义、重要性以及当前发展状况&#xff1b;并从算力形态、运力性能和存储技术等角度&#xff0c;预见了其发展…

C语言实战 | 弹跳的小球

C语言实战——实现弹跳的小球 01、综合案例 编写程序&#xff0c;实现小球(小方块)在屏幕内斜向运动&#xff0c;遇到边界发生反弹&#xff0c;如图2.6所示。 ■ 图2.6弹跳的小球 在例2.2中&#xff0c;通过变量drow、dcol控制方块的运动方向&#xff0c;例如斜向右下运动&am…

从实时监控到风险智能预警:EasyCVR视频AI智能监控技术在工业制造中的应用

随着科技的不断进步和工业制造领域的持续发展&#xff0c;传统的生产管理方式正逐渐转型&#xff0c;迈向更加智能、高效和安全的新阶段。在这个变革过程中&#xff0c;视频智能监控技术凭借其独特的优势&#xff0c;成为工业制造领域的管理新引擎&#xff0c;推动着从“制造”…

真实测评网上较火的两款智能生成PPT产品:秒出PPTAI PPT

测评两款AI生成PPT的工具&#xff1a;秒出PPT和AI PPT。这俩个款是目前竞争比较激烈的且使用起来比较好的产品。一下主要从PPT模板、一键生成及生成效果、Word转PPT来分析一下使用感受。 秒出PPT 秒出PPT是集模板站与编辑站一体的产品&#xff0c;支持微信扫码登录。主页可以直…

Leetcode—236. 二叉树的最近公共祖先【中等】

2024每日刷题&#xff08;142&#xff09; Leetcode—236. 二叉树的最近公共祖先 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL…

realsense D435l+mid360标定

目录 一、安装realsense环境 二、获取realsense D450L相机内参 三、标定雷达和相机 1.下载livox_camera_calib 2.修改配置参数 3.使用fastlio生成点云 4.标定 一、安装realsense环境 git clone https://github.com/IntelRealSense/librealsense.git cd librealsense //更…