进程状态和相关概念
1.进程状态
1)查看所有进程状态
[root@centos8 ~]# ps aux
2)范例:僵尸态
1 2 3 4 5 6 7 8 9 10 | [root@centos8 ~] # bash [root@centos8 ~] # echo $BASHPID #查看当前进程编号 4085 [root@centos8 ~] # echo $PPID #查看当前进程父进程编号 3419 #将父进程设为停止态 [root@centos8 ~] # kill -19 3419 #杀死子进程,使其进入僵尸态 [root@centos8 ~] # ps aux #可以看到上面图示的结果,STAT为z,表示为僵尸态 |
解决僵尸态:
1 2 3 4 5 | #方法一:恢复父进程 [root@centos8 ~] # kill -18 3419 #方法二:杀死父进程 [root@centos8 ~] # kill -9 3419 #再次观察,就可以发现僵尸态的进程不存在了 |
3)ctrl+z 停止当前进程
2.LRU算法
LRU(Least Recent Used)近期最少用算法,释放内存
3.进程之间通信
IPC(inter Process Communication)
同主机:
1)pipe管道,单项传输
例:创建一个管道文件实现单工通讯
1 2 3 4 5 6 7 | [root@centos8 ~] # mkfifo /data/test.fifo [root@centos8 ~] # ll /data/test.fifo prw-r--r-- 1 root root 0 Mar 13 21:35 /data/test .fifo [root@centos8 ~] # echo hello > /data/test.fifo #在另一个进程可以从文件中读取数据 [root@centos8 ~] # cat /data/test.fifo hello |
2)套接字文件,双工通信
3)Memory-maped file 映射文件,将文件中的一段数据映射到物理内存,多个进程共享这个文件
4)shm shared memory 共享空间
查看共享空间:
[root@centos8 ~]# free total used free shared buff/cache available Mem: 800748 425500 174156 8984 201092 245084 Swap: 2097148 879104 1218044
其中shared就是共享空间。
5)signal 信号
6)Lock 对资源上锁
7)Semaphone 信号量,一种计数器
记录于2022-3-13-21:48
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话