思维导图

在这里插入图片描述

进程同步

进程具有异步性的特征。异步性是指:各并发执行的进程以及各自独立的,不可预知的速度向前推进

同步:直接制约关系,它是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而产生的制约关系。进程间的直接制约关系就是源于它们之间的相互合作

进程互斥

进程的并发需要共享的支持,各个并发执行的进程不可避免的需要共享一些系统资源(比如内存,比如打印机,摄像头I/O装备)

有两种资源共享方式

  1. 互斥共享方式:一个时间段内只允许一个进程访问该资源
  2. 同时共享方式:允许一个时间段内有多个进程同时进行访问

临界资源:一个时间段内只允许一个进程使用的资源(物理设备 I/O)

对临界资源的访问必须互斥的进行。也就是当一个进程访问某个资源的时候,另外一个进程也想访问该资源就必须等待。当访问临界资源的进程访问结束的时候,释放该资源,另一个进程才能去访问该临界资源

在这里插入图片描述

为了实现临界资源的互斥访问,同时保证系统整体性能,需要遵循以下原则:

在这里插入图片描述

进程互斥的软件实现方法

思维导图

在这里插入图片描述

软件实现方法的思想:在进入区设置并检查一些标志 来标明是否有进程在临界区中,若已有进程在临界区,则在进入区通过循环检查进行等待,进程离开临界区后则在退出区修改标志。进入区通过循环检查进行等待,进程离开临界区后则在退出区修改标志。

单标志法

在这里插入图片描述

turn的初值为0,即刚开始只允许0号进程进入临界区。若P1先上处理机运行,则会一直卡在⑤。直到P1的时间片用完,发生调度,切换P0上处理机运行,代码①不会卡住P0,P0可以正常访问临界区,在P0访问临界区期间即使切换回P1,P1依然会卡在⑤:

该算法可以实现同一时刻最多只允许一个进程访问临界区

在这里插入图片描述

双标志先检查法

在这里插入图片描述

双标志后检查法

在这里插入图片描述

Peterson算法

image-20230504171856465

在这里插入图片描述

在这里插入图片描述

互斥锁

image-20230504173228621

image-20230504173329883