进程的并发执行
进程制约
进程互斥:各进程之间竞争使用共享资源 排他性使用,进程之间的竞争关系;
进程之间存在着直接制约和间接制约两种制约关系,其中直接制约(同步)是由于进程间的相互合作而引起的,而间接制约(互斥)则是由于进程间共享临界资源而引起的。(1) 若干同学去图书馆借书是间接制约,其中书是临界资源。(2) 两队举行篮球比赛是间接制约,其中篮球是临界资源。(3) 流水线生产的各道工序是直接制约,各道工序间需要相互合作,每道工序的开始都依赖于前一道工序的完成。(4) 商品生产和社会消费是直接制约,两者也需要相互合作:商品生产出来后才可以被消费;商品被消费后才需要再生产。
临界资源:一次只允许一个进程使用,也称为互斥资源或共享变量。
临界区(互斥区):各个进程中对某个临界资源实施操作的程序片段。
进程同步:多个进程之间的协作关系;
信号量及P、V操作
完成加一,就可以进行下一个了,未完成mutex为0,若下一个想进入,先完成p操作,mutex变成-1,阻塞。而若是占用CPU的完成了,mutex执行v操作,mutex变成1,可以进行下一个。
两个P操作的顺序不可以颠倒,而两个V操作可以。
管程的基本概念
管程:在程序设计语言中引入的成分,是一种高级同步机制,
管程作为一种同步机制,需要:
进程间通信IPC
典型的机制就是消息传递:send & receive原语
典型操作系统中的IPC机制