Operating System-进程/线程内部通信-临界区(Critical Regions)
上一篇文章讲述了进程之间的竞争条件:多个进程同时进入一个共享区域,导致了数据的不一致,本文主要介绍如何解决这个问题。
一、临界区介绍
解决这个问题就是阻止多个进程同时进入这个共享区域,换句话说,进程之间针对这块共享区域需要排他(Mutual Exclusion)。问题的根源是进程B在进程A没有从共享区域返回之前就进入了共享区域。
在大部分情况下两个进程之间是不会共享变量的,只会有一部分步骤会使用到共享变量,在程序设计中,可以把这部分访问共享变量程序单独设计出来,这部分程序叫做临界区(Critical Regions)。如果保证两个进程永远只有一个进程进入这块临界区域,那么进程之间的条件竞争也就迎刃而解。
达到上面的结果需要以下条件:
- 没有两个进程同时进入临界区域
- 对CPU的速度或者数量不做要求
- 被Block在临界区域之外的等待的进程会block其他进程,比如,进程A在临界区域内,那么这个时候进程B来访问临界区,进程B就会被Block到临界区外,这个时候的进程B不应该Block其他进程
- 没有进程会被永远Block到临界区之外
二、临界区演示
图示
- 在T1时间Process A进入临界区域
- T2时间,Process B尝试进入临界区域
- 因为A在临界区域,所以B被Block
- T3时间A离开临界区域,B进入临界区域时间
- T4时间,B离开临界区域
使用临界区域的概念有什么好处呢?
- 如果进程A和B在大部分时间内没有使用到共享资源,那么在这段时间内内A、B是可以并行执行的。
- 只有针对临界区域的访问才不能并行。
- 最大限度让进程并行工作,且高效的使用共享数据
三、总结
- 抽象临界区域
- 对临界区域进行排他
- 如歌实现排他呢?下一篇文章进行介绍。
转载于:https://www.cnblogs.com/Brake/p/Operating_System_Interprocess_Communication_Critical_Regions.html
Operating System-进程/线程内部通信-临界区(Critical Regions)相关推荐
- Operating System-进程/线程内部通信-信号量和PV操作
本文介绍操作系统进程管理的两个核心概念: 信号量 PV操作 一.信号量介绍 1.1 信号量引入 信号量(Semaphore)1965年由Dijkstra引入的.信号量一般由一个值是一个变量,其值有可能 ...
- [Operating.System.Concepts(9th,2012.12)].Abraham.Silberschatz.文字版(恐龙书——操作系统概念 原书第九版)课后习题 参考答案
目录 Chap01 导论 Chap02 OS结构 Chap03 进程 Chap04 线程 Chap05 同步(Synchronization) Chap06 CPU调度 Chap07 死锁 Chap0 ...
- 操作系统(Operating System)
一.计算机系统概述 什么是操作系统(操作系统的概念) ※ 操作系统(Operating System, OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配:以 ...
- [No000035]操作系统Operating System之OS Interface操作系统接口
接口(Interface) 仍然从常识开始- 日常生活中有很多接口:电源插座:汽车油门- 那什么是接口? 连接两个东西.信号转换.屏蔽细节- Interface: electrical circuit ...
- 多线程(C++)临界区Critical Sections
一 .Critical Sections(功能与Mutex相同,保证某一时刻只有一个线程能够访问共享资源,但是不是内核对象,所以访问速度比Mutex快,但是没有等待超时的功能,所以有可能导致死锁,使用 ...
- JUC本质解析+进程/线程
JUC并发编程一:什么是JUC+进程/线程(Java) 1.什么是JUC JUC的意思就是java并发编程工具包,与JUC相关的有三个包:java.util.concurrent.java.util. ...
- linux 编程 调度,Linux的进程线程及调度
搜索热词 本文为宋宝华<Linux的进程.线程以及调度>学习笔记. 1 进程概念 1.1 进程与线程的定义 操作系统中的经典定义: 进程:资源分配单位. 线程:调度单位. 操作系统中用PC ...
- 进程/线程同步的方式和机制,进程间通信
一.进程/线程间同步机制. 临界区.互斥区.事件.信号量四种方式 临界区(Critical Section).互斥量(Mutex).信号量(Semaphore).事件(Event)的区别 1.临界区: ...
- 操作系统1(OS,operating system)
目录 OS 概论 OS 目标 作用 OS 发展过程(基本类型) OS 结构设计演变 OS 基本特征.功能 OS 功能: 处理机管理: 存储器管理: 设备管理: 文件管理 友好的用户接口: 处理机管理 ...
最新文章
- 创建一个显示所有预定义WPF颜色的ListBox
- nas php.ini,php.ini 配置文件常用详解
- Windows 2003 系统管理 视频教程 http://www.91xueit.comm 下载
- [.NET] 建构子中传递子对象的对象
- PHP常用工具方法集...
- python爬虫实例手机_python爬虫实例详解
- Debit and Credit Memo
- 从16位到32位再到64位,为何16年过去,依然没有128位系统出现?
- android访问网络提示 服务不可用,Android系统服务不可用
- Go 语言高性能编程
- 云承软件和云溪哪个好_木工开料机使用什么软件好
- Ubuntu18.04下WizNote为知笔记源码编译安装
- 小米路由器青春版(R1CL)刷高恪软路由系统
- jdy ble sdk android,JDY-18蓝牙模块 连接blinker超时
- 简述主成分分析法的基本步骤_主成分分析的基本步骤
- p-mos,n-mos的导通条件
- 教你制作Linux系统的安装盘
- 手写HashMap,快手面试官直呼内行
- 面试时遇到『看门狗』脖子上挂着『时间轮』,我就问你怕不怕?
- VUE探索第二篇-手脚架(vue-cli)
热门文章
- 使用动态代理解决网站字符集编码问题:(之前通过拦截器)
- c# selenium chrome 文件下载_Selenium 框架原理以及环境安装
- mysql gtid深入_深入理解MySQL 5.7 GTID系列(四):mysql.gtid_executedPREVIOUS GTID EVENT
- 移动端html5广告的优势,h5手机端开发的优势都有哪些呢
- harmonyos sdk,HarmonyOS SDK对应的API版本跃迁引发的历史工程适配问题解决方案
- c语言统计数字字母个数,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
- Leetcode-3 无重复字符的最长子串【c语言】
- c++ 不能分配给为0的数组_【嵌入式C】你有想过quot;数组下标quot;为何从0开始吗?...
- requirejs加载顺序_教你5分钟学会用requirejs(必看篇)
- chcon和semanage fcontext的坑