进程同步与互斥
2018-11-11 22:39 mengjuanjuan1994 阅读(436) 评论(0) 编辑 收藏 举报1.概念
进程同步概念:亦称直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作。
进程互斥概念:对临界资源的访问,需要互斥地进行。即同一个时间段内只能允许一个进程访问该资源。
进程互斥的四个区:
进入区:检查是否可进入临界区,若可进入,需要“上锁”。
临界区:访问临界资源的那段代码。
退出区:负责解锁。
剩余区:其余代码部分。
进程互斥需要遵循的原则有:
空闲让进:临界区空闲时,应允许一个进程访问。
忙则等待:临界区正在被访问时,其它试图访问的进程需要等待。
有限等待:要在有限时间内进入临界区,保证不会饥饿。
让权等待:进不了临界区的进程,要释放处理机,防止忙等。
2.进程同步与互斥的软件实现方法
1)单标志法:两个进程在访问完临界区后会把使用的权限转交给另一个进程,也就是说每个进程进入临界区的权限只能被另一个临界区赋予。
2)双标志先检查法:设置一个布尔型数组flag[],数组中各个元素用来标记各进程想进入临界区的意愿,比如“flag[0] = true”意味着0号进程P0现在想要进入临界区。
3)双标志后检查法:双标志先检查法得改版,前一个算法的问题是先检查后上锁,但是这两个操作又无法一气呵成,因此导致了两个进程同时进入临界区的问题。因此,人们又想到了先“上锁”,后检查的方法,来避免上述问题。但有可能导致两个进程都无法进入临界区的问题。
4)Peterson算法:双标志后检查法中,两个进程都争着想进入临界区,但是谁也不让谁,最后谁都无法进入临界区。Peterson想到了一种方法,如果双方都争着想进入临界区,那可以让进程尝试“孔融让梨”,主动让对方先使用临界区。
2.进程同步与互斥的硬件实现方法