1156 字
3 分钟
考研专业课学习记录2026-05-05
2026-05-05

考研专业课学习记录 | 2026-05-05#

今日学习内容#

今天主要完成操作系统进程管理模块中同步和互斥的实现手段的学习,包括软件实现、硬件实现手段,同时梳理了三大经典同步问题:哲学家进餐、生产-消费者、读者写者问题的核心逻辑与解题要点。

AI知识点带复盘#

同步互斥核心概念铺垫#

同步与互斥是进程并发执行的核心保障,其中互斥指多个并发进程无法同时进入临界区(访问共享资源的代码段),同步指多个进程的执行顺序需要按照业务逻辑进行配合,避免出现竞争错误。

同步互斥实现手段复盘#

  1. 软件实现手段:以皮特森算法为经典代表,通过共享内存变量实现临界区互斥,核心变量包括flag[N](标记每个进程是否请求进入临界区)和turn(标记当前允许进入临界区的进程编号),严格满足临界区调度的三大准则:互斥访问、空闲让进、有限等待,是408简答题必考的算法默写题型。
  2. 硬件实现手段
    • 中断屏蔽:通过关闭CPU中断禁止进程切换,仅适用于单CPU内核级同步,缺点是会延长中断响应时间,仅适合短临界区场景
    • 原子硬件指令:包括Test-and-Set(TS指令)Swap(交换指令),通过硬件级的原子操作完成临界区的互斥访问,无需依赖软件共享变量,效率更高,是现代操作系统内核同步的主流实现方式

经典同步问题考点拆解#

  1. 生产者-消费者问题:核心场景是共享缓冲区的并发访问,需要同时解决互斥访问缓冲区与同步生产/消费的逻辑。考研考点重点包括信号量实现中同步信号量与互斥信号量的使用顺序(必须先申请同步信号量再申请互斥信号量,否则可能触发死锁)、多缓冲区场景下的缓冲区计数管理。
  2. 读者-写者问题:区分读者优先、写者优先、读写公平三种模型,核心逻辑为:读者之间无需互斥,读者与写者、写者之间需要互斥。考研常考通过信号量实现读者计数变量的保护,以及不同优先级模型的调度逻辑差异。
  3. 哲学家进餐问题:经典死锁场景,五个哲学家轮流思考与进餐,需拿起左右两支筷子才能完成进餐。核心死因是循环等待,考研常考的解决方法包括:限制最多4个哲学家同时进餐、规定哲学家按固定顺序拿取筷子、使用AND型信号量一次性申请两支所需资源。

问题与反思#

  1. 初期容易混淆同步信号量与互斥信号量的使用顺序,曾错误将P互斥信号量放在P同步信号量之前,导致可能出现进程死锁
  2. 对读者优先模型中读者计数变量的互斥保护逻辑理解不够透彻,容易遗漏对计数变量的临界区保护步骤
  3. 对哲学家进餐问题的多种解法的适用场景区分不够清晰,需要进一步梳理不同方案的优劣与适用环境

收获与总结#

  1. 完整梳理了同步互斥从软件、硬件到高级同步原语的实现层级,明确了不同实现手段的适用场景与优缺点
  2. 掌握了三大经典同步问题的核心逻辑与标准化解题步骤,能够独立默写相关信号量实现代码
  3. 明确了408操作系统模块中该章节的高频考点:临界区调度准则、算法默写、死锁分析、同步方案设计
  4. 理清了同步与互斥的本质区别,能够准确区分不同并发场景下的同步需求 💡 碎碎念:踏实吃透每一个知识点!

文档内容由 AI 辅助生成

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

考研专业课学习记录2026-05-05
https://elysiaweb.vercel.app/posts/408/5-5/
作者
程翊雪
发布于
2026-05-05
许可协议
Unlicensed

部分信息可能已经过时

目录