- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
学云签约讲师魏娟学习c++开发基于Linux系统开发系列
—第14讲System与多进程
上节回顾注册退出处理进程退出
多进程基本概念System及其使用Linux(Unix)系统的多进程特点分析本节目标
多进程基本概念Linux(Unix)系统本身存在多进程简单任务可以一个进程完成,但在大型工程任务中,一般由一个程序不能完成,而是由多个进程来完成,在程序运行时,就要执行多进程在基于Linux(Unix)系统的c++开发中,我们非常有必要要掌握多进程编程处理多进程基本概念
System及其使用System的简介System是一个用于产生新的进程的函数头文件:stdlib.h(unistd.h)intsystem(constchar*string)函数功能产生新的进程,在新进程中执行参数string中的命令或可执行文件,该函数要到新命令执行结束才返回参数string指示新进程要执行的命令或可执行文件函数返回后回到原进程system后面的代码执行
System新进程执行过程在a.out程序的main函数中调用了system(ls-l),则系统会创建一个新进程在新的进程中执行ls-l命令新进程有自己独立的进程空间、进程id号、新进程从ls-l命令程序文件的main函数开始执行而a.out原进程会进入阻塞状态,直到新进程执行结束,a.out才会从system函数的下一条语句代码开始执行ls-l进程是由a.out进程产生的,所以a.out称为ls-l的父进程,ls-l是a.out的子进程System及其使用
父进程与子进程ls-l进程是a.out产生并启动的,这样的情况我们就称a.out是ls-l的父进程,ls-l是a.out的子进程pwd进程也是a.out产生并启动的,所以pwd也是a.out的子进程,a.out也是pwd的父进程ls-l和pwd就是兄弟进程System及其使用①cout“hello”endl;②system(ls-l);③coutendendl;⑷system(pwd);⑤coutgoodbyeendl;a.out父进程ls-l程序的主函数进程空间ls-l子进程pwd程序的主函数进程空间pwd子进程调用产生新进程执行结束返回调用产生新进程执行结束返回
system的特点创建新进程,开辟新的进程空间来运行命令或执行可执行文件阻塞父进程的执行等待子进程执行结束,阻塞恢复,执行父进程的后续代码语句父进程的进程空间与子进程的进程空间是相对独立的,互不影响System及其使用
Linux(Unix)系统的多进程特点分析Linux(Unix)是多进程系统Linux(Unix)系统是多用户系统,系统本身是有多进程在执行的在Linux(Unix)系统中的任何一个进程都会有父进程我们可以用ps-ef命令来查看每个进程的父进程Linux(Unix)系统多进程分析使用ps-ef|grep进程号来逐级查询分析
Linux(Unix)系统的多进程特点分析pid进程名0sched1initppid0进程号Ainetd1进程号Btelneted进程号A进程号Cshell进程号B进程号D各种命令进程号C进程调度器:在系统引导程序,在磁盘的引导区;它的作用:1、创建子进程,进行系统引导;2、做整个系统的进程调度系统初始化,命令位于/sbin/init,它的作用是加载设备硬件信息,驱动信息(I/O,网络inetd,内存,外设)负责网络管理、文件管理设备管理、应用管理(http,ftp,smtp,telnet...),/usr/lib/inet/inetd负责等待用户发送请求,用户发了请求它就为用户创建一个连接,提供登录功能,登录后就为用户创建一个shell;/usr/sbin/in.telnet用户在shell的帮助支持下,使用各种命令来操作系统
Linux(Unix)系统的多进程特点分析进程标识符在Linux(Unix)系统中,同时运行很多的进程,操作系统要管理这些进程,调度这些进程就需要给每个运行着的进程一个唯一的标识。这个唯一的进程标识叫做进程id,它是一个非负整数。程序访问获取进程id程序通过进程标识符函数获取进程id进程标识符函数头文件:unistd.h,sys/types.hpid_tgetpid()获取本进程的进程id
Linux(Unix)系统的多进程特点分析pid_tgetppid()获取某进程的父进程的进程id父子进程的特点如果进程A中调用system创建了进程B,那么A进程就叫进程B的父进程,B进程也就是子进程,它是父进程产生的,如果一个进程是在命令行中产生的,那么这个进程的父进程就是shell为什么每个进程都必须有父进程父进程要对子进程做一些必要的义务的工作,若没有父
文档评论(0)