第七章进程控制开发.pptVIP

  1. 1、本文档共68页,可阅读全部内容。
  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章 进程控制 Linux进程概述 Linux进程控制编程 Linux守护进程 实验 进程的定义 进程的参考定义有如下几种: 1、进程是程序的一次执行过程; 2、进程=PCB+程序+数据; 3、进程是一个可拥有资源的独立实体,同时又是一个可以独立调度的基本单位。 进程与程序的区别 动态性与静态 进程由“创建”而产生,由“调度”而执行;由得不到资源而阻塞;由撤消而消亡。而程序是静态的,是完成某个特定功能的指令的有序序列,我们把程序看成是一个菜谱,而进程则是按照菜谱进行烹调的过程。 结构特征 从结构上看,每个进程是由程序段、数据段和进程控制块三部分组成,总称“进程映像”。程序无控制块。 进程与程序的区别 并发性 多个进程实体,同存于内存中,能在一段时间内同时执行;程序是不能并发执行的,只有建立了进程,才能并发执行。 独立性。 进程是系统进行资源分配和调度的一个独立单位;程序则不是。 进程具有创建其它进程的功能 进程的状态 进程控制块 进程控制块是进程存在的标志,每一进程都有一进程控制块,Linux中用数据结构task_struct表示,并将指向每个进程控制块的指针保存在一个数组task中,数组下标的最大值为512,表明Linux允许的进程数最多可有 512个。 Linux进程控制块也叫进程描述符(Process Descriptor) 状态信息-描述进程状态的变化。 链接信息-描述进程的父/子关系。 各种标识符-用简单数字对进程进行标识。 进程间通信信息-描述多个进程在同一任务上协作工作。 时间和定时器信息-描述进程在生存周期内使用CPU时间的统计、计费等信息。 调度信息-描述进程优先级、调度策略等信息。 文件系统信息-对进程使用文件情况进行记录。 虚拟内存信息-描述每个进程拥有的地址空间。 处理器环境信息-描述进程的执行环境(处理器的寄存器及堆栈等) 进程标识符PID 每个进程都有一个唯一的标识符PID ,内核通过这个标识符来识别不同的进程,用户程序通过PID对进程发号施令 ,PID是32位的无符号整数,它被顺序编号 ,1、2、…..、32767 每个进程都属于某个用户组。 task_struct结构中还定义有用户标识符UID(User Identifier)和组标识符GID(Group Identifier) 这两种标识符用于系统的安全控制 ,系统通过这两种标识符控制进程对系统中文件和设备的访问。 Linux下进程地址空间 Linux系统是一个多进程的系统,每个进程都是一个独立的运行单位,运行在独立的虚拟地址空间,即使一个进程发生异常,它也不会影响到系统中的其他进程。 Linux下进程地址空间包含3个段,分别为“数据段”、“代码段”和“堆栈段”。 ? 数据段:存放全局变量、常数以及动态分配的数据。数据段又可以再分成普通数据段(包括可读可写/只读数据段,存放静态初始化的全局变量或常量)、BSS数据段(存放未初始化的全局变量)以及堆(存放动态分配的数据)。 ? 代码段:存放程序代码。 ? 堆栈段:存放子程序的返回地址、参数以及程序的局部变量等。 Linux下进程地址空间 Linux下进程的运特模式 在Linux系统中,进程的执行模式划分为用户模式和内核模式 用户模式:若进程执行的是用户程序、应用程序或者内核之外的系统程序,则处在该模式下,也称为用户态 内核模式:用户程序执行中出现系统调用或者发生中断事件,就要运行核心程序,进程模式就转变为内核模式,也称进入核心态 内核模式下运行的进程可以执行机器的特权指令,访问受操作系统保护的资源 第7章 进程控制 Linux进程概述 Linux进程控制编程 Linux守护进程 实验 创建进程 fork() fork() 从已存在的进程中创建一个称为子进程的新进程,而原进程称为父进程。 fork()使用“写时复制”技术产生新进程。即只复制父进程的控制块、内核栈与页表并作必要修改即产生一个新/子进程。让子进程共享父进程的地址空间,包括代码段、进程堆栈、内存信息、打开的文件描述符、资源限制和控制终端等。当父、子进程中有一个要写入时才进行复制/增加一个拷贝,如果子进程产生后立即调用exec()函数,就可避免写时拷贝的额外开销。 父子两个进程运行同一个程序,与创建进程的初衷相左,因此需要用一种方式来区分它们,并使它们运行不同的程序,否则,这两个进程不可能做不同的事。什么方式? 条件或分支指令 exec()函数 exec函数族(1) exec函数族提供了一个在进程中启动另一个程序运行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档