非进程内核模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这一实现模型有很多优点。首先,它采用了 模块化的操作系统实现方法,模块之间具有 最小化的简洁的接口。其次,大多数操作系 统功能被组织成分离的进程,有利于操作系 统的实现、配置和扩充,例如,性能监视程 序用来记录各种资源的利用率;系统中用户进 程推进比率,因为,这些程序并不提供给进 程特别的服务,仅仅被系统调用,把它设计 成一个服务器进程,便可赋予一定的优先级, 夹在其他进程中运行。最后,这一结构在多处 理器和多计算机的环境下非常有效,有利于 系统性能的改进。
1)非进程内核模型
操作系统的功能都不组织成进程来实现。该 模型包括一个较大的操作系统内核程序,进 程的执行在内核之外。当中断发生时,当前 运行进程的上下文现场信息将被保存,并把 控制权传递给操作系统内核。操作系统具有 自己的内存区和系统堆栈区,它将在核心态 执行相应的操作,并根据中断的类型和具体 的情况,或者是恢复被中断进程的现场并让 它继续执行,或是转向进程调度指派另一个 就绪进程运行。
OS 功能由进程实现的模型把操作系统 组织成一组进程、即操作系统功能是这 些系统进程集合运行的结果,这些系统 进程也称服务器或服务器进程,于是与 用 户 进 程 构 成 了 Client/Server 关 系 , Window NT 采用了这种结构。如图 223 所示 , 除了极少部分功能在内核模式 下运行,大部分操作系统功能被组织在 一组分离的进程内实现,这组进程在用 户模式下运行,而进程切换例行程序的 执行仍然在进程之外。
图2-21 OS功能在用户进程内执行的 实现模型
P1 P2 Pn

OS func
OS func
OS func
进程切换函数
图2-22 OS在用户进程内执行 实现模型的进程映像
进程控制块
用户堆栈
用户பைடு நூலகம்有地址空间(程序、数据)
内核堆栈
共享地址空间
当操作系统程序完成了工作之后, 如果应该让当前进程继续运行的话, 就可以做一次模式切换来恢复执行 原先被中断的用户进程。这种技术 提供了不必要通过进程上下文切换 就可以中断用户进程来调用操作系 统例行程序的手段。
如果应该发生进程切换的话, 控制就被传递给操作系统的进 程切换例行程序,由它来实现 进程切换操作,把当前进程的 状态置为非运行状态,而指派 另一个就绪进程来占有处理器 运行。
3)OS功能由进程实现的模型
图 2-23 OS功能由进程实现模型
P1 P2 … Pn OS1 OS2 … OSm
进程切换函数
图2-20 非进程内核模型
P1 P2 … Pn
操作系统内核
2)OS功能在用户进程内执行的实现模型
操作系统功能组织成一组例行程序供用户程序调用, 认为操作系统例程与用户进程是上下文相关的,操 作系统的地址空间被包含在用户进程的地址空间中, 因而,操作系统例行程序也在用户进程的上下文环 境中执行。 当发生一个中断后,处理器状态将被置成内核状态, 控制被传递给操作系统例行程序。此时发生了模式 切换,模式上下文(现场)信息被保存,但是进程 上下文切换并没有发生,仍在该用户进程中执行,提 供单独的内核堆栈用于管理进程在核心态下执行时 的调用和返回,操作系统例行程序和数据放在共享 地址空间,且被所有用户进程进程切换函数共享。
相关文档
最新文档