news 2026/6/23 19:02:57

操作系统--进程同步问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
操作系统--进程同步问题

目录

1.生产者消费者问题

​2.读者写者问题

3.哲学家进餐问题

1.生产者消费者问题

一组生产者进程和一组消费者进程共享一个初始为空,大小为n的缓冲区

只有缓冲区没满时,生产者才能把消息放入缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。(两对同步关系)

缓冲区是一个临界资源,它只允许一个生产者放入消息,或者一个消费者从中取出消息。(互斥关系)

2.读者写者问题

有读者和写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。

因此,需要满足:

1.允许多个读者可以同时对文件进行读操作

2.只允许一个写者往文件中写信息

3.任一写者在完成写操作之前不允许其他读者或写者工作

4.写者执行写操作前,应让已有的读者和写者全部退出

(1)关系分析:写者和读者互斥,写者和写者互斥,读者和读者不存在互斥关系。

(2)整理思路:写者和任一进程都是互斥的,读者和读者同步,和写者互斥,因此需要设置计数器,用它来判断当前是否有读者读文件,当有读者读文件时,写者无法写文件,读者一直占用文件,当没有读者时,写者才可以写文件。同时,读者对计数器的访问也应该是互斥的。
(3)信号量的设置:首先设置信号量count为计数器,用来记录当前读者的数量,初值为0,设置mutex 为互斥信号量,用来保护更新count变量的互斥,设置互斥信号量rw,用来保证读者和写者的互斥访问

上述算法,读进程是优先的,即当存在读进程时,写操作将被延迟,且只要有一个读进程活跃,随后而来的读进程都将被允许访问,这样可能会导致写进程长时间等待,且存在写进程“饿死”的情况。

3.哲学家进餐问题

一张圆桌边上坐着5名哲学家,每两名哲学家之间的桌子上摆一根筷子,两根筷子中间是一碗米饭,哲学家进行思考和进餐,在思考时,并不影响他人,只有当饥饿时,才会试图拿起左右两根筷子,若筷子已在他人手上,则需要等待,饥饿的哲学家只能同时拿到两根筷子才能进餐,进餐完毕,放下筷子继续思考。

(1)关系分析:5名哲学家与左右邻居对其中间筷子的访问是互斥关系。
(2)整理思路:本题有5个进程,如何让一名哲学家拿到左右两根筷子而不造成死锁或饥饿现象。即同时拿起两根筷子,或对每名哲学家制定拿筷子的规则。
(3)信号量的设置:定义互斥信号量数组:chopstick[5]={1,1,1,1,1},用于对5个筷子的互斥访问,哲学家按序号0~4,哲学家i左边筷子的编号为i,哲学家右边筷子的编号为(i+1)%5。

该算法存在以下问题,当5名哲学家都想要进餐并且分别拿起左边筷子时,筷子都被拿光,等到他们再想去拿右边筷子时,就全被阻塞,因此出现了死锁。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 9:16:18

操作系统--死锁

目录 1.死锁的定义 2.死锁产生的时间 2.1系统资源的竞争 2.2进程推进顺序非法 2.3信号量使用不当也会造成死锁。 3.死锁产生的必要条件 4死锁预防 5.安全状态与不安全状态 1.死锁的定义 所谓死锁,是指多个进程因竞争资源而造成的一种僵局(互相等…

作者头像 李华
网站建设 2026/6/23 9:05:35

操作系统--内存管理

目录 1.内存管理的目的和功能 2.程序的装入 2.1绝对装入 2.2静态重定位 2.3动态重定位 3.程序的链接 4.内存空间的分配与回收 4.1连续分配管理方式 4.2非连续分配管理方式: 1.内存管理的目的和功能 引入目的: 更好的支持多道程序的并发执行,提高系统性能 主要功能:…

作者头像 李华
网站建设 2026/6/22 18:45:32

CppCon 2024 学习: Dependency Injection in C++ A Practical Guide

1⃣ 减少功能模块之间的耦合度(Decreases coupling between functionality blocks) 理解: 在传统设计中,一个类或函数通常会直接创建或依赖另一个类,这会造成强耦合(tight coupling)。例如&…

作者头像 李华
网站建设 2026/6/22 23:54:27

SAP 权限创建操作简介与实例

首先介绍一下SAP权限的几个基本概念:(仅供大家参考学习) * SAP系统权限:某SAP操作用户能在SAP系统中做哪些操作。比如(大致概念)用户XX-A只能查看物料信息,在SAP系统中就分配事物码MM03给XX-A。SAP的权限控制是控制到字段级的,换句话说,其权限控制机制可以检查你是否有…

作者头像 李华
网站建设 2026/6/23 13:38:11

YOLO13-C3k2-MBRConv3:窗户检测与识别模型详解

1. YOLO13-C3k2-MBRConv3:窗户检测与识别模型详解 1.1. 引言 在智能建筑、自动驾驶和智能家居等领域,窗户的检测与识别是一项基础且重要的任务。传统的窗户检测算法往往在复杂场景下表现不佳,检测精度不高且实时性不足。针对这些问题&#…

作者头像 李华