欢迎来到天天文库
浏览记录
ID:4167750
大小:683.47 KB
页数:35页
时间:2017-11-29
《嵌入式linux应用程序开发详解-第7 章 进程控制开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、华清远见——嵌入式培训专家http://www.farsight.com.cnQQ:313638714http://shop.embedu.cn“黑色经典”系列之《嵌入式Linux应用程序开发详解》第7章进程控制开发本章目标文件是Linux中最常见最基础的操作对象,而进程则是系统调度的单位,在上一章学习了文件I/O控制之后,本章主要讲解进程控制开发部分,通过本章的学习,读者将会掌握以下内容。掌握进程相关的基本概念掌握Linux下的进程结构掌握Linux下进程创建及进程管理掌握Linux下进程创建相关的系统调用掌握守护进程的概念掌握守护进程的启动方法掌握守护进程的输出及建立方法学会编写
2、多进程程序学会编写守护进程华清远见<嵌入式Linux应用开发班>培训教材华清远见——嵌入式培训专家http://www.farsight.com.cnQQ:313638714http://shop.embedu.cn7.1Linux下进程概述7.1.1进程相关基本概念1.进程的定义进程的概念首先是在60年代初期由MIT的Multics系统和IBM的TSS/360系统引入的。经过了40多年的发展,人们对进程有过各种各样的定义。现列举较为著名的几种。(1)进程是一个独立的可调度的活动(E.Cohen,D.Jofferson)(2)进程是一个抽象实体,当它执行某个任务时,将要分配和释放各种
3、资源(P.Denning)(3)进程是可以并行执行的计算部分。(S.E.Madnick,J.T.Donovan)以上进程的概念都不相同,但其本质是一样的。它指出了进程是一个程序的一次执行的过程。它和程序是有本质区别的,程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程。它是程序执行和资源管理的最小单位。因此,对系统而言,当用户在系统中键入命令执行一个程序的时候,它将启动一个进程。2.进程控制块进程是Linux系统的基本调度单位,那么从系统的角度看如何描述并表示它的变化呢?在这里,是通
4、过进程控制块来描述的。进程控制块包含了进程的描述信息、控制信息以及资源信息,它是进程的一个静态描述。在Linux中,进程控制块中的每一项都是一个task_struct结构,它是在include/linux/sched.h中定义的。3.进程的标识在Linux中最主要的进程标识有进程号(PID,ProcessIdenityNumber)和它的父进程号(PPID,parentprocessID)。其中PID惟一地标识一个进程。PID和PPID都是非零的正整数。在Linux中获得当前进程的PID和PPID的系统调用函数为getpid和getppid,通常程序获得当前进程的PID和PPID可以
5、将其写入日志文件以做备份。getpid和getppid系统调用过程如下所示:/*process.c*/#include#include#includeintmain(){/*获得当前进程的进程ID和其父进程ID*/printf("ThePIDofthisprocessis%d",getpid());printf("ThePPIDofthisprocessis%d",getppid());华清远见<嵌入式Linux应用开发班>培训教材《嵌入式Linux应用程序开发详解》——第7章、进程控制开发QQ:313638714ht
6、tp://shop.embedu.cn}使用arm-linux-gcc进行交叉编译,再将其下载到目标板上运行该程序,可以得到如下结果,该值在不同的系统上会有所不同:[root@localhostprocess]#./processThePIDofthisprocessis78THePPIDofthisprocessis36另外,进程标识还有用户和用户组标识、进程时间、资源利用情况等,这里就不做一一介绍,感兴趣的读者可以参见W.RichardStevens编著的《AdvancedProgrammingintheUNIXEnvironmen》。4.进程运行的状态进程是程序的执行过程,根据
7、它的生命期可以划分成3种状态。·执行态:该进程正在,即进程正在占用CPU。·就绪态:进程已经具备执行的一切条件,正在等待分配CPU的处理时间片。·等待态:进程不能使用CPU,若等待事件发生则可将其唤醒。它们之间转换的关系图如图7.1所示。时间片到因等待事件发生就绪而唤醒调度等待某个事件发生执行等待而睡眠图7.1进程3种状态的转化关系7.1.2Linux下的进程结构Linux系统是一个多进程的系统,它的进程之间具有并行性、互不干扰等特点。也就是说,进程之间是
此文档下载收益归作者所有