同步也叫做直接制约关系,它是指为完成某一个任务而建立的两个或者多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系;
进程间的直接制约关系就是源于他们之间的相互合作;
两种资源共享方式:
互斥共享关系:
系统中的某些资源虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源;
同时共享方式:
系统中的某些资源,允许一个时间段内由多个进程 " 同时 " 对它们进行访问;
临界资源:
我们把一个时间段只允许一个进程使用的资源称为临界资源;
进程互斥的概念:
对临界资源的访问,必须互斥地进行;
互斥也叫做间接制约关系,进程互斥指当一个进程访问某临界资源时,另一个想要访问该临界资源的进程必须等待,当当前访问临界资源的进程访问结束并释放资源之后,另一个进程才能去访问临界资源;
互斥访问在逻辑上可分为:
- 进入区: 负责简称是否可以进入临界区,若可进入,则设置 " 正在访问临界资源的标志 " ( 上锁 ) 以阻止其他进程同时进入临界区;
- 临界区: 访问临界资源;
- 退出区: 负责解除 " 正在访问临界资源的标志 " ( 解锁 );
- 剩余区: 做其他处理;
为了实现对临界资源的互斥访问,同时保证系统的整体性能,需要遵守以下原则:
- 空闲让进:临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区;
- 忙则等待:当已有进程进入临界区时,其它试图进入临界区的进程必须等待;
- 有限等待:对请求访问的进程,应保证能在有限时间内进入临界区( 保证不会饥饿 );
- 让权等待:当进程不能进入临界区时,应立即释放处理机,防止进程忙等待;