网站大量收购独家精品文档,联系QQ:2885784924

Linux体系与编程——基于Linux 0.01版本 源代码-卢军 第7章新.pptVIP

Linux体系与编程——基于Linux 0.01版本 源代码-卢军 第7章新.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 进程控制 7.1 Linux进程概述 进程中包含和程序一样的指令和数据,进程也包含了程序计数器和所有CPU寄存器的值,同时它的堆栈中还存放着子程序参数、返回值以及变量之类的临时数据。 7.1.1 进程简介 为了描述和控制进程的运行,操作系统为每个进程定义了一个数据结构——进程控制块,即PCB(Process Control Block)。而由程序段、相关的数据段和PCB三部分才组成了所谓的进程实体。需要注意的是,一般对进程的创建/撤销操作,实质上只是针对进程实体中的PCB。 7.1 Linux进程概述 Linux操作系统一般把进程分为3类,每种进程都有自己的特点和属性。 交互进程:由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。 批处理进程:这种进程和终端没有联系,是一个进程序列。 精灵进程:Linux系统启动时的进程,在后台运行。 7.1 Linux进程概述 7.1.2 进程标识 进程标识号(process ID,PID)就是进程的身份证,它惟一标识一个进程。只要知道了进程的标识号,就能够控制这个进程。 Linux/Unix有一些专用的进程ID: 进程ID为0的是调度进程,常常被称为交换进程(swapper)。 所有进程的祖先是一个进程ID为1的进程,这个进程叫做init进程,它是系统启动后第一个启动的进程。 进程ID为2的是页精灵进程(pagedaemon)。 7.2 创建进程 7.2.1 fork函数 可以在一个现存进程中调用fork函数创建一个子进程以达到创建进程的目的。 #include sys/types.h #include unistd.h pid_t fork(void); fork创建的子进程是父进程的一个准确的副本,子进程中包含了父进程的UID和GID、进程组和会话ID、环境、资源限制、打开的文件等等。 7.2 创建进程 7.2.2 vfork函数 vfork也是创建一个新进程,但它并不产生父进程的副本。 #include unistd pid_t vfork(void); vfork函数与fork函数的区别。 7.3 终止进程 exit和_exit函数用于正常终止一个程序,它们都带一个整型参数,以表示进程终止时的终止状况。 #include stdlib.h void exit(int status); #include unistd.h void _exit(int status); exit和_exit函数的区别。 7.4 等待进程 7.4.1 wait函数 wait系统调用函数即可暂停父进程直到它的子进程结束(获得其终止状态)为止。 #include sys/types.h #include sys/wait.h pid_t wait(int *status); pid_t waitpid(pid_t pid , int *status, int options); 如果一个子进程还在运行,那么父进程调用wait时将会被阻塞;如果一个子进程已终止,正等待父进程存取其终止状况,那么父进程调用wait时将立即返回并取得该子进程的终止状况;如果一个进程没有任何子进程,那么调用wait时出错,立即返回。 7.4 等待进程 7.4.2 waitpid函数 waitpid的作用和wait函数的作用是一样的。不过wait等待的是第一个结束的子进程,它只要截获了任意一个子进程结束的信息,便会立刻返回;waitpid可以等待指定的子进程直到子进程的结束。 7.5 exec函数 #include unistd.h int execl(const char *pathname, const char *arg0, ...,/*NULL*/); int execle(const char *pathname, const char *arg0, ...,/*NULL*/, char *const envp[]); int execlp(const char *filename, const char *arg0, ...,/*NULL*/); int execv(const char *pathname, char *const argv[]); int execvp(const char *filename, char *const argv[]); int execve(const char *pathname, char *const argv[], char *const envp[]); 当进程调用其中一种exec函数时,该进程被替换为一个全新的程序,新的程序从其main函数重新开始执行。

您可能关注的文档

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档