进程并发执行
并发是所有问题产生的基础,是操作系统设计的基础。
从进程特征出发:
- 并发:进程的执行是间断性的;进程的相对执行速度不可预测
- 共享:进程/线程之间的制约性
- 不确定性:进程执行的结果与其执行的相对速度有关,是不确定的
与时间有关的错误:某银行业务系统,某客户账户有5000元,有两个ATM机T1和T2
T1:
...
read(x);
if x>=1000 then
x:=x-1000;
write(x);
T2:
...
read(x);
if x>=2000 then
x:=x-2000;
write(x);
...
关键活动x:=x-1000; x:=x-2000有交叉
进程互斥(MUTUAL EXCLUSIVE)
- 由于各进程要求使用共享资源(变量、文件等),而这些资源需要排他性使用,各进程之间竞争使用这些资源——这一关系称为进程互斥
- 临界资源:critical resource 系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享资源
- 临界区(互斥区):critical section(region) 各个进程中对某个临界资源(共享变量)实施操作的程序片段
临界区(互斥区)的使用原则
- 没有进程在临界区时,想进入临界区的进程可进入
- 不允许两个进程同时处于其临界区中
- 临界区外运行的进程不得阻塞其他进程进入临界区
- 不得使进程无限期等待进入临界区