要想学习Linux,这些基本知识你确定你都了解清楚了吗?

1.2冯诺依曼体系结构图

ps aux | grep 文件名:查看某个进程

3.3进程状态

粗略划分

运行态:正在使用cpu资源进行运算的进程所持有的状态
就绪态:一切的准备资料都已准备就绪,等待操作系统分配cpu资源
阻塞态:等待某种资源到来之后才能进行运算

R 运行状态

S 可中断睡眠状态
S后面的+表示前台进程,没有+表示后台进程,可以类比手机的应用比如你聊着微信你朋友叫你打游戏,你打开了王者荣耀,显示在当前主页面,此时王者荣耀就是前台进程,可你后台的微信还在运行,即为后台进程。

t 跟踪状态,当进程被gdb调试时,会产生t状态

X 死亡状态,这个状态只是一个返回状态,你不会在任务列表里看到这个状态

Z 僵尸状态(重要,在后面单独介绍)

内存指针

保存了程序地址空间的首地址

kill [pid]
kil1 -9 [pid] :强杀命令
僵尸进程在内核当中的task_struct结构体没有被释放掉,导致内存泄露。并且使用强杀命令也不能够将僵尸进程结束掉。

解决方案

  1. 重启操作系统(不推荐)
  2. 将僵尸进程的父进程结束掉
  3. 进程等待(此处先不解释)

总结:

父进程创建出来一个子进程,子进程先于父进程退出。子进程在退出时会向父进程发送一个信 (SIGCHLD:标识子进程停止或结束的信 ),而父进程对于该信 会忽略处理,导致子进程在退出时没有进程来回收子进程的资源(PCB),子进程就会变成僵尸进程。

孤儿进程模拟

父进程创建一个子进程,父进程先于子进程退出,子进程就是孤儿进程。在子进程代码当中写一个死循环,让其父进程直接退出。

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24908 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月8日
下一篇 2021年5月8日

相关推荐