李元金 计算机与信息工程学院 E-mail: liyuanjin10@126.com 第 4 讲 进程管理(2) 李元金 计算机与信息工程学院 E-mail: liyuanjin10@126.com 1/

Slides:



Advertisements
Similar presentations
作者 : 陳鍾誠 單位 : 金門技術學院資管系 URL : 日期 : 2016/7/21 行程的同步 註:本章學術性較重,但考試常考。
Advertisements

平面构成 第六章 平面构成形式与法则 — 破规与变异. 第七章 平面构成形式与法则 — 破规与变异 破规与变异构成的形式、有下列四类: 一、特异构成 特异构成。其表现特征是,在普遍相同性质的事物 当中,有个别异质性的事物,便会立即显现出来。
遊程規劃實務 中華民國遊程規劃設計協會.
自 我 介 紹 班級:運促一乙 姓名:林以權 學號:D
搜索与回朔算法 搜索与回朔是计算机解题中常用的算法,很多无法根据某种确定的计算法则来求解的问题,可以利用搜索与回朔方法求解。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索的过程中,一旦发现原来的选择是错误的,就退回一步重新选择,然后再继续向前探索,如此反复进行,直到得到解或证明无解为止。
第二章 进程的描述与控制管理.
作業系統 第六章 同步與死結.
Chapter 7: Process Synchronization 进程同步
数据结构(C语言版) Data Structure
第二章 进程管理.
上課囉 職場甘苦談 小資男孩向錢衝 育碁數位科技 呂宗益/副理.
PURSUING EXCELLENCE / TOWARD SUCCESS WUCHANG UNIVERSITY OF TECHNOLOGY
我的社區_觀塘 第三課.
Chapter 6 同步 (Synchronization)
第一章 引论 1.1操作系统的概念 计算机系统: 计算机硬件 计算机软件 计算机硬件:运算器、控制器、存储器、输入设备和 输出设备
Operating System Process Management - 4 Monday, August 11, 2008.
操作系统 (并发进程) 徐锋 南京大学计算机科学与技术系 2018年9月18日3时52分.
2018/9/19.
中国科学技术大学计算机系 陈香兰 2013Fall 第五讲 进程同步 中国科学技术大学计算机系 陈香兰 2013Fall.
第三章 堆疊與佇列的基本應用 3-1 簡介堆疊(Stack) 3-2 迷宮問題研究 3-3 佇列(queue)的介紹
第八章 符号表 符号表的作用: 一致性检查和作用域分析; 辅助代码生成..
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
VHDL數位電路實習與專題設計 文魁資訊-UE301
中国科学技术大学计算机系 陈香兰 2013Fall 第五讲 进程同步和通信(part II) 中国科学技术大学计算机系 陈香兰 2013Fall.
多线程编程基本概念 2008.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
经典同步问题.
作業系統 第六章 同步與死結.
第二章 进程管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步.
Chapter 3 行程觀念 (Process Concept)
编译原理课程设计.
计算机操作系统 第二章 进程管理 高校教师、高级项目经理 任铄 QQ:
第三章 进程互斥与同步.
第4章 程序控制结构与算法基础.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
第三章 进程互斥与同步 进程通信 Communication.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
第二章 进程管理.
进程操作.
操作系统原理 Operating System Principles
编译原理实践 5.给定语法的语法分析程序构造.
习题解答.
李元金 计算机与信息工程学院 第 3 讲 进程管理(1) 李元金 计算机与信息工程学院 1/
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
編譯程式設計 期末專題說明 V1.1 May 2004.
动态规划(一).
第五章 VHDL主要描述语句.
最大公约数 ——解题报告 作者:宋含章 七(12)班 1.
第2章 进程管理 2.1 进程概念 2.2 线程 2.3 进程管理 2.4 进程间通信 2.5 经典进程同步问题 2.6 管程
第2章 进程和线程 内容提要: 2.1 进 程 概 念 2.2 进程的状态和组成 2.3 进 程 管 理 2.4 线 程.
江西财经大学信息管理学院 《数据库应用》课程组2007
软件工程 第四章 软件设计 软件过程设计技术与工具.
第二章、第三章错题分析.
第7章 進階的同步 觀念與實務.
主讲人: 颜蓉花 E---mail: 财务管理课程 (第二版) 主讲人: 颜蓉花 E---mail:
信号量(Semaphore).
美麗的西子湖.
中五級電腦科 PASCAL檔案處理.
编译原理课程设计 2017年4月.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
李元金 计算机与信息工程学院 第 14 讲 存储器管理(3) 李元金 计算机与信息工程学院 1/
李元金 计算机与信息工程学院 第 12 讲 存储器管理(1) 李元金 计算机与信息工程学院 1/
李元金 计算机与信息工程学院 第7讲 处理机调度与死锁(1) 李元金 计算机与信息工程学院 1/
數學遊戲二 大象轉彎.
Race Conditions and Semaphore
顺序查找与二分查找复习.
李元金 计算机与信息工程学院 第 17 讲 设备管理(1) 李元金 计算机与信息工程学院 1/
PASCAL语言 吉林大学计算机科学与技术学院.
解题报告 七(5)班 严崟杰 03:20.
Presentation transcript:

李元金 计算机与信息工程学院 E-mail: liyuanjin10@126.com 第 4 讲 进程管理(2) 李元金 计算机与信息工程学院 E-mail: liyuanjin10@126.com 1/

进程管理 教学目标 理解进程同步、临界资源、临界区的概念; 掌握常用的信号量机制; 理解管程机制。 教学内容 进程同步 2/

复习 顺序执行程序的特征 并发执行程序的特征 进程有哪些特征? 进程有哪些状态? 进程控制块的作用是什么? 3/

进程同步 进程同步 任务:对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。 4/

进程同步的基本概念 两种形式的制约关系 临界资源:(一次仅允许一个进程访问的资源) 资源共享关系:(间接相互制约) 相互合作关系:(直接相互制约) 临界资源:(一次仅允许一个进程访问的资源) 引起不可再现性是因为临界资源没有互斥访问。 5/

生产者-消费者问题 Dijkstra把同步问题抽象成一种生产者和消费者关系,计算机系统中的许多问题都可以被归结为生产者和消费者关系,例如,生产者可以是计算进程,消费者是打印进程,输入时输入进程是生产者,计算进程是消费者。我们可以通过一个缓冲区把生产者和消费者联系起来。 in out 6/

生产者-消费者问题 var n, integer; Type item=…; var buffer: array[0,1,…,n-1] of item; in, out: 0,1, …, n-1; counter: 0,1,…,n; 7/

生产者-消费者问题 producer: repeat … produce an item in nextp; until false; while counter=n do no-op; buffer[in]:=nextp; in:=(in+1)mod n; counter:=counter+1; until false; consumer: repeat while counter=0 do no-op; nextc:=buffer[out]; out:=(out+1) mod n; counter:=counter-1; consumer the item in nextc; until false; 8/

生产者-消费者问题 设counter的初值为5 register1:=counter; register2:=counter; register1 :=register1+1; register2:=register2-1; counter :=register1; counter :=register2; register1:=counter; (register1:=5) register1 :=register1+1; (register1:=6) register2:=counter; (register2:=5) register2 :=register2-1; (register2:=4) counter :=register1; (counter:=6) counter :=register2; (counter:=4) 9/

临界区 定义:进程中访问临界资源的那段代码。 访问临界资源的描述: 进入区:检查有无进程进入 临界区: 退出区:将访问标志复位 剩余区: Repeat Entry section Critical section Exit section remainder section Until false 10/

同步机制应遵循的准则 同步机制应遵循的规则 空闲让进 忙则等待 有限等待:应保证为有限等待,不会产生死等。 让权等待:不能进入临界区的执行进程应放弃CPU执行权。 11/

信号量(Semaphores)机制 1965年,荷兰学者Dijkstra提出信号量机制是一种卓有成效的进程同步工具。 整型信号量 是一个整型量S,通过2个原子操作wait(S)和 signal(S)来访问。(P、V操作) Wait(S): while S<= 0 do no-op; S:=S-1; Signal(S): S:=S+1; 计算机科学与技术系 信息与教育技术中心 12/

记录型信号量 由于整型机制中会不断测试不满足“让权等待”而引入。 type semaphore=record value: integer; L: list of process; end L:为进程链表指针,用于链接所有等待该类资源进程。 procedure wait(s) var S: semaphore begin S.value:=S.value –1; if S.value <0 them block (S.L) 13/

记录型信号量 procedure signal (S) var s:semaphone begin S.value:=S.vaule+1 if S.value<=0 then wakeup(S.L) end 在记录型信号量机制中: s.value初值:表示系统中某类资源的数目。 s.value<0,|s.value|表该信号量链表中已阻塞进程的数目。 14/

AND型信号量 process A: wait(Dmutex); wait(Emutex); process B: 若两进程交替执行,则死锁 死锁:在无外力作用下,两者都将无法从僵持状态中解脱出来。 AND型信号量特点:要么全分配,要么一个也不分配。 15/

for i:=1 to n do Si:=Si-1; endfor else Swait(S1,S2,…,Sn) if S1≥1 and …and Sn ≥1 then for i:=1 to n do Si:=Si-1; endfor else place the process in the waiting queue with the first Si found with Si<1, and set the program count of this process to the beginning of swait operation end if Ssignal(S1,S2,…,Sn) for i:=1 to n do Si:=Si+1; Remove all the process waiting in the queue associated with Si into the ready queue endfor

信号量集 为提高效率而对AND信号的扩充。 三种特例: Swait(S,t,d): S为信号量,d为需求值,t为下 限值。 Swait (S,1,1):S>1,记录型信号量。 S=1时,互斥型信号量。 Swait(S,1,0),可控开关,当s>=1时,允许多个进程进入,S<0时,将阻止任何进程进入特定区。 17/

if S1≥t1 and …and Sn ≥tn then for i:=1 to n do Si:=Si-di; endfor else Swait(S1,t1,d1,…,Sn,tn,dn) if S1≥t1 and …and Sn ≥tn then for i:=1 to n do Si:=Si-di; endfor else place the executing process in the waiting queue of the first Si found with Si<ti, and set the program counter to of the beginning of Swait operation end if Ssignal(S1,d1,…,Sn,dn) for i:=1 to n do Si:=Si+di; Remove all the process waiting in the queue associated with Si into the ready queue endfor

信号量的应用 利用信号量实现互斥 wait(S): while S<= 0 do no-op; S:=S-1; 相当于 相当于 var mutex: semaphore:=1 begin parbegin process1:begin repeat wait(mutex); critical setion signal(mutex); remainder section until false; end wait(S): while S<= 0 do no-op; S:=S-1; 相当于 相当于 signal(S): S:=S+1; 19/

信号量的应用 process2: begin repeat wait(mutex); critical setion Wait(S): while S<= 0 do no-op; S:=S-1; process2: begin repeat wait(mutex); critical setion signal(mutex); remainder section until false; end par end signal(S): S:=S+1; 20/

信号量的应用 利用信号量实现前趋关系 S1 a b S2 c S3 d S4 S5 e g f S6 图2-12前趋图举例 21/

Var a,b,c,d,e,f,g:semaphore:=0,0,0,0,0,0,0; Begin parbegin begin S1; signal(a); signal(b); end; begin wait(a);S2; signal(c); signal(d); end; begin wait(b);S3; signal(e); end; begin wait(c);S4; signal(f); end; begin wait(d);S5; signal(g); end; begin wait(e); wait(f);wait(g);S6; end; parend end 22/

管程机制 为什么要引入管程? 管程 管程的组成 代表共享资源的数据结构,以及由该共享数据结构实施操作的一组过程所组成的资源管理程序,共同构成了一个操作系统的资源管理模块。 定义(Hansan):一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。 管程的组成 管程的名称;局部于管程内部的共享数据结构说明;对该数据结构进行操作的一组过程;对局部于管程内部的共享数据设置初始值的语句。 23/

管程机制 管程的特征(语言的角度) 管程与进程的区别 模块化 抽象数据类型 信息掩蔽 二者都定义了数据结构,但进程定义的是私有数据结构PCB,管程定义的是公共数据结构; 二者都存在对各自数据结构上的操作,但进程是由顺序程序执行有关的操作,而管程主要是进程同步和初始化操作; 设置进程的目的在于实现系统的并发性,而管程的设置则是解决共享资源的互斥使用问题; 24/

管程机制 进程通过调用管程中的过程对共享数据结构实行操作,该过程就如通常的子程序一样被调用,因而管程为被动工作方式,进程则为主动工作方式; 进程之间能并发执行,而管程则不能与其调用者并发; 进程具有动态性,管程则是操作系统中的一个资源管理模块,供进程调用。 25/

管程机制 条件变量 引入条件变量的原因 条件变量的说明:x,y:condition (wait,signal) x.wait; x.signal 含义 x.wait:正在调用管程的进程因x条件需要被阻塞或挂起,则调用x.wait将自己插入到x条件的等待队列上,并释放管程,直到x条件发生了变化。 26/

管程机制 x.signal: 正在调用管程的进程发现x条件发生了变化, 则调用x.signal,重新启动一个因x条件而阻塞或挂起 的进程。如果存在多个这样的进程,则选择其中的一 个,如果没有,则继续执行原进程,而不产生任何结 果。 【问题】如果有进程Q因x条件处于阻塞状态,当正 在调用管程的进程P执行了x.signal操作后,进程Q被 重新启动,此时两个进程P和Q,如何确定哪个执行, 哪个等待? 27/

小结 进程的同步、临界资源、临界去的概念。 进程同步的信号量机制及应用、管程机制。 28/

作业 P84 7-12 实验一: Linux基本操作 29/