TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网产品结构信号量机制思维脑图思维导图

信号量机制思维脑图思维导图

  收藏
  分享
免费下载
免费使用文件
生杀予夺 浏览量:22024-03-12 10:16:55
已被使用0次
查看详情信号量机制思维导图

信号量,进程互斥,进程管理等内容讲解

树图思维导图提供 信号量机制思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 信号量机制思维脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:bd31f30b3581641cae981c62e4929d0d

思维导图大纲

信号量机制思维导图模板大纲

整型信号量

用一个整数型变量作为信号量,数值代表某种资源数

对信号量只能初始化、P、V操作

不满足让权等待

P、V操作是原语

记录型信号量※※※

重中之重,见笔记,不乱

wait操作先value--,再判断是否<0

signal操作先value++,再判断是否<=0

value含义

S.value > 0,表示此类可用资源数量

S.value <= 0,表示此类资源已无,或还有因请求该资源而阻塞的进程,绝对值为等待该资源的进程数目

特点

除了有表示剩余资源数的整型,还有一个队列指针

软件实现互斥关注的是谁要使用资源,而信号量机制关注的是剩多少资源可使用

利用队列指针把不能使用资源的进程阻塞唤醒,从而不会出现无限循环,导致忙等

实现进程互斥、同步

互斥

semaphore mutex = 1;

临界区前P(mutex)

临界区后V(mutex)

同步

判断事件的前后关系,然后判断引起事件的进程

该事件需要某信号量,前V后P

前者释放什么资源(后者申请什么资源),就V(S)(P(S))

大部分同步问题,某信号量的PV分别在不同的进程代码中

进程同步互斥问题※※※

见笔记

生产者消费者问题及其变形

最基础empty = n,full = 0

多产品不同数量问题

如产品1取1件,产品2取2件才能组装

这种问题同步信号量为empty=n,产品1 = 0,产品2 = 0,产品1最大值 = n-2,产品2最大值 = n - 1

生产者生产前要检查是否有空位 + 是否达到最大值,否则会死锁

消费者取走产品后要V最大值

吸烟者问题

见笔记,比较基础

读者-写者问题

读者-写者问题在遇到互斥-不互斥问题时是通解,凡是不要互斥的都参考读者,凡是要互斥的都用一个信号量卡住彼此即可

利用int count实现了读-读不互斥,也因为这个当源源不断的到来读进程时,会导致饥饿

读写公平:信号量w,思想见笔记

写优先:实际上就是两个读者进程,只不过写者这个“读者”进程比较特殊,他一进来要锁住读者(信号量read),而读者把读写公平的w改为read即可,具体见笔记

哲学家进餐问题

这个笔记非常详细见笔记

申请多个资源不死锁

见笔记,只需要一个大锁和int型各个资源数

利用无限循环不阻塞

营业员与顾客问题

笔记上也有,四种情况很详细

AB数量差问题

见笔记,还有解释

杂碎注意

需要多个资源时,尤其多个P连在一起,要判断是否死锁

第一个数据必须P1读,第二个数据必须P2读 ...

初始S1 = 1,S2 = 0,S3 = 0。。。

P1中P(S1),V(S2)

P2中P(S2),V(S3)。。。

某进程连续N次操作后其余进程才能操作

mutex1 = 1;表示限制N次操作内的访问

P(mutex1);for(n次){} V(mutex1);

基本思想参考哲学家进餐问题中限制只能有n个哲学家同时进餐

管程

解决信号量机制编程麻烦易出错的问题,封装思想

组成

共享数据结构

对数据结构的初始化

一组用来访问数据结构的过程(函数)

基本特征

各外部进程/线程只能通过管程提供的特定“入口”才能访问共享数据

每次仅允许一个进程在管程内执行其内部过程

管程中可以设置条件变量及等待/唤醒操作解决同步问题

管程可以实现互斥和同步

管程中条件变量x ≈ 信号量,但是wait、signal操作不判断x的值,只阻塞/唤醒

各进程必须互斥访问管程的特性由编译器实现

相关思维导图模板

未名湖案件思维导图思维导图

树图思维导图提供 未名湖案件思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 未名湖案件思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:474dd24f7a220bf223a707ffee46939e

解决手机瘾问题的脑图分析框架思维导图

树图思维导图提供 解决手机瘾问题的脑图分析框架 在线思维导图免费制作,点击“编辑”按钮,可对 解决手机瘾问题的脑图分析框架  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a8693e5d546b70eefd752a53b88a3782