进程三种基本状态

进程的三种基本状态:

(1)       就绪状态:进程已获得除CPU外的所有必要资源,只等待CPU时的状态。一个系统会将多个处于就绪状态的进程排成一个就绪队列。

(2)       执行状态:进程已获CPU,正在执行。单处理机系统中,处于执行状态的进程只一个;多处理机系统中,有多个处于执行状态的进程。

(3)       阻塞状态:正在执行的进程由于某种原因而暂时无法继续执行,便放弃处理机而处于暂停状态,即进程执行受阻。(这种状态又称等待状态或封锁状态)

通常导致进程阻塞的典型事件有:请求I/O,申请缓冲空间等。

一般,将处于阻塞状态的进程排成一个队列,有的系统还根据阻塞原因不同把这些阻塞集成排成多个队列。

在一些系统中,进程还有一种很重要的状态是:挂起状态(是该进程暂时不接受调度)。

另外,在实际系统中,为管理需要,还存在着两种比较常见的状态:创建状态和终止状态。

创建状态:此时,进程已经拥有了字节的PCB,但该进程所必需的资源或其它信息(如主存资源)尚未分配,进程自身还未进入主存,即创建工作尚未完成,进程还不能够被调度运行。

(创建进程的两个步骤: 为一个新进程创建PCB,并填写必要管理信息;把该进程转入就绪状态并插入就绪队列。)

终止状态:进程的终止首先要等待操作系统进行善后处理,然后将其PCB清零,并将PCB空间返还系统。

(当一个进程到达自然结束点或出现了无法克服的错误,或是被操作系统或其它有终止权的进程所终结,它将进入终止状态。进入终止状态的进程不能再执行,但在操作系统中依然保留一个记录,其中保存状态码和一些计时统计数据,供其它进程收集。一旦其它进程完成了对终止状态进程的信息提取之后,操作系统将删除该进程。

时间: 2024-10-27 10:29:19

进程三种基本状态的相关文章

持久化类的三种实例状态

一个持久化类的实例可能处于三种不同状态中的某一种.这三种状态的定义则与所谓的持久化上下文(persistence context)有关.hibernate的session对象就是这个所谓的持久化上下文. 瞬态:该实例从未与任何持久化上下文关联过.它没有持久化标识(相当于主键值). 持久化:实例目前与某个持久化上下文有关联.它拥有持久化标识(相当于主键值),并且可能在数据库中有一个对应的行.对于某一个特定的持久化上下文,hiberanate保证持久化标识与java标识(其值代表对象在内存中的位置)

模拟操作系统中进程的三种基础状态与内存的分配和回收(最佳适配算法)

利用键盘模拟进程的三种操作状态,并且使用C++中的list模板模拟内存的分配和回收. 能够模拟进程的创建与撤销过程 l可对进程的状态进行全面的控制 按先进先出方式管理就绪和阻塞队列,能够按队列形式输出进程状 用PCB代表进程,用全局变量表示进程的个数. 1 #include <iostream> 2 #include <list> 3 #include <numeric> 4 #include <algorithm> 5 #include<stdlib

hibernate的三种对象状态

1  上一个 project 2 三种状态的区分关键在于 a)有没有ID b)ID在数据库中有没有 c)在内存中有没有(session缓存) 3 三种状态: a)transient:内存中一个对象,没ID,缓存中也没有 b)persistent:内存中有,缓存中有,数据库有(ID) c)detached:内存有,缓存没有,数据库有,ID 4 对这三种状态需要关注的问题是在该状态下如果进行数据库的操作会发生什么结果,比 如改变属性的值会不会发出update语句?

实现CheckBox的三种选中状态(全选、半选、不选)在GridView中模拟树形的功能

度娘了很多帖子,只说三种状态要用图片替换来做,但没找到有用的例子,被逼自己写了一个 三方控件肯定是很多的,如jstree,可以直接用 由于公司的UDS限制,不能上传图片,只能文字说明了. 就是要在gridview中实现如下效果:一级.二级因为三级没有全部选中而显示半选状态 ?一级    ?二级       三级1        三级2 js↓ $(function(){ BindCheckNode(); $("span[name^='lblCheck']").click(checkBo

Git中三种文件状态及其转换

Git作为一种版本控制解决方案,由于其具有的分布式特性,正被越来越多的用户熟知,一些有名的开源项目,如:Linux kernel,CakePHP,Ruby on Rails等,都在使用Git进行版本管理. 在Git中,文件状态是一个非常重要的概念,不同的状态对应不同的操作.因此,要想熟练掌握Git的用法,需要了解Git的几种文件状态. 为了说明的方便,现在初始化一个项目,也就是将项目所在目录纳入Git的管理之下.假设项目目录为hello_world,初始化之后,在目录下新建README.txt文

进程三种状态间的转换

1.就绪——>执行 当进程调度程序为之分配处理机后,该进程便由就绪状态转变成执行状态: 2.执行——>就绪 处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态: 3.执行——>阻塞 正在执行的进程因等待某件事件发生而无法继续执行时,便由执行状态变成阻塞状态: 4.阻塞——>就绪 处于阻塞状态的进程,若其等待的事件已经发了,于是进程由阻塞状态转变为就绪状态: 15:38:2215:38:24 原文地址:https://w

Linux中atime、mtime、ctime三种时间状态

atime:access time 最近一次访问时间 mtime:modify time 最近一次修改时间(指的是修改文件内容,数据内容) ctime:change time 最近一次属性改变时间,inode节点信息被修改时间(大小.属组.属主.权限) touch.chmod.chown都会改变该值 1.当mtime改变时,ctime必须改变,因为文件大小等属性改变 2.mtime改变时,atime不一定改变. #echo "this is a test" >> /etc/

c# TreeView实现三种选中状态

c# 项目中需要实现树状选项的勾选,有全选,半勾选,不选的状态. 因原控件中只有勾选和不勾选两种状态,所以半勾选状态需要使用代码绘制和自行定义. 勾选:Node.Checked=true 不勾选: Node.Checked=false 半勾选: Node.Checked=false && Node.ToolTipText="部分勾选" 注意:半勾选状态需要重新绘制控件需要设置控件属性DrawMode为OwnerDrawText或者OwnerDrawAll 核心逻辑一:设

Git中三种文件状态及其转换和git适用命令

原文地址:https://www.cnblogs.com/hnhycnlc888/p/11456738.html