武科大操作系统3732739.ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
武科大操作系统3732739

第6章 进程与存储管理示例 6.1 LINUX进程和存储管理简介 6.2 LINUX进程结构 6.3 进程控制 6.4 LINUX进程调度 6.5 进程通信 6.6 LINUX存储管理 本章小结 习题 6.1 LINUX进程和存储管理简介 硬件: INTEL 80x86 软件: LINUX 2.4 LINUX系统的核心部分从整体上说可以分为两大部分,即“静”的文件系统和“动”的进程控制系统。 文件系统主要功能 存放、管理那些暂时不被处理机执行的程序 和数据 为程序和数据文件分配空间 控制文件存取 为用户检索信息 进程控制系统功能: 负责为将要执行的程序和数据文件分配内存空间 负责进程调度、控制并发进程的执行速度 分配必要的资源 负责进程通信 内存管理等。 LINUX的进程控制系统与文件系统之间通过系统调用来互相作用。 1.操作系统的安装过程。(一个商用的操作系统都有自己的自动安装程序) Os 硬盘 内存 2. LINUX系统启动后的进程树 启动电源 系统自举 操作系统 内存 0#进程(核心进程) 1#进程(init进程) 控制终端进程 Shell进程(用户交互进程)等待用户输入命令 图6.1 LINUX中各进程的关系 Shell程序将为用户提供解释执行用户命令的交互工具。 如输入“cp”,系统将为该命令建立一个执行该命令的用户进程。如果这个用户进程抢不到处理器,则Shell进程会自动退出处理器,进入等待队列,以便用户进程执行。在用户进程执行结束后,Shell进程又恢复执行,并显示提示符和等待用户的下一条命令输入。LINUX系统的所有进程都是在上述执行过程中产生和消亡。 3. 0#进程和1#进程 在LINUX系统中,除了0#进程和1#进程之外,其他进程都是由父进程创建的。 1#进程是所有用户进程的祖先。终端管理进程与Shell进程是1#进程的子进程,而1#进程以及由1#进程衍生的其他进程都可在用户态和核心态两种执行模式下执行。 LINUX操作系统的0#进程在核心态下运行, 0#进程是系统中唯一只在核心态下执行的进程。又称核心线程(kernel thread). 核心线程还有kblockd,ksoftirqd,kswapd等. 0# 进程与1#进程是LINUX系统中最重要的两个进程。 4.用户态和核心态 两态之间的主要区别是: 1)用户态下的进程能存取它们自己的指令与数据,但不能存取核心指令和数据。而核心态下的进程能存取核心和用户地址。 2)由于某些机器的指令是特权指令,在用户态下执行会引起错误,只能在核心态下执行。 3)核心态模式享有比用户态模式高的优先级。操作系统运行在核心态,用户进程运行在用户态,用户进程通过系统调用切换到核心态。 4)LINUX进程的核心态和用户态使用各自的堆栈,核心栈和用户栈。 进程在用户态通过系统调用转入核心态,系统调用完成后通过iret指令返回用户态。 软件中断指令int0x80 核心态 用户态 iret中断返回指令 图6.2 LINU进程的核心态与用户态之间的转换 5.进程控制系统 系统在逻辑上由四个模块组成。 1).与文件系统的接口部分 2).进程本身的控制部分,包括进程的创建、进程调度和进程的撤消等 3).进程间控制部分,包括进程间的互斥、同步和通信等 4).存储管理部分 进程控制系统模块结构如图6.3 所示。 图6.3 进程控制系统 1) 进程控制系统与文件系统的接口 一个是在系统内部与文件系统直接发生联系的有关表格和数据结构。 另一个则是通过系统调用界面,也就是中断和陷阱(Interrupt &Trap)总控部分与文件系统发生联系。以便把待执行的文件读入内存,或把已经执行完毕的程序和结果写入文件系统长期保存。 2).进程本身的控制部分 调度模块的作用是分配CPU。 1.在LINUX系统中,调度原则就是按照进程的优先级,每次调度具有最高优先级的进程去占有处理机。 2.每一个进程,从它被创建的那一时刻起,就具有了一个随时间动态变化的优先级。 3.进程的优先级是动态的,用优先数表示.而优先数通过计算得到. 在LINUX 中,系统有两个时机计算各进程的优先级。由调度过程schedule()和时钟中断修改优先级,这两个时机是: (1) 每秒钟一次的时间片结束发生时钟中断时,对那些优先级大于某个常数的进程进行重新计算。 (2) 当前

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档