0%

操作系统第六节课笔记-进程同步

操作系统第六节课笔记-进程同步pdf文档下载

进程同步

并发进程间制约关系

  • 资源共享关系-间接制约
    • 多个今晨彼此无关,完全不知道或只能间接感知其他今春的存在
    • 系统保证个进程能互斥的访问临界资源
    • 系统资源统一分配,而不允许用户进程直接用
  • 相互合作关系-相互制约
    • 系统应保证相互合作的个进程在执行次序上的协调和防止有关时间的差错

临界资源

  • 一段时间里只能为某个进程所访问的资源
    • 许多物理设备,变量及表格

临界区

  • 每个进程中访问临界资源的那段代码称为临界区,并不是内存中的一段区域
  • 保证个今晨互斥的进入自己的临界区是实现他们对临界资源的互斥访问的充要条件

访问临界资源的循环进程描述

1
2
3
4
5
6
7
8
9
10
进程Pi
begin
repeat
......
进入区
临界区
退出区
......
until false;
end

进程同步机制准则

进程同步机制基本准则

  • 空闲让进
    • 当无进程处于临界区是,课允许请求进入临界区的进程立即进入自己的临界区
  • 忙则等待
    • 当已有进程进入自己的临界区时,所有企图进入进入临界区的进程必须等待
  • 有限等待
    • 对要求访问临界资源的进程,应保证该进程能在有限时间内进入自己的临界区
  • 让权等待
    • 当进程不能进入自己的临界区是,应释放处理机

进程互斥访问临界资源的软件解决方案

算法#1

  • 有两个进程Pi,Pj共享某临界资源R

  • 主程序

1
2
3
4
5
6
begin
perbegin //并行执行
Pi;
Pj;
perend;
end

设置访问编号

设置一个全局的整型变量,如果该变量等于本进程的pid号,则可访问临界区,如果不等于,程序进入循环,执行空操作等待其他进程释放。当进程使用完临界区代码后,全局变量指向另一个进程,使其可以访问临界区

上面的算法属于强制交替访问临界资源,不能灵活考虑进程的实际需求,违背了空闲让进

算法#2

每一个进程,设置一个标志,宣誓自己的访问需求

违背了忙则等待

算法#3

欲访问标志位,先确认其他进程的访问需求

违背了空闲让进,有限等待

算法#4

欲访问标志位和访问标志

恰饭,恰饭