《(第 02 章)操作系统逻辑结构[ 2 课时]》由会员分享,可在线阅读,更多相关《(第 02 章)操作系统逻辑结构[ 2 课时](25页珍藏版)》请在金锄头文库上搜索。
1、1苏曙光Huazhong University of Science and Technology第 02 章 操作系统逻辑结构操作系统原理苏曙光.软件学院.华中科技大学第2页共39页z本章主要学习内容操作系统的逻辑结构操作系统赖以运行的基本硬件z重点虚拟机的概念操作系统分层的结构态的概念中断机制2苏曙光.软件学院.华中科技大学第3页共39页1 操作系统虚拟机的概念z操作系统为用户提供一台虚拟计算机裸机极难使用,必须有操作系统才能为用户所用。裸机虽有很强的指令系统,高档硬件配置,但是很难直接被用户使用。必须安装 OS,才能发挥并扩充其功能。面对用户,操作系统可以称为虚拟计算机操作系统是紧靠硬件
2、的第一层软件,计算机上覆盖操作系统后,可扩展基本功能,为用户提供一台功能显著增强,使用更加方便,安全可靠性好,效率明显提高的机器。苏曙光.软件学院.华中科技大学第4页共39页虚拟机的概念z操作系统是用户与计算机硬件之间的接口上网欣赏音乐撰写文档IE浏览器MEDIA播放器OFFICE软件用户 操作界面计算机硬件操作系统屏蔽计算机硬件物理特性差异,给用户提供了接口虚拟计算机3苏曙光.软件学院.华中科技大学第5页共39页z用户通过操作命令 和系统功能调用 与虚拟机打交道。操作命令 包括键盘命令,作业控制语言 JCL, GUI,Shell等;系统功能调用 包括应用程序接口,系统 API等。苏曙光.软件
3、学院.华中科技大学第6页共39页2 操作系统的逻辑结构z操作系统设计时采用的三种结构整体式结构层次式结构客户 /服务器结构ModuleInterfaceDeviceDriverInterface4苏曙光.软件学院.华中科技大学第7页共39页z整体式结构操作系统以模块为基本单位构建每个模块具有特定的功能某个功能由若干个关联模块协作完成模块5模块3模块2模块7模块1模块6 模块8模块4苏曙光.软件学院.华中科技大学第8页共39页z整体式结构5苏曙光.软件学院.华中科技大学第9页共39页z特点根据功能划分模块各个模块之间自由调用和转移每个模块独立设计、编码和调试数据基本上作为全局变量使用z缺点信息传
4、递方式可以根据需要随意约定,容易造成模块循环调用不适合现代大型操作系统使用,已被弃用。苏曙光.软件学院.华中科技大学第10页共39页z层次结构把所有功能模块按照调用次序分别排成若干层,确保各层之间只能是单向依赖或单向调用。层次结构的优点结构清晰,避免循环调用。整体问题局部化,系统的正确性可通过各层正确性来保证。有利于操作系统的维护、扩充、移植。6苏曙光.软件学院.华中科技大学第11页共39页分层原则把与机器硬件有关的程序模块放在最底层反映系统外部特性的模块放在最外层中间各层按调用次序或消息传递顺序分层共性的服务模块 /内核模块尽可能放在较低层活跃功能在低层,提高运行效率资源分配策略放最外层,便
5、于适应不同环境z调用跨越的层次相邻层(最严格)所有下层部分下层苏曙光.软件学院.华中科技大学第12页共39页操作系统的分层逻辑结构z操作系统采用层次式设计:“洋葱头”结构所用功能划分为若干个逻辑层次;各层属于封闭状态,其功能实现依赖其下层下层通过接口向上层提供服务下层可以看作上一层的“虚拟机”7苏曙光.软件学院.华中科技大学第13页共39页操作系统的分层逻辑结构z操作系统的分层逻辑结构系统核层操作系统同硬件接口的部分 初级中断处理程序; 处理机分配程序; 进程控制和基本进程通信功能 源码一般采用汇编语言编写核外层存储管理层;I/O处理层;文件储存层;调度和资源分配苏曙光.软件学院.华中科技大学
6、第14页共39页z客户 /服务器结构(微内核结构)操作系统由微内核和核外的服务器进程组成微内核提供基本服务,如虚拟存储、消息传递;核外服务器完成其他功能,等待客户提出请求。本地过程调用 (LPC, Local Procedure Call)进程间请求 应答式的消息传递机制。z优点良好的扩充性:只需添加支持新功能的服务进程即可可靠性好:调用关系明确,执行转移不易混乱便于网络服务,实现分布式处理 RPC, Remote P.C.z缺点消息传递比直接调用效率要低一些8苏曙光.软件学院.华中科技大学第15页共39页典型操作系统的结构zMS DOSBIOS(Basic Input/Output Syst
7、em):基本输入 /输出功能DOS核心:提供一套独立于硬件的系统功能:内存管理、文件管理、字符设备和输入 /输出命令处理程序:对用户命令进行分析和执行;BIOS(基本输入/输出系统)DOS核心命令处理程序整体式结构苏曙光.软件学院.华中科技大学第16页共39页典型操作系统的结构zWindows NT安全子系统登录进程Win32客户OS/2客户POSIX客户OS/2子系统Win32子系统POSIX子系统硬件抽象层系统服务核心态用户态内核NT执行体对象管理器安全引用监视器虚拟内存管理器进程和线程管理器本地过程调用功能高速缓存管理器文件系统驱动程序硬件设备驱动程序I/O管理器网络重定向微内核结构9苏
8、曙光.软件学院.华中科技大学第17页共39页典型操作系统的结构zWindows 2000分层和微内核结构苏曙光.软件学院.华中科技大学第18页共39页典型操作系统的结构zMach卡内基梅隆大学 微内核结构10苏曙光.软件学院.华中科技大学第19页共39页典型操作系统的结构zUNIX(现代 )texta.out elfcoff公共例程可执行格式开关表NFSFFSs5fsRFSvnode/vfs接口分时进程实时进程系统进程调度框架网络驱动程序终端驱动程序流磁盘驱动程序磁带驱动程序块设备开关表文件映射匿名映射设备映射虚存框架苏曙光.软件学院.华中科技大学第20页共39页2 支持操作系统的最基本硬件结
9、构z处理机z内存z中断z时钟11苏曙光.软件学院.华中科技大学第21页共39页处理机z 处理机的态和特权指令态:处理机的工作状态。 根据对资源和机器指令的使用权限,对处理机工作状态的一种描述核态 vs. 用户态核态 vs. 管态 vs. 用户态 核态 (Kernel mode):管理程序( OS内核)执行时 CPU所处的状态能够访问所有的软件和硬件资源,能执行所有的指令 目态 (user mode):用户程序执行时 CPU所处状态仅能访问有限资源。其它资源的访问需要请求 OS内核服务。 管态 (Supervisor mode)介于核态和用户态之间苏曙光.软件学院.华中科技大学第22页共39页z
10、DOS系统不分态z Windows系统RING 0: 内核态RING 1 :系统预留RING 2:系统预留RING 3 :用户态z Unix/Linux系统00 核态01 管态11 用户态RING 0内核态RING 3用户态12苏曙光.软件学院.华中科技大学第23页共39页z硬件和操作系统对 CPU的观察硬件按核态和用户态来区分 CPU状态操作系统关心目前时刻哪个进程在 CPU上运行操作系统在横轴方向把进程 A B C D 区分开,而硬件在纵轴方向把执行的态区分开。进程 A B C D核心态 K KU U用户态苏曙光.软件学院.华中科技大学第24页共39页z特权指令集在核态下操作系统可以使用所
11、有指令,包括一组特权指令。允许和禁止中断;在进程之间切换处理机;存取用于内存保护的寄存器;执行输入输出操作;停止一个中央处理器的工作。从管态转回用户态这些指令是应用程序不能使用的!13苏曙光.软件学院.华中科技大学第25页共39页用户态和核态之间的转换z用户态向核态转换的情形 用户进程请求操作系统提供服务 发生了中断 用户进程产生错误状态(内部中断) 用户态下企图执行特权指令z核态向用户态转换的情形一般是中断返回苏曙光.软件学院.华中科技大学第26页共39页Windows中核态和用户态的通信z WDM驱动程序z 用户态: *.exe KERNEL32.DLL和 USER32.DLLz 核态(驱
12、动程序): *.sys NTOSKRNL.EXE Ex 执行支持 Hal 硬件抽象层(仅 NT/Windows 2000) Io I/O管理器(包括即插即用函数) Ke 内核 Ks 内核流 IRP管理函数 Mm 内存管理器 Ob 对象管理器 Po 电源管理 Ps 进程结构 Rtl 运行时库 Se 安全引用监视 Zw 其他函数14苏曙光.软件学院.华中科技大学第27页共39页Windows中核态和用户态的通信zWIN32函数DeviceIoControl()ReadFile( )或 WriteFile( ) z五种方式异步过程调用 (APC)事件方式( VxD)消息方式异步 I/O方式事件方式
13、(WDM)UCHAR InputBuffer10;UCHAR OutputBuffer10;DWORD dwOutput;memset(InputBuffer, 0xAA, 10);BOOL bRet = :DeviceIoControl(hDevice, IOCTL_TEST, InputBuffer, 10, &OutputBuffer, 10, &dwOutput, NULL);#define IOCTL_TEST CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS)if (ioControlCode
14、 = IOCTL_TEST)/ 读取数据InputBuffer = (UCHAR *)Irp-AssociatedIrp.SystemBuffer;/ 写入数据OutputBuffer = (UCHAR *)Irp-AssociatedIrp.SystemBuffer;memset(OutputBuffer, 0xBB, outBufLength); Irp-IoStatus.Information = outBufLength; 15苏曙光.软件学院.华中科技大学第29页共39页存储器z存储程序和数据的部件z分类按照工作时与 CPU联系可分主存:直接和 CPU交换信息 .辅存:不能直接和 C
15、PU交换信息按存储元件材料可分半导体存储器 (常作主存 )磁存储器 (磁带 ,磁盘 )光存储器 (光盘 )按存储器 (半导体存储器 )读写工作方式可分RAM(随机存储器)ROM(只读存储器)苏曙光.软件学院.华中科技大学第30页共39页z存储系器组织理想存储器:速度快,容量大,成本低分级存储系统高速缓冲存储器( CACHE)主存辅存辅存主存高速缓存速度增快容量减少成本增加16苏曙光.软件学院.华中科技大学第31页共39页z分级存储系统的工作原理高速缓存 主存辅存CPU命中没命中缺页苏曙光.软件学院.华中科技大学第32页共39页z存储保护多进程共享主存时,必须对操作系统和各进程的数据加以严格的保护多用户 ,多任务操作系统给每个进程分配一个独立存储空间,只能访问各自空间界地址寄存器,存储键提供存取硬件保护nt