进程管理

 1、进程概念

            进程是操作系统分配资源的单位,线程是调度的基本单位
            描述一:进程是一个实体,每一个进程都有它自己的地址空间
            描述二:进程是一个“执行中的程序”
                并发:多个任务看起来同时运行的
                并行:多个任务同时运行,多核才可以
                线程:所有线程共享进程的资源,cpu上的执行单位
            
            任务的三种运行状态:
                    运行态
                    就绪态
                    阻塞态
            提交任务的方式:
                    同步:必须等待另一个任务执行完成才能执行
                    异步:两个可以同时执行任务
            Linux的进程状态
                R运行状态(running)
                S睡眠状态(sleeping)可中断睡眠
                    S状态与S+状态
                    前台进程:带+
                    后台进程:不带+
                        不能ctrl c关闭;只能kill关闭;可以输入其他命令
                D磁盘休眠状态(Disk sleep)不可中断睡眠状态
                T停止状态(stopped)
                    t :追踪停止状态
                    程序停在断点处时,就是t状态 
                    T状态由外部信号直接触发,适用于一般进程控制
                    t状态则由调试器间接管理,专为调试服务
                X死亡状态(dead)
                Z 僵尸状态(zombie)
                
                <    代表优先级较高的进程
                N    代表优先级较低的进程
                s    包含子进程
                +    前台进程
                

2、查看进程信息

                ps aux|grep(Linux)    tasklist|findstr(windows)
                ps -elf #查看父进程id
                pstree
                top
                命令选项
                    top -d 刷新时间s -p pid #只看某一个进程的信息
                    top -d 刷新时间s -u 用户 #只看某一个用户的进程信息
                内部命令
                    s #刷新时间s
                    q #退出
                    f #增加选中的字段
                    k #发送信号
                    排序
                        M #按内存占用率从大到小排序
                        P #按CPU占用率从大到小
                        N #按照PID从大到小
                        配合R代表倒序

3、管理进程

                1、优先级设置NI
                PRI(动态) = PRI(静态) + NI
                内核里静态基准一般是 20
                    nice -n [-20最高,19最低] 命令
                    renice
                2、给进程发信号
                    kill 
                    1、SIGHUP 
                    9、SIGKILL
                    15、SIGTERM
                    kill -1  进程号(平滑重启服务)
                    kill -9  进程号(强制杀死进程服务)
                    kill -15 进程号(杀死进程服务)
                3、hup信号->如何让进程脱离当前终端运行
                    nohup 
                        nohup command &
                    setsid
                        setsid command
                    在子shell中提交任务
                        (command &)
                    screen命令
                        screen command

 4、查看网络状态

                netstat
                    

5、proc文件系统 

                    查看文件大小
                        du -sh /etc
                    查看硬盘状态
                        df 
                    查看内存状态
                        free    #/proc/meninfo
                        
                    查看cpu状态
                        lscpu    #/proc/cpuinfo

 6、管理后台进程(了解)

                    jobs
                    bg %1
                    fg %1     #后台进程1提交到前台

 7、管道

       |

                    xrags
                    T型管道:tee用于从标准输入读取数据,并将其‌同时‌写入到一个或多个文件以及标准输出(通常是终端屏幕)

 8、僵尸进程(Zombie Process)与孤儿进程(Orphan Process)

            僵尸进程是已终止但未被父进程回收资源的子进程,其进程描述符(PID)仍保留在系统进程表中,但不再占用内存或CPU资源。
            孤儿进程是父进程运行结束,但子进程还在运行。顶级进程 1     init或systemd
                清理僵尸进程
                    1、杀死父进程
                    2、向父进程发送 SIGCHLD 信号,让其调用 wait(),支持这个信号的进程
                        kill -CHLD(18) 父进程PID
posted @ 2025-12-31 17:56  Dog17  阅读(13)  评论(0)    收藏  举报