Linux教程:Linux进程的基础
来源:互联网 发布:锦衣卫 知乎 编辑:程序博客网 时间:2024/06/16 09:36
Linux教程:Linux进程的基础
4.1 Linux进程的基础
4.1.1 进程的基本概念
程序是为了完成某种任务而设计的软件,比如vi是程序。什么是进程呢?进程就是运行中的程序。一个运行着的程序,可能有多个进程。比如Web服务器是Apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户同时请求httpd服务,Apache服务器将会创建多个httpd进程来对其进行服务。
首先我们看看进程的定义。进程是一个具有独立功能的程序关于某个数据集合的一次可以并发执行的运行活动,是处于活动状态的计算机程序。进程作为构成系统的基本细胞,不仅是系统内部独立运行的实体,而且是独立竞争资源的基本实体。了解进程的本质,对于理解、描述和设计操作系统有着极为重要的意义。了解进程的活动、状态,也有利于编制复杂程序。
4.1.2 进程的属性
进程的定义:一个进程是一个程序的一次执行的过程;程序是静态的,它是一些保存在磁盘上的可执行的代码和数据集合;进程是一个动态的概念,它是Linux系统的基本的调度单位;一个进程由如下元素组成:
程序读取的上下文,它表示程序读取执行的状态。
程序当前执行的目录。
程序服务的文件和目录。
程序访问的权限。
内存和其他分配给进程的系统资源。
Linux进程中最知名的属性就是它的进程号(Process Idenity Number,PID)和它的父进程号(Parent Process ID,PPID)。PID、PPID都是非零正整数。一个PID唯一地标识一个进程。一个进程创建新进程称为创建了子进程(Child Process)。相反地,创建子进程的进程称为父进程。所有进程追溯其祖先最终都会落到进程号为1的进程身上,这个进程叫做init进程,是内核自举后第一个启动的进程。init进程扮演终结父进程的角色。因为init进程永远不会被终止,所以系统总是可以确信它的存在,并在必要的时候以它为参照。如果某个进程在它衍生出来的全部子进程结束之前被终止,就会出现必须以init为参照的情况。此时那些失去了父进程的子进程就都会以init作为它们的父进程。如果执行一下ps-af命令,可以列出许多父进程ID为1的进程来。Linux提供了一条pstree命令,允许用户查看系统内正在运行的各个进程之间的继承关系。直接在命令行中输入pstree即可,程序会以树状结构方式列出系统中正在运行的各进程之间的继承关系。
4.1.3 理解Linux下进程的结构
Linux中一个进程在内存里有三部分数据,就是“数据段”、“堆栈段”和“代码段”。基于I386兼容的中央处理器,都有上述三种段寄存器,以方便操作系统的运行,如图4-1所示。
图4-1
代码段是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段。而数据段则存放程序的全局变量、常数及动态数据分配的数据空间。堆栈段存放的就是子程序的返回地址、子程序的参数及程序的局部变量。堆栈段包含在进程控制块PCB(Process Control Block)中。PCB处于进程核心堆栈的底部,不需要额外分配空间。
- Linux教程:Linux进程的基础
- linux的进程基础
- Linux教程-进程查看
- 【Linux基础】linux进程控制
- 【Linux】【Some】Linux 进程基础
- Linux守护进程基础
- Linux进程基础
- Linux进程基础
- Linux进程基础
- linux进程控制基础
- Linux进程基础
- 【Linux基础】进程结构
- 【Linux基础】进程属性
- 【Linux基础】进程管理
- 【Linux基础】进程模式
- Linux进程基础
- Linux基础-进程相关
- Linux进程基础
- 解题笔记(21)——字符串的排列组合问题
- dedeEims产品列表排序介绍
- word技巧:去空格+目录生成/pdf转换
- 在jsp中分页 不刷新页面(不适合记录太多的表格)
- myeclipse 8.5安装插件流程
- Linux教程:Linux进程的基础
- c++类的内存布局
- dedeeims去掉当前位置中"简体中文"链接解决方案
- 服务器配置多个tomcat(解决方案)
- 求解释关于javascript的问题
- 记录我的android之旅
- Asp.net 后台添加CSS、JS、Meta标签
- Speex manul中文版
- android ui 休眠关机动画