linux------进程管理

linux process management

linux process manager

https://www.google.com/search?biw=1525&bih=693&tbm=isch&sa=1&ei=TaPYWtumHcjc8QW4uY7oAg&q=linux+process+management&oq=linux+process+&gs_l=psy-ab.1.8.0l9.8377.9273.0.14829.7.7.0.0.0.0.303.890.0j2j1j1.4.0....0...1c.1.64.psy-ab..5.2.555...0i24k1.0.Be-NuGQtKBs#imgrc=kIWohhXB2_z3PM:


linux里,进程由三部分构成:

1.text,正文段:存放被执行的机器指令。这个段是只读的,它允许系统中正在运行的两个或多个进程之间能共享这一段代码。

2.user segment:用户数据段:存放进程在执行时直接操作的所有数据,包括进程使用的全部变量在内。但每个进程需要有自己的专用用户数据,虽然进程之间可以共享正文段。

3.system segment:系统数据段,有效的存放程序运行的环境。事实上,这正是程序和进程的区别所在,是进程实体最重要的一部分。它存放有系统的控制信息,通过这些控制信息来控制他们,调度他们运行。如为每个进程建立了task_struct数据结构来容纳这些控制信息——————PCB(Process Control Block)进程控制块,也被称为进程描述符(Process Descriptor)



任务task和进程process是两个相同的术语。  task_struct 其实就是PCB。task_struct容纳了一个进程的所有信息,不仅是系统对进程控制的唯一手段,也是系统实现进程调度的重要方式。


当一个进程被创建时,linux会为每一个新创建的进程分配一个task_struct结构。当进程运行结束时,系统会撤销该进程的task_struct(任务结构体,PCB),所以说PCB(任务结构体)是进程存在的唯一标志。而系统会在内存中为所有的进程的任务结构体创建一个专门区域来存放他们, 其实也就是在内核空间设置了一个task数组。

首先看一下task_struct 结构:

eng:

linux------进程管理_第1张图片linux------进程管理_第2张图片


zhong:

linux------进程管理_第3张图片















































你可能感兴趣的:(linux,操作系统----linux)