操作系统结构476014189_第1页
操作系统结构476014189_第2页
操作系统结构476014189_第3页
操作系统结构476014189_第4页
操作系统结构476014189_第5页
已阅读5页,还剩32页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第3章 操作系统结构操作系统与用户接口系统调用操作系统结构操作系统特征3.0用户与操作系统的接口1. 命令接口联机接口(交互式):使用系统提供的操作命令,交互地控制程序执行和管理计算机系统。如系统管理、环境设置、权限管理、文件管理等脱机接口:以作业说明书的方式提交给系统(批的方式);执行过程中,用户无法干涉2.程序接口(系统调用)系统调用是操作系统提供给编程人员的唯一接口,编程人员利用系统调用,完成与机器硬件部分相关的工作。用户就可以在程序中调用操作系统所提供的一些子功能。命令解释系统命令解释系统(外壳,shell):是OS的重要组件之一,是用户和OS的接口作用:读入用户的输入或者文件中的命令

2、,并运行它(们);通常转换为一个或者多个系统调用位置:有的是在内核中有的如MS-DOS和Unix,则将它作为一个特殊程序(它易变,因此更灵活),当一个作业开始或者分时系统中用户登陆时,它运行命令解释系统的工作流程首先读入键盘缓冲区中的命令,判别其文件名、扩展名及驱动器名是否正确。 若发现有错,在给出出错信息后返回;若无错,再识别该命令:基于表格的方法:从对应表项中获得该命令处理程序的入口地址,然后把控制权交给该处理程序去执行该命令。表格其中的每一表目都是由命令名及其处理程序的入口地址两项所组成。3.1 系统调用-功能系统调用(SYSTEM CALL) :OS核心中都有一组实现系统功能的过程(子

3、程序),系统调用就是对上述过程的调用。编程人员利用系统调用,向OS提出服务请求,由OS代为完成。每个系统都有上百种系统调用,涉及进程、文件和设备控制等。系统调用运行于核心态;而普通的函数调用由函数库或用户自己提供,运行于用户态。例1: 文件管理:文件读写和文件控制(高级语言);Open文件打开Close文件关闭Read读文件Write写文件Creat文件创建3.1 系统调用-举例例2. 利用系统调用实现硬盘文件内容读写MOVE DX,OFFSETBUFFMOVE CX,BYTEMOVE BX,HANDLEMOVE AH,3FHINT 21H当编程人员给定了系统调用名和参数之后,由一个类似于硬件

4、中断处理的中断处理机构完成陷入处理机构。它是在系统中为控制系统调用服务的机构。当用户使用系统调用时,产生一条相应的指令(陷入指令,trap指令),CPU在执行到该指令时发生相应的中断,发出有关信号给该处理机构,并启动相应的处理程序来完成该系统调用所要求的功能。陷入指令(或称访管指令):由于系统调用引起处理机中断的指令在陷入中断发生时,从用户态系统态。这一转换在发生访管中断时由硬件自动实现。3.1 系统调用实现过程3.1 系统调用实现过程系统调用语句本身是硬件提供的(机器指令),但其所调用的功能是操作系统提供的。每种机器的机器指令集中都有一条系统调用指令。系统调用与返回设置系统调用号和参数。调用

5、号作为指令的一部分(如早期UNIX),或装入到特定寄存器里(如:DOS的 int 21H,AH=调用号。)参数装入到特定寄存器里,或内存区域执行trap(INT)指令:入口的一般性处理,查入口跳转表,跳转到相应功能的过程。保护CPU现场(将PC与PSW入栈),改变CPU执行状态(处理机状态字PSW切换,地址空间表切换)将参数取到核心空间执行操作系统内部代码;执行iret指令:将执行结果装入适当位置(类似于参数带入),恢复CPU现场(以栈顶内容置PSW和PC)。3.1 系统调用实现过程系统调用表/调用号Linux为每个系统调用都进行了编号(最大为NR_syscall),同时在内核中保存了一张系统

6、调用表,该表中保存了系统调用编号和其对应的服务例程地址。第n个表项包含系统调用号为n的服务例程的地址。系统调用时需要把系统调用号一起传入内核。在x86上,这个传递动作是通过在执行int $0 x80前把调用号装入eax寄存器实现。这样系统调用处理程序一旦运行,就可以从eax中得到数据,然后再去系统调用表中寻找相应服务例程了。现在的系统提供了许多库函数,用户编程时也许就是用上层的库函数,而不是直接使用系统调用。Win32 API:如微软提供了一个Win32 API函数集合,它实质上就是一些库函数。在这些函数执行时,往往会再去调用系统的系统调用。该库函数提供了更易用的界面。因此,通过Win32 A

7、PI程序员就能够得到操作系统的服务。如write(,)教材P49:文件复制3.1 系统调用-库函数陷入与中断的比较相同点:它们都是由相同的硬件机构处理的事件, 陷入是指CPU内部事件产生的中断,它包括程序运算引起的各种错误,如地址非法,效验错,页面失效,存取控制错,从用户态到核心态的切换等都是陷阱的例子 中断和陷入不同点:陷入通常由处理机正在执行的现行指令引起,而中断则是由与现行指令无关 的中断源引起;陷入处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不是为了当前进程的中断只能在指令之间被响应,而陷入可以在一条指令执行中被响应陷入处理程序在各自的堆栈上进行,中断处理程序则在系统堆

8、栈环境中进行软中断是通信进程之间用来模拟硬中断的一种信号通信方式,处理机处理的时机决定于接受软中断信号的进程,如果占有处理机,与中断处理相同,否则相应的处理必须等到接收进程得到处理机才能响应。 3.2.1 整体或模块结构 3.2.2 分层结构 3.2.3微内核结构(客户服务器结构) 3.2.4 虚拟机3.2、操作系统结构整体或模块结构整个系统按功能进行设计和模块划分。系统是一个单一的、庞大的的软件系统。由众多服务过程(模块)组成,可以随意调用其他模块中的服务过程评价优点:具有一定灵活性,模块之间转接的灵活性使运行中的高效率;结构紧密,接口简单直接缺点:功能划分和模块接口难保正确和合理;模块之间

9、的依赖关系(功能调用关系)复杂(调用深度和方向)3.2、操作系统结构-(1)整体或模块结构3.2.1 整体或模块结构3.2.2 分层结构按此模型构造的第一个操作系统是E.W.Dijkstra和他的学生在荷兰开发的THE系统(1968年)该系统分为六层:层次功能 5 操作员 4用户程序 3 输入/输出管理 2 操作员-进程通信 1内存和磁盘管理 0 处理器分配和多道程序从资源管理观点出发,将OS划分为若干层次。在某一层次上代码只能调用低层次上的代码,使模块间的调用变为有序性。有利于系统的维护性和可靠性。3.2.2 分层结构3.2.2 分层结构特点分层原则被调用功能在低层:如文件系统管理设备管理设

10、备驱动程序活跃功能在低层:提高运行效率资源管理的公用模块放在最低层:如缓冲区队列、堆栈操作最低层的硬件抽象层:与机器特点紧密相关的软件放在最低层。如Windows NT中的HAL单处理、多处理资源分配策略放在最外层,便于修改或适应不同环境优点:功能明确,调用关系清晰(高层对低层单向依赖),有利于保证设计和实现的正确性低层和高层可分别实现(便于扩充);高层错误不会影响到低层缺点:效率低。层次之间的调用开销。3.2.3微内核结构(客户服务器结构)趋势:从操作系统中去掉尽可能多的东西,而只留一个最小的核心微内核(micro-kernel):只给内核分配一些最基本的功能,运行在内核模式。 (如:内存、

11、进程间通信、基本调度等)。其它的OS服务都是由运行在用户模式下的进程完成,可作为独立的应用进程,称为服务进程。微内核提供客户程序和运行在用户空间的各种服务之间的通信能力。如Mach Unix。而Windows NT采用了混合结构。(分层结构微内核结构)3.2.3微内核结构3.2.3微内核结构优点:良好的扩充性:只需添加支持新功能的服务进程即可。而且所有新服务被增加到用户空间中,不需要修改内核。可靠性好:所有服务器以用户进程的形式运行,而不是运行在核心态,所以它们不直接访问硬件。假如在文件服务器中发生错误,文件服务器可能崩溃,但不会导致整个系统的崩溃便于网络服务,实现分布式处理:微内核可以以相同

12、的方式与本地和远程的服务进程交互(远程过程调用 RPC, Remote Procedure Call)缺点:消息传递比直接调用效率要低一些 (但可以通过提高硬件性能来补偿 )3.2.3 微内核结构3.2.4 虚拟机3.2.4 虚拟机虚拟机:通过某种技术,使物理计算机作为共享资源从而创建虚拟机。利用CPU调度、虚拟内存技术,OS能创建一种幻觉,从而使进程认为有自己的处理器和自己的内存。每台虚拟机都与裸机相同,所以每台虚拟机可以运行一台裸机所能够运行的任何类型的操作系统。不同的虚拟机可以运行不同的操作系统。3.2.4 虚拟机使用虚拟机的好处通过完成保护系统资源,虚拟机提供了一个安全层,每个虚拟机完

13、全与其它虚拟机隔开,从而使系统资源被完全保护虚拟机允许进行系统开发而不必中断正常的系统操作:系统程序员有自己的虚拟机,系统开发可在虚拟机而不是真实的物理机器上进行。虚拟机的应用:作为解决系统兼容性问题的一种方法,虚拟机的应用程序不断增加。例如在Sun的处理器上运行微软开发的基于Intel CPU的系统:解决方法是在Sun的处理器上创建虚拟Intel机,其Intel指令被转换为本机指令。允许windows程序运行在基于Linux的机器上,该虚拟机可以运行Windows应用程序和Windows操作系统。虚拟机结构(续1)虚拟机思想的应用:在奔腾CPU上运行老的MS-DOS程序Intel在奔腾芯片上

14、提供了一个虚拟8086模式,在此模式下,奔腾机就像一台8086计算机一样,包括1M字节内的16位寻址方式虚拟机结构(续2) 虚拟8086模式被Windows、OS/2及其他操作系统用于运行MS-DOS程序。程序在虚拟8086模式下启动,执行一般的指令时它们在裸机上运行。但是,当一个程序试图陷入系统来执行一条系统调用时,或者试图执行受保护的I/O操作时,将发生一条虚拟机监控程序的陷入虚拟机结构(续3)IBM390与Linux:Linux在S/390下有三种实现模式:本地运行模式:即独立运行模式,Linux可以不依赖S/390自己的任何操作系统完整地运行逻辑分区运行模式:Linux在S/390的硬

15、件逻辑分区内运行,S/390最大支持15个独立的逻辑分区 VM/ESA模式:把Linux当成一个虚拟机来运行,VM提供虚拟的CPU、I/O子系统和内存资源用户既可以选择把OS/390与Linux共存,只是简单地共享硬件,也可以将两者设置成客户/服务器模式来应用,非常灵活3.2.5 系统设计与实现设计目标硬件系统类型:批处理、分时、分布式。用户目标:使用人员:使用方便、可靠、快速设计与维护人员:容易设计、实现和维护。系统目标区分机制与策略(细读P65页)机制:决定如何来做策略:决定做什么如定时器结构。策略可能会随地点或时间而概念,系统更需要通用机制。系统实现传统OS是用汇编语言写的,如MSDOS

16、使用Intel8088 汇编语言写的现在的OS都是用高级语言如C或者C来写的:使代码编写更快,容易理解和调试,OS更容易移植。但可能降低速度,提高存储要求。对于关键子程序,可用汇编语言编写。3.3 现代操作系统的特征并发(concurrency)共享(sharing)虚拟(virtual)异步性(asynchronism)并发(concurrency)在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)。程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程间的并发。并发指:多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。并行(parallel)是指在同一时刻发生。共享(sharing)互斥共享(如音频设备):资源分配后到释放前,不能被其他进程所用。同时访问(如可重入代码,磁盘文件)资源分配难以达到最优化多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用。虚拟(virtual)CPU每个用户(进程)的虚处理机存储器每个进程都占有的地址空间(指令数据堆栈)显示设备多窗口或虚拟

温馨提示

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

评论

0/150

提交评论