先介绍几个概念 临界资源:各进程采取互斥的方式,实现共享的资源称作临界资源。 属于临界资源的硬件有打印机、磁带机等,软件有消息缓冲队列、变量、数组、缓冲区等。 诸进程间应采取互斥方式,实现对这种资源的共享。
临界区:不论是硬件临界资源还是软件临界资源,多个进程必须互斥的对他进行访问。人们把每个进程中访问临界资源的那段代码称为临界区。
进程的三种基本状态:就绪状态,执行状态,阻塞状态。 就绪状态:指进程已处于准备好运行的状态,即进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行。 执行状态:指进程已获得CPU,其程序正在执行的状态 阻塞状态:指正在运行的进程由于发生某事件(如I/O请求,申请缓冲区失败等)暂时无法继续执行时的状态,亦即进程的执行受到阻塞。
进程同步机制应遵循的规则: 空闲让进:无进程处于临界区,临界资源可被使用 忙则等待:临界资源正在使用,其他进程需等待,以保证对临界资源的互斥访问
有限等待 让权等待:这两种下面会细说。
死等状态:操作系统中的处理进程同步时遇到的一种问题。 进程在有限时间内根本不能进入临界区,而一直在尝试进入,陷入一种无结果的等待状态。 (没有进入临界区的正在等待的某进程根本无法获得临界资源而进入进程,这种等待是无结果的,是死等状态。)-》这个时候应该放弃这个无结果的事情,保证自己等待的时间是有限的
忙等状态:操作系统中的处理进程同步时遇到的一种问题。 当一个进程正处在某临界区内,任何试图进入其临界区的进程都必须进入代码连续循环,陷入忙等状态。连续测试一个变量直到某个值出现为止,称为忙等。 (没有进入临界区的正在等待的某进程不断的在测试循环代码段中的变量的值,占着处理机而不释放,这是一种忙等状态。)-》这个时候应该释放处理机让给其他进程
有限等待:对要求访问临界资源的进程,应保证有限时间内能进入自己的临界区。以免陷入“死等”状态。(受惠的是进程自己)。
让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。(受惠的是其他进程)。
部分博客转自此网址