文档介绍:第5章并行性:互斥和同步
引论
临界段
互斥
信号量
管程
进程间的通信
引论
多道程序设计的出现对计算机系统产生了极大的影响,推动了操作系统技术的发展
并行的进程之间由于争用资源、互相通信、互相制约而产生了互斥、同步和通信问题是本章解决的重点内容,也是本课程的重点内容。
引论
多道程序系统中存在的进程之间有三种典型的关系:
进程之间相互协作,直接知道对方的存在,直到对方的名字(如进程之间的调用)
进程之间通过共享间接知道对方的存在,但并不知道对方的名字(如共享同一变量或文件)
进程之间晚全部知道对方的存在,但因为竞争资源而形成制约关系(如争用CPU、内存或硬盘等)
进程的交互关系:可以按照相互感知的程度来分类
互斥,指多个进程不能同时使用同一个资源;
死锁,指多个进程互不相让,都得不到足够的资源;
饥饿,指一个进程一直得不到资源(其他进程可能轮流占用资源)
共享变量的修改冲突
临界段
设X初始值为10
(X)
x>=1 then //x=10
=x-1
(X) // X=9
(X)
x>=1 then
=x-1
(X) // X=8
设X初始值为10
(X)
(X)
x>=1 then //x=10
=x-1
(X) // X=9
x>=1 then //x=10
=x-1
(X) // X=9
有3个进程:get, copy和put,它们对4个存储区域f、s、t和g进行操作。
操作顺序冲突
临界段
临界资源(Critical Resource) :在系统中每次只能一个(有限个)进程访问的资源,如打印机、磁带机等。临界资源访问控制是进程同步的基本问题。
临界段(Critical section):每个进程中访问临界资源的那段代码叫临界段。
临界段
进程使用临界段的原则
如果临界资源空闲,在共享同一个临界资源的进程中,每次只允许一个进程进入自己的临界段;
如有多个进程同时要求进入临界段,应在有限时间内允许其中一个进程进入临界段,不能互相阻塞;
进程在临界段内只能停留有限的时间;
应保证进程能够在有限时间内进入临界段;
处于临界段之外的进程不能阻止其它进程进入临界段;
如果进程不能进入临界段,应立即释放CPU,进入阻塞状态。