北大操作系统陈向群第六章知识点
6.1 管程的基本概念
管程:
特殊的模块,由关于共享资源的数据模块和定义在该模块上的一组操作过程组成
进程只能通过调用管程的过程来间接访问管程的数据结构,所以为共享资源提供的保护
注意:管程是互斥进入的(管程的互斥性是编译器负责保障的)当管程中的进程Q处于等待状态时就会释放管程的互斥权,此时如果后面进入管程的进程
P唤醒该等待的进程Q就会有两个处于活动中的进程,此时就出现了三种解决方案
Hoare管程 P等待Q执行
MESA管程 Q等待P执行
Hansen管程 规定唤醒操作是管程中的最后一个操作
6.2 Hoare管程
Hoare管程在管程外设置一个入口等待队列,在管程内设置一个紧急等待队列
设置条件变量c,可以执行wait和signal操作
wait(c):此时执行wait的进程表明需要等待,所以需要唤醒一个新的进程,如果紧急等待队列非空,则唤醒队列的第一个等待者,否则释放互斥权,执行该操作的进程进入c链末尾(c链为等待条件变量的进程)
singal(c):此时表明条件变量c有空闲,如果c链非空,则唤醒第一个等待者,此进程进入紧急等待队列,否则为空操作,该进程继续执行
6.3 MESA管程
因为Hoare管程存在一个缺点:两次额外的进程切换
将signal信号改为notify,这样唤醒其他进程的进程考可以继续执行
改进notify:关联计时器,到达一段时间无论是否被notify都设为就绪态,因为最后会再次检查相关条件满足才能唤醒运行,这样还可以避免进程一直饥饿
Broadcast:广播,在不知道有多少进程将被激活的情况下适用
6.5:
基本通信方式:
消息传递
共享内存
管道:字符流写入读出,先进先出,需要协调能力
套接字
远程过程调用
6.6:
原子操作:不可分割
屏障:一组线程协同完成一个任务再在一个汇合点一起向前推进
北大操作系统陈向群第六章知识点相关推荐
- 华文慕课北大操作系统陈向群第六章课后习题解析
1.(5分) 下列关于管程的描述中,哪一个是不正确的? A. 管程中需要提供互斥量以保证管程的互斥性 B. 管程有自己的名字 C. 管程的主要作用是管理共享资源(数据结构) D. 进程只能调用管程提供 ...
- 北大操作系统陈向群第七章知识点
7.1 地址重定位:将逻辑地址转化为物理地址的过程 静态重定位: 当用户程序加载到内存的时候一次性实现转化 一般可由软件完成 动态重定位: 在逐条指令执行时实现转化 需要硬件部件支持 7.2 内存分配 ...
- 北大操作系统陈向群第十一章知识点
设备的分类: 按数据组织: 块设备: 以数据块为单位存储传输信息,速率高,可寻址 字符设备: 以字符为单位存储传输信息,速率低,不可寻址 按资源分配角度: 独占设备: 在一段时间内能被多个进程使用,大 ...
- 华文慕课北大操作系统陈向群第四章课后习题解析
1.(5分) 下列哪一个调度算法的开销比较小? A. 先来先服务(FCFS) B. 短作业优先(SJF) C. 多级反馈队列(Feedback) D. 最高相应比优先(HRRN) 答案:A 先来先服务 ...
- 华文慕课北大操作系统陈向群第五章课后习题解析
1.(5分) 多个进程并发执行时,各个进程应互斥进入其临界区,所谓临界区是指 A. 一段程序 B. 一段数据区 C. 一个缓冲区 D. 一种同步机制 2.(5分) 下列哪一种场景问题只包含进程互斥问题 ...
- 华文慕课北大操作系统陈向群第七章课后习题解析
1.(5分) 为了保证CPU执行程序指令时能正确访问存储单元,需要将用户进程中的逻辑地址转换为运行时可由CPU直接寻址的物理地址,这一过程称为: A. 地址映射 B. 地址分配 C. 地址计算 D. ...
- 华文慕课北大操作系统陈向群第二章课后题解析
1.(5分) 控制和状态寄存器用于控制处理器的操作,在某种特权级别下可以访问.修改.下列哪一个不是控制和状态寄存器 A. 程序计数器(PC) B. 指令寄存器(IR) C. 程序状态字(PSW) D. ...
- 华文慕课北大操作系统陈向群第八章课后习题解析
1.(5分) 提出存储层次体系的主要依据是 A. 虚拟存储技术 B. 存储保护技术 C. 多道程序设计技术 D. 程序访问的局部性原理 答案:D 背诵orz 2.(5分) 虚拟页式存储系统中页表的作用 ...
- 北大操作系统陈向群第八章知识点
大部分知识点王道已经覆盖,这里整理的是个人疏忽或者不熟悉的内容 页框锁定: 因为采用虚存技术会使得进程的运行时间变的不确定,所以给每个页框增加一个锁定位,不让操作系统将核心代码,关键数据结构,正在I/ ...
最新文章
- 北京智源行动计划发布,北京智源人工智能研究院揭牌成立
- debian6之eclipse和jdk安装
- 世上最详细的子网划分教程,看完保证会
- 20+ Rsync command’s switches and common usages with examples – Unix/Linux--reference
- C语言读入文件全部内容的方法
- AXIS2使用问题解决点滴
- gulp-babel 阻止了js文件编译的进程?
- HihoCoder - 1558
- 湖北省2021年技能高考计算机类分数线,关于湖北省2021年普通高校招生录取控制分数线的通知!...
- 卡尺测量的最小范围_车间里常用的测量器具,别说没见过!
- 列转行 oracle11g,PostgreSQL 实现列转行问题
- 三菱PLC自带FIFO操作指令编程应用
- javaee之用户信息增删改查案例
- 软件工程师具体的工作内容是什么?
- Java在线教育项目 第四天文章搜索前后端成形记 实名认证审核
- BottomNavigationView与Navigation使用
- 卷积中反转平移的理解
- 用ipad给linux做第二屏幕,让iPad变成你电脑的第二显示屏,无论工作还是生活都相当实用!...
- 真无线蓝牙耳机哪款音质最好?真无线蓝牙耳机音质排行榜
- 前端使用滑块滑动进行验证的思路
热门文章
- 工业数据分析为什么要用FusionInsight MRS IoTDB?
- geotools实现坐标系转换
- CAN 协议控制器和物理总线之间的接口芯片SIT1040T 高速 CAN 总线收发器
- SIT1040T,芯力特CAN接口芯片,参数描述,完美替代TJA1040
- java怎么导入到安卓手机,android导入excel表格数据-随手记记账记录如何导出到EXCEL(安卓版)...
- 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)
- java新技术有哪些,转疯了!
- 【人脸融合】Java使用百度AI整合OpenCV实现人脸融合效果
- C语言递归解决八皇后问题
- Streamsets 安装额外Stage包——CDH6.3.0包报错REST API call error: java.io.EOFException