谢算机 摞维系统 第二章进程管理(2)
第二章 进程管理(2)
第二章进程管理(2) 24进程同步 2.5管程机制 2.6进程通信
第二章 进程管理 ( 2 ) 2.4 进程同步 2.5 管程机制 2.6 进程通信
2.4进程的同步 在多道程序系统中,由于资源共享或进程 合作,使进程间形成间接相互制约和直接 相互制约关系,这需要用进程互斥与同步 机制来协调两种制约关系。 进程同步的主要任务是使并发执行的进程 间有效的共享资源和相互合作, 进程的同步机制——信号量及P.V操作 (解决进程同步互斥问题)
2.4 进程的同步 • 在多道程序系统中,由于资源共享或进程 合作,使进程间形成间接相互制约和直接 相互制约关系,这需要用进程互斥与同步 机制来协调两种制约关系。 • 进程同步的主要任务是使并发执行的进程 间有效的共享资源和相互合作, • 进程的同步机制──信号量及P.V操作 (解决进程同步互斥问题)
1.进程间的关系 直接作用(相互合作): 进程间的相互联系是有意识的安排的, 直接作用只发生在相交进程间 间接作用(资源共享): 进程间要通过某种中介发生联系,是 无意识安排的,可发生在相交进程之 可,也可发生在无关进程之间
直接作用(相互合作): 进程间的相互联系是有意识的安排的, 直接作用只发生在相交进程间 间接作用(资源共享): 进程间要通过某种中介发生联系,是 无意识安排的,可发生在相交进程之 间,也可发生在无关进程之间 1. 进程间的关系
相互感知程度 交互关系 个进程对其他进 程的影响 相互不感知(完全不竞争 competition)一个进程的操作对 了解其它进程的存 其他进程的结果无 在) 影响 间接感知(双方都与通过共享进行协作一个进程的结果依 第三方交互,如共 赖于从其他进程获 享资源) 得的信息、 直接感知(双方直接通过通信进行协作一个进程的结果依 交互,如通信) 赖于从其他进程获 得的信息
相互感知程度 交互关系 一个进程对其他进 程的影响 相互不感知(完全不 了解其它进程的存 在) 竞争(competition) 一个进程的操作对 其他进程的结果无 影响 间接感知(双方都与 第三方交互,如共 享资源) 通过共享进行协作 一个进程的结果依 赖于从其他进程获 得的信息 直接感知(双方直接 交互,如通信) 通过通信进行协作 一个进程的结果依 赖于从其他进程获 得的信息
2.进程的同步(直接作用) 指系统中多个进程中发生的事件存 在某种时序关系,需要相互合作,共 同完成一项任务。具体说,一个进程 运行到某一点时要求另一伙伴进程为 它提供消息,在未获得消息之前,该 进程处于等待状态,获得消息后被唤 醒进入就绪状态
2. 进程的同步(直接作用) 指系统中多个进程中发生的事件存 在某种时序关系,需要相互合作,共 同完成一项任务。具体说,一个进程 运行到某一点时要求另一伙伴进程为 它提供消息,在未获得消息之前,该 进程处于等待状态,获得消息后被唤 醒进入就绪状态
3.进程的互斥(间接作用) 由于各进程要求共享资源,而有些资 源需要互斥使用,因此各进程间竞争使用 这些资源,进程的这种关系为进程的互斥 临界资源: 系统中某些资源一次只允许一个进程使用, 称这样的资源为临界资源或互斥资源或共 享变量
由于各进程要求共享资源,而有些资 源需要互斥使用,因此各进程间竞争使用 这些资源,进程的这种关系为进程的互斥。 临界资源: 系统中某些资源一次只允许一个进程使用, 称这样的资源为临界资源或互斥资源或共 享变量 3. 进程的互斥(间接作用)
4.基本概念 进程互斥:指在多道程序环境下,每次只允 许一个进程对临界资源进行访问 ·进程同步:指多个相关进程在执行次序上的 协调。 ·临界资源:一次仅供一个进程使用的资源 在进程中涉及到临界资源的程序段叫临界区 多个进程的临界区称为相关临界区
4. 基本概念 • 进程互斥:指在多道程序环境下,每次只允 许一个进程对临界资源进行访问。 • 进程同步:指多个相关进程在执行次序上的 协调。 • 临界资源:一次仅供一个进程使用的资源。 • 在进程中涉及到临界资源的程序段叫临界区 • 多个进程的临界区称为相关临界区
程序段1 程序段2 糨序段n 共享变量
程序 段 1 程序 段 2 程序 段 n 共 享 变 量
5.使用互斥区的原则 空闲让进:当无进程在互斥区时,任何 有权使用互斥区的进程可进入 忙则等待:不允许两个以上的进程同时 进入互斥区 有限等待:任何进入互斥区的要求应在 有限的时间内得到满足 让权等待:处于等待状态的进程应放弃 占用CPU,以使其他进程有机会得到CPU 的使用权
5.使用互斥区的原则 • 空闲让进:当无进程在互斥区时,任何 有权使用互斥区的进程可进入 • 忙则等待:不允许两个以上的进程同时 进入互斥区 • 有限等待:任何进入互斥区的要求应在 有限的时间内得到满足 • 让权等待:处于等待状态的进程应放弃 占用CPU,以使其他进程有机会得到CPU 的使用权