Linux基础及应用教程陈英电子教案 第4章 进程控制开发.pptVIP

Linux基础及应用教程陈英电子教案 第4章 进程控制开发.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
陈英 梁建武主编 中国水利水电出版社 Linux基础及应用 第四章 进程控制开发 4.1 Linux下进程概述 4.1.1 进程的概念 1.进程的引入 2.进程及其特征 (1)动态性 (2)并发性 (3)独立性 (4)异步性 (5)结构特征:进程由程序、数据和进程控制块三部分组成 3.进程与程序的关系 程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。 4.1.2 进程的结构 (1)进程状态 (2)调度信息 (3)标识符 (4)内部进程通信信息 (5)链接信息 (6)时间和计时器 (7)文件系统 (8)虚拟内存信息 (9)处理器信息 4.2 Linux进程控制编程 4.2.1 进程的创建 方法:调用系统调用 fork 系统调用的语法格式: pid = fork(); 4.2.2 进程的等待 pid_t wait(int *stat_loc)?; pid_t waitpid(pid_t pid,int *stat_loc,int options)?;   wait系统调用会使父进程阻塞直到一个子进程结束。如果没有父进程,没有子进程或者其子进程已经结束,wait会立即返回。成功时wait将返回子进程的ID,否则返回-1,并设置全局变量errno.stat_loc是子进程的退出状态。 4.2.3 进程的终止 核心为系统调用exit完成下列操作: (1)撤销所有的信号量 (2)释放其所有的资源,包括存储空间、已打开文件、工作目录、信号处理表等。 (3)把进程状态置为“终止态” (4)向其父进程发送子进程终止的信号。 (5)执行相应的进程调度。 4.2.4 进程映像的更换 核心为系统调用exec完成下列操作: (1)验证文件的可执行性,即用户有权执行它。 (2)读文件头,检查它是一个可装入模块。 (3)释放原有的内存空间。 (4)按照可执行文件的要求分配新的内存空间,并装入内存。 4.3 Linux守护进程 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。 4.3.1 守护进程及其特性 守护进程最重要的特性是后台运行。在这一点上DOS下的常驻内存程序TSR与之相似。 守护进程必须与其运行前的环境隔离开来。 4.3.2 守护进程的编程要点 (1)在后台运行。 (2)脱离控制终端、登录会话和进程组 (3)禁止进程重新打开控制终端 (4)关闭打开的文件描述符 (5)改变当前工作目录 (6)重设文件创建掩模 (7)处理SIGCHLD信号 4.4 Linux内核简介 Linux 内核的主要用途就是为了与计算机硬件进行交互,实现对硬件部件的编程控制和接口操作,调度对硬件资源的访问,并为计算机上的用户程序提供一个高级的执行环境和对硬件的虚拟接口。 Linux 内核主要由5 个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。 4.5 shell基本工作原理及编程 Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是用户和Linux内核之间的接口程序。 shell是一个命令语言解释器,类似于DOS下的程序,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。 shell有很多种,如:csh,tcsh,pdksh,ash,sash,zsh,bash等。Linux的缺省shell为bash(Bourne Again shell)。 用户如何知道安装的Linux版本支持哪些shell?在提示符下输入:    cat /etc/shells 如果用户想知道自己现在使用的是哪种shell,可以在提示符后输入:    echo $SHELL 4.5.1 shell的基本工作原理 (1)读取用户由键盘输入的命令行。 (2)分析命令,以命令名作为文件名,并将其它参数改造为系统调用execve()内部处理所要求的形式。 (3)终端进程调用fork()建立一个子进程。 (4)终端进程本身用系统调用wait4()来等待子进程完成(如果是后台命令,则不等待)。 (5)如果命令末尾有号(后台命令符号),则终端进程不用系统调用wait4()等待,立即发提示符,让用户输入下一个命令,转⑴。如果命令末尾没有号,则终端进程要一直等待,当子进程(即运行命

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档