目 录 http://www.paper51.com 1 引言. 1 paper51.com 2进程概述. 1 paper51.com 2.1进程定义和结构. 1 paper51.com 2.2进程与程序、线程. 2 内容来自论文无忧网 www.paper51.com 3进程创建及状态. 2 paper51.com 3.1进程的创建. 2 内容来自论文无忧网 www.paper51.com 3.2进程状态. 3 http://www.paper51.com 4进程相关程序分析. 4 copyright paper51.com
4.1fork()函数创建进程. 4 copyright paper51.com
4.1.1程序运行结果及分析. 5 内容来自论文无忧网 www.paper51.com 4.1.2进程创建状态. 6 内容来自论文无忧网 www.paper51.com
4.2父进程与子进程. 6 内容来自论文无忧网 www.paper51.com
4.2.1程序. 6 内容来自论文无忧网 www.paper51.com 4.2.2运行结果与程序分析. 8 copyright paper51.com 4.3程序分析结论. 9 内容来自论文无忧网 www.paper51.com 4.4程序相关函数介绍. 9 http://www.paper51.com
5进程调度及查看属性. 11 内容来自论文无忧网 www.paper51.com
5.1调度原理. 11 内容来自论文无忧网 www.paper51.com 5.2查看进程属性. 12 内容来自www.paper51.com 6设计总结. 14 内容来自www.paper51.com
参考文献. 14 内容来自论文无忧网 www.paper51.com 致 谢. 15 paper51.com
http://www.paper51.com 1 引言 http://www.paper51.com Linux操作系统上所有运行的程序都可以称之为进程,进程作为构成操作系统的基本单位,不仅是系统内部独立运行的实体,而且是独立竞争资源的基本实体。多用户任务、每个系统管理的守护进程,都作为进程的表现。 copyright paper51.com 本文阐述了进程的相关内容,让它们能够更好地为用户服务提供简要分析。通过对进程相关概念的介绍,引出要论证的进程管理内容。就进程的管理而言,首先要进行的就是进程的创建,在进程创建中,用一个程序分析来实现对进程创建函数、概念的阐述。进程的状态是随着进程创建而产生的,它是进程管理的基础,是至关重要的部分,也是本文介绍的重点。最后是进程的调度简述,还列举了部分查看进程属性的简单Shell命令。 paper51.com 2进程概述 paper51.com 2.1进程定义和结构 内容来自www.paper51.com 在Linux操作系统中人们对进程下过各式各样的定义,Linux系统上所有运行的东西都可以称之为一个进程,每个用户任务、每个系统管理守护进程,都可以称之为进程,进程可以是一段程序,一个数据结构,一次执行过程。可以列举以下几种作为进程概念的解析【6】。 paper51.com ※ 进程是可以并发执行的计算机部分; paper51.com
※ 一个进程可以生成或消灭其子进程; copyright paper51.com
※ 进程是一抽象实体,当它执行某个任务时,将要分配和释放各种资源; http://www.paper51.com ※ 行为的规则叫程序,程序在处理机上执行时的活动成为进程; copyright paper51.com ※ 一个进程的存在意味着存在一个task_struct结构,它包含着相应的进程控制信息。 http://www.paper51.com 进程是一个动态的执行过程,所以还可以这样定义进程:并发执行的程序在执行过程中分配和管理资源的基本单位。 copyright paper51.com Linux用分时进程的管理方法使所有的任务共同分享系统资源。我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务。进程在此基础上的一个正式定义为:在自身的虚拟地址空间中运行的单独程序。 copyright paper51.com 一个进程在Linux系统内存里有三部分数据,如图2-1所示。与i386兼容的中央处理器,都有上述三种段寄存器,以方便操作系统的运行。 paper51.com 内容来自论文无忧网 www.paper51.com 图2-1 paper51.com
三种数据结构内容分别是:代码段是存放程序代码的数据结构,代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入操作——它是不可写的。对于数据段则存放程序的全局变量、常数及动态数据分配的数据空间。堆栈段里面存放的是子程序的返回地址、参数及程序的局部变量。堆栈可以看成一个寄存、交换临时数据的内存区。堆栈段包含在进程控制块PCB中。堆栈段中的PCB处于进程核心堆栈的底部,不需要额外分配空间。由于PCB是进程存在的唯一标志,是进程实体的一部分,是操作系统中重要的记录性数据结构,并且它记录了操作所需要的,用于描述进程情况及控制进程运行所需的全部信息,所以操作系统根据PCB对进程进行管理和控制。 http://www.paper51.com 2.2进程与程序、线程 http://www.paper51.com 进程与程序是有区别: paper51.com 进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源,没有任何执行的含义;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。举例来说,如果把程序比作菜谱,那么进程则是按照菜谱炒菜的过程。进程具有并发性,而程序没有,由于进程不反应执行过程,所以不具有并发性。并且一个程序可以启动多个进程。 内容来自www.paper51.com 线程是进程的一部分,它没有自己的地址空间,它和进程内的其他进程一起共享分配给该进程的所有资源。与进程相同,线程也是CPU调度的一个基本单位。 paper51.com 3进程创建及状态 内容来自论文无忧网 www.paper51.com |