windows 操作系统 核心技术

116
Windows Windows 操操操操操操操操操操 操操操操

Upload: miyo

Post on 15-Jan-2016

181 views

Category:

Documents


0 download

DESCRIPTION

Windows 操作系统 核心技术. 参考教材. 尤晋元等, Windows 操作系统原理,机械工业出版社, 2001 David A. Solomon, Windows NT 技术内幕,清华大学出版社, 1999 年 7 月. 本课程内容. 含盖操作系统原理课程的全部理论内容以及 Windows 2000/XP 操作系统构成的各个方面 10 讲的内容依次是: 第 1 讲 操作系统概述 第 2 讲 Windows 2000 / XP 的体系结构 第 3 讲 进程管理 第 4 讲 存储管理 第 5 讲 文件系统. 第 6 讲 I/O 系统 第 7 讲 网络 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Windows 操作系统 核心技术

WindowsWindows 操作系统操作系统核心技术核心技术

Page 2: Windows 操作系统 核心技术

参考教材

尤晋元等,尤晋元等, WindowsWindows 操作系统原理,机械工业出操作系统原理,机械工业出版社,版社, 20012001David A. Solomon, Windows NT David A. Solomon, Windows NT 技术内幕,清华技术内幕,清华大学出版社,大学出版社, 19991999 年年 77 月月

Page 3: Windows 操作系统 核心技术

本课程内容含盖操作系统原理课程的全部理论内容以及含盖操作系统原理课程的全部理论内容以及Windows 2000/XPWindows 2000/XP 操作系统构成的各个方面操作系统构成的各个方面1010 讲的内容依次是:讲的内容依次是:

第 1 讲 操作系统概述第 2 讲 Windows 2000 / XP 的体系结构第 3 讲 进程管理第 4 讲 存储管理第 5 讲 文件系统

Page 4: Windows 操作系统 核心技术

第 6 讲 I/O 系统第 7 讲 网络第 8 讲 windows 安全第 9 讲 应用程序设计第 10 讲 驱动程序设计

Page 5: Windows 操作系统 核心技术

操作系统概述

Page 6: Windows 操作系统 核心技术

发展与分类发展与分类计算机系统结构与特点计算机系统结构与特点

定义定义 按人的要求接收、存储信息,自动进行数按人的要求接收、存储信息,自动进行数据处理和计算,并输出结果的机器系统。据处理和计算,并输出结果的机器系统。特点特点

计算、判断、存储、精确、快速、通用、易用、联网计算、判断、存储、精确、快速、通用、易用、联网组成组成

硬件、软件硬件、软件

计算机系统概观

Page 7: Windows 操作系统 核心技术

计算机系统(层次结构 )

软件

硬件及固件(裸机)

应用软件

系统软件编辑软件,编译软件

操作系统

Page 8: Windows 操作系统 核心技术

                                

Page 9: Windows 操作系统 核心技术

计算机组织计算机组织指运算器、存储器、控制器、 I/O 部件间的相互连接作为计算机系统结构的逻辑和物理实现,任务是提高性价比,实现计算机在指令级的功能和特性;计算机系统结构 从程序设计人员角度看到的计算机属性,处于机器语言级;

存储程序原理 存储程序原理 是了解计算机组织的关键是了解计算机组织的关键基于此构造的计算机称为存储程序计算机(冯 . 诺伊曼机)基本点:指令驱动, 即程序由指令组成,并和数据一起存放在计算机存储器中

Page 10: Windows 操作系统 核心技术

地位:地位:紧贴硬件之上,其它软件之下,是其他软紧贴硬件之上,其它软件之下,是其他软件的共同环境件的共同环境定义:定义:系统软件,程序模块的集合,资源管理和系统软件,程序模块的集合,资源管理和用户接口功能用户接口功能

应用用户 应用开发人员

操作系统开发人员

计算机硬件

操作系统

系统工具

用户应用

操作系统概念

Page 11: Windows 操作系统 核心技术

操作系统特征并发性 多程序同时推进并发性 多程序同时推进

单 CPU 环境 用户程序之间、用户程序与操作系统之间多 CPU 环境 宏观、微观并发 分布式环境 多计算机并存

共享性共享性系统的各种资源共享

随机性随机性运行状态不确定要求操作系统设计与实现要充分考虑各种可能

Page 12: Windows 操作系统 核心技术

操作系统作用

OSOS 是计算机硬件、软件资源的管理者是计算机硬件、软件资源的管理者管理对象包括: CPU 、存储器、外部设备、信息(数据和软件);管理的内容:资源的当前状态(数量和使用情况)、资源的分配、回收和访问操作,相应管理策略(包括用户权限)。

Page 13: Windows 操作系统 核心技术

OSOS 是用户使用系统硬件、软件的接口是用户使用系统硬件、软件的接口系统命令(命令行、菜单式、命令脚本式、图形用户接口 GUI );系统调用(形式上类似于过程调用,在应用编程中使用)。

Page 14: Windows 操作系统 核心技术

OSOS 是扩展机是扩展机 (extended machine)/(extended machine)/虚拟机虚拟机 (virt(virtual machine)ual machine)。。

在裸机上添加:设备管理、文件管理、存储管理(针对内存和外存)、处理机管理(针对 CPU );合理组织工作流程:作业管理、进程管理。

Page 15: Windows 操作系统 核心技术

几项重要功能几项重要功能进程管理主要是对处理器进行管理解决处理器实施分配调度策略;协调多道程序间的关系

存储管理管理内存资源内外存结合实现虚拟存储器,解决内存不够问题

文件管理信息资源以文件方式存放在外存方便、安全的访问

作业管理 为用户提供使用机器的手段设备管理 管理所有 I/O 设备及其支持设备

Page 16: Windows 操作系统 核心技术

引入操作系统的目标

有效性有效性(系统管理人员的观点)(系统管理人员的观点)管理和分配硬件、软件资源,合理地组织计算机的工作流程

方便性方便性(用户的观点)(用户的观点)提供良好的、一致的用户接口,弥补硬件系统的类型和数量差别

可扩充性可扩充性(开放的观点)(开放的观点)硬件的类型和规模、操作系统本身的功能和管理策略、多个系统之间的资源共享和互操作

Page 17: Windows 操作系统 核心技术

操作系统历史

主要讨论操作系统的外部特征主要讨论操作系统的外部特征 发展动力发展动力

提高资源的利用率和系统性能:计算机发展的初期,计算机系统昂贵,用作集中计算方便用户:用户上机、调试程序,分散计算时的事务处理和非专业用户(商业和办公、家庭)器件的发展: CPU 的位宽度(指令和数据)、快速外存

Page 18: Windows 操作系统 核心技术

手工操作手工操作集中计算(计算中心),计算机资源昂贵;用户既是程序员,又是操作员;用户是计算机专业人员;编程语言:为机器语言;输入输出:纸带或卡片;工作特点

用户独占全机:不出现资源被其他用户占用,资源利用率低;CPU 等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片; CPU利用率低;

提高效率的途径专门的操作员,批处理

Page 19: Windows 操作系统 核心技术

批处理系统批处理系统利用磁带把若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序(Monitor)自动依次处理。可使用汇编语言开发。批处理中的作业的组成:用户程序、数据、作业说明书(作业控制语言)监督程序发展为执行系统 (executive system),常驻内存主要问题

CPU 和 I/O 设备使用忙闲不均(取决于当前作业的特性)。对计算为主的作业,外设空闲;对 I/O 为主的作业, CPU空闲;

Page 20: Windows 操作系统 核心技术

多道批处理系统多道批处理系统利用多道批处理提高资源的利用率。多道批处理的运行特征

多道:内存中同时存放几个作业;宏观上并行运行:都处于运行状态,但都未运行完;微观上串行运行:各作业交替使用 CPU ;

优点:资源利用率高: CPU 和内存利用率较高;作业吞吐量大:单位时间内完成的工作总量大;

缺点:用户交互性差:整个作业完成后或中间出错时,才与用户交互,不利于调试和修改;作业平均周转时间长:短作业的周转时间显著增长;

Page 21: Windows 操作系统 核心技术

分时系统分时系统“分时”的含义分时是指多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源。多个用户分时:单个用户使用计算机的效率低,因而允许多个应用程序同时在内存中,分别服务于不同的用户。有用户输入时由 CPU执行,处理完一次用户输入后程序暂停,等待下一次用户输入--时走时停前台和后台程序分时:后台程序不占用终端输入输出,不与用户交互--现在的图形用户界面 (GUI),除当前交互的程序 (输入焦点 )之外,其他程序均作为后台通常按时间片 (time slice)分配:各个程序在 CPU 上执行的轮换时间。

批处理: 交互性差--提高对 CPU利用率;

分时处理:用户与应用程序随时交互,控制程序运行,适于商业和办公事务

处理--缩短响应时间

Page 22: Windows 操作系统 核心技术

用高级语言书写用高级语言书写 OSOSUnix特色不兼容,一直困难。可移植 OS标准出现: POSIX 、 SVID 、 XPG

通用通用 OSOS面向个人应用WINDOWS, LINUX

两大发展方向:宏观、微观两大发展方向:宏观、微观宏观:大规模,分布式微观:嵌入式

Page 23: Windows 操作系统 核心技术

操作系统分类批处理 (Batch Processing Operation System)分时 (Time Sharing Operating System)实时 (Real Time Operating System)多处理 (Multi-processor Operating System)嵌入式 (Embedded OS)个人计算机 OS (Personal OS)NOS (Network Operating System)分布式 OS (Distributed OS)

Page 24: Windows 操作系统 核心技术

用户

作业录入

提交 收容

完成运行

就绪 等待

作业调度

执行

作业调度

批处理系统中作业处理及状态

Page 25: Windows 操作系统 核心技术

单道 (uniprogramming)和多道批处理的比较

单道 多道内存使用 每次一个作业 每次多个作业(充分利用内存)作业次序 顺序,先进先出 无确定次序

多道程序系统和多处理系统 (multiprocessing system) 的区别:前者指多个程序同时在内存中交替运行,后者指多个处理器。

Page 26: Windows 操作系统 核心技术

分时系统的特征

多路性:多个用户同时工作。多路性:多个用户同时工作。共享系统资源,提高了资源利用率。节省维护开支,可靠性高:笨终端--至今仍在使用。促进了计算机的普遍应用,提高资源利用率:远地用户通过终端(较便宜)联机使用。

独立性:各用户独立操作,互不干扰。独立性:各用户独立操作,互不干扰。交互性:系统能及时对用户的操作进行响应,显著提高调交互性:系统能及时对用户的操作进行响应,显著提高调试和修改程序的效率:缩短了周转时间。试和修改程序的效率:缩短了周转时间。

Page 27: Windows 操作系统 核心技术

分时系统的主要问题

及时接受输入:多个及时接受输入:多个 I/OI/O端口,设立多路缓冲区端口,设立多路缓冲区及时响应:及时响应:

提高对换速度(快速外存)、限制用户数目、缩短时间片(可能引起对换次数增多,开销增大,程序总运行时间增大)

减少对换信息量:减少对换信息量:可重入代码 (re-entrant code);请求页式存储管理:只对换部分程序

Page 28: Windows 操作系统 核心技术

实时系统的特征实时系统的特征实时时钟管理:提供系统日期和时间、定时和延时等时钟管理功能;过载保护:缓冲区排队,丢弃某些任务,动态调整任务周期;过载是指进入系统的任务数目超出系统的处理能力。

高度可靠性和安全性:容错能力(如故障自动复位)和冗余备份(双机,关键部件);

实时操作系统主要用于过程控制、事务处理等有实时要求的领域,其主要特征是实时性和可靠性。

实时操作系统

Page 29: Windows 操作系统 核心技术

实时系统与批处理系统和分时系统的区别

专用系统:专用系统:许多实时系统是专用系统,而批处理与分时系统许多实时系统是专用系统,而批处理与分时系统通常是通用系统。通常是通用系统。实时控制:实时控制:实时系统用于控制实时过程,要求对外部事件的实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构。迅速响应,具有较强的中断处理机构。高可靠性:高可靠性:实时系统用于控制重要过程,要求高度可靠,具实时系统用于控制重要过程,要求高度可靠,具有较高冗余。如双机系统。有较高冗余。如双机系统。事件驱动和队列驱动:事件驱动和队列驱动:实时系统的实时系统的工作方式工作方式:接受外部消息,:接受外部消息,分析消息,调用相应处理程序进行处理。分析消息,调用相应处理程序进行处理。可与可与通用系统通用系统结合成通用实时系统结合成通用实时系统:实时处理前台作业,批:实时处理前台作业,批处理为后台作业。处理为后台作业。

Page 30: Windows 操作系统 核心技术

多处理操作系统非对称式多处理非对称式多处理 (Asymmetric Multiprocessing, AS(Asymmetric Multiprocessing, ASMP)MP):又称主从模式:又称主从模式 (Master-slave mode)(Master-slave mode)。。主处理器:只有一个,运行 OS 。管理整个系统的资源,为从处理器分配任务;从处理器:可有多个,执行应用程序或 I/O 处理。特点:不同性质任务的负载不均,可靠性不够高,不易移植(通常要求硬件也是 "非对称 ")。

对称式多处理对称式多处理 (Symmetric Multiprocessing, SMP)(Symmetric Multiprocessing, SMP)OS交替在各个处理器上执行。任务负载较为平均,性能调节容易-- " 傻瓜式 "

Page 31: Windows 操作系统 核心技术

对称多处理机与非对称多处理机的比较

Page 32: Windows 操作系统 核心技术

网络操作系统

在通用操作系统功能的基础上提供网络通信和网络服在通用操作系统功能的基础上提供网络通信和网络服务功能的操作系统务功能的操作系统 网络操作系统为网上计算机进行方便而有效的网络资网络操作系统为网上计算机进行方便而有效的网络资

源共享,提供网络用户所需各种服务的软件和相关规程源共享,提供网络用户所需各种服务的软件和相关规程的集合的集合 网络功能与操作系统的结合程度是网络操作系统的网络功能与操作系统的结合程度是网络操作系统的重重

要性能指标要性能指标早期作法是通用操作系统附加网络软件,过渡到网早期作法是通用操作系统附加网络软件,过渡到网

络功能成为操作系统的有机组成部分络功能成为操作系统的有机组成部分区别:区别:网络功能的强弱、使用是否方便网络功能的强弱、使用是否方便

Page 33: Windows 操作系统 核心技术

MS OS:MS OS: MS DOS, MS Windows 3.x, Windows 95, MS DOS, MS Windows 3.x, Windows 95, Windows NT, Windows 2000 Windows NT, Windows 2000UNIX:UNIX: BSD, SCO UNIX, AIX, Solaris, Linux BSD, SCO UNIX, AIX, Solaris, LinuxNOS:NOS: Novell Netware Novell NetwareRTOS:RTOS: VxWorks, pSoS, Nucleus VxWorks, pSoS, Nucleus

Page 34: Windows 操作系统 核心技术

研究操作系统的几种观点软件观点 软件观点 外在特性: 命令集、界面内在特性:具有一般软件不具备的特殊结构

资源管理观点 资源管理观点 分配、回收、竞争、保护

进程观点进程观点将操作系统当作若干个可同时独立运行的程序 -〉进程

虚拟机虚拟机屏蔽硬件,多个层次

服务提供者服务提供者用户角度

Page 35: Windows 操作系统 核心技术

WindowsWindows 操作系统历程操作系统历程开发过程版本及其特点

Win3xWin9xWin2000Winxp…

Page 36: Windows 操作系统 核心技术

http://www.winhistory.de/more/win1.htm

Windows 1.X(1985 年 11 月 ) 已有多窗口输出、多任务处理功能、初步具有图形界面; Windows 2.X(1987 年 11 月 ) 具有图形界面,而且已具有Windows 3.1 的系统原型。如应用程序的添加、支持磁盘扩充、支持多种外设接口等,开始受到外界的重视与关注; Windows /286 V2.1 及 Windows /386 V2.1 (1988,1989 年 ) 因当时 Windows 的速度过慢而仍未普及,故推出此版本,修正核心程序 (如: I/O 、内存、 CPU 等的控制 )并以结构化语言改写使得速度大幅提升; Windows 3.0英文版 (1990 年 5 月 ) 除了改正Windows 2.X 版的错误外,使得图形用户界面正式进入个人 PC 的领域;拥有真正GUI 的操作系统;除此之外,还提供一个非常完善的用户环境。增强了多任务处理、 GUI 、存储管理等能力;

Page 37: Windows 操作系统 核心技术

Windows 3.0 中文版 (1991 年 7 月 31日 ) ,中文化的操作界面,主要添加了中文输入法及汉字库的支持; Windows 95英文版 (1992 年 4 月 ) Windows 95 中文版 (1993 年 8 月 ) 除英文版功能外,还新增如多显卡支持、打印机驱动、兼容性与稳定性等。 Windows 95 中文版新特性 (1995 年 8 月 ) 真正 32 位的操作系统全新的工作桌面支持长文件名支持硬件的即插即用32 位可抢先 ( Preemptive ) 多任务系统全新的多媒体享受强大的网络支持更友好的安装、操作界面

Page 38: Windows 操作系统 核心技术

Windows1.01

Page 39: Windows 操作系统 核心技术

Windows1.02

Page 40: Windows 操作系统 核心技术

Windows1.03

Page 41: Windows 操作系统 核心技术
Page 42: Windows 操作系统 核心技术

Windows 2.xx

Page 43: Windows 操作系统 核心技术
Page 44: Windows 操作系统 核心技术
Page 45: Windows 操作系统 核心技术

安全子系统

登录进程

Wi n32客户

OS/ 2客户

POSI X客户

OS/ 2子系统

Wi n32子系统

POSI X子系统

硬件抽象层

系统服务

核心态

用户态

内核

NT执行体

对象管理器

安全引用监视器

虚拟内存管理器

进程和线程管理器

本地过程调用功能

高速缓存管理器文件系统驱动程序

硬件设备驱动程序

I / O管理器

网络重定向

Windows NT体系结构

Page 46: Windows 操作系统 核心技术

Windows 2000 的特点

支持对称多处理机真正的 32 位操作系统:除 16 位应用的支持代码,没有16 位的代码;兼容 16 位 Windows 应用完全的代码可重入 (reentrant):同一段代码可由多个应用同时访问;图形用户界面 GUI (和字符用户界面)

Page 47: Windows 操作系统 核心技术

抢先式多任务和多线程虚拟存储:段页式 ( 有存储保护 )文件系统: NTFS(HPFS),支持安全控制设备驱动程序: VxD(virtual driver)可移植:适用于多种硬件平台容错能力面向对象特性:用对象来表示所有资源。

Page 48: Windows 操作系统 核心技术

Windows 2000/XP 的体系结构

Page 49: Windows 操作系统 核心技术

本章要点

操作系统的设计目标操作系统的设计目标操作系统的设计阶段操作系统的设计阶段几种常见的操作系统体系结构范型几种常见的操作系统体系结构范型Windows 2000/XPWindows 2000/XP 的操作系统模型的操作系统模型Windows 2000/XPWindows 2000/XP 的体系结构的体系结构

Windows 2000/XP 的重要组成部分Windows 2000/XP 的系统机制

Windows 2000/XPWindows 2000/XP注册表、服务控制与管注册表、服务控制与管理机制理机制

Page 50: Windows 操作系统 核心技术

操作系统的设计问题

操作系统设计有着不同于一般应用系统设操作系统设计有着不同于一般应用系统设计的特征计的特征复杂程度高研制周期长正确性难以保证

解决途径解决途径良好的操作系统结构先进的开发方法和工程化的管理方法高效的开发工具

Page 51: Windows 操作系统 核心技术

操作系统的设计目标

可靠性:可靠性:正确性和健壮性, 主要指并发、共享及其引起的正确性和健壮性, 主要指并发、共享及其引起的不确定性 不确定性 高效性:高效性:提高系统的运行效率 提高系统的运行效率 易维护性:易维护性:易读、易扩充、易剪裁、易修改性 易读、易扩充、易剪裁、易修改性 易移植性:易移植性:一次开发,多处使用一次开发,多处使用安全性:安全性:计算机软件系统安全性的基础 计算机软件系统安全性的基础 可适应性可适应性简明性简明性 %100

smsuu

suu

TTT

TT

目态 管态用户态

管态

Page 52: Windows 操作系统 核心技术

Windows 2000/XP 的设计目标

总原则:市场需求 总原则:市场需求 驱动驱动 设计目标 设计目标需求:需求:

提供一个真 32 位抢占式可重入的虚拟内存操作系统能够在多种硬件体系结构和平台上运行能够在对称多处理系统上运行并具有良好的可伸缩性优秀的分布式计算平台,既可作为网络客户,又可作为网络服务器可运行多数现有 16 位MS-DOS 和Microsoft Windows 3.1 应用程序符合对 POSLX 1003.1 的要求符合政府和企业对操作系统安全性的要求支持 Unicode,适应全球市场的需要

Page 53: Windows 操作系统 核心技术

Windows 2000/XPWindows 2000/XP 的设计目标:的设计目标:可扩充性 可移植性可靠性及坚固性兼容性性能

Page 54: Windows 操作系统 核心技术

操作系统的设计考虑

功能设计:功能设计:操作系统应具备哪些功能 操作系统应具备哪些功能 算法设计:算法设计:选择和设计满足系统功能的算法和策选择和设计满足系统功能的算法和策略,并分析和估算其效能 略,并分析和估算其效能 结构设计:结构设计:选择合适的操作系统结构 选择合适的操作系统结构

Page 55: Windows 操作系统 核心技术

操作系统结构设计

按照系统的功能和特性要求,选择合适的结构,按照系统的功能和特性要求,选择合适的结构,使用相应的结构设计方法将系统逐步地分解、抽使用相应的结构设计方法将系统逐步地分解、抽象和综合,使操作系统结构清晰、简单、可靠、象和综合,使操作系统结构清晰、简单、可靠、易读、易修改,而且使用方便,适应性强易读、易修改,而且使用方便,适应性强

Page 56: Windows 操作系统 核心技术

操作系统体系结构问题

程序结构程序结构程序结构的两层含义: 整体结构、局部结构程序的结构良好的准则

软件结构软件结构操作系统体系结构操作系统体系结构

大型软件,模块划分、接口定义复杂并发性,接口复杂、信息交换频繁计算机体系结构日益复杂,应用扩大、使用要求提高使得操作系统体系结构日趋复杂

Page 57: Windows 操作系统 核心技术

几种常见的操作系统结构

模块组合结构模块组合结构

模块组合结构的特点与适应性模块组合结构的特点与适应性模块间转接随便数据基本上作为全程量处理常常关中断,系统的并发性难以提高

Page 58: Windows 操作系统 核心技术

层次结构层次结构层次结构设计方法的核心思想例如 E.W.Dijkstra 的 THE系统:

1

2

3

4

5

处理器分配和多道程序

内存和磁盘管理

操作员--进程通信

输入 / 输出管理

用户程序

操作员

0

Page 59: Windows 操作系统 核心技术

分层原则分层原则与硬件相关的最底层计算机具有多操作方式多操作方式共有的基本部分放在内层,具体操作方式相关的方在外层;OS 基于进程的概念,内核放在内层;内层中又分多层,公用功能在最内层。

Page 60: Windows 操作系统 核心技术

层次结构的特点层次结构的特点分解成许多功能单一的模块,各模块之间有清晰的组织结构和依赖关系具有更高的可读性和可适应性层次结构是单向依赖的,上层模块建立在下层基础上,设计了比较可靠的基础很容易增加或替换掉一层而不影响其它层次便于修改、扩充

Page 61: Windows 操作系统 核心技术

层次结构的层间关系

全序:同层模块不互相调用,各层简单向全序:同层模块不互相调用,各层简单向半序:有循环半序:有循环

第 3层

第 2层

第 1层

第 0层

全序 半序

Page 62: Windows 操作系统 核心技术

进程分层结构进程分层结构

实现代价较大:实现代价较大:必须设立一个进程控制块,用以保留进程的状态信息,增加了内存开销进程之间的控制转移、状态保留及信息传送,均由核心去管理,时间消耗多,效率下降系统并发活动过多,调度负担过重,且同步操作过于分散,易于造成死锁,影响了系统的安全性

层次结构的两种类型核心

Page 63: Windows 操作系统 核心技术

层次管程结构层次管程结构进程:并发单位类程:专用资源的抽象 管程:共享资源的抽象 一个动态的系统由内核和一组有限个满足规定调用关系的进程 P 、类程 C 和管程M构成。其中进程是系统中唯一能动的成份,管程和类程都是被动成份

Page 64: Windows 操作系统 核心技术

优点优点采用层次管程结构的系统结构清晰、统一同步操作相对集中,系统安全性较高用高级语言书写程序,研制周期短,通过编译技术获取更高的灵活性和效率只用一种概念描述并发,减少了不必要的并行性,减少了系统开销。

缺点:缺点:管程嵌套问题比较难于高效的解决不便于管理多个资源和全局性资源

Page 65: Windows 操作系统 核心技术

虚拟机结构

如如 IBMIBM大型机上的系列操作系统大型机上的系列操作系统基本思想:基本思想:系统应该提供系统应该提供多道程序能力多道程序能力及及一个比裸机有一个比裸机有更方便扩展界面的计算机更方便扩展界面的计算机 。但二者的实现应相互独立 。但二者的实现应相互独立特点特点虚拟机概念可以实现完全保护用软件从硬件逐层扩展虚拟机方法把多道程序和扩展机器的功能完全分开,使每一部分都简单、灵活,更易于维护。

Page 66: Windows 操作系统 核心技术

370裸机

VM/370

CMS CMS CMS

系统调用陷入

I/O 指令陷入

若干个 370虚拟机

CMS: 会话监控系统

Page 67: Windows 操作系统 核心技术

微内核(客户 /服务器结构)CMUCMU 的的 MachMach、早期的、早期的 Windows NT……Windows NT……非常适宜于应用在网络环境下,应用于分布式处理的计算环境非常适宜于应用在网络环境下,应用于分布式处理的计算环境中 中 由下面两大部分组成由下面两大部分组成

运行在核心态的“微”内核用户态,以 C/S 模式运行的若干进程,通过内核进行通信

主要特点主要特点机制(内核)与策略(服务进程)分离比较彻底可靠灵活适合分布式计算的需求缺点:效率较低

Page 68: Windows 操作系统 核心技术

其它体系结构

外展式核心(外展式核心( ExokernelsExokernels ))这种观点认为操作系统应该只负责在竞争的用户之间安全、有效的分配计算资源 传统操作系统的绝大部分功能应该在系统库中以可选的方式链接进用户程序

可扩展系统可扩展系统可扩展系统认为应该将尽可能多的模块以一种受保护的方式放进核心当中。操作系统的构造者可以先构造从一个只包含稍微多于核心保护机制的一个最小核心。而其它的功能则通过不断的往核心中添加受保护的模块实现。

Page 69: Windows 操作系统 核心技术

2.2 Windows 2000/XP 系统模型融合了分层操作系统和微内核操作系统的设计思想,使用融合了分层操作系统和微内核操作系统的设计思想,使用面向对象的分析与设计,采用整体式的实现面向对象的分析与设计,采用整体式的实现Windows 2000/XPWindows 2000/XP 通过硬件机制实现了核心态以及用户态通过硬件机制实现了核心态以及用户态两个特权级别 。对性能影响很大的操作系统组件运行在核两个特权级别 。对性能影响很大的操作系统组件运行在核心态。心态。核心内没有保护核心内没有保护。。Windows 2000/XPWindows 2000/XP 的核心态组件使用了面向对象设计原则的核心态组件使用了面向对象设计原则出于可移植性以及效率因素的考虑,大部分代码使用了基出于可移植性以及效率因素的考虑,大部分代码使用了基于于 CC 语言的对象实现。语言的对象实现。Windows 2000/XPWindows 2000/XP 的很多系统服务运行在核心态,这使得的很多系统服务运行在核心态,这使得Windows 2000/XPWindows 2000/XP更加高效,而且也是相当稳定的。更加高效,而且也是相当稳定的。

Page 70: Windows 操作系统 核心技术

系统支持进程 服务进程 用户程序 环境子系统

子系统动态链接库

图形引擎执行体执行体

核心核心 设备驱动设备驱动HALHAL

用户态

核心态

Windows 2000/XP 的构成

Page 71: Windows 操作系统 核心技术

用户态组件用户态组件系统支持进程( system support process ),不是 Windows 2000/XP服务,不由服务控制器启动。服务进程( service process ), Windows 2000/XP的服务。环境子系统( enviroment subsystems ),它们向应用程序提供操作系统功能调用接口包括: Win32 、 POSIX 和 OS/2 1.2 。应用程序( user applications ),五种类型: Win32 、Windows 3.1 、MS-DOS 、 POSIX 或 OS/2 1.2 。 子系统动态链接库:调用层转换和映射

Page 72: Windows 操作系统 核心技术

核心态组件核心态组件核心( kernel )包含了最低级的操作系统功能,例如线程调度、中断和异常调度、多处理器同步等。同时它也提供了执行体( Executive)用来实现高级结构的一组例程和基本对象。执行体包含基本的操作系统服务,例如内存管理器、进程和线程管理、安全控制、 I/O 以及进程间的通信。硬件抽象层( HAL, Hardware Abstraction Layer)将内核、设备驱动程序以及执行体同硬件分隔开来,实现硬件映射。设备驱动程序( Device Drivers )包括文件系统和硬件设备驱动程序等,其中硬件设备驱动程序将用户的 I/O函数调用转换为对特定硬件设备的 I/O请求。图形引擎包含了实现图形用户界面( GUI , Graphical User Interface)的基本函数。

Page 73: Windows 操作系统 核心技术

可移植性的获得

两种方法两种方法分层的设计 依赖于处理器体系结构或平台的系统底层部分被隔离在单独的模块之中,系统的高层可以被屏蔽在千差万别的硬件平台之外。提供操作系统可移植性的两个关键组件是HAL和内核。依赖于体系结构的功能在内核中实现,在相同体系结构中,因计算机而异的功能在 HAL中实现。Windows 2000/XP 大量使用高级语言——执行体、设备驱动程序等用 C 语言编写,图形用户界面用 C++编写。只有那些必须和系统硬件直接通信的操作系统部分,或性能极度敏感的部分是用汇编语言编写的。汇编语言代码分布集中且少。

Page 74: Windows 操作系统 核心技术

对称多处理器支持

代码对多处理器的可伸缩性好代码对多处理器的可伸缩性好完善的完善的 IPCIPC 和锁机制解决资源竞争问题和锁机制解决资源竞争问题核心态组件代码可重入程度极高核心态组件代码可重入程度极高多优先级抢占式调度(利用系统陷阱调度),多数多优先级抢占式调度(利用系统陷阱调度),多数核心态组件代码都可以被抢占核心态组件代码都可以被抢占由由 NTOSKRNL.EXENTOSKRNL.EXE屏蔽屏蔽 SMPSMP 硬件设置,绝大多硬件设置,绝大多数组件不可见、也无需关心,。数组件不可见、也无需关心,。

Page 75: Windows 操作系统 核心技术

2.3 Windows 2000/XP 的构成

P43 图 2-5 windows2000/xp体系结构

内核内核内核对象硬件支持

硬件抽象层硬件抽象层执行体执行体驱动程序驱动程序环境子系统与动态链接库环境子系统与动态链接库

Win32PosixOs/2Ntdll.dll

系统支持进程系统支持进程

Page 76: Windows 操作系统 核心技术

内核

功能功能线程安排和调度陷阱处理和异常调度中断处理和调度多处理器同步供执行体使用的基本内核对象

始终运行在核心态,代码精简,可移植性好。除了中始终运行在核心态,代码精简,可移植性好。除了中断服务例程(断服务例程( ISRISR,, interrupt service routineinterrupt service routine),正),正在运行的线程不能抢先内核。在运行的线程不能抢先内核。

Page 77: Windows 操作系统 核心技术

内核对象内核对象帮助控制、处理并支持执行体对象的操作,以降低系统策略代价控制对象,这个对象集和包括内核进程对象、异步过程调用( APC , asynchronous procedure call )对象、延迟过程调用( DPC , deferred procedure call )对象和几个由 I/O 系统使用的对象,例如中断对象。调度程序对象集合负责同步操作并影响线程调度。调度程序对象包括内核线程、互斥体(Mutex)、事件( Event)、内核事件对、信号量( Semaphore)、定时器和可等待定时器

Page 78: Windows 操作系统 核心技术

内核与硬件内核与硬件使得执行体和设备驱动程序同硬件无关 实现手段:一组在多个体系结构上可移植、同语义的接口内核也有部分代码不具有移植性支持虚拟 8086 模式的代码,用以运行一些古老的 16 位 DOS 程序高速缓存管理描述表切换

Page 79: Windows 操作系统 核心技术

硬件抽象层( HAL)

实际硬件与实际硬件与 Windows 2000/XPWindows 2000/XP抽象计算机描述的抽象计算机描述的接口层和功能映射层接口层和功能映射层隐藏各种与硬件有关的细节,例如隐藏各种与硬件有关的细节,例如 I/OI/O 接口、中断接口、中断控制器以及多处理器通信机制等控制器以及多处理器通信机制等实现多种硬件平台上的可移植性实现多种硬件平台上的可移植性

Page 80: Windows 操作系统 核心技术

执行体

提供的功能性调用提供的功能性调用从用户态导出并且可以调用的函数。这些函数的接口在 NTDLL.DLL中。通过Win32API或一些其他的环境子系统可以对它们进行访问。从用户态导出并且可以调用的函数,但当前通过任何文档化的子系统函数都不能使用。在 Windows 2000 DDK中已经导出并且文档化的核心态调用的函数。在核心态组件中调用但没有文档化的函数。例如在执行体内部使用的内部支持例程。组件内部的函数。

Page 81: Windows 操作系统 核心技术

包含的功能实体包含的功能实体进程和线程管理器创建及中止进程和线程。对进程和线程的基本支持在 Windows 2000 内核中实现,而执行体给这些低级对象添加附加语义和功能。虚拟内存管理器实现“虚拟内存”。内存管理器也为高速缓存管理器提供基本的支持。安全引用监视器在本地计算机上执行安全策略。它保护了操作系统资源,执行运行时对象的保护和监视。I/O 系统执行独立于设备的输入 / 输出,并为进一步处理调用适当的设备驱动程序。高速缓存管理器通过将最近引用的磁盘数据驻留在主内存中来提高文件 I/O 的性能,并且通过在把更新数据发送到磁盘之前将它们在内存中保持一个短的时间来延缓磁盘的写操作,这样就可以实现快速访问。

Page 82: Windows 操作系统 核心技术

对象管理:创建、管理以及删除Windows 2000/XP 的执行体对象和用于代表操作系统资源的抽象数据类型,例如进程、线程和各种同步对象。本地过程调用( LPC , Local Procedure Call )机制,在同一台计算机上的客户进程和服务进程之间传递信息。 LPC 是一个灵活的、经过优化的“远程过程调用”( RPC , Remote Procedure Call )版本。一组广泛的公用运行时函数,例如字符串处理、算术运算、数据类型转换和完全结构处理。执行体支持例程,例如系统内存分配(页交换区和非页交换区)、互锁内存访问和两种特殊类型的同步对象:资源和快速互斥体。

Page 83: Windows 操作系统 核心技术

设备驱动程序

可加载的核心态模块 可加载的核心态模块 I/OI/O 系统和相关硬件之间的接口 系统和相关硬件之间的接口 使用使用 WDMWDM以及加强的以及加强的 WDMWDM方式方式分类分类

硬件设备驱动程序操作硬件。文件系统驱动程序接受面向文件的 I/O请求,并把它们转化为对特殊设备的 I/O请求。过滤器驱动程序截取 I/O 并在传递 I/O 到下一层之前执行某些特定处理。

Page 84: Windows 操作系统 核心技术

环境子系统

将基本的执行体系统服务的某些子集以特定的将基本的执行体系统服务的某些子集以特定的形态展示给应用程序,函数调用不能在不同子形态展示给应用程序,函数调用不能在不同子系统之间混用,因此每一个可执行的映像都受系统之间混用,因此每一个可执行的映像都受限于唯一的子系统 限于唯一的子系统 三种环境子系统:三种环境子系统: POSIXPOSIX 、、 OS/2OS/2 和和 Win32Win32(( OS/2 OS/2 只能用于只能用于 x86x86 系统) 系统) Win32Win32子系统必须始终处于运行状态,其他两子系统必须始终处于运行状态,其他两个子系统只是在需要时才被启动,个子系统只是在需要时才被启动, Win32Win32子系子系统是统是 Windows 2000/XPWindows 2000/XP 运行的基本条件之一。运行的基本条件之一。

Page 85: Windows 操作系统 核心技术

Win32Win32子系统子系统Win32 环境子系统进程 CSRSS ,包括对下列功能的支持:控制台(文本)窗口、创建及删除进程与线程、支持 16 位 DOS虚拟机( VDM)进程的部分。核心态设备驱动程序( WIN32K.SYS )。图形设备接口( GDI , Graphics Device Interfaces )子系统动态链接库,它调用 NTOSKRNL.EXE和 WIN32.SYS将文档化的 Win32 API函数转化为适当的非文档化的核心系统服务。图形设备驱动程序,包括依赖于硬件的图形显示驱动程序、打印机驱动程序和视频小型端口驱动程序。其他混杂的函数,如几种自然语言支持函数。

Page 86: Windows 操作系统 核心技术

POSIXPOSIX子系统子系统设计的强迫性目标实现了 POSIX.1 ,功能局限,用处不大Windows XP 实际上并不包含 POSIX子系统今后产品的 POSIX/UNIX子系统将大大加强

P49 图 2-7 interix的体系结构

Page 87: Windows 操作系统 核心技术

NTDLL

主要用于子系统动态链接库的特殊系统支持库主要用于子系统动态链接库的特殊系统支持库功能功能

提供系统调用入口为子系统、子系统动态链接库、及其他本机映像提供内部支持函数NTDLL也包含许多支持函数,例如映像加载程序、堆管理器和 Win32子系统进程通信函数以及通用运行库。用户态异步过程调用( APC )调度器和异常调度器。

Page 88: Windows 操作系统 核心技术

系统支持进程IdleIdle进程进程系统进程系统进程会话管理器会话管理器 SMSSSMSSWin32Win32子系统子系统 CSRSSCSRSS登录进程登录进程 WINLOGINWINLOGIN本地安全身份验证服务器本地安全身份验证服务器 LSASSLSASS服务控制器服务控制器 SERVICESSERVICES 及其相关的服务进程 及其相关的服务进程

Page 89: Windows 操作系统 核心技术

Windows 2000/XP 的系统机制

陷阱调度,包括中断、延迟过程调用(陷阱调度,包括中断、延迟过程调用( DPCDPC ,, Deferred Deferred Procedure CallProcedure Call )、异步过程调用()、异步过程调用( APCAPC ,, AsynchronAsynchronous Procedure Callous Procedure Call )、异常调度()、异常调度( Exception DispatcException Dispatchinghing)和系统服务调度()和系统服务调度( System Service DispatchinSystem Service Dispatchingg))执行体对象管理器(执行体对象管理器( Executive Object ManagerExecutive Object Manager ))同步(同步( SynchronizationSynchronization ),包括自旋锁(),包括自旋锁( Spin lockSpin lock)、)、内核调度程序对象(内核调度程序对象( Kernel Dispatcher ObjectsKernel Dispatcher Objects ))本地过程调用(本地过程调用( LPCLPC ,, Local Procedure CallLocal Procedure Call ))

Page 90: Windows 操作系统 核心技术

陷阱调度

当异常或中断发当异常或中断发生时,硬件或软生时,硬件或软件可以检测到,件可以检测到,处理器会从用户处理器会从用户态切换到核心态,态切换到核心态,并将控制转交给并将控制转交给内核的陷阱处理内核的陷阱处理程序,该模块检程序,该模块检测异常和中断的测异常和中断的类型,并将控制类型,并将控制交给处理相应情交给处理相应情况的代码 况的代码

异常调度程序

中断服务例程

系统服务

异常处理程序

虚拟存储器页面管理程序虚拟地址异常

软 /硬件异常异常结构

中断

系统服务调用

陷阱处理程序

Page 91: Windows 操作系统 核心技术

异常和中断异常和中断中断是异步事件,可能随时发生,与处理器正在执行的内容无关。中断主要由 I/O 设备、处理器时钟或定时器产生,可以被启用或禁用异常是同步事件,它是某一特定指令执行的结果。在相同条件下,异常可以重现。例如内存访问错误、调试指令以及被零除。系统服务调用也视作异常。软件和硬件都可以产生异常和中断。

陷阱帧:完整的线程描述表的子集,用于现场保护陷阱帧:完整的线程描述表的子集,用于现场保护陷阱处理程序处理少量事件,多数转交给其他的内核或陷阱处理程序处理少量事件,多数转交给其他的内核或执行体模块处理执行体模块处理

Page 92: Windows 操作系统 核心技术

中断调度

中断分类和优先级中断分类和优先级中断请求级别( IRQL, Interrupt Request Level )硬件中断软件中断

APC 异步过程调用DPC 延迟过程调用

P53 图 2-9 中断请求级别

Page 93: Windows 操作系统 核心技术

硬件中断处理过程硬件中断处理过程保存计算机的状态 禁用中断 调用中断调度程序 提高处理器的 IRQL到中断源的级别 重新启用中断在中断分配表中查找处理特定中断的例程服务例程执行 降低处理器的 IRQL到该中断发生前的级别 加载保存的机器状态 中断返回

Page 94: Windows 操作系统 核心技术

软件中断的处理软件中断的处理延迟过程调用

P56 图 2-10 延迟过程调用的提交

Page 95: Windows 操作系统 核心技术

异步过程调用 apc异步过程调用为用户程序和系统代码提供了一种在特殊用户线程的描述表(一个特殊的进程地址空间)中执行代码的方法 有用户态 APC 和核心态 APC

Page 96: Windows 操作系统 核心技术

异常调度

异常直接由运行程序的执行所产生。异常直接由运行程序的执行所产生。除了那些可由陷阱处理程序解决的简单异常外,所除了那些可由陷阱处理程序解决的简单异常外,所有异常都是由异常调度程序接管有异常都是由异常调度程序接管结构化异常处理结构化异常处理基于框架的异常处理程序基于框架的异常处理程序异常调度过程异常调度过程

P59 图 2-11 异常调度

Page 97: Windows 操作系统 核心技术

系统服务调度

在在 AlphaAlpha 处理器上执行处理器上执行 syscallsyscall 指令或在指令或在 Intel x86Intel x86处理器上执行处理器上执行 int 2Eint 2E指令都会引起系统服务调度 指令都会引起系统服务调度 系统服务调度程序将依次作下面几件事:系统服务调度程序将依次作下面几件事:校验参数调用者的参数从线程的用户堆栈复制到它的核心堆栈中执行系统服务

P60 图 2-12 系统服务调度

Page 98: Windows 操作系统 核心技术
Page 99: Windows 操作系统 核心技术

对象管理器

执行体组件之一执行体组件之一用于创建、删除、保护和跟踪对象用于创建、删除、保护和跟踪对象提供使用系统范围内资源使用的公共、一致的机制提供使用系统范围内资源使用的公共、一致的机制实现对象的集中保护实现对象的集中保护实现了资源的访问控制实现了资源的访问控制对象管理器有一套对象命名方案和统一的保留规则,对象管理器有一套对象命名方案和统一的保留规则,能够容易地操纵现有对象 能够容易地操纵现有对象

Page 100: Windows 操作系统 核心技术

执行体对象执行体对象由执行体的各种组件实现 进程管理器、内存管理器、 I/O子系统等

内核对象内核对象由内核实现的原始的对象集合这些对象对用户态代码是不可见的,它们仅在执行体内创建和使用

内核对象提供了一些基本性能,许多执行体对象内核对象提供了一些基本性能,许多执行体对象内包含着一个或多个内核对象。 内包含着一个或多个内核对象。

Page 101: Windows 操作系统 核心技术

对象命名对象命名对象头:存储对象管理信息和描述信息对象头:存储对象管理信息和描述信息类型对象:保存特定对象类型的类型信息类型对象:保存特定对象类型的类型信息对象的生存周期对象的生存周期对象方法对象方法对象句柄对象句柄对象安全对象安全配额和资源记帐配额和资源记帐

Page 102: Windows 操作系统 核心技术

同步机制内核同步内核同步

内核的临界区是修改共用数据结构的代码段 最大问题是中断 自旋锁

Page 103: Windows 操作系统 核心技术

执行体同步执行体同步自旋锁使用的限制被保护的资源必须被快速访问,并且没有与其他代码的复杂的交互作用。临界区代码不能换出内存,不能引用可分页数据,不能调用外部程序(包括系统服务),不能生成中断或异常情况。

调度程序对象

Page 104: Windows 操作系统 核心技术

本地过程调用一个用于高速信息传输的进程间通信机制(使用共一个用于高速信息传输的进程间通信机制(使用共享内存) 享内存) LPCLPC常常被使用在一个服务器进程与该服务器的一常常被使用在一个服务器进程与该服务器的一个或多个客户进程之间,以及在两个用户态进程之个或多个客户进程之间,以及在两个用户态进程之间或一个核心态组件和一个用户态进程之间 间或一个核心态组件和一个用户态进程之间 常被视作经过高度优化的常被视作经过高度优化的 RPCRPC 的本地版本的本地版本

Page 105: Windows 操作系统 核心技术

LPCLPC 的三种交换信息的方法:的三种交换信息的方法:使用包含信息的缓冲区调用 LPC可以发送少于 256字节的信息。然后,这个信息又从发送进程的地址空间复制到系统地址空间,再从那里拷贝到接收进程的地址空间。如果用户和服务器想交换大于 256字节的数据,那么他们可以选择使用双方都映射了的共享区。发送方将信息数据放到共享区,然后向接收方发送一小段信息表明在共享区的什么地方可以找到数据。当服务器想读或写大量数据,而共享区又太小时,数据可以直接从客户地址空间读出或向客户地址空间写入。

Page 106: Windows 操作系统 核心技术

系统工作线程代表其它线程履行职责代表其它线程履行职责三种系统工作线程 三种系统工作线程 延迟工作线程运行在优先级 12 ,处理非时间关键的工作项,它们的堆栈在等待工作项时可以被换出到页交换文件。关键工作线程运行在优先级 13 ,处理时间关键工作项,在 windows2000 server中它们的堆栈始终在物理内存中。一个单独的高度关键工作线程运行在优先级 15 ,堆栈也始终在物理内存中,处理管理器使用这种工作线程的“收割机”功能释放终止的线程。

Page 107: Windows 操作系统 核心技术

注册表

是一个数据库,结构与磁盘的逻辑结构相似是一个数据库,结构与磁盘的逻辑结构相似存储所有关于系统和每个用户的设置信息 存储所有关于系统和每个用户的设置信息 Windows 2000Windows 2000 系统管理机制的关键数据库系统管理机制的关键数据库组成 主键组成 主键 ++键值 键值 目录 目录 ++文件文件主键可以包含若干主键(或称为该主键的子键)和键值键值则存储数据,可有不同数据类型顶级主键称为根键

Page 108: Windows 操作系统 核心技术
Page 109: Windows 操作系统 核心技术
Page 110: Windows 操作系统 核心技术
Page 111: Windows 操作系统 核心技术
Page 112: Windows 操作系统 核心技术

六个根键六个根键HKEY_CURRENT_USER 存储与当前登录用户有关的信息。 HKEY_USER 存储了所有用户的信息。 HKEY_CLASSES_ROOT 存储与文件类型和 COM对象相关的信息HKEY_LOCAL_MACHINE 存储与系统设置相关的信息 HKEY_PERFORMANCE_DATA 存储与系统性能相关的信息HKEY_CURRENT_CONFIG 存储了当前硬件配置文件的信息

Page 113: Windows 操作系统 核心技术

Window 2000/XP服务

Win32 Win32 服务由三部组成:服务由三部组成:服务应用程序服务控制程序( SCP )服务控制管理器( SCM)

服务帐号服务帐号本地系统帐号方式备用帐号方式

Page 114: Windows 操作系统 核心技术

服务的控制服务的控制服务的启动正常启动特殊启动(接受最近一次的正确配置)启动的参数传递

服务的关闭服务错误服务失败共享服务控制程序

P73 图 2-15 服务的组成

Page 115: Windows 操作系统 核心技术

Windows 管理机制基于基于 Web-Based Enterprise Management: WWeb-Based Enterprise Management: WBEMBEM 标准的实现标准的实现事务数据收集和管理 事务数据收集和管理 强伸缩性和强扩展性强伸缩性和强扩展性四个主要的组件:四个主要的组件:

管理程序WMI 基础设施数据生产者被管理的对象集合

Page 116: Windows 操作系统 核心技术

数据生产者数据生产者定义对象为 WMI 提供这些对象的编程接口

CIMCIM和和 MOFLMOFLWMIWMI名字空间名字空间WMIWMI对象浏览器对象浏览器WMIWMI 的安全的安全