进程(process)相关概念
- 进程(process)
-
- 1、进程定义
- 2、进程的分类
- 3、进程状态
- 4、进程的组成
-
- 4.1、正文段(text)和用户数据段
- 4.2、PCB进程控制块
- 5、特殊进程
-
- 5.1 僵尸进程(Zombie )(面试重点)
-
- 5.1.1、定义
- 5.1.2、产生背景
- 5.1.3、危害场景
- 5.1.4、僵尸进程测试程序
- 5.1.5、僵尸进程解决办法
-
- (1)通过信 机制
- (2)fork两次
- 5.2 孤儿进程(不会有什么危害)
-
- 5.2.1、定义
- 5.2.2、孤儿进程的回收(init进程)
- 5.2.3、孤儿进程测试程序
- 5.3 守护进程(daemon)(面试要点)
-
- 5.3.1、定义
- 5.3.2、作用
- 5.3.3、分类(部分)
- 5.3.3、创建
- 5.3.4、守护进程样例
- 6、进程监控(linux指令)(面试要点)
-
- 6.1 使用ps命令监控系统进程(重要)
- 6.2 使用top命令监控系统进程(重要)
- 6.3 使用lsof命令监控系统进程
- 6.4 kill
- 参考
进程(process)
1、进程定义
- 进程是 Unix 和 Linux 系统中对正在运行中的应用程序的抽象,通过它可以管理和监视程序对内存、处理器时间和 I / O资源的使用。程序被触发后,执行者的权限与属性、程序的程序代码与所需数据等都会被加载内存中,操 作系统并给予这个内存内的单元一个标识符 (PID),可以说,进程就是一个正在运作中的程序。
(面试热点)
-1、 进程,是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位 或者linux操作系统最小的资源管理单元 - 1、新建:新建表示进程正在被创建。
- 2、运行:运行是进程正在运行。
- 3、阻塞:阻塞是进程正在等待某一个事件发生。
- 4、就绪:就绪是表示系统正在等待CPU来执行命令。
- 5、结束:完成表示进程已经结束了系统正在回收资源。
- 1、运行:正在运行或在运行队列中等待。
- 2、中断:休眠中, 受阻, 在等待某个条件的形成或接受到信 。
- 3、不可中断:收到信 不唤醒和不可运行, 进程必须等待直到有中断发生。
- 4、僵死:进程已终止, 但进程描述符存在,直到父进程调用wait4()系统调用后释放。
- 5、停止:进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信 后停止运行运行。
- 1.正文段(text):存放程序代码。正文段具有只读的属性。
- 2.用户数据段(user segment):是进程在运行过程中处理数据的集合,它们是 进程直接进行操作的所有数据(包括全部变量在内),以及进程使用的进程堆栈。
- 3.系统数据段(system segment):存放着进程的控制信息,即进程控制块(PCB ,Processing Control Block),名字为task_struct的数据结构。
- 1、用户数据段
- 1、用户栈区(供用户程序使用的信息区);
- 2、用户数据区(包括用户工作数据和非可重入的程序段);
- 3、系统数据区(包括系统变量和对换信息)
-
2、正文段
程序段是可重入的程序,能被若干进程共享。为了管理可共享的正文段,Linux设置了一张正文表,每个正文段都占用一个表目,用来指出该正文段在内存和磁盘上的位置、段的大小以及调用该段的进程数等情况。
Linux上进程有5种状态,这5中状态可以与一般操作系统的状态对应起来:
4、进程的组成
说明:
PCB(进程控制块) 结构体 task struct,负责管理进程的所有资源,它的成员 mm_struct 指向这个进程相关的内存资源,mm_struct指向一个结构体,包括:
栈 :给局部变量(自动变量)分配空间的地方
堆 :使用malloc、new… 分配的空间(也叫自由区)
BSS段
数据段
代码段:代码区是只读的,程序代码会被读入此区,程序执行期间执行的就是代码区中的代码。
进程空间管理图片
Linux系统把进程的数据段又划分成三部分:
————————————————————————————————
4.2、PCB进程控制块
在Linux成功fork进程后,会在系统中创建一个task_struct(也称PCB, process control block),用来描述当前进程的状态、进程间关系、优先级和资源等信息。
gcc zombie.c -o test1
./test1
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!