Linux——进程的概念,僵尸进程、进程等待

进程

1.概念:

顾名思义,即正在运行中的程序;就是操作系统对运行中的程序的描述信息---PCB(Process Control Block)(进程控制块),在Linux下,PCB是一个具体的结构体——task_struct;

2.进程创建:

     通过fork()函数来创建:该函数是通过复制调用父进程的PCB来实现子进程的创建。

通过其返回值来对父子进程进行分流:

     在父进程中:返回值>0,返回的是子进程创建成功的pid,-1则表示创建失败

     在子进程中:返回值==0。

3.程序地址空间:

物理内存中程序地址空间的分布如下:

但是程序并不是直接被存储在物理内存中的,而是通过页表建立起虚拟地址空间与物理内存之间的映射;

(1)可以提高内存的利用率

(2)保证了进程的独立性

映射规则如下:

将虚拟地址中的虚页号取出,在页表中找对应的物理页号,将其与页内偏移拼接就是最终在物理内存中的物理地址。

每个进程都有自己的虚拟地址空间与对应的页表。

4.僵尸进程:

(1)子进程先于父进程退出

(2)父进程压根不知道子进程已经退出了,因此操作系统不会轻易释放子进程的资源(已经死亡了,还占用着资源)

注意:僵尸进程是无法杀死的,因为没有办法杀死一个已经死了的进程。

        kill   -9   也不能杀死僵尸进程,(但可以通过杀死其父进程来间接的释放子进程的资源)

发布了58 篇原创文章 · 获赞 43 · 访问量 4400

猜你喜欢

转载自blog.csdn.net/Wz_still_shuai/article/details/100119745