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. 华文慕课北大操作系统陈向群第六章课后习题解析

    1.(5分) 下列关于管程的描述中,哪一个是不正确的? A. 管程中需要提供互斥量以保证管程的互斥性 B. 管程有自己的名字 C. 管程的主要作用是管理共享资源(数据结构) D. 进程只能调用管程提供 ...

  2. 北大操作系统陈向群第七章知识点

    7.1 地址重定位:将逻辑地址转化为物理地址的过程 静态重定位: 当用户程序加载到内存的时候一次性实现转化 一般可由软件完成 动态重定位: 在逐条指令执行时实现转化 需要硬件部件支持 7.2 内存分配 ...

  3. 北大操作系统陈向群第十一章知识点

    设备的分类: 按数据组织: 块设备: 以数据块为单位存储传输信息,速率高,可寻址 字符设备: 以字符为单位存储传输信息,速率低,不可寻址 按资源分配角度: 独占设备: 在一段时间内能被多个进程使用,大 ...

  4. 华文慕课北大操作系统陈向群第四章课后习题解析

    1.(5分) 下列哪一个调度算法的开销比较小? A. 先来先服务(FCFS) B. 短作业优先(SJF) C. 多级反馈队列(Feedback) D. 最高相应比优先(HRRN) 答案:A 先来先服务 ...

  5. 华文慕课北大操作系统陈向群第五章课后习题解析

    1.(5分) 多个进程并发执行时,各个进程应互斥进入其临界区,所谓临界区是指 A. 一段程序 B. 一段数据区 C. 一个缓冲区 D. 一种同步机制 2.(5分) 下列哪一种场景问题只包含进程互斥问题 ...

  6. 华文慕课北大操作系统陈向群第七章课后习题解析

    1.(5分) 为了保证CPU执行程序指令时能正确访问存储单元,需要将用户进程中的逻辑地址转换为运行时可由CPU直接寻址的物理地址,这一过程称为: A. 地址映射 B. 地址分配 C. 地址计算 D. ...

  7. 华文慕课北大操作系统陈向群第二章课后题解析

    1.(5分) 控制和状态寄存器用于控制处理器的操作,在某种特权级别下可以访问.修改.下列哪一个不是控制和状态寄存器 A. 程序计数器(PC) B. 指令寄存器(IR) C. 程序状态字(PSW) D. ...

  8. 华文慕课北大操作系统陈向群第八章课后习题解析

    1.(5分) 提出存储层次体系的主要依据是 A. 虚拟存储技术 B. 存储保护技术 C. 多道程序设计技术 D. 程序访问的局部性原理 答案:D 背诵orz 2.(5分) 虚拟页式存储系统中页表的作用 ...

  9. 北大操作系统陈向群第八章知识点

    大部分知识点王道已经覆盖,这里整理的是个人疏忽或者不熟悉的内容 页框锁定: 因为采用虚存技术会使得进程的运行时间变的不确定,所以给每个页框增加一个锁定位,不让操作系统将核心代码,关键数据结构,正在I/ ...

最新文章

  1. 北京智源行动计划发布,北京智源人工智能研究院揭牌成立
  2. debian6之eclipse和jdk安装
  3. 世上最详细的子网划分教程,看完保证会
  4. 20+ Rsync command’s switches and common usages with examples – Unix/Linux--reference
  5. C语言读入文件全部内容的方法
  6. AXIS2使用问题解决点滴
  7. gulp-babel 阻止了js文件编译的进程?
  8. HihoCoder - 1558
  9. 湖北省2021年技能高考计算机类分数线,关于湖北省2021年普通高校招生录取控制分数线的通知!...
  10. 卡尺测量的最小范围_车间里常用的测量器具,别说没见过!
  11. 列转行 oracle11g,PostgreSQL 实现列转行问题
  12. 三菱PLC自带FIFO操作指令编程应用
  13. javaee之用户信息增删改查案例
  14. 软件工程师具体的工作内容是什么?
  15. Java在线教育项目 第四天文章搜索前后端成形记 实名认证审核
  16. BottomNavigationView与Navigation使用
  17. 卷积中反转平移的理解
  18. 用ipad给linux做第二屏幕,让iPad变成你电脑的第二显示屏,无论工作还是生活都相当实用!...
  19. 真无线蓝牙耳机哪款音质最好?真无线蓝牙耳机音质排行榜
  20. 前端使用滑块滑动进行验证的思路

热门文章

  1. 工业数据分析为什么要用FusionInsight MRS IoTDB?
  2. geotools实现坐标系转换
  3. CAN 协议控制器和物理总线之间的接口芯片SIT1040T 高速 CAN 总线收发器
  4. SIT1040T,芯力特CAN接口芯片,参数描述,完美替代TJA1040
  5. java怎么导入到安卓手机,android导入excel表格数据-随手记记账记录如何导出到EXCEL(安卓版)...
  6. 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)
  7. java新技术有哪些,转疯了!
  8. 【人脸融合】Java使用百度AI整合OpenCV实现人脸融合效果
  9. C语言递归解决八皇后问题
  10. Streamsets 安装额外Stage包——CDH6.3.0包报错REST API call error: java.io.EOFException