[关闭]
@llplmlyd 2018-09-22T16:23:36.000000Z 字数 2137 阅读 1157

操作系统原理(九)之并发编程同步互斥

操作系统原理


同步互斥是操作系统当中协调进程之间动作和相互关系的一种机制。

进程类型

独立进程

并行进程

当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)

并发进程

当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)

并发进程的正确性

并发进程的优势

并发编程的实现

并发进程的创建

进程的交互关系

相互感知的程度 交互关系 进程间的影响
相互不感知(完全不了解其他进程的存在) 独立 一个进程的操作催其他进程的结果无影响
间接感知(双方都与第三方交互,如共享资源) 通过共享进行协作 一个进程的结果依赖于共享资源的状态
直接感知(双方直接交互,如通信) 通过通信进行协作 一个进程的结果依赖于从其他进程获得的信息

四种进程或线程同步互斥的控制方法

1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。
2、互斥量:为协调共同对一个共享资源的单独访问而设计的。
3、信号量:为控制一个具有有限数量用户资源而设计。
4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。

基本概念

临界区

临界区访问规则

临界区的实现方法

禁用中断 软件方法 更高级的抽象方法
详见 实现临界区互斥的基本方法

禁用中断

进程互斥锁Lock 高级抽象方法

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注