进程的状态

目录

进程的状态

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

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杀掉,只能通过断电,或进程自己主动醒来。来解决。

相关推荐
好好学习啊天天向上3 小时前
C盘容量不够,python , pip,安装包的位置
linux·python·pip
二十雨辰3 小时前
[python]-循环语句
服务器·python
li_wen013 小时前
文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
大数据·linux·数据库·文件系统·jffs2
wypywyp4 小时前
2.虚拟机一直显示黑屏,无法打开,可能是分配的硬盘空间不够
linux·运维·服务器
SongYuLong的博客4 小时前
TL-WR710N-V2.1 硬改刷机OpenWRT源码编译固件
linux·物联网·网络协议
m0_737302584 小时前
碳足迹精准计量,华为FusionSolar助力云服务器绿色运维
服务器
AlfredZhao4 小时前
Docker 快速入门:手把手教你打包 Python 应用
linux·docker·podman
HIT_Weston5 小时前
107、【Ubuntu】【Hugo】搭建私人博客:模糊搜索 Fuse.js(三)
linux·javascript·ubuntu
艾莉丝努力练剑6 小时前
【优选算法必刷100题】第007~008题(双指针算法):三数之和、四数之和问题求解
linux·算法·双指针·优选算法
chinesegf6 小时前
Ubuntu 安装 Python 虚拟环境:常见问题与解决指南
linux·python·ubuntu