操作系统同步和互斥
操作系统中的进程之间的关系只有两种:同步与互斥。下面由学习啦小编为大家整理了操作系统的同步和互斥的相关知识,希望对大家有帮助!
操作系统同步和互斥
1.进程同步
学习啦在线学习网 进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。
学习啦在线学习网 比如说进程A需要从缓冲区读取进程B产生的信息,当缓冲区为空时,进程B因为读取不到信息而被阻塞。而当进程A产生信息放入缓冲区时,进程B才会被唤醒。
2.进程互斥
学习啦在线学习网 进程互斥是进程之间的间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待。只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。
比如进程B需要访问打印机,但此时进程A占有了打印机,进程B会被阻塞,直到进程A释放了打印机资源,进程B才可以继续执行。
扩展:临界资源
在操作系统中,进程是占有资源的最小单位(线程可以访问其所在进程内的所有资源,但线程本身并不占有资源或仅仅占有一点必须资源)。但对于某些资源来说,其在同一时间只能被一个进程所占用。这些一次只能被一个进程所占用的资源就是所谓的临界资源。典型的临界资源比如物理上的打印机,或是存在硬盘或内存中被多个进程所共享的一些变量和数据等(如果这类资源不被看成临界资源加以保护,那么很有可能造成丢数据的问题)。
对于临界资源的访问,必须是互诉进行。也就是当临界资源被占用时,另一个申请临界资源的进程会被阻塞,直到其所申请的临界资源被释放。而进程内访问临界资源的代码被成为临界区。
学习啦在线学习网 对于临界区的访问过程分为四个部分:
学习啦在线学习网 1.进入区:查看临界区是否可访问,如果可以访问,则转到步骤二,否则进程会被阻塞
学习啦在线学习网 2.临界区:在临界区做操作
学习啦在线学习网 3.退出区:清除临界区被占用的标志
4.剩余区:进程与临界区不相关部分的代码
学习啦在线学习网 临界资源使用规则:忙则等待、优先等待、空闲让进、让权等待(在临界区的进程,不能在临界区内长时间处于事件等待,必须在一定时间退出临界区)。
多个进程常常需要共同修改某些共享变量、表格、文件数据库等,协作完成一些功能。共享协作带来了进程的同步和互斥、死锁、饥饿等问题。