管道、管程、管态的区别
管道、管程、管态的区别
总结对比
用途 | 性质 | |
---|---|---|
管程 | 用于进程同步 | 一个数据结构,用于我们方便管理一系列的信号量,同时封装信号量操作 |
管道pipe | 用于进程通讯 | pipe的通讯时基于文件系统的,那么pipe就是一个实际上的文件,我们通过这个文件的IO来间接的实现进程之间的通讯 |
管态 | 控制进程的权限 | PCB之中的一个标识,用于确认目前进程的权限状态 |
借鉴一下别人的文章:
管程
(进程同步)将共享变量以及对于共享变量所能进行的所有操作集中在一个模块中,一个操作系统或并发程序与由若干个这样的模块所构成,由于一个模块通常较短,模块之间联系清晰,提高了可读性,便于维护和修改,正确性易于保证。
管道
(进程通信 还有socket、信箱、信号量、共享内存、消息队列等方式)
所谓管道,就是连接在两个进程之间的一个打开的共享文件,专用于进程之间进行数据通信。发送进程可以源源不断地从管道一端写入数据流,每次写入的长度是可变的;接收进程在需要时可以从管道的另一端读出数据,读出单位长度也是可变的。显然,管道通信的基础是文件系统。
管态
管态(系统态) V.S 目态(用户态)
CPU交替执行操作系统程序和用户程序。
CPU的状态属于程序状态字PSW的一位。大多数计算机系统将CPU执行状态分为管态和目态。
管态又叫特权态,系统态或核心态。CPU在管态下可以执行指令系统的全集。通常,操作系统在管态下运行。
目态又叫常态或用户态。机器处于目态时,程序只能执行非特权指令。用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏系统。
从目态转换为管态的唯一途径是中断。
从管态到目态可以通过修改程序状态字来实现,这将伴随这由操作系统程序到用户程序的转换。
管道、管程、管态的区别相关推荐
- 海外仓头程有什么作用,海外仓头程与FBA海外仓头程有什么区别
海外仓头程的操作模式跟自助交付的不大一样,卖家要将货物运输到目的地仓库,可以借助海外仓头程服务,通过陆运.空运.海运等方式将货物送到海外仓.客户下单后,可以直接从海外仓库发货,大大的减少了物流时效.那 ...
- go语言协程和线程区别
go语言协程和线程区别 一.线程和协程区别 主线程是一个物理线程,直接作用在 cpu 上的.是重量级的,非常耗费 cpu 资源. Go 主线程(/也可以理解成进程)一个 Go 线程上,可以起多个协程. ...
- java 协程线程的区别_为什么 Java 坚持多线程不选择协程?
谢邀. 先说结论:协程是非常值得学习的概念,它是多任务编程的未来.但是Java全力推进这个事情的动力并不大. 先返回到问题的本源.当我们希望引入协程,我们想解决什么问题.我想不外乎下面几点:节省资源, ...
- 管道命令和xargs的区别(经典解释)
原文地址:http://blog.csdn.net/yongan1006/article/details/8134581 一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面 ...
- ERP、MES、APS在生产排程上的区别?
我们都知道ERP系统主要是对整个企业与集团之间的全面掌控,MES重点在于生产车间现场的管理,APS主要是针对生产计划与排程.然而三个系统在生产排程功能有重合,我们该如何进行正确区分? 我们主要从企业最 ...
- java 协程线程的区别_线程和协程的区别的通俗说明
表面上看协程和线程似乎是同一个东西,能达到的效果也相同,但是在底层的实现上却有着非常大的区别,在服务器端的绝大部分应用中,协程要比线程节省资源的多. 通俗易懂的讲,线程是操作系统的资源,当java程序 ...
- python协程和线程区别_Python中进程、线程、协程及其区别
以下为复制内容: https://blog.csdn.net/mr__l1u/article/details/81772073 1> 进程.线程和协程的认识: 进程是系统进行资源分配和调度的独立 ...
- python线程协程进程的区别_进程和线程、协程的区别
现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来.python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程.本文主要介绍进程.线程和协程三者之间的区 ...
- RoHS、无铅制程、无卤 三种制程要求的区别
一.RoHS是欧盟对电子电器产品不能超标含有某些有害物质的禁令:在具体产品生产中,从原材料的选择.采购到制程中可能会污染产品(和产品接触)的生产辅助材料,都必须不能超标含有(有最大允许浓度)Pb(铅) ...
最新文章
- Zookeeper集群部署和使用
- 彻底解决Spring mvc中时间的转换和序列化等问题
- docker 上下文环境 忽略文件 .dockerignore 简介
- MFC中如何从EDIT控件中获取文字
- SAP Spartacus RouterState
- 使用CloudFlare 的 PKI 工具集 cfssl 来生成 Certificate Authority (CA) 证书和秘钥文件
- Quartus prime16.0 与modelsim ae 联调
- 常用的免费Webservice接口(二)
- Linux Systemcall By INT 0x80、Llinux Kernel Debug Based On Sourcecode
- solr 如何实现精确查询
- jest自动化测试遇到的一些报错信息及解决方案
- RuntimeError: view size is not compatible with input tensor‘s size and stride
- 计算机组成模型机的视频教学,3CPU 3设计模型机 罗克露计算机组成原理课件(绝对与网上视频教程同步).pdf...
- python输出一棵树_如何用Python画一棵树
- 2022 CCF国际AIOps挑战赛决赛暨AIOps研讨会成功举办
- 设置view 的MarginTop
- 基于单片机水温自动控制系统设计-毕设课设资料
- 孟子《生于忧患,死于安乐》日:“故天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。”...
- 【教学类-22-01】20221207《八款字体的描字帖-2*4格横条-用订书机》(中班描字)
- UE5实现贴地面效果(RT+Decal)