进程间存在两种关系:1、进程同步 2、进程互斥
两种关系可以同时存在与一种情况。
公交车关门起步问题:
//S1 代表车的状态 S2 代表门的状态
进程同步:
初始状态为:S1=0,S2=0,此为同步。
进程互斥:
对于司机来说:执行进度的顺序为:
P(S1)
起步
行驶
停车
V(S2)
{我的理解为:司机开车要对资源数进行P操作(减一操作),然后起步
行驶 停车 停车之后唤醒一个门资源(进行V操作(加一)),乘客才能下车。}
对于售票员来说:执行进度的顺序为:
关门
V(S1)
售票
P(S2)
开门
{而售票员要先关门车才能启动,所以先关门 后唤醒车启动(进行V操作),然后在途中售票 然后 对S2(门)资源数进行P操作(减一),门才会打开。}
纯属个人理解,欢迎评论区评论修改。