操作系统课件第四版第九章_第1页
操作系统课件第四版第九章_第2页
操作系统课件第四版第九章_第3页
操作系统课件第四版第九章_第4页
操作系统课件第四版第九章_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、9.1 9.1 用户接口用户接口 9.2 Shell9.2 Shell命令语言命令语言 9.3 9.3 联机命令接口的实现联机命令接口的实现9.4 9.4 系统调用的概念和类型系统调用的概念和类型9.5 UNIX9.5 UNIX系统调用系统调用9.6 9.6 系统调用的实现系统调用的实现 操作系统接口操作系统接口指的是计算机系统与用户之间进行交指的是计算机系统与用户之间进行交互作用和通信的通路。对绝大多数用户而言,一个计算互作用和通信的通路。对绝大多数用户而言,一个计算机系统的可接受性在很大程度上取决于这个接口。一般,机系统的可接受性在很大程度上取决于这个接口。一般,操作系统都向用户提供两类接

2、口:即操作系统都向用户提供两类接口:即用户接口用户接口和和程序接程序接口口, ,在在InternetInternet广为流行的今天,以出现了一种面向网广为流行的今天,以出现了一种面向网络的络的网络用户接口网络用户接口。 9.1 9.1 用户接口用户接口 一般地,用户接口又可进一步分成三种类型:一般地,用户接口又可进一步分成三种类型:* * 字符显示式联机用户接口字符显示式联机用户接口* * 图形化联机用户接口图形化联机用户接口* * 脱机用户接口脱机用户接口一、字符显示式联机用户接口一、字符显示式联机用户接口 不同的操作系统的联机命令接口有所不同,不同的不同的操作系统的联机命令接口有所不同,不

3、同的用法和形式构成了不同的用户界面,可分成以下两种:用法和形式构成了不同的用户界面,可分成以下两种:(1)字符显示式联机用户接口)字符显示式联机用户接口(2)图形化联机用户接口)图形化联机用户接口 字符显示式联机用户接口字符显示式联机用户接口也叫也叫联机命令接口联机命令接口或交互或交互式用户接口,它用于联机作业控制,它是由一组键盘操式用户接口,它用于联机作业控制,它是由一组键盘操作命令组成。作命令组成。 字符显示式联机用户接口中,用户主要通过命令语字符显示式联机用户接口中,用户主要通过命令语言来实现对作业的控制和取得操作系统的服务。言来实现对作业的控制和取得操作系统的服务。 一组联机命令一组联

4、机命令 联机命令接口联机命令接口 终端处理程序终端处理程序 显示在终端屏幕显示在终端屏幕 命令解释程序命令解释程序 执行相应命令的执行相应命令的 处理程序处理程序二、图形化联机用户接口二、图形化联机用户接口命令语言一般分为两种方式:命令语言一般分为两种方式:(1)命令行方式)命令行方式(2)批命令方式)批命令方式三、联机命令的类型三、联机命令的类型1.1.系统访问类系统访问类 即注册命令即注册命令LoginLogin,用户在每次开始使用某终端时,用户在每次开始使用某终端时,都须使用该命令,使系统能识别该用户。都须使用该命令,使系统能识别该用户。2.2.文件操作命令文件操作命令(1 1)显示文件

5、命令)显示文件命令type type (2 2)拷贝文件命令)拷贝文件命令copycopy(3 3)文件比较命令)文件比较命令comp comp (4 4)删除文件命令)删除文件命令eraseerase(5 5)重新命名命令)重新命名命令RenameRename3.3.目录操作命令目录操作命令(1)建立子目录命令)建立子目录命令mkdir(2)显示目录命令)显示目录命令dir(3)删除子目录命令)删除子目录命令rmdir (4)显示目录结构命令)显示目录结构命令tree(5)改变当前目录命令)改变当前目录命令chdir4.4.其它命令其它命令(1)输入输出重定向命令)输入输出重定向命令 以输出

6、重定向以输出重定向“”,后接文件名或设备名,表示,后接文件名或设备名,表示该命令的输出改向,送到指定文件或设备上。在输入重该命令的输出改向,送到指定文件或设备上。在输入重定向定向“”左边设定参数,表示不再是从键盘而是从指左边设定参数,表示不再是从键盘而是从指定的文件或设备上,取得输入参数。定的文件或设备上,取得输入参数。(2 2)管道连接)管道连接 由两个(含两条)以上的命令形成一条管道,用由两个(含两条)以上的命令形成一条管道,用“”作为管道符号,把前一条命令的输出信息作为作为管道符号,把前一条命令的输出信息作为后一条命令的输入信息。后一条命令的输入信息。(3 3)过滤命令)过滤命令 用于读

7、取指定文件或标准输入,从中找出由参数用于读取指定文件或标准输入,从中找出由参数指定的模式,然后把所有包含该模式的行都打印出来。指定的模式,然后把所有包含该模式的行都打印出来。(4 4)批命令)批命令 利用一些键盘命令构成一个程序,一次建立供多利用一些键盘命令构成一个程序,一次建立供多次使用。次使用。9.2 Shell9.2 Shell命令语言命令语言 Linux的的Shell是作为操作系统的最外层,也称为是作为操作系统的最外层,也称为外壳外壳。 Shell可以作为命令语言,也是一种程序设计语言,可以作为命令语言,也是一种程序设计语言,还包括了还包括了Shell命令解释程序。命令解释程序。一、简

8、单命令简介一、简单命令简介 一条简单命令实际上就是一个能完成某种功能的目一条简单命令实际上就是一个能完成某种功能的目标程序的名字。标程序的名字。二、简单命令的类型二、简单命令的类型1.1.进入与退出系统进入与退出系统 进入:进入:Login 退出:退出:Control-D2.2.文件操作命令文件操作命令(1)显示文件内容命令)显示文件内容命令cat(2)复制文件副本的命令)复制文件副本的命令cp(3)对已有文件改名的命令)对已有文件改名的命令mv(4)撤消文件的命令)撤消文件的命令rm(5)确定文件类型的命令)确定文件类型的命令file3.3.目录操作命令目录操作命令(1)建立目录的命令)建立

9、目录的命令mkdir(2)撤消目录的命令)撤消目录的命令rmdir(3)改变工作目录的命令)改变工作目录的命令cd(4)改变对文件的存取方式的命令)改变对文件的存取方式的命令chmod4.4.系统询问命令系统询问命令(1)访问当前日期和时间命令)访问当前日期和时间命令date(2)询问系统当前用户的命令)询问系统当前用户的命令who(3)显示当前目录名的命令)显示当前目录名的命令pwd三、重定向与管道命令三、重定向与管道命令1.1.重定向命令重定向命令 用重定向符用重定向符“”和和“”分别表示输入转向和输出分别表示输入转向和输出转向。转向。2.2.管道命令管道命令 用符号用符号“”来连接两条命

10、令,使其前一条命令的来连接两条命令,使其前一条命令的输出作为后一条命令的输入。输出作为后一条命令的输入。 在用管道线所连接的命令之间,实现单向、同步运在用管道线所连接的命令之间,实现单向、同步运行。行。四、通信命令四、通信命令1.1.信箱通信命令信箱通信命令mailmail 作为在作为在UNIX的各用户之间,进行非交互式通信的的各用户之间,进行非交互式通信的工具。工具。 Mail命令可用于发送信件,也可用于读取信件,命令可用于发送信件,也可用于读取信件,命令后可使用选项。命令后可使用选项。2.2.对话通信命令对话通信命令writewrite 用此命令可以使用户与当前在系统中的其他用户直用此命令

11、可以使用户与当前在系统中的其他用户直接进行联机通信。接进行联机通信。3.3.允许或拒绝接收消息的允许或拒绝接收消息的mesgmesg命令命令五、后台命令五、后台命令 对所有在后台运行的命令的标准输入,都必须加以对所有在后台运行的命令的标准输入,都必须加以重定向,从而使从终端键入的所有字符,都被送到重定向,从而使从终端键入的所有字符,都被送到Shell进程。进程。9.3 9.3 联机命令接口的实现联机命令接口的实现一、键盘终端处理程序一、键盘终端处理程序具有以下功能:具有以下功能:1.1.字符接收功能字符接收功能 有两种实现方式:有两种实现方式: 面向字符方式面向字符方式 面向行方式面向行方式2

12、.2.字符缓冲功能字符缓冲功能 可采用两种方式实现可采用两种方式实现 专用缓冲方式专用缓冲方式 公用缓冲方式公用缓冲方式图图 9-1 9-1 两种缓冲方式两种缓冲方式 终端专用缓冲区主机终端(a) 专用缓冲区方式终端主机(b) 公用缓冲池方式公用缓冲池3.3.回送显示回送显示 多用软件实现多用软件实现4.4.屏幕编辑屏幕编辑 对从键盘打入的数据(字符)进行修改。对从键盘打入的数据(字符)进行修改。5.5.特殊字符处理特殊字符处理(1)中断字符)中断字符 (2)停止上卷字符)停止上卷字符(3)恢复上卷字符)恢复上卷字符二、二、MS-DOSMS-DOS命令解释程序命令解释程序 在所有的操作系统中,

13、都是把命令解释程序放在在所有的操作系统中,都是把命令解释程序放在OS的最高层,以便能与用户交互。的最高层,以便能与用户交互。1.1.命令解释程序的作用命令解释程序的作用 在屏幕上给出提示符,请用户键入命令,然后读入在屏幕上给出提示符,请用户键入命令,然后读入该命令,识别命令,再转到相应命令处理程序的入口地该命令,识别命令,再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行。址,把控制权交给该处理程序去执行。2.2.命令解释程序的组成命令解释程序的组成(1)常驻部分)常驻部分(2)初始化部分)初始化部分(3)暂存部分)暂存部分3.3.命令解释程序的工作流程命令解释程序的工作流程输入命

14、令行输入命令行从外存调入从外存调入外部命令执行外部命令执行显示提示符显示提示符命令合法否?命令合法否?是内部命令?是内部命令?二、二、ShellShell解释程序解释程序1. Shell1. Shell命令的特点命令的特点2. 2. 二叉树结构的命令行树二叉树结构的命令行树3. Linux3. Linux命令解释程序的工作流程命令解释程序的工作流程9.4 9.4 系统调用的概念和类型系统调用的概念和类型 程序接口程序接口是是OSOS为正要运行的程序提供服务并与之通为正要运行的程序提供服务并与之通信的一个设施,它供所有的用户程序使用,也供信的一个设施,它供所有的用户程序使用,也供OSOS的的其它

15、组成部分,特别是命令处理程序使用。这个程序接其它组成部分,特别是命令处理程序使用。这个程序接口主要由系统调用组成。口主要由系统调用组成。一、系统调用的基本概念一、系统调用的基本概念 系统调用系统调用是用户在程序一级请求操作系统为之服是用户在程序一级请求操作系统为之服务的一种手段,当外层程序需要操作系统为之服务时,务的一种手段,当外层程序需要操作系统为之服务时,可以在程序中安排一条类似机器指令形式的代码,这一可以在程序中安排一条类似机器指令形式的代码,这一代码的执行将导致一次对操作系统程序的代码的执行将导致一次对操作系统程序的“调用调用”,它,它调用的是调用的是OSOS核心中设置的一组用于实现各

16、种系统功能核心中设置的一组用于实现各种系统功能的子程序功能模块。的子程序功能模块。1.1.系统态和用户态系统态和用户态 在计算机系统中,通常运行着两类程序:系统程在计算机系统中,通常运行着两类程序:系统程序和应用程序;同时计算机也设置了两种状态:系统序和应用程序;同时计算机也设置了两种状态:系统态和用户态。操作系统在系统态运行,而应用程序只态和用户态。操作系统在系统态运行,而应用程序只能在用户态运行。在实际运行过程中,处理机会在系能在用户态运行。在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代操作系统将统态和用户态间切换。相应地,现代操作系统将CPUCPU的的指令分为特权指令和非

17、特权指令两类。指令分为特权指令和非特权指令两类。1) 1) 特权指令特权指令 就是在系统态时运行的指令,是关系到系统全局就是在系统态时运行的指令,是关系到系统全局的指令。特权指令只允许操作系统使用,不允许应用的指令。特权指令只允许操作系统使用,不允许应用程序使用。程序使用。2) 2) 非特权指令非特权指令 是在用户态时运行的指令。一般应用程序所使用是在用户态时运行的指令。一般应用程序所使用的都是非特权指令,它只能完成一般性的操作和任务。的都是非特权指令,它只能完成一般性的操作和任务。2.2.系统调用系统调用 用户程序运行在用户态下,当它需要操作系统提供用户程序运行在用户态下,当它需要操作系统提

18、供服务时,它必须通过软件中断进入核心,这时服务时,它必须通过软件中断进入核心,这时CPUCPU的状的状态从用户态转换到系统态,然后调用系统过程(子模态从用户态转换到系统态,然后调用系统过程(子模块)。执行完成后,系统又将块)。执行完成后,系统又将CPUCPU状态从系统态转换到状态从系统态转换到用户态,再继续执行应用程序。用户态,再继续执行应用程序。 所以,系统调用在本质上是应用程序请求所以,系统调用在本质上是应用程序请求OSOS内核完内核完成某功能时的一种过程调用,但它与一般的过程调用有成某功能时的一种过程调用,但它与一般的过程调用有下述明显差别:下述明显差别:(1 1)运行在不同的系统状态)

19、运行在不同的系统状态(2 2)状态的转换通过软中断进入)状态的转换通过软中断进入(3 3)返回问题)返回问题(4 4)嵌套调用)嵌套调用图图 9-6 9-6 系统功能的调用系统功能的调用 系统调用命令调用返回系统功能用户程序(a) 系统调用与返回系统调用命令调用系统功能系统调用命令返回系统子功能(b) 程序之间的嵌套调用3.3.中断机制中断机制 系统调用是通过中断机制实现的,并且一个操作系统调用是通过中断机制实现的,并且一个操作系统的所有系统调用都通过同一个中断入口来实现。系统的所有系统调用都通过同一个中断入口来实现。 对于拥有保护机制的操作系统来说,中断机制本对于拥有保护机制的操作系统来说,

20、中断机制本身也是受保护的。身也是受保护的。二、系统调用的类型二、系统调用的类型1.1.进程控制类系统调用进程控制类系统调用(1 1)创建和终止进程的系统调用)创建和终止进程的系统调用(2 2)获得和设置进程属性的系统调用)获得和设置进程属性的系统调用(3 3)等待某事件出现的系统调用)等待某事件出现的系统调用2.2.文件操纵类系统调用文件操纵类系统调用(1 1)创建和删除文件创建和删除文件 (2 2)打开和关闭文件打开和关闭文件(3 3)读和写文件读和写文件3.3.进程通信类系统调用进程通信类系统调用(1 1)消息传递方式消息传递方式 在通信前,必须先打开一个连接,然后,在源进程在通信前,必须

21、先打开一个连接,然后,在源进程和目标进程之间便可开始通信。和目标进程之间便可开始通信。(2 2)共享存储区方式共享存储区方式 利用相关的系统调用,建立一个共享存储区,并将利用相关的系统调用,建立一个共享存储区,并将该存储区连接到进程自身的虚地址空间,然后实现相互该存储区连接到进程自身的虚地址空间,然后实现相互通信。通信。三、三、POSIXPOSIX标准标准 目前许多操作系统都提供了上面所介绍的各种类目前许多操作系统都提供了上面所介绍的各种类型的系统调用,但在实现的细节和形式方面却相差很型的系统调用,但在实现的细节和形式方面却相差很大。为此,国际标准化组织大。为此,国际标准化组织ISOISO给出

22、有关系统调用的国给出有关系统调用的国际标准际标准POSIX1003.1POSIX1003.1,也称为,也称为“基于基于UNIXUNIX的可移植操作的可移植操作系统接口系统接口”。 POSIXPOSIX定义了标准应用程序接口(定义了标准应用程序接口(APIAPI),用于保),用于保证编制的应用程序可以在源代码一级上在多种操作系证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。统上移植运行。 POSIXPOSIX定义了一组过程,这组过程是构造系统调用定义了一组过程,这组过程是构造系统调用所必须的。通过调用这些过程所提供的服务,确定了所必须的。通过调用这些过程所提供的服务,确定了一系列系统

23、调用的功能。一系列系统调用的功能。9.5 UNIX9.5 UNIX系统调用系统调用一、进程控制一、进程控制 1. 1.创建进程创建进程(fork)(fork)和终止(和终止(exitexit) 2. 2.改变进程映像(改变进程映像(execexec)和等待)和等待 (wait) (wait) 3. 3.其它进程调用其它进程调用 (1 1)获得进程)获得进程IDID(2 2)获得用户)获得用户IDID(3 3)进程暂停()进程暂停(pausepause)二、文件操纵二、文件操纵1.1.文件创建文件创建(creat)(creat)和删除和删除 2.2.文件打开文件打开(open)(open)和关闭

24、和关闭(close) (close) 3.3.文件读文件读(read)(read)和写和写(write)(write)4.4.建立与文件的连接建立与文件的连接(link)(link)和去连接和去连接(unlink)(unlink)三三、进程通信和信息保护、进程通信和信息保护 UNIX系统中提供了一个用于进程间通信的软件包,系统中提供了一个用于进程间通信的软件包,简称简称IPC,由消息机制、共享存储器机制和信号量机制,由消息机制、共享存储器机制和信号量机制三部分组成。三部分组成。用于信息维护的系统调用用于信息维护的系统调用: (1)设置和获得时间)设置和获得时间(2)获得进程和子进程时间()获得

25、进程和子进程时间(times)(3)设置文件访问和修改时间)设置文件访问和修改时间(utime)(4)获得当前)获得当前UNIX系统的名称(系统的名称(uname)9.6 9.6 系统调用的实现系统调用的实现 实现系统调用,控制是由原来的用户态转换为系统实现系统调用,控制是由原来的用户态转换为系统态,需要借助于中断和陷入机制来完成,在该机制中包态,需要借助于中断和陷入机制来完成,在该机制中包括括中断和陷入硬件机构中断和陷入硬件机构及及中断与陷入处理程序中断与陷入处理程序两部分。两部分。一、系统调用的实现方法一、系统调用的实现方法1.1.系统调用号和参数的设置系统调用号和参数的设置 在一个系统中

26、设置了许多条系统调用,并赋予每在一个系统中设置了许多条系统调用,并赋予每条系统调用一个唯一的系统调用号,不同的系统设置系条系统调用一个唯一的系统调用号,不同的系统设置系统调用号的方法不同。统调用号的方法不同。 每一条系统调用都含有若干个参数,设置参数也有每一条系统调用都含有若干个参数,设置参数也有几种方法:几种方法:(1)陷入命令自带方式)陷入命令自带方式 自带的只能是少量的、有限的参数自带的只能是少量的、有限的参数(2)直接将参数送入相应的寄存器中)直接将参数送入相应的寄存器中 系统调用通过系统内部的寄存器系统调用通过系统内部的寄存器R0、R1来传递参来传递参数,数, R0、R1既可保存输入

27、参数又可存放返回值。既可保存输入参数又可存放返回值。(3)参数表方式)参数表方式n(a)(a)直接参数方式直接参数方式 (b)(b)间接参数方式间接参数方式trap XX参数参数1参数参数2返回处返回处trap 00指针指针返回处返回处trap XX参数参数1参数参数2系统调用的参数形式2.2.系统调用的处理步骤系统调用的处理步骤k 将处理机状态由用户态转为系统态,保护中断环境,将处理机状态由用户态转为系统态,保护中断环境,传送参数到指定地方保存起来。传送参数到指定地方保存起来。k 分析系统调用类型,转入相应的分析系统调用类型,转入相应的系统调用处理子程系统调用处理子程序序。k 在系统调用处理

28、子程序执行完后,应恢复被中断的在系统调用处理子程序执行完后,应恢复被中断的或设置新进程的或设置新进程的CPU现场,然后返回被中断进程或新进现场,然后返回被中断进程或新进程,继续往下执行。程,继续往下执行。3.3.系统调用处理子程序的处理过程系统调用处理子程序的处理过程 系统调用的功能主要是由系统调用子程序来完成。系统调用的功能主要是由系统调用子程序来完成。对于不同的系统调用,其处理程序将执行不同的功能。对于不同的系统调用,其处理程序将执行不同的功能。An系统调用入口表系统调用入口表A0A1AiAnA0A1Ai(1)保护)保护处理现场处理现场(2)取系)取系统调用号并统调用号并寻找子程序寻找子程

29、序入口入口(3)返回)返回 . . .Systemcall . . .Sub0Sub1SubiSubn陷入处理机构陷入处理机构系统调用处理系统调用处理子程序子程序用户程序用户程序系统调用的处理过程系统调用的处理过程An1.CPU1.CPU环境保护环境保护(1)提供系统调用所需的参数表,并将该参数表的地)提供系统调用所需的参数表,并将该参数表的地址送入址送入R0寄存器。寄存器。 用户程序处在用户态用户程序处在用户态(2)执行系统调用命令)执行系统调用命令CHMK 处理机由用户态转处理机由用户态转为核心态为核心态(3)硬件自动保护中断现场)硬件自动保护中断现场 (4)从中断和陷入向量表中取出)从中断和陷入向量表中取出trap.S的入口地址的入口地址(5)转入中断和陷入总控程序)转入中断和陷入总控程序trap.S中执行中执行(6)继续保护现场)继续保护现场二、二、UNIXUNIX系统调用的实现系统调用的实现 在在UNIX系统系统V的内核程序中,有一个的内核程序中,有一个trap.S文件,文件,它是中断和陷入总控程序,每当系统发生了中断和陷入

温馨提示

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

评论

0/150

提交评论