57
1.4 操操操 操操操操操 1.4.1 操操操 操操操 1.4.2 操 操操操操操操操操 体统 1.4.3 操操操操操操操操操1.4.4 操操操操操操操操操1.4.5 操操 / 操操操操操操操操操操操操操1.4.6 操操操 操操操操操 1.4.7 Windows 2000/ XP 操操操 / 操操操操

1.4 操作系统的结构设计

Embed Size (px)

DESCRIPTION

1.4 操作系统的结构设计. 1.4.1 操作系统的构件 1.4.2 整体式结构的操作系统 1.4.3 层次式结构的操作系统 1.4.4 虚拟机结构的操作系统 1.4.5 客户 / 服务器与微内核结构的操作系统 1.4.6 操作系统的运行模型 1.4.7 Windows 2000/ XP 的客户 / 服务器结构. 1.4 .1 操作系统的结构设计 操作系统结构设计概况 (1). 操作系统设计呈现出以下特征: 一是复杂程度高, 二是生成周期长, 三是正确性难保证 。 - PowerPoint PPT Presentation

Citation preview

Page 1: 1.4  操作系统的结构设计

1.4 操作系统的结构设计1.4.1 操作系统的构件1.4.2 整体式结构的操作系统1.4.3 层次式结构的操作系统1.4.4 虚拟机结构的操作系统1.4.5 客户 / 服务器与微内核结构的操作系统1.4.6 操作系统的运行模型1.4.7 Windows 2000/ XP 的客户 / 服务器结构

Page 2: 1.4  操作系统的结构设计

1.4 .1 操作系统的结构设计操作系统结构设计概况 (1) 操作系统设计呈现出以下特征: 一是复杂程度高, 二是生成周期长, 三是正确性难保证 。 例如, CTSS 、 OS/360 、 Multics 、 Windows 2000

Page 3: 1.4  操作系统的结构设计

操作系统的结构设计概况 (2)操作系统结构设计有两层含义

一 . 是研究操作系统程序的数据结构和控制结构; 二 . 是组成操作系统程序的构造过程和方法。采用不同的构件和构造方法可组成不同结构的操作系统。

Page 4: 1.4  操作系统的结构设计

操作系统的构件 (1) 内核 进程 线程 类程 管程

Page 5: 1.4  操作系统的结构设计

操作系统的构件 (2)1 、内核

内核不是进程,是提供支持系统运行的基本功能的一组程序模块,有了内核的支撑,进程运行环境得到改善,安全性得到保证,系统效率就能提高。 分类:微内核和单内核。 Linux 是单内核操作系统 , Mach 是微内核操作系统 , Windows2000/XP改进的 C/S 结构 。

Page 6: 1.4  操作系统的结构设计

操作系统的构件 (3)Linux 的内核

Lniux 的模组 (module) ,一定程度上解决了核心功能的灵活性和可伸缩性问题。 Linus 曾经就结构问题做出过解释:现代成功的操作系统基本上都不具有微内核特性,因此, Linux 也不必是微内核结构操作系统。

Page 7: 1.4  操作系统的结构设计

操作系统的构件 (4)内核提供以下三方面功能 1 )中断处理。 2 )短程调度。 3 )原语管理。

Page 8: 1.4  操作系统的结构设计

操作系统的构件 (5)内核的执行有以下属性 1 )内核是由中断驱动的 2 )内核的执行是连续的 3 )内核在屏蔽中断状态下执行 4 )内核可以使用特权指令

Page 9: 1.4  操作系统的结构设计

操作系统的构件 (6)

内核和裸机组成了一台虚拟机具有以下特性: 1 )虚拟机没有中断, 2 )虚拟机为每个进程提供了一台虚拟处理器, 3 )虚拟机为进程或模块提供了功能较强的指令系统。

Page 10: 1.4  操作系统的结构设计

内核被触发和内核处理流程

运行进程发现中断源发现中断源装配中断码交换 PSW

自愿中断事件保护现场

分析和传递参数原语?原语处理

创建系统进程系统调用处理

强迫中断事件

机器故障中断处理I/O中断处理

程序中断处理

队列调整低级调度

运行进程

是否

管态

目态

目态

硬件完成

操作系统内核完成

外中断处理

创建系统进程

Page 11: 1.4  操作系统的结构设计

操作系统的构件 (7)2 、进程 进程是并发程序设计的一个工具,并发程序设计支撑了多道程序设计

Page 12: 1.4  操作系统的结构设计

操作系统的构件 (8)进程概念使 OS 结构变得清晰 (1) 1 )一个进程到另一个进程的控制转移由进程调度机构统一管理,不能杂乱无章,随意进行。 2 )进程间的信号发送、消息传递和同步互 斥由通信及同步机制完成,进程无法有意或无意破坏它进程的数据。每个进程相对独立,相互隔离,提高了系统的安全性和可靠性。

Page 13: 1.4  操作系统的结构设计

操作系统的构件 (9)进程概念使 OS 结构变得清晰 (2) 3 )进程结构较好刻画了系统的并发性,动态地描述出系统的执行过程,具有进程结构的操作系统,结构清晰、整齐划一,可维护性好。

Page 14: 1.4  操作系统的结构设计

操作系统的构件 (10)3 、线程

进程是系统进行保护和资源分配的单位,而线程则是进程中一条执行路径,每个进程中允许有多个并行执行的路径,线程才是系统进行调度的单位。

Page 15: 1.4  操作系统的结构设计

操作系统的构件 (11)4 、管程

管程是管理共享资源的机制,对管程的调用表示对共享资源的请求与释放。管程应包含条件变量,当条件不满足时,可以通过对条件变量做延迟操作使调用进程等待,直到另一个进程调用管程过程并执行一个释放操作为止。

Page 16: 1.4  操作系统的结构设计

操作系统的构件 (12)5 、类程

类程用于管理私有资源,对类程的调用表示对私有资源的操作。它仅能被进程及起源于同一进程的其它类程或管程嵌套调用链所调用。其本身也可以调用其它类程或管程。类程可以看作子程序概念的扩充。

Page 17: 1.4  操作系统的结构设计

操作系统的构件 (13)采用进程、管程、类程实现的操作系统 进程执行过程中若请求使用共享资源,可以调用管程;若要控制私有资源操作,可以调用类程,这样便于使用高级语言来书写操作系统。 1975 年,汉森成功地在 PDP 11/45 机上实现了:单用户操作系统 Solo、处理小作业作业流系统和过程控制实时调度系统等三个层次管程结构的操作系统。

Page 18: 1.4  操作系统的结构设计

操作系统体系结构分类 整体式结构层次式结构虚拟机结构客户服务器及微内核结构

Page 19: 1.4  操作系统的结构设计

1.4.2 整体式结构的操作系统 操作系统的整体式结构又叫模块组合法,早期操作系统 ( 如 IBM 操作系统 ) 采用这种结构设计方法, •主要设计思想: •主要设计步骤: •主要优点和缺点:

Page 20: 1.4  操作系统的结构设计

1.4.3 层次式结构的操作系统(1) 层次式结构是把操作系统划分为内核和若干模块(或进程),这些模块(或进程)按功能的调用次序排列成若干层次,各层之间只能是单向依赖或单向调用关系,这样不但系统结构清晰,而且不构成循环。

Page 21: 1.4  操作系统的结构设计

层次式结构的操作系统 (2) 层次结构的全序和半序式

层次结构的由底向上方法 和自顶向下方法

Page 22: 1.4  操作系统的结构设计

层次式结构的操作系统 (3)构造层次结构 OS 分层原则 1 )把与机器硬件有关的程序模块放在最底层, 2) 反映系统外特性的软件放在最外层, 3) 按照实现操作系统命令时模块间的调用次序或按进程间单向发送信息的顺序来分层 4) 为进程的正常运行创造环境和提供条件的内核程序应该尽可能放在底层。

Page 23: 1.4  操作系统的结构设计

层次式结构的操作系统 (4) 层次结构的优点:整体问题局部化,系统的正确性可通过各层正确性来保证。增加、修改或替换层次不影响其他层次,有利于系统的维护和扩充。 层次结构是分层单向依赖的,必须要建立模块(进程)间的通信机制,系统花费在通信上的开销较大,系统的效率也就会降低。

Page 24: 1.4  操作系统的结构设计

层次式结构的操作系统 (5) THE 系统第一次提出层次结构设计方法 • 第 0 层完成中断处理、定时器管理和处理器调度。第 1 层内存和磁鼓管理,为进程分配内存空间,并自动实现内存和磁鼓对换区的数据交换。第 2 层处理进程与操作员间的通信,为每个进程生成虚操作员控制台。第 3 层 I/O管理,管理信息缓冲区。第 4 层用户(进程)层。第 5 层系统操作员(进程)层。

Page 25: 1.4  操作系统的结构设计

1.4.4 虚拟机结构的操作系统(1) 基于如下思想,一个分时系统应该提供以下特性:

(1) 多道程序, (2) 一个具有比裸机更方便、界面扩展的计算机。 VM/370 的主旨在于将此二者彻底地隔离开来。

Page 26: 1.4  操作系统的结构设计

虚拟机结构的操作系统 (2) 物理计算机资源通过多重化和共享技术可改变成多个虚拟机。

基本做法:通过用一类物理设备来模拟另一类物理设备,或通过分时地使用一类物理设备,把一个物理实体改变成若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是虚幻的、感觉上的。

Page 27: 1.4  操作系统的结构设计

虚拟机结构的操作系统 (3)

程序设计接口进程内核

虚机器硬件

进程内核

进程内核

CMS CMS CMS

370 虚拟机

系统调用陷入

陷入I/O 指令

运行 CMS 的 VM370 虚拟机器

虚拟机概念结构

370 裸机VM370

Page 28: 1.4  操作系统的结构设计

1.4.5 客户 / 服务器与微内核结构操作系统 (1) 1 、客户 / 服务器与微内核结构 客户 / 服务器结构的思想:将操作系统分成两大部分, 一是运行在用户态并以 C/S 方式活动的进程 ; 二是运行在核心态的内核。

Page 29: 1.4  操作系统的结构设计

客户 / 服务器与微内核结构操作系统 (2) 客户 / 服务器结构的思想 (1) 每个进程实现一类服务,称服务器进程 ( 如文件服务、进程管理服务、存储管理服务、网络通信服务等 ) 。它的任务是检查是否有客户提出服务请求,如果有请求则在满足客户的要求后返回结果,于是,用户进程与服务器进程形成了 C/S关系。

Page 30: 1.4  操作系统的结构设计

客户 / 服务器与微内核结构操作系统 (3) 客户 / 服务器结构的思想 (2) 运行在核心态的内核把该消息传给服务器 ; 服务器执行相应操作,再通过内核用消息把结果返回给用户。内核只实现极少任务,主要起信息验证、交换的作用,因而,称微内核 (Microkernel) ,这种结构也就称为客户 / 服务器与微内核结构。

Page 31: 1.4  操作系统的结构设计

客户 / 服务器与微内核结构操作系统 (4)

1) 分层结构内核 2) 微内核

进程管理硬件

存储管理设备管理文件管理作业管理

内核模式

微内核硬件

客户进程

安全服务

虚存管理器

文件服务器

设备驱动程序

用户模式

Page 32: 1.4  操作系统的结构设计

客户 / 服务器与微内核结构操作系统 (5) 微内核结构的优点有 : 1 )一致性接口 2 )可扩充性 3)可移植性 4)可靠性 5)支持分布式系统 6)支持面向对象的操作系统

Page 33: 1.4  操作系统的结构设计

客户 / 服务器与微内核结构操作系统 (6)2 、微内核的设计

1 )基本的存储管理 微内核支持内核外部的页面管理和虚存管理:  • 转让( Grant )• 映射 (Map)   • 刷新( Flush )

Page 34: 1.4  操作系统的结构设计

客户 / 服务器与微内核结构操作系统 (7)内核外的页面管理程序做缺页处理

微内核

应用进程 页面管理程序缺页中断 恢复

地址空间函数调用

Page 35: 1.4  操作系统的结构设计

客户 / 服务器与微内核结构操作系统 (8)2 )进程间通信

微内核操作系统中,进程和线程通信的基本形式是消息。进程间通信基于进程间相关联的端口( Ports ),一个端口是一个特定进程的消息队列,与端口相关的是一张能力表,记录了可以与这个进程通信的进程。

Page 36: 1.4  操作系统的结构设计

客户 / 服务器与微内核结构操作系统 (9)3 ) I/O 和中断管理

driver thread;do wait for (mhg, sender); if sender = my_hardware_interrupt { read/writer I/O ports; reset hardware interrut } else …while (true);

Page 37: 1.4  操作系统的结构设计

1.4.6 操作系统的运行模型 (1) 操作系统本身是一组程序,也在处理器上运行,那么,操作系统程序是否组织成进程 ? 它是如何控制的、怎样执行的呢 ? 它在什么模式下运行呢 ? 从操作系统的运行方式来看,可分成:非进程内核模型、 OS 功能 (函数 )在用户进程内执行的模型和 OS 功能 (函数 ) 作为进程执行的模型。

Page 38: 1.4  操作系统的结构设计

操作系统的运行模型 (2)1 )非进程内核模型

操作系统内核

P1 P2… Pn

Page 39: 1.4  操作系统的结构设计

操作系统运行模型 (3)2 ) OS 功能在用户进程内执行的模型

进程切换函数

OSfunc OSfunc OSfunc

P1 P2 … Pn

Page 40: 1.4  操作系统的结构设计

操作系统运行模型 (4) OS 功能在用户进程内执行模型的进程映像 进程控制块

用户堆栈用户私有地址空间 (程序、数据 )

共享地址空间内核堆栈

Page 41: 1.4  操作系统的结构设计

操作系统的运行模型 (5)3 ) OS 功能作为独立进程执行的模型

进程切换函数

P1 P2… Pn OS

1

OS2

… OSm

Page 42: 1.4  操作系统的结构设计

1.4.7Windows 2000/ XP 客户 /服务器结构 (1) Windows 2000/XP 系统结构的设计目标: 1 )可扩充性: 2 )可移植性: 3 )可靠性与坚固性: 4 )兼容性: 5 )高性能:

Page 43: 1.4  操作系统的结构设计

Windiws2000/ XP 客户 / 服务器结构(2) 采用基于对象技术,提出了一种C/S系统结构,该结构在纯微内核结构的基础上做了扩展,融合了层次式结构和纯微内核结构的特点。

对操作系统性能影响很大的组件放在内核下运行,其他功能则在内核外实现。主要优点是模块化程度高、灵活性大、便于维护、系统性能好。

Page 44: 1.4  操作系统的结构设计

Windows2000/XP 客户 / 服务器结构 (3)结构简框 系统进程 服务进程 应用程序 环境子系统

子系统动态链接库用户态

核心态 执行体 核心 设备驱动程序 硬件抽象层

图形引擎

Page 45: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构 (4)

系统线程 NTDLL.DLL

Service.exeRPC

Spooler事件日志

服务进程任务管理器IE 浏览器

用户程序子系统 DLL

应用程序POSIXOS2

WIN32

环境子系统服务管理器

安全验证Win 登录

会话管理器

系统进程

核心态

用户态

Win32 UserGDI图形驱动器硬件抽象层 (HAL)设备驱动程序 内核对象管理器

核心态可调用接口 (执行程序 API)系统服务调度进程

I/O管理器 文件缓存管理 进程线 程管理安全访问监视 虚存管理 局部过程调用注册表配置管理器电源管理器即插即用管理

硬件接口(总线、 I/O、时钟、计时器、中断、 DMA、 CACHE控制器)

Page 46: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(5)

1 )硬件抽象层 HAL HAL 是实现可移植性的关键部分,位于硬件最上面和系统的最低层,把系统的内核、设备驱动程序及执行体从与平台相关的硬件差异中分隔开来。 HAL 隐藏各种与硬件有关的细节,如系统总线、计时器、 I/O接口、 DMA 、中断控制器、多处理器通信机制等,对内核来说是运行在计算机硬件平台上的低级接口。

Page 47: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(6)

2 )设备驱动程序 (1) 设备驱动程序是 I/O 系统和相关硬件之间的接口,把用户的 I/O函数调用转换成特定硬件设备的 I/O要求。设备驱动程序不直接操作硬件,而是调用 HAL来控制硬件的接口。

Page 48: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构 (7)设备驱动程序 (2) 设备驱动程序包括以下几类: (1) 硬件设备驱动程序: (2)文件系统驱动程序: (3) 过滤器驱动程序: (4)网络重定向程序和服务器:

Page 49: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(8)

3 )内核 内核执行操作系统最基本的操作,决定操作系统如何使用处理器并确保慎重使用它们。内核提供如下函数: (1) 线程管理和调度; (2) 进程切换 ; (3) 陷阱处理和异常调度;

Page 50: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构 (9) 内核提供如下函数: (4) 中断处理和调度; (5) 多处理器同步; (6) 提供由执行体使用的基本内核对象。

Page 51: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(10)

4)Windows 2000/XP 执行体执行体包括五种类型函数:(1)从用户态被导出并且可以调用的函数。(2)从用户态被导出并且可以调用的函数,(3)只能从在 DDK 中已经导出并且文档化的核心态调用的函数。(4)在核心态组件之间调用的但没有文档化的函数。(5) 组件内部的函数。

Page 52: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(11)执行体包含下列重要组件

进程和线程管理器 虚拟内存管理器 安全访问监视器 I/O管理器 高速缓存管理器

Page 53: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(12)5) NTDLL.DLL

NTDLL.DLL 是特殊的系统支持库,用于子系统动态链接库。包含两类函数: (1) 作为 Windows XP 执行体系统服务的系统服务调度占位程序; (2) 子系统动态链接库、及其他本机映像使用的内部支持函数。

Page 54: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(13)

6 )系统进程 Idle 进程: System进程和 System :会话管理器 SMSS.EXE: WIN32 子系统 CSRSS.EXE :登录进程WinLogon.EXE: 本地安全身份身份鉴别服务器进程 LSASS.EXE: 服务管理器 SERVICES.EXE及其相关服务器进程:

Page 55: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(14)

7 )服务控制器及服务进程 • 一个特殊系统进程,负责启动、停止和与服务控制器交互,并管理用户态进程服务。服务类似于 UNIX 的守护进程,可配置成在系统引导时自动启动而不需交互式登录。 • 服务程序是合法的Win32 映象,这些映象调用特殊 Win32 函数以与服务控制器相互使用,例如,注册、启动、响应状态请求、暂停或关闭服务。一些组件是作为服务来实现的,如,事件日志、假脱机、 RPC支持和网络组件。

Page 56: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(15)

8 )环境子系统 Win32子系统是将基本的执行体系统服务的某些子集提供给应用程序,向用户应用程序展示本地操作系统服务,提供操作系统“环境”或个性。 Windows 2000/XP 带有三个环境子系统: WIN32 、 POSIX 和OS/2 1.2 。

Page 57: 1.4  操作系统的结构设计

Windows2000/ XP 客户 / 服务器结构(16)

9 )用户应用程序和子系统动态连接库 用户应用程序可以是: WIN32 、 Windows 3.1 、 MS-DOS 、 POSIX 、 OS/2 五种类型之一。