弄懂“进程”(上):3个组成部分、4个基本特征、4个基本状态
目录
进程实体的三个部分
1.PCB
2.程序段
3.相关的数据段
进程的四大特征
1.动态性
2.并发性
3.独立性
4.异步性
进程的状态(3个基本+挂起)
1.三个基本状态
2.挂起状态
进程实体的三个部分
1.PCB
作用是让参与并发执行的每个程序独立运行,或者说,是让程序变成可以并发执行的进程。
系统正是通过PCB来感知进程、控制进程,且由于PCB会被系统频繁访问,因此PCB要全部或部分常驻内存。
PCB包含了OS所需的、用于描述进程当前状况以及控制进程的全部信息。主要有
① 进程标识符。进程在OS中的身份证,也可以用来描述进程间的父子关系。
② 处理机状态。处理机当中各种寄存器的内容,用于CPU切换时保存现场信息以及恢复现场信息。
③ 进程调度信息。进程调度和对换的依据。包括进程状态、优先级、等待和使用CPU的时间总和等。
④ 进程控制信息。用于控制进程,包括程序和数据的地址、进程同步和通信信息、资源清单、进程队列指针等。
2.程序段
3.相关的数据段
进程的四大特征
1.动态性
从定义就可以看出:进程是具有独立功能的程序在一个数据集合上的运行过程。
另一个表现是进程具有生命周期:由创建而产生、由调度而执行、由撤消而消亡。
2.并发性
引入进程就是为了并发,也就是让多个进程实体同存于内存中,且在一段时间内同时执行。只有为程序创建了进程,才能实现多个程序正确地并发执行。
3.独立性
进程是能够运行、OS分配资源、OS进行调度的独立单位。
4.异步性
建立在独立的基础之上,进程能够按照不可预知的速度各自向前推进。虽然但是,OS必须保证并发执行的结果能够再现。
进程的状态(3个基本+挂起)
1.三个基本状态
分别是就绪、执行和阻塞状态。
就绪状态:万事具备、只差CPU。
执行状态:一个处理机最多一个执行状态的进程,可以有就绪队列、阻塞队列,但没有执行队列。
阻塞状态:正在执行状态的进程需要等待一些事情完成才能再去竞争CPU。
实际的系统当中还会引入创建和终止两个状态。
一个进程要是还处在被创建的过程当中就是创建状态。
当一个进程运行结束之后,OS把它的PCB之外的所有资源都给回收了,等待别的进程从它的PCB重收集信息,处于终止状态。
2.挂起状态
一句话概括挂起:不被激活就不能够继续执行。
挂起状态就是静止状态。
常常被用在进程对换当中,被换出(也就是挂起)的进程可以腾出空间给就绪进程。
还用于:方便用户考查运行的进程、父进程考查子进程、OS检查资源使用情况。
参考: 《计算机操作系统(第四版)--学习指导与题解》 梁红兵 汤小丹 汤子瀛
相关文章:

解决Failed to execute goal org.apache.maven.plugins
1.Maven构建失败 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin: 2.3 . 2 :compile ( default-compile) on project oecp: Compilation failure 2.解决方法 把jdk换成自己安装的jdk 换后,再maven install就可以了转载于:https://www.cnb…

P4722 【模板】最大流
P4722 【模板】最大流 加强版 / 预流推进 今日心血来潮,打算学习hlpp 然后学了一阵子。发现反向边建错了。容量并不是0.qwq 然后就荒废了一晚上。 算法流程的话。有时间补上 #include<cstdio> #include<algorithm> #include<iostream> #include&l…

与我们的书合影——在2009北京国际图书展(BIBF)
2009年9月5日,武汉博文编辑许莹、夏青观看了于国展旧馆(静安庄)举行的2009北京国际图书展(BIBF)“专业场”。在电子工业出版社展台,编辑兴奋地与我们的几本畅销书(《把时间当作朋友》、《走出软…

弄懂“进程”(下):进程的控制、同步和通信
进程控制 是进程管理的主要功能,负责创建和终止进程、进程执行过程中的状态转换。 由操作系统内核通过原语实现。 1.OS内核 常驻内存的、紧靠硬件的软件层次,运行在系统态(又称管态、内核态),以免遭到用户程序的破坏。 主要包括…

(转自Timon's wang blogs)C#实现web信息自动抓取
原文转自:http://www.csharp.net.cn/post/C实现web信息自动抓取.html主要为了学习一下相关的网络蜘蛛,为自己获取信息使用背景 随着Internet的普及,网络信息正以极高的速度增长,在这么多数据中找到自己需要的信息是一件很繁琐的事…

数据结构-栈与队列
栈的定义 栈是限定仅在表尾进行插入和删除操作的线性表 我们把允许插入和删除的一端称为栈顶 (top) ,另一端称为栈底 (bottom) ,不含任何数据元素的栈称为空栈。 栈又称为后进先出 (Last In Filrst Out) 的线性表,简称LIFO结构。 理解栈的定义…

雷观(七):靠谱的程序员,不是随便一个码农就可以做到的
在学习Web开发4年之后,我自己可以独立做一些基本的项目了。在加入前单位秒针,也做了几个Web项目。 我发现一个现象,很多公司大部分的Web项目,用到的技术很少,主要就是SSH等框架,实现一些行业的业务逻辑&…

1032 Sharing
思路很简单,不要想多了,就是找第一个出现的共同字母,即使后面不一样了也没关系。 经验收获如下: 1. 5位整数算小整数,用静态链表,本质上是哈希。 2. 读入字符型的时候千万注意空格。 AC代码 #include&…

Magento开发的特点有哪些?
Magento是一套专业开源的电子商务系统,也是目前主流的外贸网站购物系统,都是居于PHP语言开发的,数据库使用的是Mysql,且浏览界面很适合欧美用户的使用习惯。Magento开发设计得非常灵活,具有模块化架构体系和丰富的功能…

Linux多任务编程之五:exit()和_exit()函数(转)
来源:CSDN 作者:王文松 转自:Linux公社 ------------------------------------------------------------------------------------------------------------------------------------------------ wait()和waitpid() 函数说明 wait()函数用…

LogMiner日志分析工具的使用
1.安装logminer: 要安装LogMiner工具,必须首先要运行下面这样两个脚本, $ORACLE_HOME/rdbms/admin/dbmslm.sql $ORACLE_HOME/rdbms/admin/dbmslmd.sql. 这两个脚本必须均以SYS用户身份运行。 *************使用字典文件…

1052 Linked List Sorting
1. 开始测试点4不通过,得分24/25,是忽略了所有节点都不在链表上的特殊情况。 2. 其实就是用静态链表,把结点根据值的大小,升序排列,所以一开始把每个结点的key赋值为超出最大值的maxn,是为了方便输出。 3…

C#尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
用VS2012调试时发现在调用数据集时提示“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。” 用管理员身份运行CMD,输入netsh winsock reset并回车 转载于:https://www.cnblogs.com/CandiceW/p/4204552.html

TFS2008 + Windows2003 + Sql2005 安装注意事项
TFS2008并不是一个很容易安装的软件,很多时候能否顺利安装成功跟人品有关(笑),要想一次安装成功,强烈建议准备一个全新的干净系统。 1.系统 最好采用刚安装好的windows2003,注意要打上sp2,安装IIS(如果IIS默认站点的主…

发票拍照识别OCR
发票拍照识别系统还可与政府、企事业单位、工商等多个行业的业务流程系统无缝结合,辅助办公人员进行发票等单据的信息录入,提高资料电子化、数据格式化的效率。 那么发票拍照识别系统有哪些技术特点呢? 1、中安发票拍照识别系统支持安卓andro…

1097 Deduplication on a Linked List
1. 开始测试点4不通过,检查后发现是犯了低级错误,把表示绝对值有无出现的整型数组的大小设置为了4000(题目中说绝对值不会超过10的4次方),所以最小也该是10001。 2. 我认为和其他链表题相比,本题是不需要给结点加特殊属性用来排序…

搞定MyBatis
对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择。即使在持久层框架层出不…

6-6.用HLSL定义点光源
6-6.用HLSL定义点光源问题直到现在,你已经用定向光照亮你的场景,它对添加阳光到3D世界很有用。常常,你也将需要一个单点光照,例如手电筒或爆炸。这种光源叫点光源。方案从你的XNA项目传递点光源的3D位置到你的XNA effect。为每个顶…

2018 JVM 生态报告:79% 的 Java 开发者使用 Java 8
百度智能云 云生态狂欢季 热门云产品1折起>>> 2018 JVM 生态调查报告已于近日发布,该报告由 Snyk 和 The Java Magazine(Oracle 的双月刊)联合推出,旨在了解 JDK 的实现、工具、平台和应用方面的前景。基于超过 10200 …

广度优先搜索(BFS)模板
伪代码 void BFS(int S){queue<int> q;q.push(s);while(!q.empty()){取出队首元素top;访问队首元素top;将队首元素出队;将top的下一层结点中未曾入队的结点全部入队,并设置为已入队;} } 说明 1. 定义队列q,并将起点s入队 2. 写一个while循环&a…

static关键字和内存使用
1 static静态的,用来修饰属性,方法,代码块,内部类 2 当其中一个变量对此属性进行修改,会导致其他对象对此属性的一个调用 vs 实例变量:对象各有一套副本 3 静态变量和方法随着类的加载而加载,可…

转载:用 Tomcat 和 Eclipse 开发 Web 应用程序
原文地址:http://www.ibm.com/developerworks/cn/opensource/os-eclipse-tomcat/所需的组件 Eclipse V3.2 Callisto 集成开发环境 (IDE) 包括了用于 Web 开发及与服务器集成的工具。所以,除了软件开发工具箱 (SDK) 之外,只需安装 Eclipse 和 Apache Tomc…

【学习——字符串】字符串之一网打尽quq
学弟lyh上午讲课,喜闻乐见的制胡窜 一上午讲惹KMP, manachar, trie树, AC自动机 orz 例题都是洛咕咕上的, 贴一下(督促自己不要咕 AC自动机不会qaq(并且没有学的意向 manachar 没写过 P4555 […

分别用BFS和DFS求给定的矩阵中“块”的个数
目录 背景介绍 BFS实现 基本思想 获取相邻位置元素技巧 BFS函数 DFS实现 基本思想 DFS函数 完整代码 背景介绍 背景 给出一个mxn的矩阵,矩阵中的元素为0或1。称位置(x,y)与其上下左右四个位置(x,y1),(x,y-1),(x-1,y),(x1,y)是相邻的。如果矩阵中有若干(…

[Python_7] Python Socket 编程
0. 说明 Python Socket 编程 1. TCP 协议 [TCP Server] 通过 netstat -ano 查看端口是否开启 # -*-coding:utf-8-*-"""TCP 协议的 Socket 编程,Server 端Server 端绑定到指定地址,监听特定的端口,接受发来的连接请求 "&q…

2014.12.01 B/S之windows8.1下安装IIS
1、打开 控制面板——程序——程序和功能——启用或关闭windows功能 2、找到Internet信息服务 3、等待安装完毕即可 4、控制面板——系统和安全——管理工具——Internet Information Services (IIS)管理器 默认路径为 C:\inetpub\wwwroot 路径更改以后记得更改权限。 转载于:h…

[分享]C# 获取Outlook帐号和密码
[分享]C# 获取Outlook帐号和密码http://www.vjsdn.com/bbs/bbsTopicDetails.aspx?pid108281214 转载于:https://www.cnblogs.com/vjsdn/archive/2009/09/26/1574341.html

BFS:走出迷宫并输出最小步数
目录 背景 描述 例子 思路 完整代码 收获总结 背景 描述 给定一个n*m大小的迷宫,其中*代表不可通过的墙壁,而“.”代表墙壁,S表示起点,T代表重点。移动过程中,如果当前位置是(x,y)(下标从0开始),且…

人工智能和机器学习领域有哪些有趣的开源项目
人工智能和机器学习领域有哪些有趣的开源项目?投递人 itwriter 发布于 2014-12-02 11:21 评论(0) 有20人阅读 原文链接 [收藏] 本文简要介绍了 10 款 Quora 上网友推荐的 人工智能和机器学习领域方面的开源项目。 GraphLab GraphLab 是一种新的面向机器学习…

复杂度归纳--小结
一、复杂度分析的4个概念1.最坏情况时间复杂度:代码在最理想情况下执行的时间复杂度。2.最好情况时间复杂度:代码在最坏情况下执行的时间复杂度。3.平均时间复杂度:用代码在所有情况下执行的次数的加权平均值表示。4.均摊时间复杂度ÿ…