并发进程

并发进程

1 程序执行的顺序性

1.1 程序执行顺序性

程序执行的顺序性包括两个定义:程序内部的顺序性和程序外部的顺序性

内部:程序内部的顺序性是指单线程进程执行时呈现程序内部的顺序性

外部:程序外部的顺序性是指多个进程之间的顺序执行关系,这人写进程在时间上按照次序严格有效的执行,完成一个作业级的任务。

2 程序执行的并发性

2.1 程序并发性的含义

进程的并发性是指一组进程在执行时间上是重叠的,即一个进程执行的第一条指令是在另一条指令结束前开始的。

并发的实质是一个处理器在几个进程之间的多路复用

2.2 并发程序设计

把一个程序编制成若干个可同时执行的程序模块的方法

如果这些模块属于同一个进程(说明这个程序是一个单线程,这个单线程通过多个线程分别实现这些模块),在进程内部执行,则称为并发多线程程序设计

如果模块属于不同的进程(说明这个程序是通过多个进程实现不同的功能模块),则称为并发多进程程序设计

2.3 并发进程分类

并发进程之间的关系分为两类:无关的和交互的

无关的并发进程:一组并发进程分别在不同的变量集合上操作

交互的并发进程:一组并发进程共享某些变量

并发进程的无关性是进程的执行与实践无关的一个充分条件,又称为Bernstein条件。相关定义可以参考下方链接。

https://baike.baidu.com/item/Bernstein%E6%9D%A1%E4%BB%B6/5452747?fr=aladdin

大概意思是用这个Bernstein条件用来确定那些进程是可以并发的。

3 与时间有关的错误

对于一组交互并发的进程,若执行的相对速度无法相互控制,则会出现与时间有关的错误,与时间有关的错误有两种表现形式:结果不唯一和永远等待

3.1 结果不唯一

购机票问题,可能会出现同一张票卖给两个乘客的情况,正确的做法是执行购买操作时只能一先一后不能同时执行。

3.2 永远等待

借书还书问题,合作进程之间等待、唤醒之类的同步信号发送次序颠倒时

4 进程的交互

4.1 进程之间的竞争关系

竞争关系时由于并发进程共用一套计算机系统资源引起的

死锁:一组已经获得部分资源的进程等待获得其他进程所占用的资源,最终该组进程陷入死锁僵局

解决方式:进程互斥–若干进程要使用同一共享资源时,最多只允许一个进程使用

饥饿:一个进程由于其他进程总是优于它而被无限期拖延

解决方式:FCFS(先来先服务)策略

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值