进程的状态

目录

进程的状态

从操作系统的角度宏观的看待进程状态:

S:

T:

R/R+

D


进程的状态

cpp 复制代码
pid_t id=fork();
    if(id<0)
    {
        perror("fork");
        return 1;
    }
    else if(id==0)
    {
        //child
        while(1)
        {
            printf("Son process,pid :%d ,ppid :%d\n",getpid(),getppid());
            sleep(1);
        }
    }
    else
    {
        //parent
        while(2)
        {
            printf("Parent process,pid :%d ,ppid :%d\n",getpid(),getppid());
            sleep(3);
        }
    }

这段代码printf时必须加上\n将其设置为行刷新。否则无法实时打印。

从操作系统的角度宏观的看待进程状态:

1.一个CPU一个运行队列

2.让进程入队列,本质:将该进程的task_struct结构体对象放入运行队列中。

3.进程PCB在runqueue,就是R(运行状态),并不是这个进程在运行,才是运行状态

4.进程不止占用CPU的资源,也可能随时需要外设资源

5.所谓的进程不同状态,本质是进程在不同队列中,等待某种资源

cpp 复制代码
int a=1;
while(1)
{
    printf("当前进行: %d",a;
)

./myprocess执行一下

S:

printf->显示器(外设->满)等待显示器就绪需要花费大量的时间(相对CPU而言)

%99等待IO就绪,%1执行打印代码

T:

向一个R状态的进程发送19号信号其状态就会变为T.

在发送一次18号信号就可以将其状态恢复为R

R/R+

R+前台进程,R为后台进程。

后台进程不能用ctrl+c终止,只能向其发送9号信号。

D

高IO情况才有可能出现。

处于深度睡眠状态的进程无法被OS杀掉,只能通过断电,或进程自己主动醒来。来解决。

相关推荐
小贾要学习8 分钟前
【C++后端开发项目】Reactor 模型 / C++ 仿写 muduo HTTP 服务器:让底层网络库真正跑起网页
linux·服务器·c++·http·网络编程·muduo·reactor模型
g5zhu589619 分钟前
没有公网ip的情况下,本地能ping服务器服务器不能ping本地,让服务器能访问本地某端口的简单方法
服务器·网络协议·tcp/ip
Blockbuater_drug22 分钟前
OpenMM分子动力学模拟02 安装:Linux:conda 一条命令装通 GPU 加速的分子模拟环境
linux·conda·cuda·gpu驱动·pythonpath·openmm安装
程序员JerrySUN25 分钟前
PCIe Gen5 SSD 为什么读得快、写得慢?从存储原理到 Linux 性能实测
linux·服务器·网络
Android系统攻城狮39 分钟前
Linux FFmpeg深度解析之avcodec_parameters_copy调用流程与实战(二十五)
linux·运维·服务器·ffmpeg·音视频·车载音频
A7bert7771 小时前
【MobileSAM部署至RK3588】环境适配→转换RKNN→开发板部署
c++·人工智能·深度学习·目标检测·ubuntu
ITKEY_1 小时前
emacs 文件管理Dired, the Directory Editor
linux·编辑器·emacs
源图客1 小时前
解决CentOS操作系统网络异常问题
linux·运维·centos
Liuqy-052 小时前
IO模型与并发服务器
服务器·网络·select·多线程·epoll·并发服务器·io多路复用
HideF11 小时前
Linux sudo
linux