OS-2017-Chapter3操作系统结构_第1页
OS-2017-Chapter3操作系统结构_第2页
OS-2017-Chapter3操作系统结构_第3页
OS-2017-Chapter3操作系统结构_第4页
OS-2017-Chapter3操作系统结构_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章操作系统结构,操作系统与用户接口系统调用操作系统结构操作系统特征,3.1用户与操作系统的接口,1.命令接口联机接口(交互式):使用系统提供的操作命令,交互地控制程序执行和管理计算机系统。如系统管理、环境设置、权限管理、文件管理等脱机接口:以作业说明书的方式提交给系统(批的方式);执行过程中,用户无法干涉2.程序接口(系统调用)系统调用是操作系统提供给编程人员的唯一接口,编程人员利用系统调用,完成与机器硬件部分相关的工作。用户就可以在程序中调用操作系统所提供的一些子功能。,命令解释系统,命令解释系统(外壳,shell):是OS的重要组件之一,是用户和OS的接口作用:读入用户的输入或者文件中的命令,并运行它(们);通常转换为一个或者多个系统调用命令解释系统位置:有的是在内核中有的如MS-DOS和Unix,则将它作为一个特殊程序(它易变,因此更灵活),当一个作业开始或者分时系统中用户登陆时,它运行,命令解释系统的工作流程,首先读入键盘缓冲区中的命令,判别其文件名、扩展名及驱动器名是否正确。若发现有错,在给出出错信息后返回;若无错,再识别该命令-基于表格的方法:从对应表项中获得该命令处理程序的入口地址,然后把控制权交给该处理程序去执行该命令。表格其中的每一表目都是由命令名及其处理程序的入口地址两项所组成。,3.2系统调用-功能,系统调用(SYSTEMCALL):OS核心中都有一组实现系统功能的过程(子程序),系统调用就是对上述过程的调用。编程人员利用系统调用,向OS提出服务请求,由OS代为完成。每个系统都有上百种系统调用,涉及进程、文件和设备控制等。系统调用运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。,例1:文件管理:文件读写和文件控制(高级语言);Open文件打开Close文件关闭Read读文件Write写文件Creat文件创建,3.2系统调用-举例,例2.利用系统调用实现硬盘文件内容读写,MOVEDX,OFFSETBUFFMOVECX,BYTEMOVEBX,HANDLEMOVEAH,3FHINT21H,当编程人员给定了系统调用名和参数之后,由一个类似于硬件中断处理的中断处理机构完成陷入处理机构。它是在系统中为控制系统调用服务的机构。当用户使用系统调用时,产生一条相应的指令(陷入指令,trap指令),CPU在执行到该指令时发生相应的中断,发出有关信号给该处理机构,并启动相应的处理程序来完成该系统调用所要求的功能。陷入指令(或称访管指令):由于系统调用引起处理机中断的指令在陷入中断发生时,从用户态系统态。这一转换在发生访管中断时由硬件自动实现。,3.2系统调用实现过程,3.2系统调用实现过程,系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的。每种机器的机器指令集中都有一条系统调用指令。,系统调用与返回,设置系统调用号和参数。调用号作为指令的一部分(如早期UNIX),或装入到特定寄存器里(如:DOS的int21H,AH=调用号。)参数装入到特定寄存器里,或内存区域执行trap(INT)指令:入口的一般性处理,查入口跳转表,跳转到相应功能的过程。保护CPU现场(将PC与PSW入栈),改变CPU执行状态(处理机状态字PSW切换,地址空间表切换)将参数取到核心空间执行操作系统内部代码;执行iret指令:将执行结果装入适当位置(类似于参数带入),恢复CPU现场(以栈顶内容置PSW和PC)。,3.2系统调用实现过程,举例-Linux系统调用表/调用号,Linux为每个系统调用都进行了编号(最大为NR_syscall),同时在内核中保存了一张系统调用表,该表中保存了系统调用编号和其对应的服务例程地址。第n个表项包含系统调用号为n的服务例程的地址。系统调用时需要把系统调用号一起传入内核。在x86上,这个传递动作是通过在执行int$0 x80前把调用号装入eax寄存器实现。这样系统调用处理程序一旦运行,就可以从eax中得到数据,然后再去系统调用表中寻找相应服务例程了。,现在的系统提供了许多库函数,用户编程时也许就是用上层的库函数,而不是直接使用系统调用。Win32API:微软提供了一个Win32API函数集合,它实质上就是一些库函数。在这些函数执行时,往往会再去调用系统的系统调用。该库函数提供了更易用的界面。因此,通过Win32API程序员就能够得到操作系统的服务。如write(,),3.2系统调用-库函数,(1)整体或模块结构(2)分层结构(3)微内核结构(客户服务器结构)(4)虚拟机,3.3操作系统结构,整体或模块结构整个系统按功能进行设计和模块划分。系统是一个单一的、庞大的的软件系统。由众多服务过程(模块)组成,可以随意调用其他模块中的服务过程评价优点:具有一定灵活性,模块之间转接的灵活性使运行中的高效率;结构紧密,接口简单直接缺点:功能划分和模块接口难保正确和合理;模块之间的依赖关系(功能调用关系)复杂(调用深度和方向),3.3操作系统结构-整体或模块结构,3.3操作系统结构-整体或模块结构,3.3操作系统结构-分层结构,按此模型构造的第一个操作系统是E.W.Dijkstra和他的学生在荷兰开发的THE系统(1968年),系统分为六层:层次功能5操作员4用户程序3输入/输出管理2操作员-进程通信1内存和磁盘管理0处理器分配和多道程序,从资源管理观点出发,将OS划分为若干层次。在某一层次上代码只能调用低层次上的代码,使模块间的调用变为有序性。有利于系统的维护性和可靠性。,3.3操作系统结构-分层结构,分层原则被调用功能在低层:如文件系统管理设备管理设备驱动程序活跃功能在低层:提高运行效率资源管理的公用模块放在最低层:如缓冲区、堆栈操作最低层的硬件抽象层:与机器特点紧密相关的软件放在最低层。如WindowsNT中的HAL资源分配策略放在最外层,便于修改或适应不同环境优点:功能明确,调用关系清晰(高层对低层单向依赖),有利于保证设计和实现的正确性低层和高层可分别实现(便于扩充);高层错误不会影响到低层缺点:效率低。层次之间的调用开销。,3.3操作系统结构-微内核结构(客户服务器结构),背景:从操作系统中去掉尽可能多的东西,而只留一个最小的核心微内核(micro-kernel)只给内核分配一些最基本的功能,运行在内核模式。如:进程间通信IPC、底层输入输出、有限调度和有限进程控制、最低级的存储管理其它的OS服务都是由运行在用户模式下的进程完成,可作为独立的应用进程,称为服务进程。微内核提供客户程序和运行在用户空间的各种服务之间的通信能力。如MachUnix。而WindowsNT采用了混合结构。(分层结构微内核结构),3.3操作系统结构-微内核结构(客户服务器结构),优点良好的扩充性:只需添加支持新功能的服务进程即可。而且所有新服务被增加到用户空间中,不需要修改内核。可靠性好:所有服务器以用户进程的形式运行,而不是运行在核心态,所以它们不直接访问硬件。假如在文件服务器中发生错误,文件服务器可能崩溃,但不会导致整个系统的崩溃便于网络服务,实现分布式处理:微内核可以以相同的方式与本地和远程的服务进程交互(如如远程过程调用RPC,RemoteProcedureCall)缺点消息传递比直接调用效率要低一些(但可以通过提高硬件性能来补偿),3.3操作系统结构-微内核结构(客户服务器结构),3.3操作系统结构-虚拟机,3.3操作系统结构-虚拟机,虚拟机:通过某种技术,使物理计算机作为共享资源从而创建虚拟机。利用CPU调度、虚拟内存技术,OS能创建一种幻觉,从而使进程认为有自己的处理器和自己的内存。每台虚拟机都与裸机相同,所以每台虚拟机可以运行一台裸机所能够运行的任何类型的操作系统。不同的虚拟机可以运行不同的操作系统。,虚拟机软件,虚拟机软件可以在一台PC机上模拟出多台PC,每台PC机可以单独运行独立的操作系统而不互相干扰,可以实现一台PC机上同时运行“多个”OSVmware和VirtualPCVmware是一款可以在一种操作系统平台上虚拟出其他一些操作系统的虚拟机软件如:一台安装了WindowsXP,然后安装VMVare,利用VMVare模拟出一台PC机,在这台PC机上安装RedHat(或者WIndows2000、Solarisforx86)。它们运行在一台PC上,不互相干扰,3.3操作系统结构-虚拟机,使用虚拟机的好处通过完成保护系统资源,虚拟机提供了一个安全层,每个虚拟机完全与其它虚拟机隔开,从而使系统资源被完全保护虚拟机允许进行系统开发而不必中断正常的系统操作:系统程序员有自己的虚拟机,系统开发可在虚拟机而不是真实的物理机器上进行。虚拟机的应用:解决系统兼容性问题的一种方法例如:在Sun的处理器上运行微软开发的基于IntelCPU的系统:解决方法是在Sun的处理器上创建虚拟Intel机,其Intel指令被转换为本机指令。允许windows程序运行在基于Linux的机器上,该虚拟机可以运行Windows应用程序和Windows操作系统。,3.4现代操作系统的特征,并发(Concurrency)共享(Sharing)虚拟(Virtual)异步性(Asynchronism),并发(concurrency),在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)。程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程间的并发。,并发(Concurrency):多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。并行(Parallel):是指在同一时刻发生。,共享(sharing),多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用。互斥共享(如音频设备):资源分配后到释放前,不能被其他进程所用。同时访问(如可重入代码,磁盘文件),虚拟(virtual),CPU每个用户(进程)的虚处理机存储器每个进程都占有的地址空间(指令数据堆栈)显示设备多窗口或虚拟终端,一个物理实体映射为若干个对应的逻辑实体分时或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。,异步性(asynchronism),进程的运行速度不可预知:分时系统中,多个进程并发执行,时走时停,不可预知每个进程的运行推进快慢判据:无论快慢,应该结果相同通过进程互斥和同步手段来保证难以重现系统在某个时刻的状态(包括重现运行中的错误),也称不确定性,指进程的执行顺序和执行时间的不确定性;,作业,1.10中断有何作用?陷入和中断有何区别?2.6操作文件和设备时,采用同样的系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论