- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机操作系统教程第三版.张尧学张高史美林著.清华大学出版社第7章G
第7章Windows的进程与内存管理 7.1Windows NT的特点及相关的概念 7.1.1Windows NT体系结构的特点 7.1.2Windows的管理机制 1. 核心态(kernel mode)和用户态(user mode) 2. Windows操作系统的体系结构 3. 系统调用、中断和陷阱 陷阱是由程序造成的,并且与程序同步。如果程序一而再的被运行,陷阱将总在指令流中相同位置的精确发生。而中断则是由外部事件和其时钟造成的,不具有重复性 中断、异常、陷阱 1、三者的关系??? 陷阱这个说法其实不确切,应该说是陷阱门。中断包含中断门和陷阱门,当然还有其他。 2、中断和异常的区别??? 中断和异常,都是程序执行过程中的强制性转移。异常,是处理器执行指令过程中监测到错误时发生;中断,通常在程序执行时因硬件而随机发生(如外围设备的请求),软件通过int指令也可以产生中断。 3、中断门和陷阱门的区别??? 他们的区别很微小,即执行时是否影响中断允许标志IF。中断门会在执行前前将IF设为0,完事后iret指令会从堆栈上恢复IF的原值,这样可以避免其他中断干扰当前中断的处理;而陷阱门不会。因此,中断门最适宜于处理中断,而陷阱门适宜于处理异常。 4、中断的分类??? 中断分内部和外部中断两种。??? 内部中断,即软件调用int n产生。??? 外部中断,由硬件产生,其又分不可屏蔽和可屏蔽两种,分别有CPU的引脚NMI和INTR接收。NMI中断对应中断向量号2;INTR中断可通过控制器8259A设置其运行。此两者的区别是,是否收到IF位的影响,显然,NMI中断他老人家不会理会IF位的值。 4. 利用对象来共享系统资源 5. 本地过程调用 7.2Windows进程和线程 7.2.1Windows的进程和线程的定义 7.2.2进程和线程的关联 7.2.3Windows进程的结构 Windows将表示进程的数据结构统称为执行进程块,它提供了操作系统管理进程所需要的基本信息。 7.2.5Windows进程和线程的创建 1. 进程的创建过程 2. Windows线程的创建过程 (1)在进程的地址空间中为线程创建用户栈,并初始化运行上下文环境。 (2)初始化线程的线程环境块 (3)创建执行线程对象 (4)通知Windows子系统新线程已被创建,子系统将新线程的线程插入到相应进程的线程列表中。 (5)新线程的句柄和标志被返回给调用的线程 (6)线程进入调度队列等待执行 7.3Windows处理器调度机制 7.3.1调度优先级 在Windows中,每个线程都被赋予了优先级的概念,线程总共有32个优先级数从0(最低)到31(最高)。从前面的章节我们知道,线程是从属于某个进程的,那么对于某个具体进程的某个线程的优先级是怎么确定的呢?这得从几个优先级概念说起。一个线程的优先级是由进程的基本优先级(或者叫优先级类)和线程的相对优先级决定的。因为我们无法直接设置一个线程的优先级数,比如2或29。 进程的基本优先级:他是通过调用系统API---SetPriorityClass来设置,运行中的进程的优先级可以通过任务管理器查看。基本优先级是针对进程来讲的,基本优先级有8个类别,分别是: ABOVE_NORMAL_PRIORITY_CLASS,高于一般BELOW_NORMAL_PRIORITY_CLASS,低于一般HIGH_PRIORITY_CLASS, 高 IDLE_PRIORITY_CLASS, 空闲 NORMAL_PRIORITY_CLASS, 一般PROCESS_MODE_BACKGROUND_BEGIN,PROCESS_MODE_BACKGROUND_END,REALTIME_PRIORITY_CLASS. 实时 如果程序没有进行特别设置,那么进程的基本优先级将会设置为NORMAL_PRIORITY_CLASS这个级别。先对来说,使用高于正常的优先级需要特别小心,特别是REALTIME_PRIORITY_CLASS.他表示进程中线程必须立即对事件作出响应,以便执行关键时间的任务.该进程中的线程还会抢先于操作系统组件之前运行.使用本优先级类时必须极端小心. 线程相对优先级:相对优先级是针对线程的,他是通过调用SetThreadPriority函数设置的。具体参数可以参考MSDN.那么线程的优先级到底是怎么确定的呢?基本优先级和相对优先级如何结合的呢?下表就是他们的对应关系 7.3.2线程状态 7.3.3线程调度机制 1. 调度数
文档评论(0)