简单介绍《计算机》进程同步内容
树图思维导图提供 《计算机》进程同步思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 《计算机》进程同步思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:bcc6bcafbf45877c70b3e975d7b2f591
进程同步思维导图模板大纲
硬件实现法
通过硬件支持实现临界区互斥访问的方法称为低级方法、元方法
中断屏蔽方法
关中断→临界区→开中断
限制了处理机交替执行程序的能力、中断权利交给用户不安全。
硬件屏蔽方法
Swap
简单、但不符合“让权等待”,也可能会导致“饥饿”现象
TestAndSet
while TestAndSet(&lock)
软件实现法
双标志先检查法
先检查对方标志、再设置自己标志
进入区
①while(flag[i]);检查,进程i在访问则等待、
②flag[j] = true; 进程j标志自己在访问临界区
退出区
flag[j]=false ;进程j不使用临界区
特点
这种算法不用交替进入、可以连续使用,但是当进程检查标志后可能发生进程切换,可能会出现同时访问临界区的情况,违背了“忙则等待”
P1检查flag[2] = false,进程切换 P2检查flag[1] = false,进程切换 P1设置flag[1] = true,进程切换 P2设置flag[2] = true, 临界资源被同时访问
双标志后检查法
先设置自己标志、再检查对方标志
进入区
flag[i] = true;进程i设置自己的标志
while(flag[j]);检查进程j是否在访问临界区
退出区
flag[i] = false;
特点
这种算法不会导致同时访问临界区的现象,但进程相互谦让可能会导致“饥饿”现象
Perterson算法
为了防止同时进入、也为了防止无限等待、设置了变量turn
进入区
flag[i]=true;turn = j; i想访问、但是先让j进
特点
相互谦让、最后一个谦让的等待
用flag解决互斥访问、用turn解决了“饥饿”现象
是单标志检查法和双标志后检查法的结合
单标志检查法
进入区:turn = 1,1为允许进入临界区的进程编号
退出区:turn = 0,允许1号进程进入临界区
这种算法进程只能交替进入临界区
当P1离开,turn = 0、进程0不访问,但进程1还是不能访问,违背“空闲让进”
进入检查、循环检查、退出修改
临界资源
组成
临界区
进程访问临界资源的代码段(临界段)
退出区
清除正在访问临界区标志
剩余区
进入区
检查临界区标志/设置正在访问临界区标志
定义
一次仅允许一个进程访问的资源,如大多数的物理设备,也有某些变量、数据也是临界资源
互斥
进程的间接制约关系,进程访问临界资源的制约关系
同步
进程的直接制约关系,同步源于进程的相互合作
同步机制
忙则等待
临界资源被访问、进程需等待
有限等待
进程不能一直等下去、占用临界资源的进程必须在一定时间后释放资源
让权等待
进程发现临界资源被占用,需要等待临界资源的释放,此时不能忙等,需要让出处理机
空闲让进
资源没有被访问、进程可以访问
因为多道程序下进程并发运行,具有异步性,想要协调进程之间的制约关系,需要引入同步机制。
树图思维导图提供 计算机辅助电子线路设计 在线思维导图免费制作,点击“编辑”按钮,可对 计算机辅助电子线路设计 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:6ca7534122e478b7cd1b28b3c72601e8
树图思维导图提供 计算机网络应用层 在线思维导图免费制作,点击“编辑”按钮,可对 计算机网络应用层 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:1d7a27cc460774320c29f068a3a669b8