2.1_2 进程的状态与转换

news2024/12/30 1:26:06

2.1_2 进程的状态与转换

image-20240221161357954

(一)进程的状态——创建态、就绪态

image-20240221161512709

  进程正在被创建时,它的状态是“创建态”,在这个阶段操作系统会为进程分配资源、初始化PCB。

  当进程创建完成后,便进入“就绪态”,处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,就暂时不能运行。

(二)进程的状态——运行态

image-20240221161810143

  系统中会有很多处于就绪态的进程。当CPU空闲下来以后,它会选一个就绪态的进程,使其上CPU运行。

  如果一个进程此时在CPU上运行,那么这个进程处于“运行态”。CPU会执行该进程对应的程序(执行指令序列)。

  在一个进程执行过程中,可能会发出系统调用,请求使用某种资源(如:打印机资源)。但此时这个资源可能并不处于空闲状态,因此可能得不到请求。而这个进程如果无法获得这一资源,进程就无法继续往下执行。如果这一进程无法继续往下执行的话,那么显然我们就不应该让这个进程继续占用着CPU了。

  在进程运行的过程中,可能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应)。

  在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下CPU,并让它进入“阻塞态”。

  当CPU空闲时,又会选择另一个“就绪态”进程上CPU运行。

  如果某一时刻,刚刚那个进程没能请求到的系统资源空闲下来了,系统就会把该资源分配给刚刚那个进程,同时,那个进程的状态会从“阻塞态”转为“就绪态”。

(三)进程的状态——终止态

  一个进程可以执行exit系统调用,请求操作系统终止该进程。

  此时该进程会进入“终止态”,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。

  当终止进程的工作完成之后,这个进程就彻底消失了。

(四)进程状态的转换

image-20240221165619951

注意:

  1.处于就绪态的进程:只差处理机这种资源了,其他所有都已具备。

  2.处于运行态的进程:既拥有了其他所有相关资源,也拥有处理机这一资源。

  3.处于阻塞态的进程:申请的某种资源未拥有,同时也被剥夺处理机资源。

注意:

  1.不能由阻塞态直接转换为运行态。

  2.也不能由就绪态直接转换为阻塞态。(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求。如果连运行态都不是,就根本没有阻塞的机会)

转换过程说明:

  1.创建态 —> 就绪态:系统完成创建进程的一系列工作。

  2.就绪态 —> 运行态:CPU选一个处于就绪态的进程,使其上CPU运行,则该进程转为运行态。

  3.运行态 —> 阻塞态:进程在CPU上执行的过程中,由于请求某种资源而未得,则该进程转为阻塞态。

  4.阻塞态 —> 就绪态:处于阻塞态的进程,若它需要的那种资源空闲下来了,则该进程转为就绪态。

  5.运行态 —> 就绪态:其他资源都具备,只是处理机资源被剥夺(如:时间片到),则该进程由运行态转为就绪态。

image-20240221173443841

  

  进程PCB中,会有一个变量state来表示进程的当前状态。如:1表示创建态、2表示就绪态、3表示运行态……

  为了对同一个状态下的各个进程进行统一的管理,操作系统会将各个进程的PCB组织起来(进程的组织)。

(五)进程的组织——链接方式

  使用队列将各个进程PCB组织起来。

image-20240221173821537

(六)进程的组织——索引方式

  用索引表将各个进程PCB组织起来。

image-20240221174024259


image-20240221174100931

总结

image-20240221174121924

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1461588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在Windows系统中检测和结束运行中的程序(任务管理器显示运行程序可能有bug)

如何在Windows系统中检测和结束运行中的程序 在Windows系统的日常使用和管理过程中,我们经常需要检测某个程序是否正在运行,并在必要时结束它。本文将详细介绍如何在Windows系统中检测运行中的程序,并提供多种方法来结束这些程序。 检测运行…

Vue思维导图,复习+预习,其中有些已经弃用了,下期总结下

1、学前了解 2、基础知识 3、组件相关语法 4、高级语法 5、compositionAPI 6、配套工具

QML 高效开发之加载方式

背景 日常使用 QML开发软件过程中,默认使用 qrc 存在开发效率慢问题,比如每次修改界面内容后需要先构建才能看到实际效果,尤其在频繁调试界面样式时显得更繁琐 原理 Qt 中的资源分为两类,编译型和外部二进制资源 编译型资源每…

⭐北邮复试刷题105. 从前序与中序遍历序列构造二叉树__递归分治 (力扣每日一题)

105. 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,…

朋友圈程序全开源版源码,附带系统搭建教程

前台一键发布图文,视频,音乐。发布内容支持定位或自定义位置信息。支持将发布内容设为广告模式消息站内通知或邮件通知。支持其他用户注册,支持其他用户发布文章,管理自己的文章。拥有丰富的后台管理功能,一键操作。安装环境 Nginx ≥1.22 …

stm32——hal库学习笔记(外部中断)

一、什么是中断?(了解) 打断CPU执行正常的程序,转而处理紧急程序,然后返回原暂停的程序继续运行,就叫中断 中断的作用和意义 中断的意义:高效处理紧急程序,不会一直占用CPU资源 S…

Android14 InputManager-InputManagerService环境的构造

IMS分为Java层与Native层两个部分,其启动过程是从Java部分的初始化开始,进而完成Native部分的初始化。 □创建新的IMS对象。 □调用IMS对象的start()函数完成启动 同其他系统服务一样,IMS在SystemServer中的ServerT…

浅谈加密算法(对称加密、非对称加密、混合加密、数字签名、哈希函数)

1、对称加密 对称加密只有一个密钥,直接使用这一个密钥对信息进行加密或解密。这样子就使得对称加密解密十分高效,计算量也相较于非对称加密小很多,适合有大量数据的场合。 密钥只有一个且他一定不能泄漏。由此分发密钥,讲这个密钥…

聚合支付,聚合系统,聚合程序或将成为主流

支付市场的变化对用户、代理商和运营商产生了重大影响。 随着政策监管的日益严格,支付行业逐渐朝着标准化和合理化的方向发展,日益增强其安全性。在这个背景下,聚合平台已经成为未来支付行业发展的重要趋势。特别是在“一机一码”政策实施后&…

三防平板丨平板终端丨加固平板丨户外勘测应用

随着科技的不断发展,现代勘测业也在不断升级。相较于传统的勘测设备,三防平板在户外勘测中有着广泛的应用。那么,三防平板在户外勘测中究竟有哪些优势呢? 首先,三防平板具备极强的防水、防尘、防摔能力。在野外勘测中&…

MyBatis---初阶

一、MyBatis作用 是一种更简单的操作和读取数据库的工具。 二、MyBatis准备工作 1、引入依赖 2、配置Mybatis(数据库连接信息) 3、定义接口 Mapper注解是MyBatis中用来标识接口为Mapper接口的注解。在MyBatis中,Mapper接口是用来定义SQL映射的接口,通…

十分钟利用springboot写电商支持多种优惠券规则,使用策略模式替代大量的if-else

前言 在开发电商折扣模块的时候经常会碰到各种优惠规则,那么就会碰到很多条件判断,冗余各种if-else的代码使得维护困难,此时就可以用策略模式来解决,替代大量的冗余判断条件代码,精简代码结构。 策…

建筑行业的重要工具—— 智慧工地管理平台(java源码)

系统定义: 智慧工地管理平台系统是一种集成了先进的信息技术、物联网技术、移动互联网技术等多种技术的工地管理系统。它能够对工地的整个生命周期进行全面的管理,包括工地的规划、设计、施工、监控、验收等各个环节。通过信息化手段,提高了工…

拯救者Legion Y9000K 2021H(82K6)原厂oem预装Win11系统镜像

lenovo联想拯救者Y9000K(82K6)原装出厂Windows11系统安装包下载,恢复出厂开箱状态 链接:https://pan.baidu.com/s/1DGWU7gctJerff6LJrgHD5w?pwdrbs5 提取码:rbs5 原装出厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office…

C++从入门到精通 第十四章(STL容器)【下】

写在前面: 本系列专栏主要介绍C的相关知识,思路以下面的参考链接教程为主,大部分笔记也出自该教程,笔者的原创部分主要在示例代码的注释部分。除了参考下面的链接教程以外,笔者还参考了其它的一些C教材(比…

基础数据结构与相关C++ STL容器

文章目录 数组arrayvector 栈和队列dequestackqueue 堆heappriority_queue 链表listforward_list 树setmapmultisetmultimap 哈希表unordered_setunordered_mapunordered_multisetunordered_multimap 图 数组 array 不开口的连续线性空间,支持随机访问。 array是…

【C->Cpp】由C迈向Cpp(4)

目录 (一)内联函数 (二)关键字auto (三)范围for (四)nullptr 正文开始: (一)内联函数 宏定义: C的内联函数是在C语言宏的基础上提出…

怎样开发Apple Vision Pro应用?以应用开发者角度体验苹果的开发文档

▲ 搜索“大龙谈智能内容”关注公众号▲ 最近,苹果公司推出了革命性的产品Apple Vision Pro,全世界震惊。下边这个视频在社交网络上得到了大量转发: 在大家兴奋的围观之际,已经有人在规划能做些什么了。 有朋友问大龙有什么Vi…

妨碍做出正确决策的5种认知谬误

人类的大脑在极端情况下会呈现出不可理喻的一面,从而妨碍我们做出正确的决策。本文介绍了5种常见的认知谬误,识别并克服这些认知谬误,可以帮助我们更好的决策。原文: Want to Make Better Decisions? Avoid These 5 Cognitive Distortions 我…

Python中类创建和实例化过程

嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、 type() 1、创建类的两种方式 方式一 class MyClass(object):def func(self,name):print(name)myc MyClass()print(MyClass, type(MyClass)) print(myc, type(myc))我们创建了一个名为MyClass的类,并实例化…