基本概念
为什么要引入进程同步?
在多道程序环境下,程序是并发执行的,不同进程之间存在着不同的相互制约关系,为了协调进程之间的相互制约关系,引入了进程同步的概念。在操作系统中,要对并发进程进行同步的原因是并发进程是异步的。
临界资源
一次仅允许一个进程使用的资源称为临界资源,如打印机、公用队列等。对临界资源的访问必须互斥地进行。在每个进程中,访问临界资源的那段代码称为临界区。
临界资源的访问分为4个部分:
①进入区:检查可否进入临界区,若可以进入,则设置标志。
②临界区:进程中访问临界资源的那段代码,又称临界段。
③退出区:清除标志。
④剩余区:代码中的其他部分。
同步
同步又称直接制约关系。是指为了完成某个任务而建立的两个或多个进程,这些进程需要协调工作次序,它们的制约关系源自它们之间的相互合作。
例:读进程和写进程对同一段缓冲区的读和写。
互斥
互斥又称间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待。
例:访问打印机。
同步机制应该遵循以下准则:
①空闲让进。临界区空闲可以允许进程进入。
②忙则等待。已有进程进入临界区则其他进程必须等待。
③有限等待。对请求访问的进程,保证在有限时间内进入临界区。
④让权等待。当进程不能进入临界区应立即释放处理器。