- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 进程控制开发课件
本章的要求
第7章、进程控制
掌握进程相关的基本概念
掌握Linux下的进程结构
掌握Linux下进程创建及进程管理
掌握Linux下进程创建相关的系统调用
掌握守护进程的概念
掌握守护进程的启动方法
掌握守护进程的输出及建立方法
学会编写多进程程序 学会编写守护进程
晌携麻悄娟筒宜伪虚瓷扯超肾众拆气恃握背假胞条牡嚼厕旭侥悠库脑宣佳第7章 进程控制开发课件第7章 进程控制开发课件
本章的主要内容
7.1 Linux进程概述
7.2 Linux进程控制编程
7.3 Linux守护进程
7.4 实验
轨帕说蒂孪拉牟惹欺徘贬呛让堵书悉刹抒塔绅糯鲤珠哟倡撞厉迷腹涂查蔗第7章 进程控制开发课件第7章 进程控制开发课件
7.1 Linux进程概述
棠美碰妥肘绎荤捡名赫腺儒态们壕翔轰底辉税厩镐陛禾煮血妹垣舞惹揽嫁第7章 进程控制开发课件第7章 进程控制开发课件
进程的定义
进程的概念首先是在60年代初期由MIT的Multics系统和IBM的TSS/360系统引入的。在40多年的发展中,人们对进程有过各种各样的定义。现列举较为著名的几种。
进程是一个独立的可调度的活动(E. Cohen,D. Jofferson)
进程是一个抽象实体,当它执行某个任务时,要分配和释放各种资源(P. Denning)
进程是可以并行执行的计算单位。(S. E. Madnick,J. T. Donovan)
以上进程的概念都不相同,但其本质是一样的。它指出了进程是一个程序的一次执行的过程,同时也是资源分配的最小单元。它和程序是有本质区别的,程序是静态的,它是一些保存在磁盘上的指令的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序执行的过程,包括了动态创建、调度和消亡的整个过程。它是程序执行和资源管理的最小单位。
垣普儒气猾纺况帅遥屡骡乎校醒蘸庭痴续斥训荐信芬宛痴排吟反艳拓豫阿第7章 进程控制开发课件第7章 进程控制开发课件
进程控制块和标识符
进程是Linux系统的基本调度和管理资源的单位,它是通过进程控制块来描述的。进程控制块包含了进程的描述信息、控制信息以及资源信息,它是进程的一个静态描述。在Linux中,进程控制块中的每一项都是一个task_struct结构。
在Linux中最主要的进程标识有进程号(PID,Process Idenity Number)和它的父进程号(PPID,parent process ID)。其中PID惟一地标识一个进程。PID和PPID都是非零的正整数。
在Linux中获得当前进程的PID和PPID的系统调用函数为getpid()和getppid(),通常程序获得当前进程的PID和PPID之后,可以将其写入日志文件以做备份。
另外,进程标识还有用户和用户组标识、进程时间、资源利用情况等
经豁崇庄贩痴芋碳稽聊搪繁口成指脊噪哎棍卫悄港眼键账圾溶虎摘镣试给第7章 进程控制开发课件第7章 进程控制开发课件
进程的状态
进程是程序的执行过程,根据它的生命周期可以划分成3种状态。
执行态:该进程正在运行,即进程正在占用CPU。
就绪态:进程已经具备执行的一切条件,正在等待分配CPU的处理时间片。
等待态:进程不能使用CPU,若等待事件发生(等待的资源分配到)则可将其唤醒。
疹施亦蹦斧狭抵借猾孟帜苫摹钞没胜逗恕侄垂厉滔漾夷芜氛变衷纺丘酋峪第7章 进程控制开发课件第7章 进程控制开发课件
Linux下进程地址空间(1)
Linux系统是一个多进程的系统,它的进程之间具有并行性、互不干扰等特点。也就是说,每个进程都是一个独立的运行单位,拥有各自的权利和责任。其中,各个进程都运行在独立的虚拟地址空间,因此,即使一个进程发生异常,它也不会影响到系统中的其他进程。
Linux中的进程包含3个段,分别为“数据段”、“代码段”和“堆栈段”。
“数据段”存放的是全局变量、常数以及动态数据分配的数据空间,根据存放的数据,数据段又可以分成普通数据段(包括可读可写/只读数据段,存放静态初始化的全局变量或常量)、BSS数据段(存放未初始化的全局变量)以及堆(存放动态分配的数据)。
“代码段”存放的是程序代码的数据。
“堆栈段”存放的是子程序的返回地址、子程序的参数以及程序的局部变量等。
凌夫永惜锥长石琳典宽传兹籍沿珊市彪波牺纳耀旗声樱眨舔抹欣五奇拇龄第7章 进程控制开发课件第7章 进程控制开发课件
Linux下进程地址空间、用户态和内核态
谱榜陈檄跟铡挪忻轨授旗柞奏激灵辙损攻栅罩棺收淀献源勉祈惰铅优辩淌第7章 进程控制开发课件第7章 进程控制开发课件
Linux下的进程管理
启动进程
手工启动
调度启动
进程相关命令
文档评论(0)