570 likes | 688 Views
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). 操作系统设计呈现出以下特征: 一是复杂程度高, 二是生成周期长, 三是正确性难保证 。
E N D
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) 操作系统设计呈现出以下特征: 一是复杂程度高, 二是生成周期长, 三是正确性难保证 。 例如,CTSS、OS/360、Multics 、Windows 2000
操作系统的结构设计概况(2)操作系统结构设计有两层含义操作系统的结构设计概况(2)操作系统结构设计有两层含义 一.是研究操作系统程序的数据结构和控制结构; 二.是组成操作系统程序的构造过程和方法。采用不同的构件和构造方法可组成不同结构的操作系统。
操作系统的构件(1) • 内核 • 进程 • 线程 • 类程 • 管程
操作系统的构件(2)1、内核 • 内核不是进程,是提供支持系统运行的基本功能的一组程序模块,有了内核的支撑,进程运行环境得到改善,安全性得到保证,系统效率就能提高。 • 分类:微内核和单内核。 • Linux是单内核操作系统 ,Mach是微内核操作系统 ,Windows2000/XP改进的C/S结构 。
操作系统的构件(3)Linux的内核 • Lniux的模组(module) ,一定程度上解决了核心功能的灵活性和可伸缩性问题。 • Linus曾经就结构问题做出过解释:现代成功的操作系统基本上都不具有微内核特性,因此,Linux也不必是微内核结构操作系统。
操作系统的构件(4)内核提供以下三方面功能 1)中断处理。 2)短程调度。 3)原语管理。
操作系统的构件(5)内核的执行有以下属性 1)内核是由中断驱动的 2)内核的执行是连续的 3)内核在屏蔽中断状态下执行 4)内核可以使用特权指令
操作系统的构件(6) 内核和裸机组成了一台虚拟机具有以下特性: 1)虚拟机没有中断, 2)虚拟机为每个进程提供了一台虚拟处理器, 3)虚拟机为进程或模块提供了功能较强的指令系统。
目态 运行进程 发现中断源 发现中断源 硬件完成 装配中断码 交换PSW 自愿中断事件 强迫中断事件 保护现场 机器故障 中断处理 程序中断处理 分析和传递参数 操作系统内核完成 I/O中断处理 外中断处理 管态 是 原语处理 否 创建系统进程 创建系统进程 系统调用处理 队列调整 低级调度 目态 运行进程 原语? 内核被触发和内核处理流程
操作系统的构件(7)2、进程 进程是并发程序设计的一个工具,并发程序设计支撑了多道程序设计
操作系统的构件(8)进程概念使OS结构变得清晰(1)操作系统的构件(8)进程概念使OS结构变得清晰(1) 1)一个进程到另一个进程的控制转移由进程调度机构统一管理,不能杂乱无章,随意进行。 2)进程间的信号发送、消息传递和同步互 斥由通信及同步机制完成,进程无法有意或无意破坏它进程的数据。每个进程相对独立,相互隔离,提高了系统的安全性和可靠性。
操作系统的构件(9)进程概念使OS结构变得清晰(2)操作系统的构件(9)进程概念使OS结构变得清晰(2) 3)进程结构较好刻画了系统的并发性,动态地描述出系统的执行过程,具有进程结构的操作系统,结构清晰、整齐划一,可维护性好。
操作系统的构件(10)3、线程 • 进程是系统进行保护和资源分配的单位,而线程则是进程中一条执行路径,每个进程中允许有多个并行执行的路径,线程才是系统进行调度的单位。
操作系统的构件(11)4、管程 • 管程是管理共享资源的机制,对管程的调用表示对共享资源的请求与释放。管程应包含条件变量,当条件不满足时,可以通过对条件变量做延迟操作使调用进程等待,直到另一个进程调用管程过程并执行一个释放操作为止。
操作系统的构件(12)5、类程 • 类程用于管理私有资源,对类程的调用表示对私有资源的操作。它仅能被进程及起源于同一进程的其它类程或管程嵌套调用链所调用。其本身也可以调用其它类程或管程。类程可以看作子程序概念的扩充。
操作系统的构件(13)采用进程、管程、类程实现的操作系统操作系统的构件(13)采用进程、管程、类程实现的操作系统 • 进程执行过程中若请求使用共享资源,可以调用管程;若要控制私有资源操作,可以调用类程,这样便于使用高级语言来书写操作系统。 • 1975年,汉森成功地在PDP 11/45机上实现了:单用户操作系统Solo、处理小作业作业流系统和过程控制实时调度系统等三个层次管程结构的操作系统。
操作系统体系结构分类 • 整体式结构 • 层次式结构 • 虚拟机结构 • 客户服务器及微内核结构
1.4.2 整体式结构的操作系统 操作系统的整体式结构又叫模块组合法,早期操作系统(如IBM操作系统)采用这种结构设计方法, •主要设计思想: •主要设计步骤: •主要优点和缺点:
1.4.3 层次式结构的操作系统(1) 层次式结构是把操作系统划分为内核和若干模块(或进程),这些模块(或进程)按功能的调用次序排列成若干层次,各层之间只能是单向依赖或单向调用关系,这样不但系统结构清晰,而且不构成循环。
层次式结构的操作系统(2) • 层次结构的全序和半序式 • 层次结构的由底向上方法 和自顶向下方法
层次式结构的操作系统(3)构造层次结构OS分层原则层次式结构的操作系统(3)构造层次结构OS分层原则 1)把与机器硬件有关的程序模块放在最底层, 2)反映系统外特性的软件放在最外层, 3)按照实现操作系统命令时模块间的调用次序或按进程间单向发送信息的顺序来分层 4)为进程的正常运行创造环境和提供条件的内核程序应该尽可能放在底层。
层次式结构的操作系统(4) • 层次结构的优点:整体问题局部化,系统的正确性可通过各层正确性来保证。增加、修改或替换层次不影响其他层次,有利于系统的维护和扩充。 • 层次结构是分层单向依赖的,必须要建立模块(进程)间的通信机制,系统花费在通信上的开销较大,系统的效率也就会降低。
层次式结构的操作系统(5) THE系统第一次提出层次结构设计方法 • 第0层完成中断处理、定时器管理和处理器调度。第1层内存和磁鼓管理,为进程分配内存空间,并自动实现内存和磁鼓对换区的数据交换。第2层处理进程与操作员间的通信,为每个进程生成虚操作员控制台。第3层I/O管理,管理信息缓冲区。第4层用户(进程)层。第5层系统操作员(进程)层。
1.4.4 虚拟机结构的操作系统(1) 基于如下思想,一个分时系统应该提供以下特性: (1) 多道程序, (2) 一个具有比裸机更方便、界面扩展的计算机。 VM/370的主旨在于将此二者彻底地隔离开来。
虚拟机结构的操作系统(2) • 物理计算机资源通过多重化和共享技术可改变成多个虚拟机。 • 基本做法:通过用一类物理设备来模拟另一类物理设备,或通过分时地使用一类物理设备,把一个物理实体改变成若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是虚幻的、感觉上的。
进程 进程 进程 程序设 计接口 内核 内核 内核 虚机器 硬件 虚拟机概念结构 370虚拟机 CMS CMS CMS 系统调用 陷入 I/O指令 VM370 陷入 370裸机 运行CMS的VM370虚拟机器 虚拟机结构的操作系统(3)
1.4.5 客户/服务器与微内核结构操作系统(1) 1、客户/服务器与微内核结构 客户/服务器结构的思想:将操作系统分成两大部分, 一是运行在用户态并以C/S方式活动的进程; 二是运行在核心态的内核。
客户/服务器与微内核结构操作系统(2) 客户/服务器结构的思想(1) • 每个进程实现一类服务,称服务器进程(如文件服务、进程管理服务、存储管理服务、网络通信服务等)。它的任务是检查是否有客户提出服务请求,如果有请求则在满足客户的要求后返回结果,于是,用户进程与服务器进程形成了C/S关系。
客户/服务器与微内核结构操作系统(3) 客户/服务器结构的思想(2) • 运行在核心态的内核把该消息传给服务器;服务器执行相应操作,再通过内核用消息把结果返回给用户。内核只实现极少任务,主要起信息验证、交换的作用,因而,称微内核(Microkernel),这种结构也就称为客户/服务器与微内核结构。
用 户 模 式 作业管理 客户进程 设备驱动程序 文件服务器 虚存管理器 安全服务 内 核 模 式 文件管理 设备管理 存储管理 进程管理 微内核 硬件 硬件 1) 分层结构内核 2) 微内核 客户/服务器与微内核结构操作系统(4)
客户/服务器与微内核结构操作系统(5) 微内核结构的优点有: 1)一致性接口 2)可扩充性 3)可移植性 4)可靠性 5)支持分布式系统 6)支持面向对象的操作系统
客户/服务器与微内核结构操作系统(6)2、微内核的设计客户/服务器与微内核结构操作系统(6)2、微内核的设计 1)基本的存储管理 微内核支持内核外部的页面管理和虚存管理: •转让(Grant) •映射 (Map) • •刷新(Flush)
应用进程 页面管理程序 地址空间函数调用 缺页中断 恢 复 微内核 客户/服务器与微内核结构操作系统(7)内核外的页面管理程序做缺页处理
客户/服务器与微内核结构操作系统(8)2)进程间通信客户/服务器与微内核结构操作系统(8)2)进程间通信 • 微内核操作系统中,进程和线程通信的基本形式是消息。进程间通信基于进程间相关联的端口(Ports),一个端口是一个特定进程的消息队列,与端口相关的是一张能力表,记录了可以与这个进程通信的进程。
客户/服务器与微内核结构操作系统(9)3)I/O和中断管理客户/服务器与微内核结构操作系统(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);
1.4.6 操作系统的运行模型(1) • 操作系统本身是一组程序,也在处理器上运行,那么,操作系统程序是否组织成进程?它是如何控制的、怎样执行的呢?它在什么模式下运行呢? • 从操作系统的运行方式来看,可分成:非进程内核模型、OS功能(函数)在用户进程内执行的模型和OS功能(函数)作为进程执行的模型。
P1 P2 … Pn 操作系统内核 操作系统的运行模型(2)1)非进程内核模型
P1 P2 … Pn OS func OS func OS func 进程切换函数 操作系统运行模型(3)2)OS功能在用户进程内执行的模型
进程控制块 用户堆栈 用户私有地址空间(程序、数据) 内核堆栈 共享地址空间 操作系统运行模型(4)OS功能在用户进程内执行模型的进程映像
P1 P2 … Pn OS1 OS2 … OSm 进程切换函数 操作系统的运行模型(5)3)OS功能作为独立进程执行的模型
1.4.7Windows 2000/ XP客户/服务器结构(1) Windows 2000/XP系统结构的设计目标: 1)可扩充性: 2)可移植性: 3)可靠性与坚固性: 4)兼容性: 5)高性能:
Windiws2000/ XP客户/服务器结构(2) • 采用基于对象技术,提出了一种C/S系统结构,该结构在纯微内核结构的基础上做了扩展,融合了层次式结构和纯微内核结构的特点。 • 对操作系统性能影响很大的组件放在内核下运行,其他功能则在内核外实现。 • 主要优点是模块化程度高、灵活性大、便于维护、系统性能好。
系统进程 服务进程 应用程序 环境子系统 子系统动态链接库 用户态 核心态 执行体 核心 设备驱动程序 硬件抽象层 图形 引擎 Windows2000/XP客户/服务器结构(3)结构简框
系统进程 服务进程 环境子系统 应用程序 服务管理器 Service.exe 任务管理器 POSIX 安全验证 RPC IE浏览器 OS2 Win登录 Spooler 用户程序 WIN32 会话管理器 事件日志 子系统DLL 用 户 态 NTDLL.DLL 系统线程 核 心 态 Win32 User GDI 图形驱动器 系统服务调度进程 核心态可调用接口(执行程序API) 即插即用管理 电源 管理器 安全访问监视 注册表配 置管理器 I/O 管理器 文件缓存管理 虚存 管理 进程线 程管理 局部过 程调用 设备驱动程序 内核 对象管理器 硬件抽象层(HAL) 硬件接口(总线、I/O、时钟、计时器、中断、DMA、CACHE控制器) Windows2000/ XP客户/服务器结构(4)
Windows2000/ XP客户/服务器结构(5)1)硬件抽象层HAL • HAL是实现可移植性的关键部分,位于硬件最上面和系统的最低层,把系统的内核、设备驱动程序及执行体从与平台相关的硬件差异中分隔开来。 • HAL隐藏各种与硬件有关的细节,如系统总线、计时器、I/O接口、DMA、中断控制器、多处理器通信机制等,对内核来说是运行在计算机硬件平台上的低级接口。
Windows2000/ XP客户/服务器结构(6)2)设备驱动程序(1) • 设备驱动程序是I/O系统和相关硬件之间的接口,把用户的I/O函数调用转换成特定硬件设备的I/O要求。设备驱动程序不直接操作硬件,而是调用HAL来控制硬件的接口。
Windows2000/ XP客户/服务器结构(7)设备驱动程序(2) 设备驱动程序包括以下几类: (1)硬件设备驱动程序: (2)文件系统驱动程序: (3)过滤器驱动程序: (4)网络重定向程序和服务器:
Windows2000/ XP客户/服务器结构(8)3)内核 内核执行操作系统最基本的操作,决定操作系统如何使用处理器并确保慎重使用它们。内核提供如下函数: (1) 线程管理和调度; (2) 进程切换; (3) 陷阱处理和异常调度;
Windows2000/ XP客户/服务器结构(9) 内核提供如下函数: (4)中断处理和调度; (5)多处理器同步; (6)提供由执行体使用的基本内核对象。