进程的异步与同步、IO的异步与同步

一、进程的同步异步

在多道程序环境下,当程序并发执行时,由于他们之间存在进程合作和资源共享,然后同处于一个系统中的各个进程之间可能存在直接制约关系和间接制约关系。我们把多道环境下的一组并发进程之间的相互制约关系称为进程间的同步。

同步是指两个进程的运行是相关的,其中一个进程要阻塞等待另外一个进程的运行。实现同步的方式:信号量机制、管程机制等。

异步的意思是两个进程的运行是毫不相关的,自己运行自己的。例如两个进程都要访问一个临界资源,如果进程A正在访问临界资源,这时B进程也要访问临界资源,进程B发现临界资源被占用后,进程B就会去干自己的事情,等到A进程释放临界资源后,就会通知进程B,这时进程B才会来访问临界资源。

直接制约关系:这种制约主要源于进程之间的合作。比如说,有一输入进程A通过单缓冲向进程B提供数据。当该缓冲为空时,计算进程因不能获得所需数据而阻塞,而当进程A把数据输入缓冲区后,便将进程B唤醒;反之,当缓冲区已满时,进程A因不能再向缓冲区投放数据而阻塞,当进程B将缓冲区数据取走后便可唤醒A。

间接制约关系:同处于一个系统中的进程,通常都共享着某种系统资源,如共享CPU、共享IO设备等。所谓间接相互制约即源于这种资源共享。例如,有两个进程A和B,如果在A进程提出打印请求时,系统已将唯一的一台打印机分配给了进程B,则此时进程A只能阻塞;一旦进程B将打印机释放,则A进程才能由阻塞改为就绪状态。


二、IO的同步异步

1.同步IO有阻塞IO、非阻塞IO,多路复用IO与信号驱动IO

所谓同步IO,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件的事情去做,等到前一件事情做完了才能做下一件事情。

例如普通B/S模式(浏览器/服务器模式)(同步):从浏览器提交请求,到服务器处理完毕返回,这个期间客户端浏览器不能干任何事

2.异步IO

异步IO的概念和同步IO相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。

例如 ajax请求(异步): 服务器处理请求期间浏览器仍然可以做其他事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值