【操作系统】进程:管程
管程定义:
代表共享数据资源的【数据结构】以及由对该共享数据结构实施操作的【一组过程】组成的资源管理程序。
(1)进程对共享资源的申请、释放和其他操作必须通过这组过程,间接地对共享数据结构实现操作。
(2)每次只能由一个进程进入管程,执行这组过程,使用共享资源,达到对共享资源所有访问的统一管理,有效地实现进程互斥。
管程构成:名称、共享数据结构、操作数据的一组过程、数据初始化
条件变量:
一个进程被阻塞或挂起的条件由多个,因此在管程中设置了多个条件变量,对这些条件变量的访问只能在管程中进行。
每个条件变量保存了一个链表,用于记录因该条件变量而阻塞的所有进程,同时提供操作wait和signal。
(1)x.wait:调用管程的进程因条件x需要被阻塞或挂起,则调用x.wait将自己插入到x条件的等待队列上,并释放管程,直到x条件变化。此时其他进程可以使用该管程。
(2)x.signal:正在调用管程的进程发现x条件发生了变化,则调用x.signal,重新启动一个因x条件而阻塞或挂起的进程,如果存在多个这样的进程,则选择其中一个,如果没有,继续执行原进程。(信号量singal执行s++,而管程不执行)
管程中包含面向对象的思想,将数据和操作都封装在一个对象的内部,隐藏了实现的细节。
管程内部数据只能通过管程的进程访问;管程的过程只能访问内部的数据。
【管程的特性】
模块化:管程是一个基本程序单位,可以单独编译
抽象数据类型:管程中不仅由数据,而且由对数据的操作
信息掩蔽:管程中的数据只能被管程的过程调用
进程和管程的不同
题目:
【操作系统】进程:管程相关推荐
- python线程进程协程面试_Python学习经验之谈:关于协程的理解和其相关面试问题...
都知道Python非常适合初学者学习来入门编程,昨天有伙伴留言说面试了Python岗位,问及了一个关于协程的问题,想了想还是跟大家出一篇协程相关的文章和在Python面试中可能会问及的相关面试问题.都 ...
- 操作系统——进程与线程の选择题整理
进程与线程 1.进程与程序的根本区别是() A.静态和动态特点 B.是不是被调入内存 C.是不是具有就绪.运行和等待三种状态 D.是不是占有处理器 解析:选A 动态性是进程最重要的特性,操作系统引入进 ...
- linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt
<linux操作系统-进程管理和打印管理.ppt>由会员分享,可在线阅读,更多相关<linux操作系统-进程管理和打印管理.ppt(25页珍藏版)>请在装配图网上搜索. 1.进 ...
- 操作系统——进程之基本介绍
操作系统--进程之基本介绍 一.进程的概念 1.进程和进程实体 2.进程的组织方式 3.进程的特征 二.进程的状态与转换 1.进程的状态 2.进程的转换 三.进程控制 1.定义 2.原语控制 ①创建原 ...
- 操作系统——进程之处理机调度
操作系统--进程之处理机调度 一.处理机调度的本概念和层次 1.高级调度(作业调度) 2.中级调度(内存调度) 3.低级调度(进程调度) 二.进程调度的时机.切换与过程.方式 1.进程调度的时机 2. ...
- 操作系统-进程方案知识详解
操作系统-进程方案 进程的概念 进程调度 操作进程 进程间通信 系统的例子IPC 客户机-服务器系统中的通信 目标 介绍进程的概念--一个正在执行的程序,它构成了所有计算的基础 描述过程的各种特性,包 ...
- 操作系统 - 进程与线程的区别[超详解]
操作系统 - 进程与线程的区别[超详解]面试高频考题
- 操作系统 - 进程和内存
操作系统 - 进程和内存 操作系统内核和Shell 系统调用 进程管理 1. 进程控制块PCB 2. 进程的状态 3. 进程通信 3.1 共享存储 3.2 管道 Or 无名管道 3.3 有名管道 3. ...
- 操作系统——进程和线程的区别
操作系统--进程和线程的区别 最近学习了操作系统中的进程和线程这两个知识点,昨天老师给我们出了一道题:进程和线程的区别.听完题目后一脸懵逼,只想到了进程的一部分概念,回来之后就查书,找到了答案. 1. ...
- 操作系统 --- 进程和管程的不同
1.进程定义的是私有数据结构PCB,管程定义的是公共数据结构,如消息队列等; 2.进程是由顺序程序执行有关操作,而管程主要是进行同步操作和初始化操作; 3.设置进程的目的在于实现系统的并发行,而管程的 ...
最新文章
- Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易
- 类的包访问权限:《Java编程思想》中一段话的困惑
- 开源软件5大常见问题及解决方法
- 一个功能函数所具备的要素
- JQuery中checkbox勾选/取消勾选的诡异问题(attr和prop)
- **Java有哪些悲观锁的实现_Redis 分布式锁的正确实现方式(Java版)
- 多目标遗传优化算法nsga2求解复杂约束问题【python源码实现,二进制编码】
- libcurl linux 静态链接库_Linux学习:Makefile 模板(动态库、静态库、可执行程序)...
- Eclipse Alt+/ Content Assistant
- 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】
- ceph常用命令-pool相关命令
- 轻量级Web应用程序框架:PrimeFaces(JSF)+ Guice + MyBatis(第2部分)
- Expression Design与Blend制作滚动的小球动画教程
- NHibernate,我越看越傻了.........
- React源码分析 - 组件初次渲染
- 全国计算机一级模拟软件安装教程
- PHP开发环境准备,PHPWAMP使用,图文教程
- python中水量_Python居然还能用于巨大的工程项目!比如三峡发电量估算系统!
- 博客9-12css2
- 语法树,短语,直接短语,句柄