计算机四级嵌入式之操作系统原理(四)并发与同步

📅 发布时间:2026/7/15 14:18:04 👁️ 浏览次数:
计算机四级嵌入式之操作系统原理(四)并发与同步
计算机四级嵌入式之操作系统原理四并发与同步全国计算机等级考试 四级嵌入式系统开发工程师 考点精讲2026最新视角NCRE 四级嵌入式系统开发工程师考试中操作系统原理部分占分较大通常 30-40 分左右而并发与同步是重中之重几乎每年必考大题选择 填空 简答 PV 操作分析。本节对应大纲进程同步机制、死锁概念及解决方案2025版大纲明确要求“深入理解”。1. 核心概念速记表先背这些概念定义 / 含义关键特性 / 目的典型考点 / 易错点并发宏观上多个程序“同时”运行交替执行提高资源利用率并发 ≠ 并行并发导致共享资源竞争互斥进程对临界资源一次只允许一个进程访问避免数据不一致临界区互斥原则空闲让进、有限等待等同步进程间有依赖关系必须按特定顺序执行协作完成任务生产者-消费者、读者-写者问题临界区进程中访问共享资源的代码段必须互斥进入临界区四原则互斥、进步、有限等待、让权临界资源一次只允许一个进程使用的共享资源打印机、共享变量、文件等—信号量整型变量 PV 原语原子操作实现互斥 同步互斥初值1同步初值0或资源数管程高级同步原语封装 条件变量比信号量更安全、更易用条件变量 wait/signal死锁一组进程互相等待对方释放资源形成循环等待四个必要条件同时满足鸵鸟、预防、避免、检测恢复2. 进程同步与互斥的实现方式对比选择题常考方式实现难度适用性优点缺点 / 问题考点示例软件方法高仅双进程无需硬件支持复杂、忙等待、可能死锁Dekker、Peterson 算法硬件方法中多进程简单、原子性忙等待自旋锁TSLTest and Set Lock、Swap信号量中多进程灵活互斥同步易出错顺序错、初值错 → 死锁PV 操作、经典问题分析管程低多进程自动互斥、条件变量更安全语言级支持Java synchronized条件变量、wait/signal四原则互斥进入临界区必须满足互斥同一时刻只有一个进程在临界区进步有进程想进且临界区空闲 → 一定能进有限等待等待时间有限防饥饿让权等待可选进程不能进入时应让出 CPU3. 信号量 PV 操作重磅大题必考信号量 S整数变量S ≥ 0表示可用资源数S 0|S| 表示等待该资源的进程数PV 原语原子操作不可中断P 操作wait / down申请资源S S - 1若 S ≥ 0继续执行若 S 0进程阻塞进入等待队列V 操作signal / up释放资源S S 1若 S ≤ 0唤醒等待队列中一个进程初值设置口诀面试/大题必背互斥信号量初值 1一把锁同步前驱后继后继进程等前驱完成初值 0V 在前驱P 在后继生产者-消费者缓冲区满信号量初值 0空信号量初值 缓冲大小经典问题 PV 操作模板默写这些生产者-消费者单缓冲 / 多缓冲mutex 1 // 互斥访问缓冲区 empty n // 空缓冲区数 full 0 // 满缓冲区数 生产者 P(empty) P(mutex) 生产... V(mutex) V(full) 消费者 P(full) P(mutex) 消费... V(mutex) V(empty)读者-写者读者优先 / 写者优先读者优先读读并发写写/读写互斥readcount 0rmutex 1保护 readcountwmutex 1写互斥读者P(rmutex) → readcount → if(readcount1) P(wmutex) → V(rmutex) … 读完 → P(rmutex) readcount-- → if(readcount0) V(wmutex) V(rmutex)哲学家就餐死锁典型案例4. 死锁必考死锁四个必要条件缺一不可互斥条件资源独占请求与保持Hold and Wait占有资源同时请求其他不可抢占资源只能自愿释放循环等待形成环路处理策略选择 简答常考鸵鸟策略忽略Windows 很多资源死锁就这样预防破坏四个条件之一最彻底但效率低资源静态分配破坏请求保持按序申请破坏循环等待避免银行家算法安全序列检测安全状态存在一个进程序列所有进程都能完成每次分配前模拟检查是否进入不安全状态检测 恢复资源分配图 死锁检测算法 → 剥夺资源 / 终止进程银行家算法考点最大需求矩阵 Max已分配 Allocation需求 Need Max - Allocation可用 Available找安全序列每次找一个 Need ≤ Available 的进程假装它完成释放资源继续找…5. 速成自测题模拟真题信号量初值为 1用于实现 A. 互斥 B. 同步 C. 两者都可 D. 两者都不可生产者-消费者问题中缓冲区大小为 10则 empty 初值应为 A. 0 B. 1 C. 10 D. 11死锁预防中破坏“请求与保持”条件的方法是 A. 资源静态分配 B. 按序申请资源 C. 允许抢占 D. 银行家算法下列哪个不是死锁必要条件 A. 互斥 B. 有限等待 C. 请求与保持 D. 循环等待答案1.A 2.C 3.A 4.B掌握这些并发与同步这章基本能拿 80% 分。下一节通常是内存管理分区、分页、段页、虚拟内存想继续要不要我直接出第五节笔记或者有具体 PV 操作题 / 银行家算法想手撕 / 模拟题想刷直接贴上来我帮你分析