管程定义:

代表共享数据资源的【数据结构】以及由对该共享数据结构实施操作的【一组过程】组成的资源管理程序。

(1)进程对共享资源的申请、释放和其他操作必须通过这组过程,间接地对共享数据结构实现操作。

(2)每次只能由一个进程进入管程,执行这组过程,使用共享资源,达到对共享资源所有访问的统一管理,有效地实现进程互斥。

管程构成:名称、共享数据结构、操作数据的一组过程、数据初始化

条件变量:

一个进程被阻塞或挂起的条件由多个,因此在管程中设置了多个条件变量,对这些条件变量的访问只能在管程中进行。

每个条件变量保存了一个链表,用于记录因该条件变量而阻塞的所有进程,同时提供操作wait和signal。

(1)x.wait:调用管程的进程因条件x需要被阻塞或挂起,则调用x.wait将自己插入到x条件的等待队列上,并释放管程,直到x条件变化。此时其他进程可以使用该管程。

(2)x.signal:正在调用管程的进程发现x条件发生了变化,则调用x.signal,重新启动一个因x条件而阻塞或挂起的进程,如果存在多个这样的进程,则选择其中一个,如果没有,继续执行原进程。(信号量singal执行s++,而管程不执行)

管程中包含面向对象的思想,将数据和操作都封装在一个对象的内部,隐藏了实现的细节。

管程内部数据只能通过管程的进程访问;管程的过程只能访问内部的数据。

【管程的特性】

模块化:管程是一个基本程序单位,可以单独编译

抽象数据类型:管程中不仅由数据,而且由对数据的操作

信息掩蔽:管程中的数据只能被管程的过程调用

进程和管程的不同

题目:

【操作系统】进程:管程相关推荐

  1. python线程进程协程面试_Python学习经验之谈:关于协程的理解和其相关面试问题...

    都知道Python非常适合初学者学习来入门编程,昨天有伙伴留言说面试了Python岗位,问及了一个关于协程的问题,想了想还是跟大家出一篇协程相关的文章和在Python面试中可能会问及的相关面试问题.都 ...

  2. 操作系统——进程与线程の选择题整理

    进程与线程 1.进程与程序的根本区别是() A.静态和动态特点 B.是不是被调入内存 C.是不是具有就绪.运行和等待三种状态 D.是不是占有处理器 解析:选A 动态性是进程最重要的特性,操作系统引入进 ...

  3. linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt

    <linux操作系统-进程管理和打印管理.ppt>由会员分享,可在线阅读,更多相关<linux操作系统-进程管理和打印管理.ppt(25页珍藏版)>请在装配图网上搜索. 1.进 ...

  4. 操作系统——进程之基本介绍

    操作系统--进程之基本介绍 一.进程的概念 1.进程和进程实体 2.进程的组织方式 3.进程的特征 二.进程的状态与转换 1.进程的状态 2.进程的转换 三.进程控制 1.定义 2.原语控制 ①创建原 ...

  5. 操作系统——进程之处理机调度

    操作系统--进程之处理机调度 一.处理机调度的本概念和层次 1.高级调度(作业调度) 2.中级调度(内存调度) 3.低级调度(进程调度) 二.进程调度的时机.切换与过程.方式 1.进程调度的时机 2. ...

  6. 操作系统-进程方案知识详解

    操作系统-进程方案 进程的概念 进程调度 操作进程 进程间通信 系统的例子IPC 客户机-服务器系统中的通信 目标 介绍进程的概念--一个正在执行的程序,它构成了所有计算的基础 描述过程的各种特性,包 ...

  7. 操作系统 - 进程与线程的区别[超详解]

    操作系统 - 进程与线程的区别[超详解]面试高频考题

  8. 操作系统 - 进程和内存

    操作系统 - 进程和内存 操作系统内核和Shell 系统调用 进程管理 1. 进程控制块PCB 2. 进程的状态 3. 进程通信 3.1 共享存储 3.2 管道 Or 无名管道 3.3 有名管道 3. ...

  9. 操作系统——进程和线程的区别

    操作系统--进程和线程的区别 最近学习了操作系统中的进程和线程这两个知识点,昨天老师给我们出了一道题:进程和线程的区别.听完题目后一脸懵逼,只想到了进程的一部分概念,回来之后就查书,找到了答案. 1. ...

  10. 操作系统 --- 进程和管程的不同

    1.进程定义的是私有数据结构PCB,管程定义的是公共数据结构,如消息队列等; 2.进程是由顺序程序执行有关操作,而管程主要是进行同步操作和初始化操作; 3.设置进程的目的在于实现系统的并发行,而管程的 ...

最新文章

  1. Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易
  2. 类的包访问权限:《Java编程思想》中一段话的困惑
  3. 开源软件5大常见问题及解决方法
  4. 一个功能函数所具备的要素
  5. JQuery中checkbox勾选/取消勾选的诡异问题(attr和prop)
  6. **Java有哪些悲观锁的实现_Redis 分布式锁的正确实现方式(Java版)
  7. 多目标遗传优化算法nsga2求解复杂约束问题【python源码实现,二进制编码】
  8. libcurl linux 静态链接库_Linux学习:Makefile 模板(动态库、静态库、可执行程序)...
  9. Eclipse Alt+/ Content Assistant
  10. 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】
  11. ceph常用命令-pool相关命令
  12. 轻量级Web应用程序框架:PrimeFaces(JSF)+ Guice + MyBatis(第2部分)
  13. Expression Design与Blend制作滚动的小球动画教程
  14. NHibernate,我越看越傻了.........
  15. React源码分析 - 组件初次渲染
  16. 全国计算机一级模拟软件安装教程
  17. PHP开发环境准备,PHPWAMP使用,图文教程
  18. python中水量_Python居然还能用于巨大的工程项目!比如三峡发电量估算系统!
  19. 博客9-12css2
  20. 语法树,短语,直接短语,句柄

热门文章

  1. 语音识别是不是人工智能?
  2. java 下载图片流
  3. BIGEMAP如何将高程数据转成南方CASS的DAT格式
  4. 雨听 | 英语学习笔记(十)~作文范文:怎样提高学生体能?
  5. 对计算机专业英语的建议,中职计算机专业英语教学现况与建议论文
  6. BetaFlight深入传感设计之三:IMU传感模块
  7. 【java多线程02】JAVA线程
  8. 两化融合贯标之-申请表案例
  9. 哈夫曼编码的简单实例
  10. JS字符串切割 data.split();