IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> OS操作系统 六 -> 正文阅读

[系统运维]OS操作系统 六

1.关于并发的关键术语
原子操作 atomic operation
临界区 (核心)一段代码 在这段代码中 进程将访问共享资源 且当一个进程在访问时 其他进程不能在这段代码运行 critical section
死锁 deadlock
活锁 livelock
互斥 一个进程在临界区访问共享资源 其他进程不能进入临界区访问任何共享资源
mutual exclusion
竞争条件 race condition
饥饿 starvation

2.并发 控制对共享资源的访问
进程的交互
(1)进程之间不知道对方的存在 可能出现 互斥,死锁,饥饿 此时操作系统需要控制对它们的访问
(2)进程之间间接知道对方的存在 可能出现 互斥 死锁 饥饿 数据一致性(进程之间共享数据 但是在写数据使要合作确保数据的完整性)
(3)进程直接指定对方的存在 可能出现 死锁 饥饿

3.互斥: 临界资源同时间只允许一个程序在临界区(使用临界资源的那部分程序称为程序的临界区)
死锁 两个进程互相等待 都不执行
饥饿 有进程在队列中 需要调用资源 但被无限期搁置
要设置entercritical 和 exitcritical

4.互斥的硬件实现:
(1) 中断禁用 临界区不能被中断 代价高 执行效率降低 且不能用于多处理器体系
(2) 专用机器指令
例: 把整个比较和交换功能按原子操作执行
设置bolt值 所有进程都检查bolt是否为0 为0就进入临界区并把bolt设为1 在结束时再改回来
缺点: (1)使用了忙等待 消耗处理器时间
(2)可能饥饿
(3)可能死锁: P1进入了临界区但是被中断 让给P2 P2因为互斥被拒绝访问 然后进入忙等待 形成死锁

并发机制:
(1) 信号量: 表示进程传递信号的一个整数值
(2) 二元信号量: 信号量 只能取0,1
(3) 互斥量 同一个进程为其设置为0 加锁 设置为1 解锁
(4) 条件变量: 用于阻塞进程或线程 直到特定条件为真
(5) 管程: 一种编程语言结构 包含变量,访问过程,初始化代码
自身的变量只能由自己的访问过程访问 且每次只能由一个进程在其中执行
访问过程就是临界区
(6) 事件标志: 用做同步机制的内存字
(7) 信箱/消息: 两个进程交换信息的一种方法 也可用于同步
(8) 自旋锁: 一种互斥机制

6.并发的软件实现
多个进程之间靠信号量合作,可以强迫一个进程在某个地方停止 直到收到一个特定的信号
semWait(s) 使信号量减一 若值为负数 则阻塞该进程
semSignal(s) 使信号量加一 若值小于等于0 则解除阻塞
效果: 信号量的负值表示正在等待解除阻塞进程的个数
此时每个semSignal会将一个进程的阻塞解除
结论:
(1)对信号量减一之前
无法知道是否会被阻塞
(2)进程控制信号量加一后 会唤醒另一个进程 两个进程并发运行 单处理器系统 无法知道哪个进程会继续运行
(3)向信号量发出信号后 被解除阻塞的进程要么为1要么为0

7.二元信号量
semWaitB 值为1 则减一 值为0则阻塞
semSignalB 检查受阻 有受阻的解除 没受阻的设值为1

8.互斥锁 设置0,1来确定是是否阻塞其他程序 与二元信号量区别在于 前者只能由同一个进程设置0,1 后者可以不同进程加解锁

9.队列的释放顺序
强信号量: 遵循先进先出的规则的策略 可以保证不会饥饿
弱信号量:没有规定顺序的信号量

10.生产者/消费者
两者在任何时候都只能有一个主体可访问缓冲区
缓存已满时 生产者不会继续添加数据
缓存为空时 消费者不会移走数据

11.在生产/消费问题上
加入semWait() 表示查看信息量比如n,s都检查 n表示缓冲区可用数据的个数
s表示是二元信息量 为了实现检查信号判断是否等待 可以在生产过程前后
加入semWait(s) semSignal(s) 来实现互斥
delay 来实现等待生产

12.管程 提供的功能和信号量相同 但是更易于控制
局部数据变量只能被管程的过程访问
一个进程通过调用管程进入管程
只能由一个进程在管程中执行 其他进程调用会被阻塞

13.管程通过使用条件变量来支持同步
管程把互斥机制放在自己构造内

14.消息传递
同步
send
receive
寻址

15.读者/写者问题

16.并发
进程间的交互
共享资源的竞争
多个进程的同步问题
进程的处理器时间分配

17.进程间相互知道的程度
(1)互相不知道
(2)间接知道
(3)直接知道

18.竞争进程需要访问相同的资源
合作进程要么共享访问一个共享资源 要么与其他进程相互通信

19.竞争进程控制问题
(1)互斥
(2)死锁
(3)饥饿

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:39:50  更:2021-10-09 16:42:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:51:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码