操作系统教程彭德林电子教案 第8章Linux操作系统分析.pptVIP

操作系统教程彭德林电子教案 第8章Linux操作系统分析.ppt

  1. 1、本文档共78页,可阅读全部内容。
  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文档。上传文档
查看更多
8.1 Linux 的进程管理 进程是在操作系统中执行特定的任务。 程序是存储在磁盘上包含可执行机器指令和数据的静态实体。 进程或者任务是处于活动状态的计算机程序。 进程是一个随执行过程不断变化的实体。 进程在生命期内将使用系统中的资源 8.1.1 Linux 的进程 系统中最宝贵的资源是CPU,通常系统中只有一个CPU。 Linux是一个多处理操作系统,它最终的目的是: 任何时刻系统中的每个CPU上都有任务执行,从而提高CPU的利用率。如果进程个数多于CPU的个数,则有些进程必须等待到CPU空闲时才可以运行。 多处理是的思路很简单;当进程需要某个系统资源时它将停止执行并等待到资源可用时才继续运行。 Linux支持多种类型的可执行文件格式,如ELF,JAVA等。由于这些进程必须使用系统共享库,所以对它们的管理要具有透明性。 为了让Linux来管理系统中的进程,每个进程用一个task_struct数据结构来表示(任务与进程在Linux中可以混用)。 Linux还支持实时进程。 虽然task_struct数据结构庞大而复杂,但它可以分成一些功能组成部分,具体如下: 1.State (进程状态信息) 进程在执行过程中会根据环境来改变state。Linux进程有以下状态: Running :进程处于运行(它是系统的当前进程)或者准备运行状态(它在等待系统将CPU分配给它)。 Waiting :进程在等待一个事件或者资源。 Stopped :进程被停止。 Zombie :这是由于某些原因被终止的进程,但是在task数据中仍然保留task_struct结构。 它象一个已经死亡的进程。 2.Scheduling Information (调度信息) 调度器需要这些信息以便判定系统中哪个进程最迫切需要运行。 3.Identifiers (进程标识信息) 系统中每个进程都有进程标志。进程标志并不是task数组的索引,它仅仅是个数字。每个进程还有一个用户与组标志,它们用来控制进程对系统中文件和设备的存取权限。 4.Inter-Process Communication (进程通信信息) Linux支持经典的Unix IPC机制,如信号、管道和信号灯以及系统V中IPC机制,包括共享内存、信号灯和消息队列。 5.Links (链接信息) Linux系统中所有进程都是相互联系的。除了初始化进程外,所有进程都有一个父进程。新进程不是被创建,而是被复制,或者从以前的进程克隆而来。每个进程对应的task_struct结构中包含有指向其父进程和兄弟进程(具有相同父进程的进程)以及子进程的指针。 6.Times and Timers (时间和定时器信息) 核心需要记录进程的创建时间以及在其生命期中消耗的CPU时间。时钟每跳动一次,核心就要更新保存在jiffies变量中,记录进程在系统和用户模式下消耗的时间量。Linux支持与进程相关的interval定时器,进程可以通过系统调用来设定定时器以便在定时器到时后向它发送信号。这些定时器可以是一次性的或者周期性的。 7.File system (文件系统信息) 进程可以自由地打开或关闭文件,进程的task_struct结构中包含一个指向每个打开文件描叙符的指针以及指向两个VFS inode的指针。 8.Virtual memory (虚拟内存信息) 多数进程都有一些虚拟内存(核心线程和后台进程没有),Linux核心必须跟踪虚拟内存与系统物理内存的映射关系。 9.Processor Specific Context (进程上下文信息) 进程可以认为是系统当前状态的总和。进程运行时,它将使用处理器的寄存器以及堆栈等等。进程被挂起时,进程的上下文-所有的CPU相关的状态必须保存在它的task_struct结构中。当调度器重新调度该进程时,所有上下文被重新设定。 8.1.2 Linux 的进程调度 所有进程部分时间运行于用户模式,部分时间运行于系统模式。 进程常因为执行系统调用而需要等待。 调度器必须选择最迫切需要运行而且可以执行的进程来执行。 可运行进程是一个只等待CPU资源的进程。 为了将CPU时间合理的分配给系统中每个可执行进程,调度管理器必须将这些时间信息也保存在task_struct中,在task_struct中有如下结构: 1.policy 应用到进程上的调度策略。系统中存在两类Linux进程:普通与实时进程。实时进程的优先级要高于其它进程。如果一个实时进程处于可执行状态,它将先得到执行。实时进程又有两种策略:时间片轮转和先进先出。在时间片轮转策略中,每个可执行实时进程轮流执行一个时间片,而先进先出策略每个可执行进程按各自在运行队列中的顺序执行并且顺序不能变化。 2.

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档