进程同步的概念 同步机制应遵循哪些基本准则?为什么?
同步机制应遵循哪些基本准则?为什么?
在多道程序设计环境中,当程序同时执行时,由于资源共享和进程协作,同一系统中进程之间可能存在以下两种形式的约束:(1)间接相互约束。同一系统中的进程通常共享某些资源。(2) 两者之间存在着直接的相互制约关系,这种制约关系主要来源于过程之间的合作。因此,在使用系统中的关键资源时,各进程应该相互排斥,以共享资源。为了实现进程互斥进入自己的关键区域,我们可以采用软件的方法,但更多的时候是在系统中设置一种特殊的同步机制来协调每个进程的运行。所有的同步机制都应该遵循以下四个原则:(1)空闲接纳:因为当没有进程在关键区域时,表示关键资源处于空闲状态。一个请求进入关键区域的进程应该被允许立即进入它自己的关键区域,以便有效地利用关键资源。(2) 因此,当试图访问关键资源时,必须保证已经在等待访问关键资源的进程。(3) 有限等待:因为请求访问关键资源的进程应该能够在有限的时间内进入自己的关键区域,以免陷入“死等待”状态。(4) 给予等待的权利:因为当进程不能进入自己的关键区域时,它应该立即释放处理器,以避免进程进入“忙”状态
一个信号量只能被设置为初始值一次,然后只能由P或v操作,可以看出,信号量机制必须有公共内存,不能在分布式操作系统中使用,这是其最大的弱点。信号量机制功能强大,但信号量的操作比较分散,控制、读、写和维护都比较困难。增加了程序员的编码负担;核心操作P-V分散在每个用户程序的代码中,不易控制和管理;一旦出错,后果严重,不易发现和纠正。(b) 自旋锁:自旋锁是一种保护共享资源的锁机制。如果调用者请求的资源被占用,也就是说,自旋锁已经被另一个执行单元持有,调用者将在那里循环以查看自旋锁是否已经被持有和释放。自旋锁(Spin lock)是一种相对低级的保护数据结构和代码片段的原始方法,它可能会导致以下两个问题:1。僵局;2。CPU资源占用过多。传统的自旋锁会因无序竞争(c)管理而导致“公平”问题:信号量机制强大,但信号量操作分散,难以控制、读写和维护。因此,后来提出了一个集中式的同步过程tube进程。其基本思想是将共享变量及其操作集中在一个模块中,操作系统或并发程序由这些模块组成。这样,模块之间的连接清晰,易于维护和修改,易于保证正确性。(d) 交会:过程直接相互作用。(E) 分布式系统:由于分布式操作系统中没有公共内存,所以所有参数都是值参数,不能是指针。(f) 原语是一个不间断的过程。
请列举几种进程的同步机制,并比较其优缺点?
同步机制的基本规则如下:(1)当空闲接纳进程处于关键区域时,相应的关键资源处于空闲状态,因此可以允许请求进入关键区域的进程立即进入自己的关键区域,以有效利用关键资源资源。(2) 当一个进程进入它自己的关键区域时,意味着相应的关键资源正在被访问。因此,所有其他试图进入关键区域的进程都必须等待,以确保这些进程访问关键资源是互斥的。(3) 有限等待一个请求访问关键资源的进程,应该确保该进程能够在有限的时间内进入自己的关键区域,以免陷入“死等待”状态。(4) 当进程不能进入自己的关键区域时,应立即释放处理器,避免进程陷入“忙等待”状态。
同步机构应遵循哪些基本准则?为什么?
1)就绪状态:进程已获得除处理器以外的所需资源,正在等待分配处理器资源。只要分配了处理器资源,就可以执行进程。就绪进程可以根据多个优先级排队。例如,当一个进程由于时间片用完而进入就绪状态时,它将排队进入低优先级队列;当该进程由于I/O操作而就绪时2)运行状态:该进程占用处理器资源;处于该状态的进程数小于或等于处理器数。当没有其他进程可以执行时(例如所有进程都被阻塞),系统的空闲进程通常是自动执行的。3) 阻塞状态:由于进程在事件发生之前正在等待某些条件(如I/O操作),因此即使将处理器分配给进程,它也无法运行。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。