完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
嵌入式系统设计师学习笔记十一:进程管理②
进程管理:进程的同步与互斥 区别: 互斥:是指散布在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。 同步:是指散布在不同进程之间的若干程序片断,它们的运行必须严格按照规定的 某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。 图解: 互斥:(过独木桥,同一时间仅允许一个单位过桥) 同步:(某个流程的进行依赖于另一个流程运行后的结果) 联系: 同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互斥是两个线程之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)。 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。 同步与互斥的经典问题:生产者与消费者 在上图中:假设搬运工甲每小时从A仓库运送6件货物至中转站,搬运工乙每小时从中转站搬运3件货物至B仓库,中转站最多只能存6个货物,第一个小时后:中转站中的货物=6(甲送来的)-3(乙运走的)=3,第二个小时后:中转站中的货物:6=3(第一个小时剩下的)+6(甲再次运来的)-3(乙运走的)=6;第三个小时后,中转站中的货物:3=6(第二个小时剩下的)-3(乙运走的),由于甲每次运来6个但是中转站中经过乙拿走3个以后还剩3个不能使得甲运来的6个货物全部装入,因此甲搬运工停止运送。 从第三个小时开始,便形成了生产者与消费者的问题,生产者生产的速度大于消费者消费的速度,由于中转站的容量有限,生产者不得不等待消费者,这便是同步,当中转站中的货物不允许生产者将一次生产的全部数据存入时,生产者便等待,这便是互斥。 为了提高效率,可将单中转站变为多中转站,在计算机中便是单缓冲区变为多缓冲区,这使得生产者和消费者的效率都得到了提升。进程管理:PV操作 临界资源:各个进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等 临界区:每个进程中访问临界资源的那段代码成为临界区 (临界区就是一段代码) 信号量:是一种特殊的变量(一般用S表示,若S>=0,则表示资源的个数,若S<0,则|S|表示被阻塞进程的个数(进程等待的数量)) PV操作是P原语(P操作)和V原语(V操作)。 在上图中,P操作是用于申请资源的,并且会被阻塞进程,每执行一次S=S-1,若信号量小于0(无资源可用)则将该进程放入等待队列中,若S>=0则,可以立即使用V操作执行当前进程。 对于V操作来说,V操作是用于释放资源的,每执行一次,S=S+1,若S<=0的话则从等待队列中唤醒一个等待中的进程,然后执行该进程。 原语:一旦开始执行,便不会被中断。单缓冲区生产者、消费者问题PV原语描述: 在上图中(单缓冲区生产者与消费者问题): 生产者生产一个产品, 第一轮: 执行P(s1),则s1=s1-1=0,s1不小于0则继续,将产品送入缓冲区,然后执行V(s2),s2=s2+1=1。 此时s1=0,s2=1。 第二轮: 执行P(s1),则s1=s1-1=-1,s1小于0,此时进程被阻塞,将s1送入等待队列。此时V(s2)不会被执行。 此时s1=-1,s2=1。 消费者消费产品: 第一轮: 执行P(s2),则s2=s2-1=0,s2不小于0,从缓冲区取产品,然后执行V(s1),s1=s1+1=0,s1<=0,则此时从s1等待队列中唤醒一个进程,即开始执行左边的V(s2),s2=s2+1=1。 此时s1=0,s2=1,再次回到了生产者第一轮结束后的状态,随后便成为一个循环过程。 |
|
|
|
只有小组成员才能发言,加入小组>>
888 浏览 0 评论
1200 浏览 1 评论
2577 浏览 5 评论
2913 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2775 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1247浏览 3评论
227浏览 2评论
501浏览 2评论
410浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
489浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-2 16:28 , Processed in 1.030710 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号