10-2009-操作系统设计.pdf

上传人:qwe****56 文档编号:71061437 上传时间:2023-01-31 格式:PDF 页数:44 大小:648.85KB
返回 下载 相关 举报
10-2009-操作系统设计.pdf_第1页
第1页 / 共44页
10-2009-操作系统设计.pdf_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《10-2009-操作系统设计.pdf》由会员分享,可在线阅读,更多相关《10-2009-操作系统设计.pdf(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、操作系统北京大学计算机科学技术系北京大学计算机科学技术系陈向群陈向群20092009-2010 2010 第一学期第一学期第第1010讲讲 操作系统设计操作系统设计 操作系统设计目标操作系统设计目标 操作系统结构操作系统结构整体式结构整体式结构层次结构层次结构虚拟机结构虚拟机结构微内核结构微内核结构 内核内核 WindowsWindows体系结构体系结构 操作系统设计之哲学原理操作系统设计之哲学原理一、操作系统设计目标一、操作系统设计目标(1/2)(1/2)1 1、可靠性、可靠性正确性正确性困难:困难:并发性、共享性、随机性(中断)并发性、共享性、随机性(中断)健壮性(鲁棒性)健壮性(鲁棒性)

2、2 2、高效性、高效性多道程序设计的目标是提高资源利用率,但系多道程序设计的目标是提高资源利用率,但系统开销加大统开销加大TuTu:运行目态程序所用的时间:运行目态程序所用的时间TsuTsu:运行管态程序为用户服务所用的时间:运行管态程序为用户服务所用的时间TsmTsm:运行管态程序做系统管理工作所用的时间:运行管态程序做系统管理工作所用的时间系统运行效率:系统运行效率:=(Tu+Tsu)/(Tu+Tsu+Tsm)=(Tu+Tsu)/(Tu+Tsu+Tsm)3 3、易维护、易维护易读性、易扩充性、易修改性、易裁减性易读性、易扩充性、易修改性、易裁减性4 4、可、可(易易)移植性移植性5 5、安

3、全性、安全性6 6、可适应性、可适应性7 7、简洁性、简洁性操作系统设计目标操作系统设计目标(2/2)(2/2)二、操作系统的结构设计二、操作系统的结构设计设计一个操作系统主要包括:设计一个操作系统主要包括:功能设计功能设计算法设计算法设计结构设计结构设计接口设计(接口设计(用户界面、程序接口)用户界面、程序接口)其他设计技术(其他设计技术(策略与机制的分离,策略与机制的分离,静态结构与动态结构,自顶向下的实现与自底静态结构与动态结构,自顶向下的实现与自底向上的实现,隐藏硬件细节,间接处理等向上的实现,隐藏硬件细节,间接处理等)典型的操作系统的结构典型的操作系统的结构整体式结构(单一内核结构)

4、整体式结构(单一内核结构)层次式结构层次式结构虚拟机结构虚拟机结构微内核结构微内核结构1.1.整体式结构或单一内核结构整体式结构或单一内核结构(1/2)(1/2)又称又称模块接口法模块接口法/无序模块法无序模块法/模块组合法模块组合法模块模块3模块模块2模块模块7模块模块1模块模块6模块模块5模块模块8模块模块4确定操作系统的总体功能确定操作系统的总体功能将其分解为若干个子功能(将其分解为若干个子功能(模块模块)继续分解,直至每个模块仅包含继续分解,直至每个模块仅包含单一功能单一功能通过接口调用将所有模块连接,通过接口调用将所有模块连接,形成一个整体形成一个整体整体式结构整体式结构(2/2)(

5、2/2)优点:结构紧密优点:结构紧密接口简单直接接口简单直接模块间转接灵活,系统效率高模块间转接灵活,系统效率高缺点:由于模块之间可以任意相互调用,各模块缺点:由于模块之间可以任意相互调用,各模块互相联系,独立性差,互相联系,独立性差,系统结构不清晰系统结构不清晰数据作为全局量处理,系统内各模块均可对数据作为全局量处理,系统内各模块均可对其进行存取和修改,造成模块间更为隐蔽的关系。其进行存取和修改,造成模块间更为隐蔽的关系。使得难于对软件结构作出综合性的理解,使得难于对软件结构作出综合性的理解,难于修难于修改,可靠性、易读性、适应性难以保证改,可靠性、易读性、适应性难以保证由于模块接口法常以大

6、型表格为中心,为保由于模块接口法常以大型表格为中心,为保证数据完整性,往往采用全局封中断的方法,从证数据完整性,往往采用全局封中断的方法,从而而限制了系统的并发性限制了系统的并发性2.2.层次式结构层次式结构按此模型构造的第一个操作系统是按此模型构造的第一个操作系统是E.W.DijkstraE.W.Dijkstra和他的学生在荷兰开发的和他的学生在荷兰开发的THETHE系统系统(19681968年)年)该系统分为六层:该系统分为六层:层次层次功能功能5 5 操作员操作员4 4用户程序用户程序3 3 输入输入/输出管理输出管理2 2 操作员操作员-进程通信进程通信1 1内存和磁盘管理内存和磁盘管

7、理0 0 处理器分配和多道程序处理器分配和多道程序3 3、虚拟机结构、虚拟机结构(1/2)(1/2)系统调用系统调用陷入陷入陷入陷入I/O指令指令CMSOS/360CMS370虚拟机虚拟机VM/370370裸机裸机会话监控系统会话监控系统CMS(Conversational Monitor System)虚拟机虚拟机虚拟机结构虚拟机结构(2/2)(2/2)虚拟机思想的应用:在奔腾虚拟机思想的应用:在奔腾CPUCPU上运行老的上运行老的MSMS-DOSDOS程序程序IntelIntel在奔腾芯片上提供了一个虚拟在奔腾芯片上提供了一个虚拟80868086模式,模式,在此模式下,奔腾机就像一台在此模

8、式下,奔腾机就像一台80868086计算机一样,计算机一样,包括包括1M1M字节内的字节内的1616位寻址方式位寻址方式虚拟虚拟80868086模式用于运行模式用于运行MSMS-DOSDOS程序。程序在虚程序。程序在虚拟拟80868086模式下启动,执行一般的指令时它们在裸模式下启动,执行一般的指令时它们在裸机上运行。但是,当一个程序试图陷入系统来执机上运行。但是,当一个程序试图陷入系统来执行一条系统调用时,或者试图执行受保护的行一条系统调用时,或者试图执行受保护的I/OI/O操作时,将发生一条虚拟机监控程序的陷入操作时,将发生一条虚拟机监控程序的陷入4.4.微内核微内核结构结构(1/3)(1

9、/3)又称客户又称客户-服务器结构服务器结构现代操作系统的一个趋势,将传统操现代操作系统的一个趋势,将传统操作系统的大部分代码分离出来放在更高作系统的大部分代码分离出来放在更高的层次上。即从操作系统中去掉尽可能的层次上。即从操作系统中去掉尽可能多的东西,而只留一个最小的核心多的东西,而只留一个最小的核心微内核结构微内核结构(2/3)(2/3)微内核:运行在核心态,提供基本操作,包括微内核:运行在核心态,提供基本操作,包括线程调度、虚拟存储、消息传递、设备驱动以及线程调度、虚拟存储、消息传递、设备驱动以及内核的原语操作集合中断处理等内核的原语操作集合中断处理等核心的全部工作是处理客户与服务器间的

10、通信核心的全部工作是处理客户与服务器间的通信 服务进程:运行在用户态的进程,操作系统的服务进程:运行在用户态的进程,操作系统的所有其它部分被分成若干个相对独立的服务进程,所有其它部分被分成若干个相对独立的服务进程,提供各种系统功能提供各种系统功能每一部分只处理一方面的功能,如文件服务、每一部分只处理一方面的功能,如文件服务、进程服务、终端服务、存储器服务、网络服务进程服务、终端服务、存储器服务、网络服务微内核结构微内核结构(3/3)(3/3)特点:每一部分变得很小,更易于管理。而且,特点:每一部分变得很小,更易于管理。而且,由于所有服务器以用户进程的形式运行,而不是由于所有服务器以用户进程的形

11、式运行,而不是运行在核心态,所以它们不直接访问硬件。这样运行在核心态,所以它们不直接访问硬件。这样处理的结果是:假如在文件服务器中发生错误,处理的结果是:假如在文件服务器中发生错误,文件服务器可能崩溃,但不会导致整个系统的崩文件服务器可能崩溃,但不会导致整个系统的崩溃溃微内核结构的另一个优点是它适用于分布式微内核结构的另一个优点是它适用于分布式系统,如果一个客户通过消息传递与服务器通信,系统,如果一个客户通过消息传递与服务器通信,客户无需知道这条消息是在本机处理还是通过网客户无需知道这条消息是在本机处理还是通过网络送给远程机器上的服务器络送给远程机器上的服务器客户客户进程进程客户客户进程进程进

12、程进程服务器服务器终端终端服务器服务器文件文件服务器服务器内存内存服务器服务器。核心核心客户向服务器进程发送客户向服务器进程发送消息,以获得服务消息,以获得服务客户服务器模型客户服务器模型客户向服务器发送客户向服务器发送消息,以获得服务消息,以获得服务分布式系统中的客户服务器模型分布式系统中的客户服务器模型机器机器1客户客户核心核心机器机器2文件服务器文件服务器核心核心机器机器3进程服务器进程服务器核心核心机器机器4终端服务器终端服务器核心核心三、系统核心三、系统核心系统核心:系统核心:向上提供多个无中断的虚拟机器向上提供多个无中断的虚拟机器在核心内不允许中断在核心内不允许中断特点:特点:*为

13、进程运行提供一个舞台为进程运行提供一个舞台*核心常驻内存核心常驻内存*设计短小精焊设计短小精焊1.1.核心的组成核心的组成 中断处理中断处理 现场管理现场管理 进程管理进程管理:调度调度,控制控制,通信通信,同步互斥等同步互斥等 原语管理原语管理:在核心中提供一系列原语,如在核心中提供一系列原语,如同步、通信、创建、撤消等同步、通信、创建、撤消等 时钟管理时钟管理 队列管理队列管理2.2.核心处理流程核心处理流程保留现场保留现场中断接收中断接收分析中断源分析中断源原语管理原语管理中断处理中断处理时钟管理时钟管理队列管理队列管理进程调度进程调度现场管理现场管理恢复现场恢复现场中断中断核心核心内核

14、是由中断驱动的内核是由中断驱动的:中断中断内核内核退出退出内核执行是连续的内核执行是连续的其执行过程在中断屏蔽状态下其执行过程在中断屏蔽状态下内核使用特权指令内核使用特权指令四、四、WindowsWindows操作系统的设计操作系统的设计 总原则:市场需求总原则:市场需求驱动驱动设计目标设计目标 需求:需求:提供一个真提供一个真3232位抢占式可重入的虚拟内存操作系统位抢占式可重入的虚拟内存操作系统能够在多种硬件体系结构和平台上运行能够在多种硬件体系结构和平台上运行能够在对称多处理系统上运行并具有良好的可伸缩性能够在对称多处理系统上运行并具有良好的可伸缩性优秀的分布式计算平台,既可作为网络客户

15、,又可作优秀的分布式计算平台,既可作为网络客户,又可作为网络服务器为网络服务器可运行多数现有可运行多数现有1616位位MSMS-DOSDOS和和Microsoft Windows 3.1 Microsoft Windows 3.1 应用程序应用程序符合政府对符合符合政府对符合POSIX 1003.1POSIX 1003.1的要求的要求符合政府和企业对操作系统安全性的要求符合政府和企业对操作系统安全性的要求支持支持UnicodeUnicode,适应全球市场的需要,适应全球市场的需要回到回到1989年年设计目标设计目标 可扩充性可扩充性当市场需求变化时,代码必须易于扩充当市场需求变化时,代码必须易

16、于扩充和修改和修改 可移植性可移植性系统必须能够在多种硬件体系结构中运系统必须能够在多种硬件体系结构中运行和相对简单地移入新的体系结构行和相对简单地移入新的体系结构 可靠性及健壮性可靠性及健壮性系统能防止内部故障及外部侵扰系统能防止内部故障及外部侵扰造成的损害,应用程序不应该损害操作系统及正在运造成的损害,应用程序不应该损害操作系统及正在运行的其他应用程序行的其他应用程序 兼容性兼容性用户界面和用户界面和APIAPI应与已有的应与已有的W Windows indows 版本版本兼容兼容 性能性能系统应该在每一种硬件平台上尽可能快地响系统应该在每一种硬件平台上尽可能快地响应应操作系统配置操作系统

17、配置构建操作系统的方式构建操作系统的方式机制(机制(mechanism)-任务在系统中完成的方法任务在系统中完成的方法策略(策略(policy)-决定应该执行哪个任务,何时决定应该执行哪个任务,何时执行等等执行等等设计思想设计思想(1/2)(1/2)融合了分层操作系统和融合了分层操作系统和微内核微内核操作系统的设计操作系统的设计思想思想 Windows Windows 通过硬件机制实现了核心态以及用户通过硬件机制实现了核心态以及用户态两个特权级别,对性能影响很大的操作系统态两个特权级别,对性能影响很大的操作系统组件运行在核心态组件运行在核心态 设计充分体现了设计充分体现了机制与策略分离机制与策

18、略分离的思想的思想设计思想设计思想(2/2)(2/2)Windows Windows 的核心态组件使用了面向对象设的核心态组件使用了面向对象设计原则计原则 出于可移植性以及效率因素的考虑,大部出于可移植性以及效率因素的考虑,大部分代码使用了基于分代码使用了基于C C语言的对象实现语言的对象实现 Windows Windows 的很多系统服务运行在核心态,的很多系统服务运行在核心态,这使得这使得Windows Windows 更加高效,而且也是相当更加高效,而且也是相当稳定的稳定的WindowsWindows操作系统的体系结构操作系统的体系结构WindowsWindows操作系统的体系结构操作系

19、统的体系结构服务进程服务进程用户进程用户进程环境子系统环境子系统动态链接库动态链接库(DLL)硬件硬件用户态用户态核心态核心态物理硬件物理硬件系统服务分发器系统服务分发器执行体执行体内核内核设备驱动程序设备驱动程序硬件抽象层硬件抽象层(HAL)图形图形与与窗口窗口内核态可调用接口内核态可调用接口系统进程系统进程WindowsWindows核心系统文件核心系统文件 Ntoskrnl.exeNtoskrnl.exe执行体和内核执行体和内核 Hal.dllHal.dll 硬件抽象层硬件抽象层 Win32k.sysWin32k.sysWindowsWindows子系统的内核态部分子系统的内核态部分 N

20、tdll.dllNtdll.dll内部支持函数,以及执行体函数的系统内部支持函数,以及执行体函数的系统服务分发存根服务分发存根(stub)(stub)Kernel32.dll,Advapi32.dll,User32.dll,Kernel32.dll,Advapi32.dll,User32.dll,Gdi32.dllGdi32.dllWindowsWindows的核心子系统的核心子系统DLLDLL Csrss.exeCsrss.exe Win32Win32子系统子系统IE调用调用Kernel32.DLL,Kernel32.DLL又调用了又调用了NTDLL.DLL;IE又调用了又调用了USER32

21、.DLL,USER32.DLL又对又对Gdi32.dll,Kernel32.dll,NTDLL.DLL等调用等调用系统支持进程和服务进程系统支持进程和服务进程 IdleIdle进程进程 系统进程系统进程 会话管理器会话管理器SMSSSMSS Win32Win32子系统子系统CSRSSCSRSS 登录进程登录进程WINLOGINWINLOGIN 本地安全身份验证服务器本地安全身份验证服务器LSASSLSASS 服务控制器服务控制器SERVICESSERVICES及其相关的服务进程及其相关的服务进程 将基本的执行体系统服务的将基本的执行体系统服务的某些子集以特定的形态展示某些子集以特定的形态展示给

22、应用程序给应用程序 三种环境子系统:三种环境子系统:POSIXPOSIX、OS/2OS/2和和Win32Win32(OS/2 OS/2 只能用只能用于于x86x86系统)系统)Win32Win32子系统必须始终处于运行状态,其他两个子子系统必须始终处于运行状态,其他两个子系统只是在需要时才被启动,系统只是在需要时才被启动,Win32Win32子系统是子系统是WindowsWindows运行的基本条件之一运行的基本条件之一环境子系统环境子系统环境子系统环境子系统Win32Win32子系统子系统(1/2)(1/2)Win32Win32环境子系统进程(环境子系统进程(CSRSS.EXE)CSRSS.

23、EXE)包括对下列功能包括对下列功能的支持:控制台(文本)窗口、创建及删除进程与线的支持:控制台(文本)窗口、创建及删除进程与线程、支持程、支持1616位位DOSDOS虚拟机(虚拟机(VDMVDM)进程的部分)进程的部分 Win32Win32子系统动态链接库子系统动态链接库(User32.dll(User32.dll、Kernel32.dllKernel32.dll、GDI32.dll)GDI32.dll),将文档化的,将文档化的Win32 APIWin32 API函数转化为适当的函数转化为适当的非文档化的核心系统服务非文档化的核心系统服务(调用调用NTOSKRNL.EXENTOSKRNL.E

24、XE和和WIN32.SYS)WIN32.SYS)核心态设备驱动程序(核心态设备驱动程序(WIN32K.SYSWIN32K.SYS):):窗口管理器窗口管理器(User):(User):控制窗口显示,管理屏幕输出,控制窗口显示,管理屏幕输出,实现用户界面实现用户界面图形设备接口(图形设备接口(GDIGDI,Graphics Device Graphics Device InterfacesInterfaces)图形设备驱动程序,包括依赖于硬件的图形显示驱动图形设备驱动程序,包括依赖于硬件的图形显示驱动程序、打印机驱动程序和视频小型端口驱动程序程序、打印机驱动程序和视频小型端口驱动程序环境子系统环

25、境子系统Win32Win32子系统子系统(2/2)(2/2)当一个应用程序调用子系统动态链接库中的函数时,当一个应用程序调用子系统动态链接库中的函数时,可能会出现下面三种情况之一:可能会出现下面三种情况之一:函数完全在子系统动态链接库中实现,这时并没有消函数完全在子系统动态链接库中实现,这时并没有消息发送到环境子系统进程,也没有调用执行体服务。函息发送到环境子系统进程,也没有调用执行体服务。函数在用户态中执行,结果返回到调用者数在用户态中执行,结果返回到调用者例如:例如:GetCurrentProcessIdGetCurrentProcessId 函数需要一个或多个对执行体函数的调用函数需要一

26、个或多个对执行体函数的调用例如:例如:ReadFile,ReadFile,由子系统动态链接库调用由子系统动态链接库调用Windows Windows 系统服务系统服务NtReadFileNtReadFile 函数要求某些工作在环境子系统进程中进行。在这种函数要求某些工作在环境子系统进程中进行。在这种情况下,将产生一个客户情况下,将产生一个客户/服务器请求到环境子系统,其服务器请求到环境子系统,其中的一个消息将被发送到子系统去执行某些操作,这时中的一个消息将被发送到子系统去执行某些操作,这时使用执行体的使用执行体的“本地过程调用本地过程调用”(LPCLPC)机制。然后子系)机制。然后子系统动态链

27、接库在消息返回给调用者之前会一直等待应答统动态链接库在消息返回给调用者之前会一直等待应答例如:例如:CreatProcessCreatProcess将涉及将涉及2 2和和3 3两种情况两种情况 NTDLLNTDLL也包含许多支持函数,如映像加载程序、堆管也包含许多支持函数,如映像加载程序、堆管理器和理器和Win32Win32子系统进程通信函数以及通用运行库子系统进程通信函数以及通用运行库 用户态异步过程调用(用户态异步过程调用(APCAPC)调度器和异常调度器)调度器和异常调度器子系统动态链接库子系统动态链接库NTDLL.DLLNTDLL.DLL 提供系统调用入口提供系统调用入口 为环境子系统

28、、其他子为环境子系统、其他子系统动态链接库等提供系统动态链接库等提供内部支持函数内部支持函数执行体执行体 执行体(执行体(ExecutiveExecutive)是)是NTOSKRNL.EXENTOSKRNL.EXE的的上上层层 执行体应该从两种角度来理解:执行体应该从两种角度来理解:1 1.执行体提供了一组函数调用执行体提供了一组函数调用2.2.执行体本身由若干组件组成执行体本身由若干组件组成执行体执行体提供的函数调用提供的函数调用 从用户态导出并且可以调用的函数。这些函数从用户态导出并且可以调用的函数。这些函数的接口在的接口在NTDLL.DLLNTDLL.DLL中。通过中。通过Win32Wi

29、n32 APIAPI或一些或一些其他的环境子系统可以对它们进行访问其他的环境子系统可以对它们进行访问 从用户态导出并且可以调用的函数,但当前通从用户态导出并且可以调用的函数,但当前通过任何文档化的子系统函数都不能使用过任何文档化的子系统函数都不能使用 在在Windows DDKWindows DDK中已经导出并且文档化的核心中已经导出并且文档化的核心态调用的函数态调用的函数 在核心态组件中调用但没有文档化的函数。例在核心态组件中调用但没有文档化的函数。例如在执行体内部使用的内部支持例程如在执行体内部使用的内部支持例程 组件内部的函数组件内部的函数执行体执行体包含的功能实体包含的功能实体(1/2

30、)(1/2)进程和线程管理器进程和线程管理器创建及中止进程和线程。对进程和线创建及中止进程和线程。对进程和线程的基本支持在内核中实现,而执行体给这些低级对象程的基本支持在内核中实现,而执行体给这些低级对象添加附加语义和功能添加附加语义和功能 虚拟内存管理器虚拟内存管理器实现实现“虚拟内存虚拟内存”。内存管理器也为高。内存管理器也为高速缓存管理器提供基本的支持速缓存管理器提供基本的支持 安全引用监视器安全引用监视器在本地计算机上执行安全策略。它保护在本地计算机上执行安全策略。它保护了操作系统资源,执行运行时对象的保护和监视了操作系统资源,执行运行时对象的保护和监视 I/OI/O管理器管理器执行独

31、立于设备的输入执行独立于设备的输入/输出,并进一步处理输出,并进一步处理调用适当的设备驱动程序调用适当的设备驱动程序 高速缓存管理器高速缓存管理器通过将最近引用的磁盘数据驻留在主内通过将最近引用的磁盘数据驻留在主内存中来提高文件存中来提高文件I/OI/O的性能,并且通过在把更新数据发送的性能,并且通过在把更新数据发送到磁盘之前将它们在内存中保持一个短的时间来延缓磁到磁盘之前将它们在内存中保持一个短的时间来延缓磁盘的写操作,这样就可以实现快速访问盘的写操作,这样就可以实现快速访问执行体执行体包含的功能实体包含的功能实体(2/2)(2/2)对象管理器对象管理器:创建、管理以及删除:创建、管理以及删

32、除Windows 2000/XPWindows 2000/XP的的执行体对象和用于代表操作系统资源的抽象数据类型,执行体对象和用于代表操作系统资源的抽象数据类型,例如进程、线程和各种同步对象例如进程、线程和各种同步对象 本地过程调用(本地过程调用(LPCLPC,Local Procedure CallLocal Procedure Call)机制)机制,在同一台计算机上的客户进程和服务进程之间传递信在同一台计算机上的客户进程和服务进程之间传递信息。息。LPCLPC是一个灵活的、经过优化的是一个灵活的、经过优化的“远程过程调用远程过程调用”(RPCRPC,Remote Procedure Cal

33、lRemote Procedure Call)版本)版本 一组广泛的公用运行时函数一组广泛的公用运行时函数,例如字符串处理、算术,例如字符串处理、算术运算、数据类型转换和完全结构处理运算、数据类型转换和完全结构处理 执行体支持例程执行体支持例程,例如系统内存分配(页交换区和非,例如系统内存分配(页交换区和非页交换区)、互锁内存访问和两种特殊类型的同步对页交换区)、互锁内存访问和两种特殊类型的同步对象:资源和快速互斥体象:资源和快速互斥体内核内核 NTOSKRNL.EXENTOSKRNL.EXE的下层的下层 内核是内核是对处理器体系结构的抽象,将执行体与处理器对处理器体系结构的抽象,将执行体与处

34、理器体系结构的差异相隔离,保证系统的可移植性。大多体系结构的差异相隔离,保证系统的可移植性。大多数代码用数代码用C C编写,部分依赖于硬件体系结构的代码用汇编写,部分依赖于硬件体系结构的代码用汇编语言编写编语言编写 功能功能线程安排和调度线程安排和调度陷阱处理和异常调度陷阱处理和异常调度中断处理和调度中断处理和调度多处理器同步多处理器同步供执行体使用的基本内核对象供执行体使用的基本内核对象 始终运行在核心态,代码精简,可移植性好。除了中始终运行在核心态,代码精简,可移植性好。除了中断服务例程,正在运行的线程不能抢先内核断服务例程,正在运行的线程不能抢先内核内核内核内核对象内核对象内核实现了一组

35、简单的对象,称为内核对象,以帮内核实现了一组简单的对象,称为内核对象,以帮助内核控制中心处理并支持执行体对象的创建助内核控制中心处理并支持执行体对象的创建 控制对象控制对象包括异步过程调用(包括异步过程调用(APCAPC,asynchronous procedure callasynchronous procedure call)对象、延迟过)对象、延迟过程调用(程调用(DPCDPC,deferred procedure calldeferred procedure call)对象)对象和几个由和几个由I/OI/O系统使用的对象,例如中断对象系统使用的对象,例如中断对象 调度程序对象调度程序对

36、象负责同步操作并影响线程调度。负责同步操作并影响线程调度。调度程序对象包括内核线程、互斥量(调度程序对象包括内核线程、互斥量(MutexMutex)、)、事件(事件(EventEvent)、内核事件对、信号量)、内核事件对、信号量(SemaphoreSemaphore)、定时器和可等待定时器)、定时器和可等待定时器内核内核硬件支持硬件支持 使得执行体和设备驱动程序同硬件无关使得执行体和设备驱动程序同硬件无关 实现手段:一组在多个体系结构上可移植实现手段:一组在多个体系结构上可移植的、相同语义的接口的、相同语义的接口 内核也有部分代码不具有移植性内核也有部分代码不具有移植性支持虚拟支持虚拟808

37、68086模式的代码,用以运行一模式的代码,用以运行一些古老的些古老的1616位位DOSDOS程序程序高速缓存管理高速缓存管理上下文切换上下文切换 设备驱动程序的分类设备驱动程序的分类硬件设备驱动程序操作硬件硬件设备驱动程序操作硬件文件系统驱动程序接受面向文件的文件系统驱动程序接受面向文件的I/OI/O请求,请求,并把它们转化为对特殊设备的并把它们转化为对特殊设备的I/OI/O请求请求过滤器驱动程序截取过滤器驱动程序截取I/OI/O并在传递并在传递I/OI/O到下一层到下一层之前执行某些特定处理之前执行某些特定处理设备驱动程序设备驱动程序 可加载的核心态模块可加载的核心态模块 I/OI/O系统

38、和相关硬件之间的系统和相关硬件之间的接口接口 WDM=Windows Driver WDM=Windows Driver ModelModel硬件抽象层(硬件抽象层(HALHAL)(1/3)(1/3)HAL=Hardware Abstraction LayerHAL=Hardware Abstraction Layer HALHAL是一个核心态模块(是一个核心态模块(HAL.DLLHAL.DLL),),它它为运行为运行Windows Windows 的硬件平台提供低级接的硬件平台提供低级接口口 屏蔽硬件相关的细节屏蔽硬件相关的细节硬件抽象层硬件抽象层(2/3)(2/3)在在Windows Wi

39、ndows 发行介质上有许多发行介质上有许多HALHAL:Hal.dllHal.dll标准标准PCPCHalsmp.dllHalsmp.dll 多处理器多处理器PCPCHalsp.dllHalsp.dllCompaq SystemProCompaq SystemPro 安装时根据硬件平台选择的模块复制到安装时根据硬件平台选择的模块复制到系统中,并改名为系统中,并改名为hal.dllhal.dllXXXUCHAR/USHORT/ULONG硬件抽象层硬件抽象层(3/3)(3/3)为了维护可移植性,为了维护可移植性,WindowsWindows内部组件和用户内部组件和用户编写的设备驱动程序并不直接访

40、问硬件,而是编写的设备驱动程序并不直接访问硬件,而是通过调用通过调用hal.dllhal.dll中的例程中的例程READ_PORT_XXXREAD_PORT_XXXWRITE_PORT_XXXWRITE_PORT_XXXREAD_PORT_BUFFER_XXXREAD_PORT_BUFFER_XXXWRITE_PORT_ BUFFER_XXXWRITE_PORT_ BUFFER_XXXREAD_REGISTER_XXXREAD_REGISTER_XXXWRITE_ REGISTER_XXXWRITE_ REGISTER_XXXREAD_ REGISTER_BUFFER_XXXREAD_ REG

41、ISTER_BUFFER_XXXWRITE_ REGISTER_ BUFFER_XXXWRITE_ REGISTER_ BUFFER_XXX可移植性的获得可移植性的获得 分层设计。依赖于处理器体系结构或平台的系统分层设计。依赖于处理器体系结构或平台的系统底层部分被隔离在单独的模块之中,向并系统的底层部分被隔离在单独的模块之中,向并系统的高层屏蔽千差万别的硬件平台。高层屏蔽千差万别的硬件平台。两个关键组件:两个关键组件:HALHAL和内核和内核依赖于体系结构的功能在内核中实现,在相同依赖于体系结构的功能在内核中实现,在相同体系结构中,因计算机而异的功能在体系结构中,因计算机而异的功能在HALHA

42、L中实现中实现 大量使用高级语言大量使用高级语言执行体、设备驱动程序等执行体、设备驱动程序等用用C C语言编写,图形用户界面用语言编写,图形用户界面用C+C+编写。只有那编写。只有那些必须和系统硬件直接通信的操作系统部分,或些必须和系统硬件直接通信的操作系统部分,或性能极度敏感的部分是用汇编语言编写的。汇编性能极度敏感的部分是用汇编语言编写的。汇编语言代码分布集中且少语言代码分布集中且少操作系统设计之哲学原理操作系统设计之哲学原理 层次结构层次结构 没有对错没有对错 懒人哲学懒人哲学 让困于人让困于人 留有余地留有余地 子虚乌有子虚乌有 时空转换时空转换 策略与机制分离策略与机制分离 简单为美简单为美 适可而止适可而止摘自:邹恒明摘自:邹恒明计算机的心智计算机的心智 操作系统之哲学原理操作系统之哲学原理 机械工业出版社机械工业出版社

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁