《《操作系统结构》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《操作系统结构》PPT课件.ppt(49页珍藏版)》请在金锄头文库上搜索。
1、第2章 操作系统结构n如何设计操作系统q考察所提供的服务q考察为用户和程序员提供的接口q研究系统的各个组成部分及其相互关系操作系统服务操作系统服务n操作系统负责提供一个环境以执行程序,向程序和使用程序的用户提供一定的服务。n服务包含许多有用的函数操作系统服务操作系统服务n用户界面q命令行界面q批界面q图形用户界面操作系统服务操作系统服务n程序执行程序执行 系统能将程序装入内存并运行,系统能将程序装入内存并运行,结束包括正常或不正常结束结束包括正常或不正常结束nI/O 操作操作 用户通常不能直接控制用户通常不能直接控制I/O 设备,设备,操作系统必须提供进行操作系统必须提供进行I/O 操作的方法
2、。操作的方法。n文件系统操作文件系统操作 程序需要读、写、创建、删程序需要读、写、创建、删除文件除文件操作系统服务操作系统服务n通信通信 进程间交换信息一种发生在同一台计算机上运行的两个进程之间,另一种发生在由计算机网络连接起来的不同计算机上的进程之间。通信通过共享内存或消息传递来实现n错误检测错误检测 错误可能发生在CPU和内存中、 I/O 设备中、用户程序中,对于每种错误,操作系统应采取适当行动,以确保正确和一致的计算n资源分配资源分配 当多个用户登录到系统上或多个当多个用户登录到系统上或多个作业同时执行时,系统必须为每个进程分配作业同时执行时,系统必须为每个进程分配资源资源n统计统计 跟
3、踪记录哪些用户使用了多少和什么跟踪记录哪些用户使用了多少和什么类型的计算机资源。这种记录用于记帐或建类型的计算机资源。这种记录用于记帐或建立使用统计数据立使用统计数据n保护保护 确保所有对系统资源的访问都是受控确保所有对系统资源的访问都是受控制的,特别是在多用户计算机系统中制的,特别是在多用户计算机系统中操作系统服务操作系统服务操作系统的用户界面n用户与操作系统的界面q命令行界面q图形用户界面命令解释程序命令解释程序n在 MS-DOS中称为命令行解释程序nUNIX中称为外壳(shell) (cf. kernel)n作用:获取并执行用户指定的下一条命令。q文件的创建、删除、列出、打印、复制、执行
4、命令解释程序命令解释程序n执行命令的方法:q命令解释程序本身包含代码n命令的数量决定了命令解释程序的大小q由系统程序实现命令nrm file.txtn搜索名为rm的文件,将文件装入内存,并用参数file.txt来执行。图形用户界面nGUI提供基于鼠标的窗口和菜单系统作为接口系统调用系统调用n系统调用 提供了进程与操作系统之间的接口q调用通常以汇编语言指令的形式提供q有些语言 (e.g. C, C+)已经取代了汇编语言而直接用于系统编程,允许直接调用系统调用,这时系统调用通常类似预定义的函数或子程序调用nWin32 application programming interface (API)
5、for Microsoft Windows例:从一个文件读取数据并复制到另一个文件例:从一个文件读取数据并复制到另一个文件系统调用n一般根据应用程序接口(API)设计程序nAPI是一系列适用于程序员的函数,含参数及返回值qwin32 APIqPOSIX APIqJava API处理一个调用open( )系统调用的用户应用程序系统调用系统调用n运行程序向操作系统传递参数通常用三种方法运行程序向操作系统传递参数通常用三种方法q通过通过寄存器寄存器来传递参数来传递参数q将参数存放在内存的块或表中,并将块的将参数存放在内存的块或表中,并将块的地址地址作为作为参数传递给寄存器参数传递给寄存器q参数也可放
6、在或压到参数也可放在或压到堆栈堆栈中,并通过操作系统弹出中,并通过操作系统弹出堆栈。堆栈。参数作为表传递系统调用类型n进程控制进程控制q包括分配释放内存包括分配释放内存n文件管理文件管理n设备管理设备管理n信息维护信息维护n通信通信进程控制进程控制n正常中断正常中断 (退出退出)n非正常中断非正常中断 (终止终止)n创建进程创建进程 (fork, exec),终止进程终止进程n等待时间,事件,信号等待时间,事件,信号, etc. n分配释放内存分配释放内存 (malloc, free)文件管理文件管理n创建,删除文件创建,删除文件n打开打开, 关闭关闭n读,写,重定位读,写,重定位n获取,设置
7、文件属性获取,设置文件属性设备管理设备管理n请求,释放设备请求,释放设备n读,写,重定位读,写,重定位n获取,设置设备属性获取,设置设备属性信息维护信息维护n获取,设置时间或日期获取,设置时间或日期n获取,设置系统数据获取,设置系统数据qCPU 等级等级, 内存大小内存大小, 空闲内存空闲内存q用户数,操作系统版本,当前用户数用户数,操作系统版本,当前用户数n获取,设置目标属性获取,设置目标属性q进程进程q文件文件q设备设备通信通信n两种通信模型:两种通信模型: 消息传递消息传递 or 共享内存共享内存系统程序系统程序n系统程序系统程序 提供一个方便的环境,以开发和提供一个方便的环境,以开发和
8、执行程序执行程序 (cf. Fig 1.1)q硬件硬件q操作系统操作系统q系统程序系统程序q应用程序应用程序n绝大多数用户所看到的操作系统是由系统程绝大多数用户所看到的操作系统是由系统程序而不是实际系统调用定义的序而不是实际系统调用定义的. 系统程序系统程序n系统程序可分为系统程序可分为:q文件管理文件管理q状态信息状态信息q文件修改文件修改 (e.g. text editors)q程序语言支持程序语言支持n编译器编译器, 汇编器汇编器, 链接程序,解释程序,调试程序链接程序,解释程序,调试程序q程序装入和执行程序装入和执行n绝对加载程序、重定位加载程序、链接编辑器绝对加载程序、重定位加载程序
9、、链接编辑器q通信通信n邮件,浏览器邮件,浏览器, etc. 操作系统设计和实现操作系统设计和实现n设计目标设计目标n机制和策略机制和策略n实现实现设计目标设计目标n系统设计受到硬件选择和系统类型的影响系统设计受到硬件选择和系统类型的影响n用户目标用户目标 容易使用、容易学习、可靠、容易使用、容易学习、可靠、安全、快速安全、快速n系统目标系统目标 容易设计、实现和维护、灵活、容易设计、实现和维护、灵活、可靠、没有错误且高效可靠、没有错误且高效n不同的要求能形成对不同环境的不同解决方不同的要求能形成对不同环境的不同解决方案案机制和策略机制和策略n机制决定了如何来做机制决定了如何来做n策略决定做什
10、么策略决定做什么实现实现n操作系统的传统实现方式是用汇编语言编写,操作系统的传统实现方式是用汇编语言编写,现在大多使用高级语言如现在大多使用高级语言如C或者或者C+n使用高级语言的优点使用高级语言的优点:q代码编写更快代码编写更快q更为紧凑更为紧凑q更容易理解和调试更容易理解和调试q更容易从一个硬件移植到另一个硬件上更容易从一个硬件移植到另一个硬件上n反对观点认为:采用高级语言实现的操作系统降低了反对观点认为:采用高级语言实现的操作系统降低了速度、增加了存储要求。速度、增加了存储要求。n然而:然而:q现代编译器能对大型程序进行复杂的分析并采用高级优化技现代编译器能对大型程序进行复杂的分析并采用
11、高级优化技术以生成优化代码术以生成优化代码q操作系统的重要性能改善很可能是由于更好的数据结构和算操作系统的重要性能改善很可能是由于更好的数据结构和算法,而不是由于优秀的汇编语言代码。法,而不是由于优秀的汇编语言代码。q在在系统编写完成并能正常工作之后,可以找出瓶颈子程序,系统编写完成并能正常工作之后,可以找出瓶颈子程序,并用相应的汇编语言子程序代替。并用相应的汇编语言子程序代替。操作系统结构操作系统结构n现代操作系统庞大而复杂,必须要设计一个现代操作系统庞大而复杂,必须要设计一个 好的结构好的结构 以便能正常工作并能容易修改以便能正常工作并能容易修改n通常是将这一任务分成小模块而不只是一个单通
12、常是将这一任务分成小模块而不只是一个单块系统块系统简单结构简单结构nMS-DOS 利用最小的空间提供最多的功利用最小的空间提供最多的功能能n内存大小内存大小从从256到到 640KB, OS 占用占用 48 到到 128 KBq以较小、简单且功能有限的系统形式启动以较小、简单且功能有限的系统形式启动q没有被划分成模块没有被划分成模块MS-DOS 层次结构层次结构UNIX 系统结构系统结构nUNIX 最初受硬件功能的限制最初受硬件功能的限制n由两个独立部分组成由两个独立部分组成:q系统程序系统程序q内核内核n包括物理硬件之上和系统调用接口之下的所有部分包括物理硬件之上和系统调用接口之下的所有部分
13、n提供文件系统、提供文件系统、CPU调度、内存管理和其它操作系统功调度、内存管理和其它操作系统功能能n大多数的功能都结合放在这一层大多数的功能都结合放在这一层UNIX 系统结构系统结构分层方法分层方法n操作系统分成若干层,每层建立在较低层之操作系统分成若干层,每层建立在较低层之上。上。q最底层最底层 (层层 0) 是硬件是硬件; 最高层最高层 (层层 N) 是用户接是用户接口口n选择了分层后,每层只能利用较低层的功能选择了分层后,每层只能利用较低层的功能(或操作)和服务(或操作)和服务q简化了调试和系统验证,设计与实现简化了调试和系统验证,设计与实现q不必知道如何实现这些操作,只需知道这些操不
14、必知道如何实现这些操作,只需知道这些操作做什么作做什么n与其它方法相比,分层法效率较差与其它方法相比,分层法效率较差q每层为系统调用增加了额外开销每层为系统调用增加了额外开销 (参数或数据的参数或数据的修改与传递修改与传递)微内核微内核n随着随着UNIX操作系统的扩充,操作系统的扩充, 内核变得更大内核变得更大且更难管理且更难管理n将所有非基本部分从内核中移到将所有非基本部分从内核中移到 用户空间用户空间n哪些服务保留在内核内哪些服务保留在内核内?q最小的进程和内存管理最小的进程和内存管理q通信功能通信功能n通信以消息传递形式提供通信以消息传递形式提供微内核微内核n优点优点:q便于扩充便于扩充
15、q方便操作系统从一种硬件平台设计移植到另一方便操作系统从一种硬件平台设计移植到另一种硬件平台设计种硬件平台设计q更好的可靠性更好的可靠性 (内核运行更少的代码内核运行更少的代码)q更好的安全性更好的安全性n例例:qMach (mid-1980s, CMU)nTru64 UNIX (formerly Digital UNIX)nApple MacOS X ServerqQNX (real-time OS)qWindows NT (hybrid structure)模块n用面向对象编程技术来生成模块化的内核n内核有一组核心部件,以及在启动或运行时对附加服务的动态链接。可加载的Solaris模块虚拟
16、机虚拟机n虚拟机虚拟机 : 应用程序将它们的一切下层当成硬应用程序将它们的一切下层当成硬件的一部分而看作一个层次整体件的一部分而看作一个层次整体n操作系统创建一种幻觉,以至于进程认为有操作系统创建一种幻觉,以至于进程认为有自己的处理器和自己的自己的处理器和自己的(虚拟虚拟)内存内存虚拟机虚拟机n物理计算机共享资源以创建虚拟机物理计算机共享资源以创建虚拟机qCPU 调度能共享出调度能共享出CPU以以造成一种每个用户都有造成一种每个用户都有自己的处理器的感觉自己的处理器的感觉q假脱机(假脱机(spooling) 和文件系统能提供虚拟读卡和文件系统能提供虚拟读卡机和虚拟行式打印机机和虚拟行式打印机q
17、一个普通的用户分时终端提供虚拟机操作员终端的一个普通的用户分时终端提供虚拟机操作员终端的功能功能虚拟机优缺点虚拟机优缺点n每个虚拟机完全与其他虚拟机相隔离,由于各种每个虚拟机完全与其他虚拟机相隔离,由于各种系统资源完全被保护,就不存在安全问题系统资源完全被保护,就不存在安全问题. q没有直接资源共享没有直接资源共享n虚拟机系统是用于研究和开发操作系统的很好工虚拟机系统是用于研究和开发操作系统的很好工具,虚拟机允许进行系统开发而不必中断正常的具,虚拟机允许进行系统开发而不必中断正常的系统操作系统操作n虚拟机实现困难,因为需提供与底层机器完全一虚拟机实现困难,因为需提供与底层机器完全一样的拷贝需要
18、大量的工作样的拷贝需要大量的工作.虚拟机虚拟机nJava 虚拟机虚拟机nVMware 虚拟机虚拟机系统生成系统生成n操作系统通常设计成能运行在某类计算机上,对于某个特定的计算机场所,必须要配置和生成系统,这一过程称为系统生成(system generation,SYSGEN)。nSYSGEN程序采用自动或者交互方式获得有关硬件系统的特定配置信息,包括:qCPU类型?安装什么选项 (扩展指令集、浮点运算操作等)q内存大小q设备,包括设备号码、设备中断号、设备类型和模型、以及任何特别的设备特点q操作系统选项和参数值 (缓冲区大小、CPU调度算法、支持的进程最大数量等)系统生成系统生成n系统生成的三
19、种方式:系统生成的三种方式:q修改源代码并编译修改源代码并编译q用系统描述创建表,并从预先编译过的库中选用系统描述创建表,并从预先编译过的库中选择模块择模块q构造完全由表驱动的系统构造完全由表驱动的系统系统启动n引导引导 开机时,装入内核以启动系统开机时,装入内核以启动系统n引导程序引导程序 存在存在ROM中的一小段代码,能定中的一小段代码,能定位内核,将它装入内存并开始执行。位内核,将它装入内存并开始执行。小节小节n操作系统提供什么服务操作系统提供什么服务n如何提供服务如何提供服务q系统调用系统调用n进程控制、文件管理、设备管理、信息维护、通信进程控制、文件管理、设备管理、信息维护、通信q系统程序系统程序n设计操作系统的方法设计操作系统的方法n生成生成n启动启动n作业作业q3,7