【软考-架构】2.1、操作系统概述-进程管理-同步互斥

✨资料&文章更新✨
GitHub地址:https://github.com/tyronczt/system_architect

操作系统知识

重点:

  • 分页存储管理
  • I/O 软件

操作系统概述

操作系统的4个特征是并发性、共享性、虚拟性和不确定性(异步性)。

嵌入式系统初始化过程按照自底向上、从硬件到软件的次序依次为:片级初始化→板级初始化→系统初始化。

进程组成和状态

运行、阻塞、就绪三态图会考,五态图不考,了解

💯考试真题

选项分析

  • 选项 A(时间片到) 是唯一与状态选项 C(就绪、运行、等待和等待)匹配的组合。虽然 FCFS 传统上无时间片,但题目提供此选项,可能是假设某种抢占式变体。
  • 选项 B 和 C 需要假设 P1 持有特定资源,但题目未说明,且结果状态无匹配。
  • 选项 D 因 P1 终止后状态定义问题,无法直接匹配。

因此,最合理的解释是:P1 的时间片到期,被抢占,进入就绪队列;P2 开始运行;P3 和 P4 状态不变。

若 P1 时间片到,则 P1、P2、P3 和 P4 的状态应分别为 就绪、运行、等待和等待。即选择 A 和 C

前趋图

进程资源图

阻塞节点:某进程所请求的资源已经全部分配完毕。无法获取所需资源,该进程被阻塞了无法继续。

非阻塞节点:某进程所请求的资源还有剩余可以分配给该进程继续运行。

当一个进程资源图中所有进程都是阻塞节点时,即陷入死锁状态。

💯考试真题

问题1

判断进程的阻塞状态

P1 申请了R1和R2资源。若R1或R2已被其他进程占用(例如P3可能持有R1,或R2被其他未提及的进程占用),则P1会被阻塞。

P2 申请了R3资源。若R3不可用,则P2会被阻塞。

P3 申请了R1资源。若R1未被占用(假设当前R1空闲),则P3可以立即运行,是非阻塞节点。

结论:

C. P1、P2是阻塞节点,P3是非阻塞节点

问题2

判断进程资源图是否可以化简及化简顺序

化简可行性分析

P3是非阻塞节点,可以立即执行,执行后会释放R1资源。

P1因等待R1和R2被阻塞,但P3释放R1后,若R2可用(假设初始状态R2空闲),则P1可以运行。

P1运行后释放R2,使P2可以申请R3并执行。

因此,系统可以通过逐步释放资源完成所有进程,不存在死锁,可以化简。

化简顺序

根据资源释放的依赖关系:

P3(释放R1)→ P1(释放R2)→ P2(释放R3)

结论

B. 可以化简的,其化简顺序为P3→P1→P2

最终答案

阻塞状态判断:C

化简顺序判断:B

注: 假设初始资源分配中R1未被占用(允许P3直接运行),且R2/R3初始可用。若资源初始状态不同,结论可能变化,需结合图中具体资源持有关系确认。

✨【重点】进程同步与互斥✨

临界资源:各进程间需要以互斥方式对其进行访问的资源。

临界区:指进程中对临界资源实施操作的那段程序。本质是一段程序代码。

互斥:某资源(即临界资源)在同一时间内只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用:如打印机。

同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题;如自行车和汽车。

互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1

同步信号量:对共享资源的访问控制,初值一般是共享资源的数量。

P操作申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态因为无可用资源),并将其插入阻塞队列。

V操作释放资源,S=S+1,若S>0,则执行V操作的进程继续执行;若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。

💯考试真题

问题1

a和b处的操作(P1和P2)

P1 是起始进程,执行后需触发 P2 和 P3,因此需要释放两个信号量:

  • V(S1):通知P2可以运行。
  • V(S2):通知P3可以运行。

a处应填写 V(S1)V(S2)。

P2 结束后需触发 P4,因此释放信号量:V(S3):通知P4可以运行。

b处应填写 V(S3)。

答案:C. V(S1)V(S2) 和 V(S3)

问题2

c和d处的操作(P3)

P3 需要等待 P1 的信号量 S2(通过 P(S2)),执行后释放 S4 以触发 P5:

c处应填写 P(S2)。

P3 结束后需触发 P4,因此释放信号量:V(S4):通知P5可以运行。

根据选项设计,P3的操作对应 P(S2) 和 V(S4)。

答案:B. P(S2) 和 V(S4)

问题3

e和f处的操作(P4和P5)

P4 执行后需触发 P5,因此需要释放信号量:V(S5)

e处应填写 V(S5);

P5 需要等待 P3和P4都完成,即需两个信号量操作:

P(S4):等待P3完成。

P(S5):等待P4完成。

f处应填写 P(S4)P(S5)。

答案:B. V(S5) 和 P(S4)P(S5)

答案:C B D,如下图

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

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

相关文章

基于开源库编写MQTT通讯

目录 1. MQTT是什么&#xff1f;2. 开发交互UI3. 服务器核心代码4. 客户端核心代码5. 消息订阅与发布6. 通讯测试7. MQTT与PLC通讯最后. 核心总结 1. MQTT是什么&#xff1f; MQTT&#xff08;Message Queuing Terlemetry Transport&#xff09;消息队列遥测协议&#xff1b;是…

在VScode下配置C/C++环境(tasks.json、launch.json、c_cpp_properties.json)

文章目录 1. tasks.json、launch.json配置文件中参数(属性)的说明2. tasks.json介绍3. launch.json介绍4. 直接生成tasks.json、launch.json配置文件的另外一种方式5. c_cpp_properties.json介绍6. 运行多个C/C文件7. 命令行方式编译C 1. tasks.json、launch.json配置文件中参数…

ORB-SLAM2源码学习(六):相机跟踪(局部地图跟踪和关键帧创建)

目录 1.局部地图跟踪 1.1 更新局部关键帧UpdateLocalKeyFrames 1.2 更新局部地图点&#xff08;来自局部关键帧&#xff09;UpdateLocalPoints() 1.3 投影匹配 2. 对比四种跟踪方式以及使用的投影匹配 3.关键帧创建 3.1 判断是否需要创建新关键帧: NeedNewKeyFrame() 3…

PostgreSQL时间计算大全:从时间差到时区转换(保姆级教程)

一、时间计算的三大核心场景 当你遇到这些需求时&#xff0c;本文就是你的救星&#x1f31f;&#xff1a; 倒计时功能&#xff1a;计算活动剩余天数 用户行为分析&#xff1a;统计操作间隔时间 跨国系统&#xff1a;多时区时间统一管理 报表生成&#xff1a;自动计算同比/环…

Qt6.8.2创建WebAssmebly项目使用FFmpeg资源

Qt6新出了WebAssmebly功能&#xff0c;可以将C写的软件到浏览器中运行&#xff0c;最近一段时间正在研究这方便内容&#xff0c;普通的控件响应都能实现&#xff0c;今天主要为大家分享如何将FFmpeg中的功能应用到浏览器中。 开发环境&#xff1a;window11&#xff0c;Qt6.8.2…

DeepSeek V3 源码:从入门到放弃!

从入门到放弃 花了几天时间&#xff0c;看懂了DeepSeek V3 源码的逻辑。源码的逻辑是不难的&#xff0c;但为什么模型结构需要这样设计&#xff0c;为什么参数需要这样设置呢&#xff1f;知其然&#xff0c;但不知其所以然。除了模型结构以外&#xff0c;模型的训练数据、训练…

【leetcode hot 100 240】搜索二维矩阵Ⅱ

解法一&#xff1a;直接查找 class Solution {public boolean searchMatrix(int[][] matrix, int target) {for(int i0; i<matrix.length; i){for(int j0; j<matrix[0].length; j){if(matrix[i][j]>target){break;}if(matrix[i][j]target){return true;}}}return fal…

UE4 组件 (对话组件)

制作一个可以生成对话气泡&#xff0c;显示对话台词的简单组件。这个组件要的变量&#xff1a;台词&#xff08;外部传入&#xff09;。功能&#xff1a;开始对话&#xff08;生成气泡UI&#xff09; &#xff0c;结束对话。 一、对话组件创建 二、开始对话事件 1、注意这里获…

自动化同步多服务器数据库表结构

当项目每次进行版本升级的时候&#xff0c;如果在这次迭代中涉及表结构变更&#xff0c;需要将不同的生产环境下&#xff0c;都需要同步表结构的DDL语句&#xff0c;比较麻烦&#xff0c;而且还有可能忘记同步脚本&#xff0c;导致生产环境报错.... 该方案采用SpringBootMybat…

DeepSeek安全:AI网络安全评估与防护策略

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 本文基于现有的公开资料&#xff0c;从企业资深网络安全专家的视角&#xff0c;系统梳理DeepSeek技术在网络安全领域的潜在贡献与核心风险&#xff0c;并结合中国…

【论文笔记】Attentive Eraser

标题&#xff1a;Attentive Eraser: Unleashing Diffusion Model’s Object Removal Potential via Self-Attention Redirection Guidance Source&#xff1a;https://arxiv.org/pdf/2412.12974 收录&#xff1a;AAAI 25 作者单位&#xff1a;浙工商&#xff0c;字节&#…

【powerjob】 powerjobserver注册服务IP错误

1、问题&#xff1a;powerjobserver 4.3.6 的服务器上有多个网卡对应多个ip,示例 eth0 :IP1 &#xff0c;docker0:IP2 和worker 进行通信时 正确的应该时IP1 但是注册显示获取的确实IP2,导致 worker 通过ip2和server通信&#xff0c;网络不通&#xff0c;注册不上 2、解决方案 …

视频录像机视频通道是指什么

视频录像机的视频通道是指摄像机在监控矩阵或硬盘录像机设备上的视频输入的物理位置。 与摄像头数量关系&#xff1a;在视频监控系统中&#xff0c;有多少个摄像头就需要多少路视频通道&#xff0c;通道数量决定了视频录像机可接入摄像头的数量&#xff0c;一般硬盘录像机有4路…

面试150,数组 / 字符串

27. 移除元素 class Solution:def removeElement(self, nums: List[int], val: int) -> int:# 把不等于 val 的值移动到前面n len(nums)left 0for right in range(n):if nums[right] ! val:nums[left] nums[right]left 1return left26. 删除有序数组中的重复项 只保留 1…

【江科大STM32】TIM输入捕获模式PWMI模式测频率

一、输入捕获测频率 接线图&#xff1a; 测信号的输入引脚为PA6&#xff0c;信号从PA6进来&#xff0c;待测的PWM信号也是STM32自己生成的&#xff0c;输出引脚是PA0&#xff0c;所以接线这里直接用一根线将PA0引到PA6就可以了。 如果有信号发生器的话&#xff0c;也可以设置成…

湖仓一体化及冷、热、实时三级存储

一、湖仓一体化&#xff08;Lakehouse&#xff09; 湖仓一体化&#xff08;Lakehouse&#xff09;是数据湖&#xff08;Data Lake&#xff09;与数据仓库&#xff08;Data Warehouse&#xff09;的结合&#xff0c;旨在解决传统数据架构中数据孤岛、存储冗余、计算性能不足等问…

go切片定义和初始化

1.简介 切片是数组的一个引用&#xff0c;因此切片是引用类型&#xff0c;在进行传递时&#xff0c;遵守引用传递的机制。切片的使用和数组类似&#xff0c;遍历切片、访问切片的元素和切片的长度都一样。。切片的长度是可以变化的&#xff0c;因此切片是一个可以动态变化的数…

游戏引擎学习第138天

仓库:https://gitee.com/mrxiao_com/2d_game_3 资产&#xff1a;game_hero_test_assets_003.zip 发布 我们的目标是展示游戏运行时的完整过程&#xff0c;从像素渲染到不使用GPU的方式&#xff0c;我们自己编写了渲染器并完成了所有的工作。今天我们开始了一些新的内容&#…

毕业项目推荐:基于yolov8/yolov5/yolo11的暴力行为检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示&#xff1a;功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出&#xff08;xls格式&#xff09;功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

docker中kibana启动后,通过浏览器访问,出现server is not ready yet

问题&#xff1a;当我在浏览器访问kibana时&#xff0c;浏览器给我报了server is not ready yet. 在网上试了很多方法&#xff0c;都未能解决&#xff0c;下面是我的方法&#xff1a; 查看kibana日志&#xff1a; docker logs -f kibana从控制台打印的日志可以发现&#xff…