《计算机操作系统》第五章 并发性:互斥和同步

Cha4并发性:互斥和同步
Cha4 并发性:互斥和同步

并发( concurrency)导致的问题 进程的相对执行速度不可预测 °资源共享引起的危险 最佳资源分配 难以定位程序错误
并发(concurrency)导致的问题 • 资源共享引起的危险 • 最佳资源分配 • 难以定位程序错误 进程的相对执行速度不可预测

回显字符的Echo过程 Void echo In=getchar Chou=chin Putchar(chou P2 P1
回显字符的Echo过程 Void echo() { In=getchar(); Chout=chin; Putchar(chout); } P1 P2

共享资源的问题 Process p Process p 2 chin=getchar b—chin= getchar(0 Chou=chin; Putchar(chou) Chout=chin tchar(chou),b
共享资源的问题 Process p1 . chin=getchar(); . . . Chout=chin; Putchar(chout); Process p2 . . chin=getchar(); Chout=chin; Putchar(chout); . a b b b

OS需要管理的问题 能够记住所有进程 为每个进程分配资源 CPU,内存,文件,WO设备 保护进程的数据和物理资源 保证进程结果与执行速度无关
OS需要管理的问题 • 能够记住所有进程 • 为每个进程分配资源 – CPU,内存,文件,I/O设备 • 保护进程的数据和物理资源 • 保证进程结果与执行速度无关

进程的交互 知道程度关系 对其他进程潜在问题 的影响 相互不知道竞争 结果无影响互斥 计时受影响死锁 饿死 间接知道对方通过共享合作结果受影响互斥 共享对象 计时受影响死锁 饿死 数据一致性 直接知道对方通过通信合作结果受影响死锁 通信原语 计时受影响饿死
进程的交互 知道程度 关系 对其他进程 的影响 潜在问题 相互不知道 竞争 结果无影响 计时受影响 互斥 死锁 饿死 间接知道对方 -共享对象 通过共享合作 结果受影响 计时受影响 互斥 死锁 饿死 数据一致性 直接知道对方 -通信原语 通过通信合作 结果受影响 计时受影响 死锁 饿死

进程中的资源争用 1/O设备,内存,CPU ■■■■■■ 临界资源与临界区 critical section 互斥 mutual exclusion 多个进程不能同时使用临界资源 死锁 deadlock 多个进程循环等待对方占用的资源 全部处于阻塞状态 饥饿 starvation 临界资源只被部分进程轮流使用 有的进程永远无法获得
进程中的资源争用 I/O设备,内存,CPU…… • 临界资源与临界区critical section • 互斥mutual exclusion – 多个进程不能同时使用临界资源 • 死锁deadlock – 多个进程循环等待对方占用的资源 – 全部处于阻塞状态 • 饥饿starvation – 临界资源只被部分进程轮流使用 – 有的进程永远无法获得

进程中的资源争用 P1 P2 R1 P1 P2 死锁 R2 互斥 P1 P2 P3 R1 饥饿
进程中的资源争用 P1 P2 互斥 P1 P2 R1 死锁 R2 P1 P2 P3 R1 饥饿

互斥机制 Const int n=进程数 Void p(int) While true intercritical( 临界区 Exitcritical (; Void main( Iparbegin (p(R1), p(R2),.p(Rn))I
互斥机制 Const int n=进程数 Void p(int i) {while true {entercritical (i); 临界区 Exitcritical (i); …}} Void main() {parbegin (p(R1),p(R2),…,p(Rn))}

进程通过共享合作 共享的变量、文件、数据库 ■■■■■ 写操作的互斥 数据的一致性 P1 P2 a=a+1 b=2*b b=b+1 a=2*a;
进程通过共享合作 P1 a=a+1; b=b+1; P2 b=2*b; a=2*a; • 写操作的互斥 • 数据的一致性 共享的变量、文件、数据库……
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机操作系统》第三章 进程描述和控制.ppt
- 《计算机操作系统》第二章 操作系统概述.ppt
- 《计算机操作系统》第十一章 文件管理.ppt
- 《计算机操作系统》第十章 设备管理.ppt
- 《计算机操作系统》第一章 计算机系统概述.ppt
- 《计算机操作系统》管程monitor的特点.ppt
- 《C++程序设计开发》第7章 Visual C++程序设计.ppt
- 《C++程序设计开发》第6章 IO流类库.ppt
- 《C++程序设计开发》第5章 程序的类层次结构.ppt
- 《C++程序设计开发》第4章 重载与模板.ppt
- 《C++程序设计开发》第3章 数据结构设计.ppt
- 《C++程序设计开发》第2章 算法设计与程序结构.ppt
- 《C++程序设计开发》第1章 C++程序设计入门.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Reflection Mechanism Java 反射机制.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)CollectionFramework.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Cloning Objects.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 13 I/O Package.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 12 Threads.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 11 Nested Classes and Interfaces.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 10 Interfaces.ppt
- 《计算机操作系统》第六章 死锁和饿死.ppt
- 《计算机操作系统》第七章 存储器管理.ppt
- 《计算机操作系统》第八章 虚拟存储器.ppt
- 《计算机操作系统》第九章 单处理器调度(9-1)调度的类型.ppt
- 《计算机操作系统》第九章 单处理器调度(9-2)调度的类型.ppt
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第1章 微型计算机概述(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第10章 微机接口开发技术(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第2章 80x86微处理器及其体系结构(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第3章 微机存储器(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第4章 微机接口概述(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第5章 控制器接口(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第6章 并行/串行通信接口(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第7章 数/模、模/数转换接口(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第8章 总线接口(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第9章 人-机交互接口(李芷).pps
- 《商务网站设计实用教程》教学大纲.doc
- 《商务网站设计实用教程》课程教学资源(PPT课件)第一章 商务网站概述.ppt
- 《商务网站设计实用教程》课程教学资源(PPT课件)第二章 商务网站建设规划.ppt
- 《商务网站设计实用教程》课程教学资源(PPT课件)第三章 商务网站运行环境与设计平台.ppt
- 《商务网站设计实用教程》课程教学资源(PPT课件)第四章 网站的建立和设计.ppt