- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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函数重新开始执行。
您可能关注的文档
- Java程序设计实例教程 毕广吉 第9章 多线程机制与动画新.ppt
- Java程序设计实例教程 魏先民-课件和源代码 第1章新.ppt
- Java程序设计实例教程 魏先民-课件和源代码 第2章新.ppt
- Java程序设计实例教程 魏先民-课件和源代码 第3章新.ppt
- Java程序设计实例教程 魏先民-课件和源代码 第4章新.ppt
- Java程序设计实例教程 魏先民-课件和源代码 第5章新.ppt
- Java程序设计实例教程 魏先民-课件和源代码 第6章新.ppt
- Java程序设计实例教程 魏先民-课件和源代码 第7章新.ppt
- Java程序设计实例教程 魏先民-课件和源代码 第8章新.ppt
- Java程序设计实用教程 赵欢 第2章 创建基于web的Java程序新.ppt
- 部编版四年级上册道德与法治期末测试卷及参考答案【满分必刷】.docx
- 部编版四年级上册道德与法治期末测试卷【能力提升】.docx
- 部编版四年级上册道德与法治期末测试卷及参考答案(模拟题).docx
- 部编版四年级上册道德与法治期末测试卷及参考答案【培优b卷】.docx
- 部编版四年级上册道德与法治期末测试卷【培优a卷】.docx
- 部编版四年级上册道德与法治期末测试卷【精选题】.docx
- 大型中速柴油机连杆轴抱瓦咬合事故原因分析.docx
- 部编版四年级上册道德与法治期末测试卷精品【名师推荐】.docx
- 部编版四年级上册道德与法治期末测试卷带答案(达标题).docx
- 部编版四年级上册道德与法治期末测试卷及参考答案(实用).docx
最近下载
- 一种磁珠法无醇核酸提取试剂盒及其提取方法.pdf VIP
- 项目管理机构设置及人员配备.pdf VIP
- 2022年广西高考英语试题和答案(文字版) .pdf VIP
- 2025年天津市专业技术人员公需考试试题-为中国式现代化提供强大动力和制度保障——党的二十届三中全会暨《中共中央关于进一步全面深化改革、推进中国式现代化的决定》总体解读.docx VIP
- 读书伴我快乐成长(四年级主题班会).ppt VIP
- 二元Logistic回归教程文件.ppt VIP
- 呼吸内科护士理论考试题附答案.doc
- 2015年6月大学英语四级考试真题.doc VIP
- 《中国考古学 III》课件:3_1 秦代墓葬.ppt
- 中华中医药学会体质辨识标准——体质分类与判定.pdf VIP
文档评论(0)