您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 操作系统课件第四版第九章
第九章操作系统接口9.1用户接口9.2Shell命令语言9.3联机命令接口的实现9.4系统调用的概念和类型9.5UNIX系统调用9.6系统调用的实现第九章操作系统接口操作系统接口指的是计算机系统与用户之间进行交互作用和通信的通路。对绝大多数用户而言,一个计算机系统的可接受性在很大程度上取决于这个接口。一般,操作系统都向用户提供两类接口:即用户接口和程序接口,在Internet广为流行的今天,以出现了一种面向网络的网络用户接口。9.1用户接口一般地,用户接口又可进一步分成三种类型:*字符显示式联机用户接口*图形化联机用户接口*脱机用户接口一、字符显示式联机用户接口不同的操作系统的联机命令接口有所不同,不同的用法和形式构成了不同的用户界面,可分成以下两种:(1)字符显示式联机用户接口(2)图形化联机用户接口字符显示式联机用户接口也叫联机命令接口或交互式用户接口,它用于联机作业控制,它是由一组键盘操作命令组成。字符显示式联机用户接口中,用户主要通过命令语言来实现对作业的控制和取得操作系统的服务。一组联机命令联机命令接口终端处理程序显示在终端屏幕命令解释程序执行相应命令的处理程序二、图形化联机用户接口命令语言一般分为两种方式:(1)命令行方式(2)批命令方式三、联机命令的类型1.系统访问类即注册命令Login,用户在每次开始使用某终端时,都须使用该命令,使系统能识别该用户。2.文件操作命令(1)显示文件命令type(2)拷贝文件命令copy(3)文件比较命令comp(4)删除文件命令erase(5)重新命名命令Rename3.目录操作命令(1)建立子目录命令mkdir(2)显示目录命令dir(3)删除子目录命令rmdir(4)显示目录结构命令tree(5)改变当前目录命令chdir4.其它命令(1)输入输出重定向命令以输出重定向“>”,后接文件名或设备名,表示该命令的输出改向,送到指定文件或设备上。在输入重定向“<”左边设定参数,表示不再是从键盘而是从指定的文件或设备上,取得输入参数。(2)管道连接由两个(含两条)以上的命令形成一条管道,用“│”作为管道符号,把前一条命令的输出信息作为后一条命令的输入信息。(3)过滤命令用于读取指定文件或标准输入,从中找出由参数指定的模式,然后把所有包含该模式的行都打印出来。(4)批命令利用一些键盘命令构成一个程序,一次建立供多次使用。9.2Shell命令语言Linux的Shell是作为操作系统的最外层,也称为外壳。Shell可以作为命令语言,也是一种程序设计语言,还包括了Shell命令解释程序。一、简单命令简介一条简单命令实际上就是一个能完成某种功能的目标程序的名字。二、简单命令的类型1.进入与退出系统进入:Login退出:Control-D2.文件操作命令(1)显示文件内容命令cat(2)复制文件副本的命令cp(3)对已有文件改名的命令mv(4)撤消文件的命令rm(5)确定文件类型的命令file3.目录操作命令(1)建立目录的命令mkdir(2)撤消目录的命令rmdir(3)改变工作目录的命令cd(4)改变对文件的存取方式的命令chmod4.系统询问命令(1)访问当前日期和时间命令date(2)询问系统当前用户的命令who(3)显示当前目录名的命令pwd三、重定向与管道命令1.重定向命令用重定向符“<”和“>”分别表示输入转向和输出转向。2.管道命令用符号“│”来连接两条命令,使其前一条命令的输出作为后一条命令的输入。在用管道线所连接的命令之间,实现单向、同步运行。四、通信命令1.信箱通信命令mail作为在UNIX的各用户之间,进行非交互式通信的工具。Mail命令可用于发送信件,也可用于读取信件,命令后可使用选项。2.对话通信命令write用此命令可以使用户与当前在系统中的其他用户直接进行联机通信。3.允许或拒绝接收消息的mesg命令五、后台命令对所有在后台运行的命令的标准输入,都必须加以重定向,从而使从终端键入的所有字符,都被送到Shell进程。9.3联机命令接口的实现一、键盘终端处理程序具有以下功能:1.字符接收功能有两种实现方式:面向字符方式面向行方式2.字符缓冲功能可采用两种方式实现专用缓冲方式公用缓冲方式图9-1两种缓冲方式终端专用缓冲区主机终端(a)专用缓冲区方式终端主机(b)公用缓冲池方式…公用缓冲池3.回送显示多用软件实现4.屏幕编辑对从键盘打入的数据(字符)进行修改。5.特殊字符处理(1)中断字符(2)停止上卷字符(3)恢复上卷字符二、MS-DOS命令解释程序在所有的操作系统中,都是把命令解释程序放在OS的最高层,以便能与用户交互。1.命令解释程序的作用在屏幕上给出提示符,请用户键入命令,然后读入该命令,识别命令,再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行。2.命令解释程序的组成(1)常驻部分(2)初始化部分(3)暂存部分3.命令解释程序的工作流程输入命令行从外存调入外部命令执行显示提示符命令合法否?是内部命令?二、Shell解释程序1.Shell命令的特点2.二叉树结构的命令行树3.Linux命令解释程序的工作流程9.4系统调用的概念和类型程序接口是OS为正要运行的程序提供服务并与之通信的一个设施,它供所有的用户程序使用,也供OS的其它组成部分,特别是命令处理程序使用。这个程序接口主要由系统调用组成。一、系统调用的基本概念系统调用是用户在程序一级请求操作系统为之服务的一种手段,当外层程序需要操作系统为之服务时,可以在程序中安排一条类似机器指令形式的代码,这一代码的执行将导致一次对操作系统程序的“调用”,它调用的是OS核心中设置的一组用于实现各种系统功能的子程序功能模块。1.系统态和用户态在计算机系统中,通常运行着两类程序:系统程序和应用程序;同时计算机也设置了两种状态:系统态和用户态。操作系统在系统态运行,而应用程序只能在用户态运行。在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代操作系统将CPU的指令分为特权指令和非特权指令两类。1)特权指令就是在系统态时运行的指令,是关系到系统全局的指令。特权指令只允许操作系统使用,不允许应用程序使用。2)非特权指令是在用户态时运行的指令。一般应用程序所使用的都是非特权指令,它只能完成一般性的操作和任务。2.系统调用用户程序运行在用户态下,当它需要操作系统提供服务时,它必须通过软件中断进入核心,这时CPU的状态从用户态转换到系统态,然后调用系统过程(子模块)。执行完成后,系统又将CPU状态从系统态转换到用户态,再继续执行应用程序。所以,系统调用在本质上是应用程序请求OS内核完成某功能时的一种过程调用,但它与一般的过程调用有下述明显差别:(1)运行在不同的系统状态(2)状态的转换通过软中断进入(3)返回问题(4)嵌套调用图9-6系统功能的调用系统调用命令调用返回系统功能用户程序(a)系统调用与返回系统调用命令调用系统功能系统调用命令返回系统子功能(b)程序之间的嵌套调用3.中断机制系统调用是通过中断机制实现的,并且一个操作系统的所有系统调用都通过同一个中断入口来实现。对于拥有保护机制的操作系统来说,中断机制本身也是受保护的。二、系统调用的类型1.进程控制类系统调用(1)创建和终止进程的系统调用(2)获得和设置进程属性的系统调用(3)等待某事件出现的系统调用2.文件操纵类系统调用(1)创建和删除文件(2)打开和关闭文件(3)读和写文件3.进程通信类系统调用(1)消息传递方式在通信前,必须先打开一个连接,然后,在源进程和目标进程之间便可开始通信。(2)共享存储区方式利用相关的系统调用,建立一个共享存储区,并将该存储区连接到进程自身的虚地址空间,然后实现相互通信。三、POSIX标准目前许多操作系统都提供了上面所介绍的各种类型的系统调用,但在实现的细节和形式方面却相差很大。为此,国际标准化组织ISO给出有关系统调用的国际标准POSIX1003.1,也称为“基于UNIX的可移植操作系统接口”。POSIX定义了标准应用程序接口(API),用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。POSIX定义了一组过程,这组过程是构造系统调用所必须的。通过调用这些过程所提供的服务,确定了一系列系统调用的功能。9.5UNIX系统调用一、进程控制1.创建进程(fork)和终止(exit)2.改变进程映像(exec)和等待(wait)3.其它进程调用(1)获得进程ID(2)获得用户ID(3)进程暂停(pause)二、文件操纵1.文件创建(creat)和删除2.文件打开(open)和关闭(close)3.文件读(read)和写(write)4.建立与文件的连接(link)和去连接(unlink)三、进程通信和信息保护UNIX系统中提供了一个用于进程间通信的软件包,简称IPC,由消息机制、共享存储器机制和信号量机制三部分组成。用于信息维护的系统调用:(1)设置和获得时间(2)获得进程和子进程时间(times)(3)设置文件访问和修改时间(utime)(4)获得当前UNIX系统的名称(uname)9.6系统调用的实现实现系统调用,控制是由原来的用户态转换为系统态,需要借助于中断和陷入机制来完成,在该机制中包括中断和陷入硬件机构及中断与陷入处理程序两部分。一、系统调用的实现方法1.系统调用号和参数的设置在一个系统中设置了许多条系统调用,并赋予每条系统调用一个唯一的系统调用号,不同的系统设置系统调用号的方法不同。每一条系统调用都含有若干个参数,设置参数也有几种方法:(1)陷入命令自带方式自带的只能是少量的、有限的参数(2)直接将参数送入相应的寄存器中系统调用通过系统内部的寄存器R0、R1来传递参数,R0、R1既可保存输入参数又可存放返回值。(3)参数表方式(a)直接参数方式(b)间接参数方式trapXX参数1参数2…………返回处trap00指针…………返回处trapXX参数1参数2…………系统调用的参数形式2.系统调用的处理步骤将处理机状态由用户态转为系统态,保护中断环境,传送参数到指定地方保存起来。分析系统调用类型,转入相应的系统调用处理子程序。在系统调用处理子程序执行完后,应恢复被中断的或设置新进程的CPU现场,然后返回被中断进程或新进程,继续往下执行。3.系统调用处理子程序的处理过程系统调用的功能主要是由系统调用子程序来完成。对于不同的系统调用,其处理程序将执行不同的功能。An系统调用入口表A0A1AiAnA0A1Ai(1)保护处理现场(2)取系统调用号并寻找子程序入口(3)返回...Systemcall...Sub0Sub1SubiSubn陷入处理机构系统调用处理子程序用户程序系统调用的处理过程An1.CPU环境保护(1)提供系统调用所需的参数表,并将该参数表的地址送入R0寄存器。用户程序处在用户态(2)执行系统调用命令CHMK处理机由用户态转为核心态(3)硬件自动保护中断现场(4)从中断和陷入向量表中取出trap.S的入口地址(5)转入中断和陷入总控程序trap.S中执行(6)继续保护现场二、UNIX系统调用的实现在UNIX系统V的内核程序中,有一个trap.S文件,它是中断和陷入总控程序,每当系统发生了中断和陷入情况,通常都是先进入trap.S程序。2.AP和FP指针为了实现系统调用的嵌套使用,在系统中还设置了两个指针AP和FP。每当出现新的系统调用时,都须将AP和FP也压入栈中。AP:系统调用参数表指针,用于指示正在执行的系统调用所需参数表的地址。FP:栈帧指针,用于指示本次系统调用需要保存而被压入用户核心栈的所有数据项。当trap.S完成中断进程的CPU环境保护和AP、FP指针的保存后,将调用公共处理程序trap.C,以继续处理本次的系统调用所要完成的公共处理部分。3.确定系统调用号4.参数传送5.利用系统调用定义表转入相应的处理程序6.系统调用返回前的公共处理UNIX系统调用的实现过程CHMK硬件保护现场从中断陷入向量表中取出trap.S,转入中断和陷入总控程序中执行进一步保存现场调用
本文标题:操作系统课件第四版第九章
链接地址:https://www.777doc.com/doc-3402655 .html