Loading

进程同步

1.什么是进程同步?
进程同步是一种能让多个进程有秩序的运行的机制,它具体分为:硬件同步机制,信号量机制,管程机制。

2.相关专业术语
(1)间接相互制约关系:几个进程通过共享的资源形成的制约关系。
(2)直接相互制约关系:几个进程为完成同一个任务形成的关系。
(3)临界资源:一次只能供一个进程使用的资源(如打印机),故各进程之间采用互斥的方式实现对这种资源的共享。
(4)临界区:有临界资源知,不论是硬件临界资源还是软件临界资源,各进程必须要互斥的对它进行访问。而人们则把每个进程中访问及临界资源的那段代码称为临界区,所以临界区就是一段代码组成的。
(5)同步机制应遵循的规则:空闲让进,忙则等待,有限等待(对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免进入“死等”),让权等待(当进程不能进入自己的临界区时,应立即释放处理机,以免陷入“忙等”)

3.锁的概念
在对临界区进行管理时,可以将标志一个锁,“锁开”进入,“锁关”等待,初始时锁是打开的。每个要进入临界区的进程必须先对锁进行测试,当锁未开时,则必须等待,直至锁被打开。反之,当锁是打开的时候,则立即把其锁上,以阻止其他进程进入临界区,显然,为防止多个进程同时测试到锁为打开的情况,测试和关锁操作必须是连续的,不允许被分开。

4.硬件同步机制
(1)利用关中断实现互斥:在进入锁测试之前关闭中断,直到完成锁测试并上锁后才能打开中断。

(2)利用Test-and-Set指令实现互斥:

boolean TS(boolean *lock)
{
   
     boolean old;
     old = *lock;
     *lock = TRUE;
     return old;
}
利用TS指令实现互斥的循环进程结构如下
do{
   
    whileTS(&lock);
    critical secition;
    lock = FALSE;
    remainder section;
}while(TRUE)

(3)利用Swap指令(对换指令)实现进程互斥:

void 
posted @ 2020-03-18 13:24  文牧之  阅读(128)  评论(0)    收藏  举报  来源