码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 进程状态和Linux的进程状态


    目录

    • 1.进程状态
      • 1.运行态
      • 2.终止状态
      • 3.进程堵塞
      • 4.进程挂起
    • 2.linux进程状态
      • R状态 运行态
      • 2.S状态 阻塞状态 浅度睡眠状态
      • 3.D状态 堵塞状态 深度睡眠状态
      • 4.Z状态 僵尸状态
      • 5.模拟僵尸进程
      • 6.长时间僵尸,有什么问题?
      • 7.孤儿进程
      • 8.T 进程 暂停状态
      • 9. t进程 追踪状态

    1.进程状态

    1.运行态

    运行态是:进程已经在运行队列中就叫运行态,代表着我已经准备好了,随时可以进行调度

    2.终止状态

    终止状态是:进程还在,但是永远不会运行了,随时等着被释放
    但是有的人可能会想,为什么要维护一个永远不会终止态?他都不会运行了
    因为释放进程其实是需要时间的,操作系统可能会很忙

    3.进程堵塞

    1.一个进程,使用资源的时候,可不仅仅是在申请cpu资源
    2.进程可能申请更多的其他资源:磁盘,网卡,显卡,显示器资源,声卡/音响
    如果我们申请cpu资源,暂时无法得到满足,需要排队的,这个叫做运行队列
    那么如果申请其他慢设备的资源,申请不到,但是需要这个资源,也是需要排队的
    当进程访问某些资源(磁盘网卡),该资源如果暂时没有准备好,或者正在给其他进程提供服务,此时:1.当前进程要从runqueque中移除 2.将当前进程放入对应设备的描述结构体中的等待队列,cpu速度其实非常,其实因为硬件速度太慢了,完成一个进程cpu可能连一秒都不需要
    那么了解下面的概念,
    进程堵塞是:当我们的进程此时在等待外部资源的时候,该进程的代码,不会被执行,在我们应用层上看到就是,我们被卡住了,这个就是进程阻塞

    4.进程挂起

    如果内存不足了怎么办?
    操作系统就要帮我们进行辗转腾挪
    进程挂起:辗转腾挪意思是:短期内不会被调度(你等的资源,短期内不会就绪)进程,它的代码和数据依旧在内存中,就是白白的浪费空间,操作系统就会把该进程的代码和数据临时置换到磁盘上这就是进程挂起

    2.linux进程状态

    Linux 下的主要进程状态有:
    在这里插入图片描述

    R状态 运行态

    process代码

    #include 
    #include 
    
    int main()
    {
       
        while(1)
        {
       
            printf("hello pid:%d!\n",getpid());
            sleep(1);
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    决策树的优缺点
    【C/C++】结构体中使用变长数组问题分析
    iTextSharp 使用详解
    卤制品配送经营商城小程序的用处是什么
    SpringMvc 如何同时支持 Jsp 和 Json 接口?
    Mac下载docker
    不知道不 OK!53 个 Python 经典面试题详解
    【线性表,队列和栈,栈溢出,链表和顺序表的特点】
    【C语言刷LeetCode】56. 合并区间(M)
    xv6源码解析(二)——系统调用
  • 原文地址:https://blog.csdn.net/li1829146612/article/details/126674794
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号