Linu操作系统 进程管理.pptVIP

  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文档。上传文档
查看更多
Linu操作系统 进程管理

5)调用get_pid( )函数为子进程得到一个pid号。 6)依次调用copy_files( ),copy_fs( ), copy _sighand( ),copy_mm( )分别复制父进程文件处 理、信号处理及进程空间的信息。以上函数的具 体行为取决clone_flags参数,例如,copy_mm( ) 时,如果clone_flags包含有CLONE_VM 标志,则 子进程共享父进程的空间,不会进行复制。 7)调用copy_thread( )初始化子进程的核心 模式栈时,核心栈保存了进程返回用户空间的上 文。此处与平台相关,以i386为例,其中很重要 的一点是存储寄存器eax值的位置被置0,这个值 就执行系统调用后子进程的返回值。 10.1.7 进程的销毁 1.时机 2.do_exit( )的执行过程 进程销毁的最终动作是调用函数do_exit( )完成的。 1)设置标志表明进程正在被销毁。 2)如果进程在定时器队列或信号量队列中等待,则将其移出。 3)调用__exit_mm( ),__exit_files( ), __exit_fs( )和exit_sighand( )释放进程所占用的各种资源。释放资源的一般先将其共享计数器减一,如果此时还有别的进程使用该资源,则将共享计数器不置为0,此时直接返回。如果为0才真正释放资源。__exit_mm( )的动作是释放进程空间,过程中会检测该进程是否由vfork( )创建,如果是,则唤醒父进程。 4)设置进程的退出状态,调用exit_notify( )处理 该进程与其父进程和子进程的各种关系。在该函数中会 将该进程状态置为TASK_ZOMBIE。 5)调用schedule()调度函数切换到别的进程。 3.TASK_ZOMBIE进程 * * 第10章 Linux操作系统 本章内容:进程管理,存储管理,文件系统, 设备管理,中断、异常及系统调 用,进程通信。 10.1? 进程管理 内容 进程描述符; 进程的调度时机及调度算法; 进程的创建与消亡。 10.1.1 进程与进程描述符 1.进程概念 2.进程描述符(进程控制块) 由一个task_struct结构表示。task_struct结构是一个复杂的结构,占一千多字节,其各个成员用来准确描述进程在各方面的信息.主要有以下几个部分: Linux进程与传统UNIX进程的概念没有多大区别; 没有真正意义上的线程概念。但Linux通过clone()系统调用支持轻权进程; Linux还支持内核线程的概念,内核线程永远在核心态运行,没有用户空间。 (1)进程标识 包括进程的标识号(pid)、进程的用户标识、进程的组标识等。每个进程的标识号是惟一的。 (2)调度相关信息 这部分内容与进程调度有关,一部分信息见后面的第5节。进程描述符中还需要有结构保存当进程被换出时寄存器的状态,该进程恢复运行时便可从正确的状态开始继续运行。 (3)进程虚拟空间信息 Linux的进程都在自己的私有地址空间中运行,task_struct的成员mm指向一个mm_struct结构,该结构描述进程空间。 (4)信号处理信息 Linux支持传统的UNIX信号语义。该部分记录了信号的处理函数及信号掩码等信息。 (5)文件相关信息 包含进程与文件系统交互的信息。这里主要分为两部分,一部分描述进程进行文件访问时用到的当前目录、根目录信息。另一部分描述被进程正在使用的文件信息,该部分主要有一个file结构数组,数组中的有效项指向某个文件对象。 (6)记账信息及统计信息 资源是有限的,每个进程对每种资源的使用都有一个限值。另外,还有统计信息来记录系统需要的信息,如页面异常次数、CPU使用时间等。 (7) 描述进程间关系的指针 所有的进程通过一个双向链表链接在一起。通过宏for_each_task可以对每个进程操作。 指向其父进程、子进程、兄弟进程描述符的指针。 需要根据pid号能够快速找到进程,系统以pid为关键字建立了一个哈希表, 哈希函数值相同的进程通过进程描述符的pidhash_next和pidhash_pprev成员链在一起。 10.1.2 核心态与核心栈 union task_union { struct task_struct task; unsigned long stack[2048]; }; Linux的运行分为两种模式──核心态和用户态。内核总在核心态下运行,而普通进程通常在

文档评论(0)

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

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

1亿VIP精品文档

相关文档