VxWorks中的任务状态 “pend”和“suspend”有什么区别

VxWorks中的任务状态 “pend”和“suspend”有什么区别,第1张

1、意思不一

pend:pend(阻塞),指任务释放。

suspend:suspend(挂起),指任务不释放。

2、用途不一

pend:一般在等待某种资源或信号量的时候出现。

suspend:一般挂起用于程序调试中的条件中断。

3、运行不一

pend:其他任务可以运行。

suspend:任务优先级高就轮不到其他任务运行。

4、表现方式不一

pend:资源被其他任务抢占而处于休眠态。

suspend:需要用挂起函数进行操作。

5、类别不一

pend:pend是一种被动行为。

suspend:suspend是一种主动行为。

我拷贝了之前回答的答案:OSSemPost和OSSemPend是成对出现的,在程序OSSemPost尚未运行到的时候,在等待Sem的OSSemPend是会把当前的任务挂起,直到另外一个任务的OSSemPost运行完毕都得到Sem。但是可以通过改变OSSemCreate(x)里面的值x改变这种局面,当x不为0时,OSSemPend会马上得到Sem继续运行当前任务至结束,并将x的数值减一,直到为0。为0后,只有等其他任务的OSSemPost了。

互斥:是指散步在不同任务之间的若干程序片断,当某个任务运行其中一个程序片段时,其它任务就不能运行它们之中的任一程序片段,只能等到该任务运行完这个程序片段后才可以运行。最基本的场景就是:一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/213998.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存