进程同步与异步-软件实现(算法)

一,初步设想

  让两个进程实现同步与互斥访问临界资源。

  伪代码:

turn 。。0 1
P0

while turn=1 do{nothing}
<临界区>
turn := 1

P1

while turn=0 do{nothing}
<临界区>
turn := 1

 问题:

  turn 为0时,进程P0在进入临界区前(在临界区外),如果发生失败,则会影响其他进程的执行。同理,反过来,turn 为1时,进程P1也会影响进程P0的执行。

  此外,其中的另一个进程在临界区内失败,从而没能将turn的值改变,也会影响其他进程的执行。  

  总之,无论进程在临界区内还是临界区外,都会影响其他进程的执行。并且,他们必须交错执行。

第一次改进:

  “初步设想”,留下一个问题,就是上面说的。究其原因,就是其中一个进程的执行,要依托另外一个进程的执行。为了解决“初步设想”中遗留的问题,我们用一个标志flag,标志临界区是否处于被占用状态。

  flat[0],flat[1] 为ture时,分别表示P0,P1他们占用临界区;当他们为false时,分别表示P0,P1没有占用临界区。至于为什么要这样设置,我个人把这种思想,定义为"数组法","数组法",这个名称,当然是为了让我理解。(当然可能有别的更好的名称)。

  在这里我不得不先提到我在 学习Linux的时候,

转载于:https://www.cnblogs.com/listened/p/3919377.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 进程切换:进程切换是指在操作系统中,由于多个进程需要共享CPU资源,操作系统会根据调度算法将CPU的执行权从一个进程切换到另一个进程的过程。进程切换包括保存当前进程的状态、加载下一个进程的状态以及更新相关数据结构等操作。 2. 进程上下文:进程上下文是指操作系统在进行进程切换时需要保存和恢复的进程相关的信息。包括程序计数器、寄存器、内存管理信息、打开文件等。进程上下文的保存和恢复是保证进程切换后能够正确继续执行的关键。 3. CPU上下文:CPU上下文是指CPU寄存器中的内容,包括程序计数器、通用寄存器等。在进行进程切换时,需要保存当前进程的CPU上下文,并加载下一个进程的CPU上下文。 4. 同步/异步通信:同步通信是指发送方发送消息后,必须等待接收方处理完毕后才能继续执行。异步通信是指发送方发送消息后,不需要等待接收方处理完毕,可以继续执行其他操作。 5. 消息机制:消息机制是一种进程间通信的方式,通过发送和接收消息来实现进程之间的数据传递和同步。发送方将消息发送到接收方,接收方接收并处理消息。 6. 邮箱机制:邮箱机制是一种进程间通信的方式,类似于消息机制,但是可以存储多个消息。发送方将消息发送到邮箱,接收方从邮箱中获取消息进行处理。 7. 半双工/双工通信:半双工通信是指通信双方不能同时发送和接收数据,只能交替进行发送和接收。双工通信是指通信双方可以同时进行发送和接收数据。 8. 管道:管道是一种进程间通信的方式,可以在父进程和子进程之间传递数据。管道可以是匿名管道(只能在具有亲缘关系的进程之间使用)或命名管道(可以在不具有亲缘关系的进程之间使用)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值