理解进程管理:基本状态与转换过程详解
进程管理-2.进程的基本状态和转换
回答6个问题。
1.进程的三种基本状态是什么?
2.三个增加状态是什么?
3.进程的活动规律是什么?
4.进程三个基本状态的转换有哪四种情况?
5.为什么分成这几个状态?
6..引起进程状态转换的原因是什么?
1.进程的三种基本状态是什么?
具备三种基本状态:
1.就绪状态、
2,运行状态,
3、等待状态
运行态:进程数小于处理机数;进程正占有处理机正在运行的状态。
就绪态:已获得必要资源,就等待处理机,队列按优先级排列;就绪状态具备运行条件,等待系统分配处理器,以便运行的状态。
阻塞态:等待I/O或因同步事件暂停,不能参与竞争处理机;不具备运行条件
2.三个增加状态是什么?
①创建状态:分配PCB结构,进程组,链接好关系;
②退出状态:释放资源,暂留系统,收集PCB信息;
③挂起状态:因内存紧张,部分进程换至外存,解除后,不能直接进入就绪,由就绪挂起、阻塞挂起;
3.进程的活动规律是什么?
进程有着“执行 —暂停 —执行”的活动规律
4.进程三个基本状态的转换有哪四种情况?
首先:念熟一个圈
左上右,就绪运行等待;
左上右,就绪运行等待;
左上右,就绪运行等待;
左上右就绪运行等待;
左上右,就绪运行等待;
左上右,就绪运行等待;
左上右,就绪运行等待;
这是单方向转换的
其次:前两个左边和上面,就绪和运行是可以双向转换的
5.为什么分成这几个状态?
进程是程序的一次执行过程。再强调一次进程是什么,进程是程序的一次执行过程。进程是系统进行资源分配的基本单位。
在这个执行过程中,有时进程正在被CPU处理,有时有需要等待CPU服务,可见进程的状态会有各种变化,为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。
6..引起进程状态转换的原因是什么?
1.进程的状态随着1.进程的执行和2.外界条件的变化而转换
2.有哪四种状态转换?
出现这四种转换的原因有哪些?
(1)左到上;就绪→运行状态
进程调度程序为之分配了处理器后,分配律处理器就从就绪到运行状态。
(2)上到右;运行→等待状态
正在执行的进程因出现某事件而无法执行时,就释放处理器从运行到等待状态。
(3)右到左,等待→就绪状态
等待事件结束后就转换成就绪状态,等待处理器的分配。
(4)还有另一个,上到左,运行→就绪状态
1,在分时系统中,正在执行的进程因时间片用完而被暂停执行,则从运行到就绪状态。
2 ,在抢占调度方式中,一个优先权高的进程抢占一个正在执行的优先权低的进程的处理器时,则从运行到就绪状态。
注意:有两种状态之间是不能直接转换的
1.不能由右边,等待直接转换为上面运行状态。处于右边,等待状态的进程需要先转换为左边就绪态才能够被调度,
2.也不能由左边就绪态之间转为右边等待。
上面运行态转换右边等待是进程自身做出的一种主动行为,是进程自身主动请求的,必然需要进程在运行中才可以主动发出这种请求,
处于左边就绪态的进程并没有分配到处理机资源,因此不可以发出一些主动的行为,所以从左边就绪态是不可以直接转换为右边等待态的
举个例子:
某进程在运行过程中,需要等待从磁盘上读入数据,此时该进程的状态将:从上面运行变为右边等待。
某进程在运行过程中,说明当前状态为运行状态。因需要等待从磁盘上读入数据,所以变为等待状态,停止运行,放弃CPU。变为等待状态,停止运行,放弃CPU。所以某进程在运行过程中,需要等待从磁盘上读入数据是从运行变为等待。
推荐阅读
-
什么是数据库事物?为什么需要数据库事物,事物有哪些特征?事物的隔离级别是什么?-1.什么是数据库事务? 1.事务是作为一个逻辑单元执行的一系列操作。一个逻辑工作单元必须具备四个属性,即ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为事务: 原子性 2.事务必须是一个原子工作单元;它的数据修改要么全部执行,要么全部不执行。 一致性 3.事务完成时,所有数据必须保持一致。在相关数据库中,所有规则都必须适用于事务的修改,以保持所有数据的完整性。事务结束时,所有内部数据结构(如 B 树索引或双向链接表)必须正确无误。 隔离 4.并发事务的修改必须与其他并发事务的修改隔离。一个事务会在另一个并发事务修改之前或之后查看某一状态下的数据,而不会查看中间状态下的数据。这就是所谓的可序列化,因为它允许重新加载起始数据和重放一系列事务,从而使数据最终处于与原始事务执行时相同的状态。 持久性 5.事务完成后,它对系统的影响是永久性的。即使在系统发生故障的情况下,修改也会保留。 2. 为什么需要数据库事物,事物有哪些特征? 事物对数据库的作用是对数据进行一系列操作,要么全部成功,要么全部失败,防止出现中间状态,确保数据库中的数据始终处于正确、和谐的状态。 特征:原子性、一致性、隔离性、持久性,以及其他特征 原子性(Atomicity):所有操作在事务开始后,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出现错误时,会回滚到事务开始前的状态,所有操作就像没有发生一样。也就是说,事务是一个不可分割的整体,就像化学中的原子一样,是物质的基本单位。 一致性(Consistency):在事务开始之前和结束之后,数据库的完整性约束都没有被破坏。例如,如果 A 转钱给 B,A 不可能扣除这笔钱,但 B 却没有收到这笔钱。 隔离:在同一时间内,只允许一个事务请求相同的数据,不同事务之间没有干扰。例如,甲正在从一张银行卡上取款,在甲取款过程结束之前,乙不能向这张卡转账。 持久性(耐用性):事务完成后,事务对数据库的所有更新都将保存到数据库中,无法回滚 3.事务的隔离级别有哪些? 数据库事务有四种隔离级别,从低到高分别是未提交读取(Read uncommitted)、已提交读取(Read committed)、可重复读取(Repeatable read)、可序列化(Serializable)。此外,事务的并发操作中可能会出现脏读、不可重复读、幽灵读等情况。事务并发问题 脏读:事务 A 读取事务 B 更新的数据,然后事务 B 回滚操作,那么事务 A 读取的数据就是脏数据。 不可重复读取:事务 A 多次读取同一数据,事务 B 在事务 A 多次读取期间更新并提交数据,导致事务 A 多次读取同一数据时结果不一致。 幻影读取:系统管理员 A 将数据库中所有学生的具体分数改为 ABCDE 等级,但系统管理员 B 在此时插入了具体分数的记录,当系统管理员 A 更改结束后发现仍有一条记录未被更改,仿佛发生了幻觉,这称为幻影读取。 小结:不可重复读和幻读容易混淆,不可重复读侧重于修改,幻读侧重于增删。解决不可重复读问题只需锁定满足条件的行,解决幻读问题则需要锁定表 MySQL 事务隔离级别
-
Java 类加载器的作用 - 简介:类加载器是 Java™ 中一个非常重要的概念。类加载器负责将 Java 类的字节码加载到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模型、加载类的具体过程和线程上下文类加载器等。然后介绍了如何开发自己的类加载器,最后介绍了类加载器在 Web 容器和 OSGi™ 中的应用。 类加载器是 Java 语言的一项创新,也是 Java 语言广受欢迎的重要原因之一。它允许将 Java 类动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 开始出现,最初是为了满足 Java Applets 的需求而开发的,Java Applets 需要从远程位置下载 Java 类文件并在浏览器中执行。现在,类加载器已广泛应用于网络容器和 OSGi。一般来说,Java 应用程序的开发人员不需要直接与类加载器交互;Java 虚拟机的默认行为足以应对大多数情况。但是,如果遇到需要与类加载器交互的情况,而您又不太了解类加载器的机制,就很容易花费大量时间调试异常,如 ClassNotFoundException 和 NoClassDefFoundError。本文将详细介绍 Java 的类加载器,帮助读者深入理解 Java 语言中的这一重要概念。下面先介绍一些基本概念。 类加载器的基本概念 顾名思义,类加载器用于将 Java 类加载到 Java 虚拟机中。一般来说,Java 虚拟机以如下方式使用 Java 类:Java 源程序(.java 文件)经 Java 编译器编译后转换为 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码并将其转换为 java.lang 实例。每个实例都用来表示一个 Java 类。通过该实例的 newInstance 方法创建该类的对象。实际情况可能更加复杂,例如,Java 字节代码可能是由工具动态生成或通过网络下载的。 基本上,所有类加载器都是 java.lang.ClassLoader 类的实例。下面将详细介绍这个 Java 类。 java.lang.ClassLoader 类简介 java.lang.ClassLoader 类的基本职责是根据给定类的名称为其查找或生成相应的字节码,然后根据这些字节码定义一个 Java 类,即 java.lang.Class 类的实例。除此之外,ClassLoader 还负责加载 Java 应用程序所需的资源,如图像文件和配置文件。不过,本文只讨论它加载类的功能。为了履行加载类的职责,ClassLoader 提供了许多方法,其中比较重要的方法如表 1 所示。下文将详细介绍这些方法。 表 1.与加载类相关的 ClassLoader 方法
-
深入理解Java基础:探索进程与线程-2 - 详解线程的五种工作状态与切换机制
-
理解与对比:线程与进程的基本差异 - 线程的常用操作与状态详解
-
理解进程基本状态、转变、阻塞与挂起的概念详解
-
理解系统运作:进程状态与变迁的五态模型详解
-
理解进程基本状态、转变、阻塞与挂起:一张揭示进程状态转换的图表
-
进程与线程状态的变更过程 - 线程状态转换详解
-
实用的命令行工具指南:深入理解jps、jstack、jmap、jhat、jstat与hprof JVM 性能优化与监控方法" - jps: Java虚拟机进程状态工具 - 全面解读 - jstack: 一步步掌握堆栈跟踪工具 - 实战解析 - jmap & jhat: 内存映射与Java堆分析利器 - 详解篇 - jstat: JVM性能统计与监测工具 - 使用详解 - hprof: 堆/CPU性能剖析工具 - 深入学习指南
-
理解进程管理:基本状态与转换过程详解