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

二. 操作系统

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.mzph.cn/news/870345.shtml

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

相关文章

【Linux】内核文件系统系统调用流程摸索

内核层可以看到当前调用文件处理的进程ID 这个数据结构是非常大的: 我们打印的pid,tgid就是从这里来的,然后只需要找到pid_t的数据类型就好了。 下图这是运行的日志信息: 从上述日志,其实我也把write的系统调用加了入口的打印信…

CSS3实现彩色变形爱心动画【附源码】

随着前端技术的发展,CSS3 为我们提供了丰富的动画效果,使得网页设计更加生动和有趣。今天,我们将探讨如何使用 CSS3 实现一个彩色变形爱心加载动画特效。这种动画不仅美观,而且可以应用于各种网页元素,比如加载指示器或…

水库大坝安全监测险情主要内容

水库常见险情主要包括洪水漫顶、脱坡滑坡、坝体裂缝、 散浸、渗漏、漏洞、陷坑、管涌等,此外风浪冲击、水流冲刷等也会加剧险情的扩大。大坝险情万一抢护不及时,易导致发 生溃坝事故,造成极为严重的灾难性后果。要做到及时有效地 抢护大坝险情…

科技信息项目验收测试包括哪些内容?验收测试报告如何获取?

科技信息项目验收测试是指在科技信息项目完成后,组织专业测评团队对项目开发过程和成果进行全面、系统、客观的评测和鉴定的过程。通过验收测试,可以评估项目的质量、功能完整性以及满足业务需求的程度,并为项目的成功上线提供依据。 为了进…

uniapp实现table排序

根据后端接口传来的数字大小对列表进行升序/降序展示 效果图,价格由高到低降序 价格由低到高 升序 js 降序升序代码如下 export default {data() {return {MtList:[]}},onLoad() {this.MtypeName();//加载列表方法},methods: {MtypeName(){//列表方法this.$api.…

与沃尔玛进行EDI对接,需要了解什么?如何实现EDI对接呢?

与沃尔玛进行EDI对接前,需要了解什么呢? 首先,需要了解什么是EDI? EDI(Electronic Data Interchange)即电子数据交换,借助EDI使得企业(计算机/应用系统)与企业&#xff…

2024透明加密软件最新推荐丨11款好用的透明加密软件

在数字化时代,文件与数据安全愈发重要,保护信息安全刻不容缓。文件加密软件应运而生,成为了信息安全的重要帮手。透明加密技术凭借众多的优点备受青睐。那么,什么是透明加密技术呢? 透明加密技术是一种在不影响用户正…

STM32读取LX-224总线舵机信息

一、舵机指令包格式 帧头: 连续收到两个 0x55 ,表示有数据包到达。ID: 每个舵机都有一个 ID 号。ID 号范围 0~253,转换为十六进制 0x00~0xFD。广播 ID: ID 号 254(0xFE) 为广播 ID,若控制器发出的 ID 号为 254(0xFE),所有的舵机均…

『Django』自带的后台

theme: smartblue 本文简介 点赞 关注 收藏 学会了 上一篇讲了 Django 操作 MySQL 的方法,讲了如何创建模型,如何对数据库做增删改查的操作。但每次修改数据都要写代码,多少有点麻烦。 有没有简单一点的方法呢? 有的有的&#…

第十九章 Nest multer 文件上传

上章我们了解了Express multer 文件上传的相关操作 本章将了解Nest中的文件上传。用 multer 包处理 multipart/form-data 类型的请求中的 file 新建个 nest 项目: nest new nest-multer-upload 安装 multer 的 ts 类型的包: npm install -D types/multer1、单文件…

Linux C语言基础 day7

目录 思维导图: 学习目标: 学习内容: 1. 数组 1.1 对数组元素的常规操作 1.1.1 逆序 1.1.2 挑选数据 1.1.3 排序 1. 冒泡排序 2. 选择排序 2. 二维数组 2.1 二维数组的概念 2.1.1. 定义格式 2.2.2.初始化 2.2 二维数组的相关操…

2.4G芯片开发的遥控玩具方案介绍 东莞酷得

玩具从早期的简单功能,到现如今各种各样的智能操作,发展的速度也是飞速的。随着玩具市场的逐步完善与推进,中国的智能玩具市场也出现了很多远程遥控玩具。遥控玩具也是从最初的有线到现在的无线,从地上跑的到天上飞的,…

Wireshark 对 https 请求抓包并展示为明文

文章目录 1、目标2、环境准备3、Wireshark 基本使用4、操作步骤4.1、彻底关闭 Chrome 进程4.2、配置 SSLKEYLOGFILE [核心步骤]4.3、把文件路径配置到 Wireshark 指定位置4.4、在浏览器发起请求4.5、抓包配置4.6、过滤4.6.1、过滤域名 http.host contains "baidu.com4.6.2…

UNI_App平台调试指南 debug(十五)

App平台调试指南 debug 常规开发里,在 HBuilderX 的运行菜单里运行 App,手机端的错误或 console.log 日志信息会直接打印到控制台。 如果需要更多功能,比如审查元素、打断点 debug,则需要启动调试模式。自 HBuilderX 2.0.3+ 版本起开始支持 App 端的调试。 #打开调试窗口…

响应式建站公司企业官网源码系统 带源代码以及搭建部署教程

系统概述 响应式建站公司企业官网源码系统是一套集设计、开发、部署于一体的综合性解决方案。它旨在为企业提供一个易于定制、功能强大、适应各种设备屏幕的官方网站平台。 该系统采用先进的技术架构,确保网站的稳定性和性能。它能够与各种后端数据库和服务器环境…

TCP四次挥手:为什么四次?原理大揭密!

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! Hello, 大家好,我是你们的技术小伙伴小米!今天我们来聊一聊网络基础中的一个重要环节——TCP四次挥手过程。大家都知道,TCP连接的建立和断开是网络通…

2024年10款免费的项目管理软件推荐

本文向大家推荐10款2024年免费使用的项目管理软件,其中包括桌面应用和基于Web平台的多种产品,同时还涵盖了一些优秀的开源软件。 1.禅道开源项目管理软件 禅道是一款开源的、基于Web的项目管理软件,其功能丰富且操作简便,为团队提…

孟加拉最受欢迎的slot游戏推广okspin海外网盟广告优势

孟加拉最受欢迎的slot游戏推广okspin海外网盟广告优势 在当今全球化日益加剧的时代,游戏产业正迎来前所未有的发展机遇。孟加拉国,作为一个充满活力和潜力的新兴市场,其游戏出海之路也愈发受到业界的关注。在这一过程中,广告投放…

C++入门——命名空间与输入输出与缺省参数与重载函数与引用与内联

文章目录 命名空间——namespace命名空间的用处命名空间的定义命名空间的使用命名空间的嵌套命名空间的别名 输入与输出原理概述输入输出的使用 缺省参数定义缺省参数的方式使用缺省参数的价值和优势 函数重载定义与使用价值与优势 引用定义与使用价值与优势注意事项常量引用函…

【TOOLS】Chrome扩展开发

Chrome Extension Development 1. 入门教程 入门案例,可以访问【 谷歌插件官网官方文档 】查看官方入门教程,这里主要讲解大概步骤 Chrome Extenson 没有固定的脚手架,所以项目的搭建需要根据开发者自己根据需求搭建项目(例如通过…