进程-进程之进程状态(R、S、D、T、Z、X)

2023-11-04

进程概念:
1)正在执行的程序
2)正在计算机上执行的程序实例
3)能分配处理器并由处理器执行的实体
进程的两个基本元素是程序代码和代码相关联的数据集。进程是一种动态描述,但并不代表所有的进程都在运行。这就可以引入‘进程状态’。
进程在内存中因策会略或调度需求,
会处于各种状态:

Linux下的进程状态:

static const char * const task_state_array[] = {
"R (running)", /* 0 */
"S (sleeping)", /* 1 */
"D (disk sleep)", /* 2 */
"T (stopped)", /* 4 */
"t (tracing stop)", /* 8 */
"X (dead)", /* 16 */
"Z (zombie)", /* 32 */
};
  1. R- -可执行状态(运行状态)
    只有在运行状态的进程才有可能在CPU上运行,注意是可能,并不意味着进程一定在运行中。同一时刻可能有多个进程处在可执行状态,这些进程的PCB(进程控制块)被放入对应CPU的可执行队列中。然后进程调度器从各个可执行队列中分别选择一个进程在CPU上运行。
    另外如果计算机只有一个处理器,那么一次最对只有一个进程处于这种状态。
  2. S- -可中断睡眠状态(sleeping)
    处在这个状态意味着进程在等待事件完成。这些进程的PCB(task_struct结构)被放入对应时间的等待队列中。然后等待的事件发生时,对应的进程将被唤醒。
  3. D- -不可中断睡眠(disk sleep)
    在这个状态的进程通常会等待IO的结束。
    这个状态与sleeping状态相似,处于睡眠状态,但是此刻进程是不可中断的,意思是不响应异步信号。
    另外你会发现处在D状态的进程kill -9竟然也杀不死。这就相当于我们怎么也叫不醒一个装睡的人。
  4. T- -暂停状态
    给进程发送一个SIGSTOP信号,进程就会响应信号进入T状态,除非该进程正处在D状态。
    再通过发送SIGCONT信号让进程继续运行。
    kill -SIGSTOP
    kill -SIGCONT
  5. Z- -僵死状态
    僵死状态是一个比较特殊的状态。进程在退出的过程中,处于TASK_DEAD状态。
    在这个退出过程中,进程占有的所有资源将被回收,除了task_struct结构(以及少数资源)以外。于是进程就只剩下task_struct这么个空壳,故称为僵尸。
  6. X- -死亡状态或退出状态(dead)
    死亡状态是内核运⾏ kernel/exit.c ⾥的 do_exit() 函数返回的状态。这个状态只是⼀个返回状态,你不会在任务列表⾥看到这个状态

状态切换
进程在运行中不断的改变运行状态;
1)就绪状态
当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。
2)执行(Running)状态
当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态
3) 阻塞(Blocked)状态
正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。

就绪–>执行
处在就绪状态的进程,当调度器为其分配了处理机后,就变成了执行状态。

执行–>就绪
执行状态的进程在其执行过程中,时间片跑完了不得不让出处理机,于是从执行变成就绪状态。

执行–>阻塞
正在执行的进程等待某种事件而无法继续执行时,便从执行状态变成阻塞状态。

阻塞–>就绪
处在阻塞状态的进程,如果等待的时间发生,则从阻塞状态转变成就绪状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进程-进程之进程状态(R、S、D、T、Z、X) 的相关文章

  • 机器学习算法——决策树3(CART决策树算法)

    CART决策树使用 基尼指数 Gini index 来选择划分属性 我们希望决策树的分支结点所包含的样本尽可能属于同一类别 即节点的纯度越来越高 数据集D的纯度可用基尼值来度量 Gini D 越小 则数据集D的纯度越高 属性a的基尼指数定义
  • 机器学习实战之Apriori

    1 关联分析 1 1 定义 关联分析是一种在大规模数据上寻找物品间隐含关系的一种任务 这种关系有2种形式 频繁项集和关联规则 1 频繁项集 frequent item sets 经常出现在一起的物品的集合 2 关联规则 associatio
  • 飞机减震器的MATLAB建模和仿真模拟

    飞机减震器的MATLAB建模和仿真模拟 飞机减震器是飞机悬挂系统中的重要组成部分 用于减少飞机在起飞 降落和飞行过程中受到的冲击和振动 在本文中 我们将使用MATLAB进行飞机减震器的建模和仿真模拟 以评估其性能和效果 建立减震器模型 首先
  • Eclipse免费下载(附安装教程)

    软件下载 软件名称 Eclipse 软件大小 750MB 安装环境 Windows 下载链接 https pan baidu com s 1OToZBbONikUYnaS1PN1kRg 提 取 码 geek 建议复制粘贴链接与提取码 安装教
  • 晶振的构造及工作原理

    咱搞硬件的 应该都使用过晶振 上次写开关电源环路的零极点的时候 忽然想到晶振是自己起振的 如果从环路的角度看 应该就是利用的环路不稳定的特性 产生自激振荡 除此之外 我又想到下面这些问题 那么我们使用晶体的时候 电路的环路的传递函数是怎么样
  • scp复制本地文件到远程服务器,scp 本地文件到远程服务器

    linux中scp命令的使用 linux远程拷贝文件命令 scp scp secure corp 1 从本地拷贝文件到远程服务器scp opt script test pl root 192 168 3 130 将本地 opt scritp
  • 量化投资学习-4:股票与美女4-美女自身赚钱的能力

    美女分几种 一种是花瓶式的美女 完全靠的是美貌 靠美貌而吸引了众人的注意力 完全把选择权交个了众人 靠众人的喜欢才有价值 当美貌褪去 众人也就跟着退去 另一种集才华与美貌于一身的美女 不光鲜外在的外貌 漂亮的K线图的走势 还有强大的内在才华
  • AES(Advanced Encryption Standard) Intrinsics各函数介绍

    AES为高级加密标准 是较流行的一种密码算法 SIMD相关头文件包括 include
  • 织梦网站调用变量失败_Request var not allow!织梦DedeCMS添加变量报错的解决办法

    这篇文章主要为大家详细介绍了Request var not allow 织梦DedeCMS添加变量报错的解决办法 具有一定的参考价值 感兴趣的小伙伴们可以参考一下 有需要的朋友可以收藏方便以后借鉴 最近两天不少用户在全力反馈说在后台添加新变
  • idea2020使用idea 没有Run Dashboard

    idea2020版本的 Run Dashboard 等同于Services 我这里添加了Spring boot
  • 蓝桥杯模拟赛 排列序列

    标题 排列序数 X星系的某次考古活动发现了史前智能痕迹 这是一些用来计数的符号 经过分析它的计数规律如下 为了表示方便 我们把这些奇怪的符号用a q代替 abcdefghijklmnopq 表示0 abcdefghijklmnoqp 表示1
  • Typecho博客搭建 实现公网访问内网站点

    文章目录 前言 1 环境安装 2 安装Typecho 3 安装cpolar内网穿透 4 固定公网地址 5 配置Typecho 前言 Typecho是一款PHP语言编写的开源博客程序 它是一个轻量级的内容管理系统 专注于博客领域 支持多用户
  • crontab命令详解,慎用crontab -r命令

    crontab命令详解 慎用crontab r命令 常用命令 常用命令 crontab e是编辑 crontab r 是删除 crontab l是查看 crontab r命令万恶 且不可恢复 切记勿用
  • Android 系统开发系列(1):Android 12 源代码下载、编译和刷机

    Android 12 正式版 已经发布 https mp weixin qq com s OiFSWEnc 0N2z7JYWTJluw 本文就带大家下载和编译最新的 Android 12 代码 本地编译的代码有下面几个好处 可以刷真机 方便

随机推荐

  • LeetCode 349. 两个数组的交集

    题目链接 https leetcode cn problems intersection of two arrays 思路如下 由题目可知 nums1 数组和 nums2 数组中的元素的大小都在 0 1000 0 1000
  • 《画解数据结构》(2 - 4)- AVL 树

    画解数据结构 2 4 AVL 树
  • ChatGPT的未来:研究和开发的领域,渴望带来哪些变革?

    ChatGPT作为一种基于自然语言处理 NLP 技术的人工智能机器人 其未来研究和开发的领域包括但不限于以下几个方面 1 对话质量的提高 ChatGPT目前仍然存在一些语义理解和生成上的问题 未来的研究和开发将会着重于解决这些问题 提高Ch
  • 网站信息收集及nmap的下载使用

    本专栏是笔者的网络安全学习笔记 一面分享 同时作为笔记 前文链接 WAMP DVWA sqli labs 搭建 burpsuite工具抓包及Intruder暴力破解的使用 目录扫描 请求重发 漏洞扫描等工具的使用 信息收集 我们在对一个网站
  • Flash Player 8 中的安全性更改

    要求 用户级别 中级 Macromedia 已更改了 Flash Player 8 中应用于本地 Flash 内容的安全模型 默认情况下 从用户本地文件系统而不是通过 HTTP 运行的 Flash 应用程序在 Flash Player 8
  • petalinux添加AD9361驱动

    文章目录 一 准备工具 二 步骤 需要 petalinux2016 2 包含AD9361驱动的Linux内核 xcomm zynq 4 4 一 准备工具 ADI提供的AD9361Linux驱动 https wiki analog com r
  • tomcat高并发下优化详解及连接数和线程池

    高并发环境下 我知道优化配置tomcat 对连接数和线程池作修改 最重要的是connector的协议Http Connector使用NIO 而不是默认的AJP Connector 当时也没有仔细研究其原理 现在来为以上这些设置做一下剖析 要
  • Java private类构造函数笔记

    前言 最近在看Android源码的时候遇到了private类构造函数 于是写了一个测试小程序 帮助理解 代码 class TestPrivate private TestPrivate System out println TestPriv
  • PAT题解——Basic Level——1094 谷歌的招聘

    题目链接 https pintia cn problem sets 994805260223102976 problems 1071785997033074688 题面 本题要求你编程解决一个更通用的问题 从任一给定的长度为 L 的数字中
  • 设计模式(十五)中介者模式

    版权声明 转载必须注明本文转自晓 晨的博客 http blog csdn net niunai112 目录 目录 导航 前言 例子 总结 优点 缺点 Git地址 导航 设计模式之六大设计原则 设计模式 一 单例模式 设计模式 二 工厂模式
  • appuploader不是开发者账号

    Appuploader是一款可以帮助开发者上传iOS应用到Apple App Store的工具 很多开发者都知道 在上传应用到App Store之前 需要创建开发者账号并获得苹果官方的认证才能进行上传 但是 有些开发者可能并不想去注册开发者
  • JS生成uuid的四种方法

    在开发过程中 有时候需要js生成全局唯一标识符 在java中可以使用uuid 但是JS中没有现成的函数 总结了一下 JS生成唯一标识符的几种方法 第一种 function guid return xxxxxxxx xxxx 4xxx yxx
  • 阈值分割方法总结

    阈值是界限的意思 阈值分割就是以一个合适的像素值作为界限将图像处理成高对比度 容易识别的图像的一种方法 threshold double cv threshold cv InputArray src 输入图像 cv OutputArray
  • 网易实况足球获取服务器信息,网易实况足球国际服和国服数据互通吗_游戏评价介绍...

    网易实况足球国际服和国服数据互通吗 游戏评价介绍 2018 03 14 17 34 11 网易实况足球在3月13日正式命名为实况王者集结 其实这款手游在国际服已经上线了 很多喜欢足球的小伙伴也玩过了这款游戏 很多小伙伴因为外国服务器不稳定想
  • Flask入门学习教程

    Flask学习 文章目录 Flask学习 1 简介 2 安装 3 最小的应用 4 路由 5 变量规则 6 URL构建 7 HTTP方法 8 文件存放 9 渲染模板 10 Request对象 11 Cookie 12 会话Session 实例
  • Java 多线程 --- 线程同步 内部锁synchronized

    Java 多线程 线程同步 内部锁synchronized Intrinsic Lock Monitor synchronized 关键字 synchronized 修饰实例方法 synchronized 修饰代码块 synchronize
  • Vmware 常用命令

    一 VMware ESX Command 看你的esx版本 vmware v 查看显示ESX硬件 内核 存储 网络等信息 esxcfg info a 显示所有相关的信息 esxcfg info w 显示esx上硬件信息 列出esx里知道的服
  • HttpRunner使用中的一些问题记录

    背景 在了解接口自动化框架的过程中 看到有介绍说HttpRunner是一款不错的开源框架 所以 简单试用了一下 虽然有中文使用手册的帮助 但在结合自己项目接口的使用中还是遇到一些问题 在解决这些问题之后 也对这一框架的使用有了更深的了解 环
  • 如何创建对电脑屏幕的自动点击的脚本

    要创建对电脑屏幕的自动点击脚本 你可以使用操作系统自带的脚本语言 或者使用第三方自动化工具 使用操作系统自带的脚本语言 Windows 你可以使用 Windows 自带的 Visual Basic 脚本语言来创建自动点击脚本 使用 Visu
  • 进程-进程之进程状态(R、S、D、T、Z、X)

    进程概念 1 正在执行的程序 2 正在计算机上执行的程序实例 3 能分配处理器并由处理器执行的实体 进程的两个基本元素是程序代码和代码相关联的数据集 进程是一种动态描述 但并不代表所有的进程都在运行 这就可以引入 进程状态 进程在内存中因策