文档详情

操作系统接口

博****1
实名认证
店铺
PPT
372.50KB
约160页
文档ID:585167012
操作系统接口_第1页
1/160

第七章 操作系统接口 教学目的:教学目的: 操作系统向用户提供操作系统向用户提供““用户与操作系统的接用户与操作系统的接口口””,该接口支持用户与操作系统之间进行交互,,该接口支持用户与操作系统之间进行交互,该接口分为命令接口和程序接口两类掌握用户该接口分为命令接口和程序接口两类掌握用户与操作系统接口可使用户更全面掌握操作系统的与操作系统接口可使用户更全面掌握操作系统的使用教学要求:教学要求:•熟悉熟悉用户与操作系统的两类接口:命令接口和程用户与操作系统的两类接口:命令接口和程序接口了解序接口了解MS-DOSMS-DOS、、WINDOWSWINDOWS和和UNIXUNIX的接口•了解了解操作系统的原理和接口操作系统的原理和接口 7.0 7.0 用户与操作系统的接口用户与操作系统的接口((1 1))用户接口用户接口 用户接口是计算机系统与用户之间进行交互作用用户接口是计算机系统与用户之间进行交互作用和通信的通路对绝大多数用户而言,一个计算机和通信的通路对绝大多数用户而言,一个计算机系统的可接受性在很大程度上取决于这个用户接口系统的可接受性在很大程度上取决于这个用户接口。

用户接口分为命令接口和程序接口两类用户接口分为命令接口和程序接口两类 1 1命令接口命令接口 命令接口是籍助于在用户和操作系统之间提供高命令接口是籍助于在用户和操作系统之间提供高级通信来控制一组程序的处理这个接口之所以称级通信来控制一组程序的处理这个接口之所以称命令接口,是因为用户可以通过打入或在作业中发命令接口,是因为用户可以通过打入或在作业中发出一系列命令,告诉出一系列命令,告诉OSOS执行那些功能这一类接口执行那些功能这一类接口是用于作业控制的,其中又分联机用户接口和脱机是用于作业控制的,其中又分联机用户接口和脱机用户接口用户接口 联机用户接口:联机用户接口也叫交互式用户接口,联机用户接口:联机用户接口也叫交互式用户接口,它用于联机作业控制,它是由一组键盘操作命令组它用于联机作业控制,它是由一组键盘操作命令组成交互式用户接口交互方式又分成二类,一类是成交互式用户接口交互方式又分成二类,一类是字符方式,终端命令,提供面向流的通信,如字符方式,终端命令,提供面向流的通信,如MS-MS-DOSDOS另一类是图形方式,提供另一类是图形方式,提供““对话框对话框””、、““图图标标””、、““菜单菜单””等图形用户接口(等图形用户接口(GUIGUI)如)如WindowsWindows。

脱机用户接口也称批处理用户接口,它用于脱机作脱机用户接口也称批处理用户接口,它用于脱机作业控制脱机作业控制又分为作业控制卡和作业说业控制脱机作业控制又分为作业控制卡和作业说明书两种方式明书两种方式 •作业控制卡方式是指用户将其操作意图,用控制语作业控制卡方式是指用户将其操作意图,用控制语言提供的有关作业控制命令穿孔在若干卡片上,以言提供的有关作业控制命令穿孔在若干卡片上,以控制作业的运行的一种形式用户按照要求将作业控制作业的运行的一种形式用户按照要求将作业控制卡插入到作业卡片叠的适当位置上系统分批控制卡插入到作业卡片叠的适当位置上系统分批读入这些卡片后开始运行,并按照这些控制卡的信读入这些卡片后开始运行,并按照这些控制卡的信息,指挥和控制作业的运行,息,指挥和控制作业的运行,这些作业控制卡是早这些作业控制卡是早期的一种作业控制方式期的一种作业控制方式•作业说明书也是用作业控制语言来表达用户对作业作业说明书也是用作业控制语言来表达用户对作业控制意识的,在形式上同用高级编程语言编制的程控制意识的,在形式上同用高级编程语言编制的程序相似相对于作业控制卡分散的缺点它具有集中、序相似相对于作业控制卡分散的缺点它具有集中、便于修改、灵活等优点。

美国便于修改、灵活等优点美国19051905机机GEOGEGEOGE语言是典语言是典型的高级算法的作业控制语言型的高级算法的作业控制语言 2 2程序接口程序接口 程序接口是程序接口是OSOS为正要运行的程序提供服务并与为正要运行的程序提供服务并与之通信的一个设施,它供所有的用户程序使用,也之通信的一个设施,它供所有的用户程序使用,也供供OSOS的其它组成部分,特别是命令处理程序使用的其它组成部分,特别是命令处理程序使用当一个程序正在执行时,程序接口接受对系统服务当一个程序正在执行时,程序接口接受对系统服务及资源申请,并与及资源申请,并与OSOS的资源管理程序进行通信这的资源管理程序进行通信这个程序接口主要由系统调用组成个程序接口主要由系统调用组成 系统调用是用户在程序中调用系统调用是用户在程序中调用OSOS所提供的一些所提供的一些子功能模块,它是一种特殊的过程调用用户程序子功能模块,它是一种特殊的过程调用用户程序运行在用户态下,它通过软件中断进入核心,调用运行在用户态下,它通过软件中断进入核心,调用系统过程(子模块),运行在核心态,返回后仍在系统过程(子模块),运行在核心态,返回后仍在用户态下运行。

用户程序系统调用从功能上分可包用户态下运行用户程序系统调用从功能上分可包括进程管理、文件管理、信息维护、设备括进程管理、文件管理、信息维护、设备I I//O O管理管理等几方面等几方面 系统调用过程大体上分成以下三步:设置系统系统调用过程大体上分成以下三步:设置系统调用号和参数;系统调用命令的一般处理;系统调调用号和参数;系统调用命令的一般处理;系统调用命令处理程序做具体处理用命令处理程序做具体处理 7.1 联机用户接口 联机用户接口 7.1.1 7.1.1 联机用户接口联机用户接口    联联机机用用户户接接口口,,也也称称为为联联机机命命令令接接口口不不同同操操作作系系统统的的联联机机命命令令接接口口有有所所不不同同,,这这不不仅仅指指命命令令的的种种类类、、数数量量及及功功能能方方面面,,也也可可能能体体现现在在命命令令的的形形式式、、用用法法等等方方面面不不同同的的用用法法和和形形式式构构成成了了不不同同的的用用户户界面,可分成以下两种:界面,可分成以下两种:(1) (1) 字符显示式用户界面;字符显示式用户界面;(2)(2) 图形化用户界面图形化用户界面。

   1 1.命令行方式.命令行方式  该方式是指以行为单位输入和显示不同的命令  该方式是指以行为单位输入和显示不同的命令每行长度一般不超过每行长度一般不超过256个字符,命令的结束通常以个字符,命令的结束通常以回车符为标记命令的执行是串行、间断的,后一回车符为标记命令的执行是串行、间断的,后一个命令的输入一般需等到前一个命令执行结束,如个命令的输入一般需等到前一个命令执行结束,如用户键入的一条命令处理完成后,系统发出新的命用户键入的一条命令处理完成后,系统发出新的命令输入提示符,用户才可以继续输入下一条命令令输入提示符,用户才可以继续输入下一条命令   也也有有许许多多操操作作系系统统提提供供了了命命令令的的并并行行执执行行方方式式,,例例如如一一条条命命令令的的执执行行需需要要耗耗费费较较长长时时间间,,并并且且用用户户也也不不急急需需其其结结果果时时( (即即两两条条命命令令执执行行是是不不相相关关的的) ),,则则可可以以在在一一个个命命令令的的结结尾尾输输入入特特定定的的标标记记,,将将该该命命令令作作为为后后台台命命令令处处理理,,用用户户接接着着即即可可继继续续输输入入下下一一条条命命令令,,系系统统便便可可对对两两条条命命令令进进行行并并行行处处理理。

一一般般而而言言,,对对新新用用户户来来说说,,命命令令行行方方式式十十分分繁繁琐琐,,难难以以记记忆忆,,但但对对有有经经验验的的用用户户而而言言,,命命令令行行方方式式用用起起来来快快捷捷便便当当、、十十分分灵活,所以,至今许多操作员仍常使用这种命令方式灵活,所以,至今许多操作员仍常使用这种命令方式简单命令的一般形式为:简单命令的一般形式为:Command arg1 arg2 Command arg1 arg2 ......argnargn其中,其中,Command 是命令名,又称命令动词,其余为是命令名,又称命令动词,其余为该命令所带的执行参数,有些命令可以没有参数该命令所带的执行参数,有些命令可以没有参数    2 2.批命令方式.批命令方式  在操作命令的实际使用过程中,经常遇到需要  在操作命令的实际使用过程中,经常遇到需要对多条命令的连续使用,或若干条命令的重复使用,对多条命令的连续使用,或若干条命令的重复使用,或对不同命令进行选择性使用的情况如果用户每或对不同命令进行选择性使用的情况如果用户每次都采用命令行方式,将命令一条条由键盘输入,次都采用命令行方式,将命令一条条由键盘输入,既浪费时间,又容易出错。

因此,操作系统都支持既浪费时间,又容易出错因此,操作系统都支持一种称为批命令的特别命令方式,允许用户预先把一种称为批命令的特别命令方式,允许用户预先把一系列命令组织在一种称为批命令文件的文件中,一系列命令组织在一种称为批命令文件的文件中,一次建立,多次执行使用这种方式可减少用户输一次建立,多次执行使用这种方式可减少用户输入命令的次数,既节省了时间和减少了出错概率,入命令的次数,既节省了时间和减少了出错概率,又方便了用户通常批命令文件都有特殊的文件扩又方便了用户通常批命令文件都有特殊的文件扩展名,如展名,如MS-DOS系统的系统的 .BAT文件   同时,操作系统还提供了一套控制子命令,增同时,操作系统还提供了一套控制子命令,增强对命令文件使用的支持用户可以使用这些子命强对命令文件使用的支持用户可以使用这些子命令和形式参数书写批命令文件,使得这样的批命令令和形式参数书写批命令文件,使得这样的批命令文件可以执行不同的命令序列,从而增强了命令接文件可以执行不同的命令序列,从而增强了命令接口的处理能力如口的处理能力如UNIX 和和Linux 中的中的Shell不仅是不仅是一种交互型命令解释程序,也是一种命令级程序设一种交互型命令解释程序,也是一种命令级程序设计语言解释系统,它允许用户使用计语言解释系统,它允许用户使用Shell 简单命令、简单命令、位置参数和控制流语句编制带形式参数的批命令文位置参数和控制流语句编制带形式参数的批命令文件,称做件,称做Shell 文件或文件或Shell 过程,过程,Shell 可以自动解可以自动解释和执行该文件或过程中的命令。

释和执行该文件或过程中的命令 7.1.27.1.2 联机命令的类型 联机命令的类型  为了能向用户提供多方面的服务,通常,  为了能向用户提供多方面的服务,通常,OS都都向用户提供了几十条甚至上百条的联机命令根据向用户提供了几十条甚至上百条的联机命令根据这些命令所完成功能的不同,可把它们分成以下几这些命令所完成功能的不同,可把它们分成以下几类类: ①① 系统访问类;系统访问类;②② 磁盘操作类;磁盘操作类;③③ 文件操作类;文件操作类;④④ 目录操作类;目录操作类;⑤⑤ 通信类;通信类;⑥⑥ 其他命令现分述其他命令现分述如下    1 1.系统访问类.系统访问类    在在单单用用户户微微型型机机中中,,一一般般没没有有设设置置系系统统访访问问命命令令然然而而在在多多用用户户系系统统中中,,为为了了保保证证系系统统的的安安全全性性,,都都毫毫无无例例外外地地设设置置了了系系统统访访问问命命令令,,即即注注册册命命令令LoginLogin用用户户在在每每次次开开始始使使用用某某终终端端时时,,都都须须使使用用该该命命令令,,使使系系统统能能识识别别该该用用户户凡凡要要在在多多用用户户系系统统的的终终端端上上上上机机的的用用户户,,都都必必须须先先在在系系统统管管理理员员处处获获得得一一合合法法的的注注册册名名和和口口令令。

以以后后,,每每当当用用户户在在接接通通其其所所用用终终端端的的电电源源后后,,便便由由系系统统直直接接调调用用,,并并在在屏屏幕幕上显示出以下的注册命令:上显示出以下的注册命令:    Login:Login:      / /提示用户键入自己的注册名提示用户键入自己的注册名当当用用户户键键入入正正确确的的注注册册名名,,并并按按下下回回车车键键后后,,屏屏幕幕上又会出现上又会出现: :    Password:Password:    / /提示用户键入自己的口令提示用户键入自己的口令  用户在键入口令时,系统将关闭掉回送显示,  用户在键入口令时,系统将关闭掉回送显示,以使口令不在屏幕上显示出来如果键入的口令正以使口令不在屏幕上显示出来如果键入的口令正确而使注册成功时,屏幕上会立即出现系统提示符确而使注册成功时,屏幕上会立即出现系统提示符(所用符号随系统而异所用符号随系统而异),表示用户可以开始键入命,表示用户可以开始键入命令如果用户多次令如果用户多次(通常不超过三次通常不超过三次)键入的注册名键入的注册名或口令都有错,系统将解除与用户的联接或口令都有错,系统将解除与用户的联接     2 2.磁盘操作命令.磁盘操作命令    在在微微机机操操作作系系统统中中,,通通常常都都提提供供了了若若干干条条磁磁盘盘操作命令。

操作命令    (1) (1) 磁盘格式化命令磁盘格式化命令FormatFormat它被用于对指定它被用于对指定驱动器上的软盘进行格式化每张新盘在使用前都驱动器上的软盘进行格式化每张新盘在使用前都必须先格式化其目的是使磁盘记录格式能为操作必须先格式化其目的是使磁盘记录格式能为操作系统所接受可见,不同操作系统将磁盘初始化后系统所接受可见,不同操作系统将磁盘初始化后的格式各异此外,在格式化过程中,还将对有缺的格式各异此外,在格式化过程中,还将对有缺陷的磁道和扇区加保留记号,以防止将它分配给数陷的磁道和扇区加保留记号,以防止将它分配给数据文件   (2) (2) 复复制制整整个个软软盘盘命命令令DiskcopyDiskcopy该该命命令令用用于于复复制制整整个个磁磁盘盘,,另另外外它它还还有有附附加加的的格格式式化化功功能能如如果果目目标标盘盘片片是是尚尚未未格格式式化化的的,,则则该该命命令令在在执执行行时时,,首首先将未格式化的软盘格式化,然后再进行复制先将未格式化的软盘格式化,然后再进行复制    (3) (3) 软软盘盘比比较较命命令令DiskcompDiskcomp该该命命令令用用于于将将源源盘盘与与目目标标盘盘的的各各磁磁道道及及各各扇扇区区中中的的数数据据逐逐一一进进行行比比较。

较    (4) (4) 备份命令备份命令BackupBackup该命令用于把硬盘上的该命令用于把硬盘上的文件复制到软盘上,而文件复制到软盘上,而RESTORE命令则完成相反的命令则完成相反的操作     3 3.文件操作命令.文件操作命令    每每个个操操作作系系统统都都提提供供了了一一组组文文件件操操作作命命令令在在微机微机OSOS中的文件操作命令有下述几种:中的文件操作命令有下述几种:    (1) (1) 显显示示文文件件命命令令typetype::用用于于将将指指定定文文件件内内容容显示在屏幕上显示在屏幕上    (2) (2) 拷贝文件命令拷贝文件命令copycopy:用于实现文件的拷贝用于实现文件的拷贝    (3) (3) 文文件件比比较较命命令令compcomp::用用于于对对两两个个指指定定文文件件进行比较两文件可以在同一个或不同的驱动器上进行比较两文件可以在同一个或不同的驱动器上    (4) (4) 重重新新命命名名命命令令RenameRename::用用于于将将以以第第一一参参数数命名的文件改成用第二参数给定的名字命名的文件改成用第二参数给定的名字    (5) (5) 删除文件命令删除文件命令eraseerase:用于删除一个或一组:用于删除一个或一组文件,当参数路径名为文件,当参数路径名为*.BAK时,表示删除指定目时,表示删除指定目录下的所有其扩展名为录下的所有其扩展名为 .Bak的文件。

的文件     4 4.目录操作命令.目录操作命令    (1) (1) 建建立立子子目目录录命命令令mkdirmkdir::用用于于建建立立指指定定名名字字的新目录的新目录    (2) (2) 显显示示目目录录命命令令dirdir::用用于于显显示示指指定定磁磁盘盘中中的的目录项    (3) (3) 删删除除子子目目录录命命令令rmdirrmdir::用用于于删删除除指指定定的的子子目目录录文文件件,,但但不不能能删删除除普普通通文文件件,,而而且且,,一一次次只只能能删删除除一一个个空空目目录录( (其其中中仅仅含含“.”“.”和和“..”“..”两两个个文文件件) ),不能删除根及当前目录不能删除根及当前目录    (4) (4) 显显示示目目录录结结构构命命令令treetree::用用于于显显示示指指定定盘盘上的所有目录路径及其层次关系上的所有目录路径及其层次关系    (5) (5) 改变当前目录命令改变当前目录命令chdirchdir:用于将当前目录:用于将当前目录改变为由路径名参数给定的目录用改变为由路径名参数给定的目录用““..””作参数作参数时,表示应返回到上一级目录下。

时,表示应返回到上一级目录下     5 5.其它命令.其它命令    (1) (1) 输入输出重定向命令在有的输入输出重定向命令在有的OS中定义了中定义了两个标准两个标准I/O设备通常,命令的输入取自标准输入设备通常,命令的输入取自标准输入设备,即键盘;而命令的输出通常是送往标准输出设备,即键盘;而命令的输出通常是送往标准输出设备,即显示终端如果在命令中设置输出重定向设备,即显示终端如果在命令中设置输出重定向““>””符,其后接文件名或设备名,表示将命令的输符,其后接文件名或设备名,表示将命令的输出改向,送到指定文件或设备上类似地,若在命出改向,送到指定文件或设备上类似地,若在命令中设置输入重定向令中设置输入重定向““<””符,则不再是从键盘而是符,则不再是从键盘而是从重定向符左边参数所指定的文件或设备上,取得从重定向符左边参数所指定的文件或设备上,取得输入信息输入信息   (2) (2) 管管道道连连接接这这是是指指把把第第一一条条命命令令的的输输出出信信息息作作为为第第二二条条命命令令的的输输入入信信息息;;类类似似地地,,又又可可把把第第二二条条命命令令的的输输出出信信息息作作为为第第三三条条命命令令的的输输入入信信息息。

这这样样,,由由两两个个( (含含两两条条) )以以上上的的命命令令可可形形成成一一条条管管道道在在MS-DOSMS-DOS和和UNIXUNIX中中,,都都用用“|”“|”作作为为管管道道符符号号,,其其一般格式为:一般格式为:    Command1 | Command2 | …… | Commandn;   (3) (3) 过过滤滤命命令令在在UNIXUNIX及及MS-DOSMS-DOS中中都都有有过过滤滤命命令令,,用用于于读读取取指指定定文文件件或或标标准准输输入入,,从从中中找找出出由由参参数数指指定定的的模模式式,,然然后后把把所所有有包包含含该该模模式式的的行行都都打打印印出出来来例例如,如,MS-DOSMS-DOS中用命令中用命令    find/N“erase”(find/N“erase”(路径名路径名) )可对由路径名指定的输入文件逐行检索,把含有字符可对由路径名指定的输入文件逐行检索,把含有字符串串““erase””的行输出其中,的行输出其中,/N是选择开关,表示是选择开关,表示输出含有指定字串的行;如果不用输出含有指定字串的行;如果不用N而用而用C,则表示,则表示只输出含有指定字串的行数;若用只输出含有指定字串的行数;若用V,则表示输出不,则表示输出不含指定字串的行。

含指定字串的行   (4) (4) 批命令为了能连续地使用多条键盘命令,批命令为了能连续地使用多条键盘命令,或多次反复地执行指定的若干条命令,而又免去每次或多次反复地执行指定的若干条命令,而又免去每次重敲这些命令的麻烦,可以提供一特定文件在重敲这些命令的麻烦,可以提供一特定文件在MS-DOS中提供了一种特殊文件,其后缀名用中提供了一种特殊文件,其后缀名用““.BAT””;在;在UNIX系统中称为命令文件它们都是利用一些系统中称为命令文件它们都是利用一些键盘命令构成一个程序,一次建立供多次使用在键盘命令构成一个程序,一次建立供多次使用在MS-DOS中用中用batch命令去执行由指定或默认驱动器命令去执行由指定或默认驱动器的工作目录上指定文件中所包含的一些命令的工作目录上指定文件中所包含的一些命令 7.1.37.1.3 键盘终端处理程序 键盘终端处理程序    为为了了实实现现人人机机交交互互,,还还须须在在微微机机或或终终端端上上配配置置相相应应的的键键盘盘终终端端处处理理程程序序,,它它应应具具有有下下述述几几方方面面的的功能:功能:(1) (1) 接收用户从终端上打入的字符接收用户从终端上打入的字符。

2) (2) 字符缓冲,用于暂存所接收的字符字符缓冲,用于暂存所接收的字符3) (3) 回送显示回送显示4) (4) 屏幕编辑屏幕编辑5)(5) 特殊字符处理特殊字符处理     1 1.字符接收功能.字符接收功能    为为了了实实现现人人机机交交互互,,键键盘盘终终端端处处理理程程序序必必须须能能够够接接收收从从终终端端输输入入的的字字符符,,并并将将之之传传送送给给用用户户程程序序有两种方式来实现字符接收功能有两种方式来实现字符接收功能: :    (1) (1) 面向字符方式驱动程序只接收从终端打面向字符方式驱动程序只接收从终端打入的字符,并且不加修改地将它传送给用户程序入的字符,并且不加修改地将它传送给用户程序这通常是一串未加工的这通常是一串未加工的ASCII码但大多数的用户码但大多数的用户并不喜欢这种方式并不喜欢这种方式    (2) (2) 面向行方式终端处理程序将所接收的字符面向行方式终端处理程序将所接收的字符暂存在行缓冲中,并可对行内字符进行编辑仅在收暂存在行缓冲中,并可对行内字符进行编辑仅在收到行结束符后,才将一行正确的信息送命令解释程序到行结束符后,才将一行正确的信息送命令解释程序。

在有的计算机中,从键盘硬件送出的是键的编码在有的计算机中,从键盘硬件送出的是键的编码(简简称键码称键码),而不是,而不是ASCII码例如,当打入码例如,当打入a键时,是键时,是将键码将键码““30””放入放入I/O寄存器,此时,终端处理程序寄存器,此时,终端处理程序必须参照某种表格,将键码转换成必须参照某种表格,将键码转换成ASCII码应当注码应当注意,某些意,某些IBM的兼容机使用的不是标准键码此时,的兼容机使用的不是标准键码此时,处理程序还须选用相应的表格将其转换成标准键码处理程序还须选用相应的表格将其转换成标准键码     2 2.字符缓冲功能.字符缓冲功能    为为了了能能暂暂存存从从终终端端键键入入的的字字符符,,以以降降低低中中断断处处理理器器的的频频率率,,在在终终端端处处理理程程序序中中,,还还必必须须具具有有字字符符缓冲功能字符缓冲可采用以下两种方式之一:缓冲功能字符缓冲可采用以下两种方式之一:    (1) (1) 专用缓冲区方式这是指系统为每个终端专用缓冲区方式这是指系统为每个终端设置一个缓冲区,暂存用户键入的一批字符,缓冲设置一个缓冲区,暂存用户键入的一批字符,缓冲区的典型长度为区的典型长度为200个字符左右。

这种方式较适合于个字符左右这种方式较适合于单用户微机或终端很少的多用户机当终端数目较单用户微机或终端很少的多用户机当终端数目较多时,需要的缓冲区数目可能很大,且每个缓冲区多时,需要的缓冲区数目可能很大,且每个缓冲区的利用率也很低例如,当有的利用率也很低例如,当有100个终端时,要求有个终端时,要求有20 KB的缓冲区但专用缓冲区方式可使终端处理程的缓冲区但专用缓冲区方式可使终端处理程序简化图序简化图7-1(a)示出了专用缓冲区方式示出了专用缓冲区方式 图图7-1 两种缓冲方式 两种缓冲方式   (2) (2) 公用缓冲池方式系统不必为每个终端设公用缓冲池方式系统不必为每个终端设置专用缓冲区,只须设置一个由多个缓冲区构成的置专用缓冲区,只须设置一个由多个缓冲区构成的公用缓冲池其中的每个缓冲区大小相同,如为公用缓冲池其中的每个缓冲区大小相同,如为20个字符,再将所有的空缓冲区链接成一个空缓冲区个字符,再将所有的空缓冲区链接成一个空缓冲区链当终端有数据输入时,可先向空缓冲区链申请链当终端有数据输入时,可先向空缓冲区链申请一空缓冲区来接收输入字符;当该缓冲区装满后,一空缓冲区来接收输入字符;当该缓冲区装满后,再申请一空缓冲区。

这样,直至全部输入完毕,并再申请一空缓冲区这样,直至全部输入完毕,并利用链接指针将这些装有输入数据的缓冲区链接成利用链接指针将这些装有输入数据的缓冲区链接成一条输入链每当该输入链中一个缓冲区内的字符一条输入链每当该输入链中一个缓冲区内的字符被全部传送给用户程序后,便将该缓冲区从输入链被全部传送给用户程序后,便将该缓冲区从输入链中移出,再重新链入空缓冲区链中显然,利用公中移出,再重新链入空缓冲区链中显然,利用公用缓冲池方式可有效地提高缓冲的利用率图用缓冲池方式可有效地提高缓冲的利用率图7-1(b)示出了公用缓冲池方式示出了公用缓冲池方式    3 3.回送显示.回送显示  回送显示  回送显示(回显回显)是指每当用户从键盘输入一个字是指每当用户从键盘输入一个字符后,终端处理程序便将该字符送往屏幕显示有些符后,终端处理程序便将该字符送往屏幕显示有些终端的回显由硬件实现,其速度较快,但往往会引起终端的回显由硬件实现,其速度较快,但往往会引起麻烦如当用户键入口令时,为防止口令被盗用,显麻烦如当用户键入口令时,为防止口令被盗用,显然不该有回显此外,用硬件实现回显也缺乏灵活性,然不该有回显此外,用硬件实现回显也缺乏灵活性,因而近年来多改用软件来实现回显,这样可以做到在因而近年来多改用软件来实现回显,这样可以做到在用户需要时才回显。

用软件实现回显,还可方便地进用户需要时才回显用软件实现回显,还可方便地进行字符变换,如将键盘输入的小写英文字母变成大写,行字符变换,如将键盘输入的小写英文字母变成大写,或相反驱动程序在将输入的字符送往屏幕回显时,或相反驱动程序在将输入的字符送往屏幕回显时,应打印在正确的位置上;当光标走到一行的最后一个应打印在正确的位置上;当光标走到一行的最后一个位置后,便应返回到下一行的开始位置例如,当所位置后,便应返回到下一行的开始位置例如,当所键入的字符数目超过一行的键入的字符数目超过一行的80个个(字符字符)时,应自动地时,应自动地将下一个字符打印到下一行的开始位置将下一个字符打印到下一行的开始位置     4 4.屏幕编辑.屏幕编辑    用用户户经经常常希希望望能能对对从从键键盘盘打打入入的的数数据据( (字字符符) )进进行行修修改改,,如如删删除除( (插插入入) )一一个个或或多多个个字字符符为为此此,,在在终终端端处处理理程程序序中中,,还还应应能能实实现现屏屏幕幕编编辑辑功功能能,,包包括括能提供若干个编辑键常用的编辑键有:能提供若干个编辑键常用的编辑键有:    (1) (1) 删删除除字字符符键键。

它它允允许许将将用用户户刚刚键键入入的的字字符符删删 除除 在在 有有 的的 系系 统统 中中 是是 利利 用用 退退 格格 键键 即即Backspace(Ctrl+H)Backspace(Ctrl+H)键键当当用用户户敲敲该该键键时时,,处处理理程程序序并并不不将将刚刚键键入入的的字字符符送送入入字字符符队队列列,,而而是是从从字字符符队队列中移出其前的一个字符列中移出其前的一个字符    (2) (2) 删删除除一一行行键键该该键键用用于于将将刚刚输输入入的的一一行行删删去    (3) (3) 插插入入键键利利用用该该键键在在光光标标处处可可插插入入一一个个字字符或一行正文符或一行正文    (4) (4) 移移动动光光标标键键在在键键盘盘上上有有用用于于对对光光标标进进行行上、下、左、右移动的键上、下、左、右移动的键    (5)(5) 屏幕上卷或下移键,等等屏幕上卷或下移键,等等     5 5.特殊字符处理.特殊字符处理    终终端端处处理理程程序序必必须须能能对对若若干干特特殊殊字字符符进进行行及及时时处理,这些字符是:处理,这些字符是:    (1)(1) 中断字符。

当程序在运行中出现异常情况中断字符当程序在运行中出现异常情况时,用户可通过键入中断字符的办法来中止当前程时,用户可通过键入中断字符的办法来中止当前程序的运行在许多系统中是利用序的运行在许多系统中是利用Break或或Delete或或Ctrl+C键作为中断字符对中断字符的处理比较复键作为中断字符对中断字符的处理比较复杂当终端处理程序收到用户键入的中断字符后,杂当终端处理程序收到用户键入的中断字符后,将向该终端上的所有进程发送一个要求进程终止的将向该终端上的所有进程发送一个要求进程终止的软中断信号,这些进程收到该软中断信号后,便进软中断信号,这些进程收到该软中断信号后,便进行自我终止行自我终止   (2) (2) 停停止止上上卷卷字字符符用用户户键键入入此此字字符符后后,,终终端端处处理理程程序序应应使使正正在在上上卷卷的的屏屏幕幕暂暂停停上上卷卷,,以以便便用用户户仔仔细细观观察察屏屏幕幕内内容容在在有有的的系系统统中中,,是是利利用用Ctrl+SCtrl+S键来停止屏幕上卷的键来停止屏幕上卷的    (3) (3) 恢恢复复上上卷卷字字符符有有的的系系统统利利用用Ctrl+QCtrl+Q键键使使停停止止上上卷卷的的屏屏幕幕恢恢复复上上卷卷。

终终端端处处理理程程序序收收到到该该字字符后,便恢复屏幕的上卷功能符后,便恢复屏幕的上卷功能    上上述述的的Ctrl+SCtrl+S与与Ctrl+QCtrl+Q两两字字符符并并不不被被存存储储,,而而是是被被用用去去设设置置终终端端数数据据结结构构中中的的某某个个标标志志每每当当终终端端试试图图输输出出时时,,都都须须先先检检查查该该标标志志若若该该标标志志已已被被设置,便不再把字符送至屏幕设置,便不再把字符送至屏幕 7.1.47.1.4 命令解释程序 命令解释程序    1 1.命令解释程序的作用.命令解释程序的作用  在联机操作方式下,终端处理程序把用户键入的  在联机操作方式下,终端处理程序把用户键入的信息送键盘缓冲区中保存一旦用户键入回车符,便信息送键盘缓冲区中保存一旦用户键入回车符,便立即把控制权交给命令处理程序显然,对于不同的立即把控制权交给命令处理程序显然,对于不同的命令,应有能完成特定功能的命令处理程序与之对应命令,应有能完成特定功能的命令处理程序与之对应可见,命令解释程序的主要作用是在屏幕上给出提示可见,命令解释程序的主要作用是在屏幕上给出提示符,请用户键入命令,然后读入该命令,识别命令,符,请用户键入命令,然后读入该命令,识别命令,再转到相应命令处理程序的入口地址,把控制权交给再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行,并将处理结果送屏幕上显示。

若该处理程序去执行,并将处理结果送屏幕上显示若用户键入的命令有错,而命令解释程序未能予以识别,用户键入的命令有错,而命令解释程序未能予以识别,或在执行中间出现问题时,则应显示出某一出错信息或在执行中间出现问题时,则应显示出某一出错信息    2 2.命令解释程序的组成.命令解释程序的组成    (1)(1) 常驻部分这部分包括一些中断服务子程序常驻部分这部分包括一些中断服务子程序例如:正常退出中断例如:正常退出中断INT 20,它用于在用户程序执行,它用于在用户程序执行完毕后,退回操作系统;驻留退出中断完毕后,退回操作系统;驻留退出中断INT 27,用这,用这种方式,退出程序可驻留在内存中;还有用于处理和种方式,退出程序可驻留在内存中;还有用于处理和显示标准错误信息的显示标准错误信息的INT 24等常驻部分还包括这样等常驻部分还包括这样的程序的程序: 当用户程序终止后,它检查暂存部分是否已当用户程序终止后,它检查暂存部分是否已被用户程序覆盖,若已被覆盖,便重新将暂存部分调被用户程序覆盖,若已被覆盖,便重新将暂存部分调入内存   (2) (2) 初初始始化化部部分分它它跟跟随随在在常常驻驻内内存存部部分分之之后后,,在在 启启 动动 时时 获获 得得 控控 制制 权权 。

这这 部部 分分 还还 包包 括括 对对AUTOEXEC.BATAUTOEXEC.BAT文文件件的的处处理理程程序序,,并并决决定定应应用用程程序序装装入入的的基基地地址址每每当当系系统统接接电电或或重重新新启启动动后后,,由由处处理理程程序序找找到到并并执执行行AUTOEXEC.BATAUTOEXEC.BAT文文件件由由于于该该文文件件在在用用 完完 后后 不不 再再 被被 需需 要要 ,, 因因 而而 它它 将将 被被 第第 一一 个个 由由COMMAND.COMCOMMAND.COM装入的文件所覆盖装入的文件所覆盖    (3)(3) 暂存部分这部分主要是命令解释程序,并暂存部分这部分主要是命令解释程序,并包含了所有的内部命令处理程序、批文件处理程序,包含了所有的内部命令处理程序、批文件处理程序,以及装入和执行外部命令的程序它们都驻留在内以及装入和执行外部命令的程序它们都驻留在内存中,但用户程序可以使用并覆盖这部分内存,在存中,但用户程序可以使用并覆盖这部分内存,在用户程序结束时,常驻程序又会将它们重新从磁盘用户程序结束时,常驻程序又会将它们重新从磁盘调入内存,恢复暂存部分调入内存,恢复暂存部分。

   3 3.命令解释程序的工作流程.命令解释程序的工作流程  系统在接通电源或复位后,初始化部分获得控制  系统在接通电源或复位后,初始化部分获得控制权,对整个系统完成初始化工作,并自动执行权,对整个系统完成初始化工作,并自动执行AUTOEXEC.BAT文件,之后便把控制权交给暂存部文件,之后便把控制权交给暂存部分暂存部分首先读入键盘缓冲区中的命令,判别其分暂存部分首先读入键盘缓冲区中的命令,判别其文件名、扩展名及驱动器名是否正确若发现有错,文件名、扩展名及驱动器名是否正确若发现有错,在给出出错信息后返回;若无错,再识别该命令在给出出错信息后返回;若无错,再识别该命令 一种简单的识别命令的方法是基于一张表格,一种简单的识别命令的方法是基于一张表格,其中的每一表目都是由命令名及其处理程序的入其中的每一表目都是由命令名及其处理程序的入口地址两项所组成的如果暂存部分在该表中能口地址两项所组成的如果暂存部分在该表中能找到键入的命令,且是内部命令,便可以直接从找到键入的命令,且是内部命令,便可以直接从对应表项中获得该命令处理程序的入口地址,然对应表项中获得该命令处理程序的入口地址,然后把控制权交给该处理程序去执行该命令。

如果后把控制权交给该处理程序去执行该命令如果发现键入的命令不属于内部命令而是外部命令,发现键入的命令不属于内部命令而是外部命令,则暂存部分还须为之建立命令行;再通过执行系则暂存部分还须为之建立命令行;再通过执行系统调用统调用exec来装入该命令的处理程序,并得到其来装入该命令的处理程序,并得到其基地址;然后把控制权交给该程序去执行相应的基地址;然后把控制权交给该程序去执行相应的命令图7-2 示出了示出了MS-DOS的的COMMAND.COM的工作流程的工作流程 图图7-2  COMMAND.COM的工作流程的工作流程 7.2  Shell命令语言命令语言 7.2.17.2.1 简单命令 简单命令    所所谓谓简简单单命命令令,,实实际际上上是是一一个个能能完完成成某某种种功功能能的的目目标标程程序序的的名名字字UNIXUNIX系系统统规规定定的的命命令令由由小小写写字字母母构构成成( (仅仅前前8 8个个字字母母有有效效) )命命令令可可带带有有参参数数表表,,用用于于给给出出执执行行命命令令时时的的附附加加信信息息命命令令名名与与参参数数表表之之间间还还可可使使用用一一种种称称为为选选项项的的自自变变量量,,用用破破折折号号开开始始,,后后跟跟一一个个或或多多个个字字母母、、数数字字。

选选项项是是对对命命令令的的正正常常操操作作加加以以修修改改,,一一条条命命令令可可有有多多个个选选项项,,命命令令的的格格式如下:式如下:    $ Command-option argument list$ Command-option argument list例如:例如:    $ ls file1 file2 ↙↙   这这是是一一条条不不带带选选项项的的列列目目录录命命令令,,$ $是是系系统统提提示示符符该该命命令令用用于于列列出出file1file1和和file2file2两两个个目目录录文文件件中中所所包包含含的的目目录录项项,,并并隐隐含含地地指指出出按按英英文文字字母母顺顺序序列列表若给出表若给出-tr-tr选项,该命令可表示成:选项,该命令可表示成:    $ ls-tr file1 file 2 ↙$ ls-tr file1 file 2 ↙其其中中,,选选项项t t和和r r分分别别表表示示按按最最近近修修改改次次序序及及按按反反字字母顺序列表母顺序列表    通通常常,,命命令令名名与与该该程程序序的的功功能能紧紧密密相相关关,,以以便便于记忆命令参数可多可少,也可缺省。

例如:于记忆命令参数可多可少,也可缺省例如:    $ ls ↙↙     1 1.进入与退出系统.进入与退出系统    (1) (1) 进入系统,也称为注册事先,用户须与进入系统,也称为注册事先,用户须与系统管理员商定一个唯一的用户名管理员用该名系统管理员商定一个唯一的用户名管理员用该名字在系统文件树上,为用户建立一个子目录树的根字在系统文件树上,为用户建立一个子目录树的根结点当用户打开自己的终端时,屏幕上会出现结点当用户打开自己的终端时,屏幕上会出现Login:提示,这时用户便可键入自己的注册名,并用提示,这时用户便可键入自己的注册名,并用回车符结束然后,系统又询问用户口令,用户可回车符结束然后,系统又询问用户口令,用户可用回车符或事先约定的口令键入这两步均须正确用回车符或事先约定的口令键入这两步均须正确通过检查,才能出现系统提示符通过检查,才能出现系统提示符(随系统而异随系统而异),以提,以提示用户自己已通过检查,可以使用系统若任一步示用户自己已通过检查,可以使用系统若任一步骤有错,系统均通过提示要求用户重新键入骤有错,系统均通过提示要求用户重新键入   (2) (2) 退出系统。

每当用户用完系统后,应向系统退出系统每当用户用完系统后,应向系统报告自己不再往系统装入任何处理要求系统得知后,报告自己不再往系统装入任何处理要求系统得知后,便马上为用户记账,清除用户的使用环境若用户使便马上为用户记账,清除用户的使用环境若用户使用系统是免费的,退出操作仅仅是一种礼貌如果用用系统是免费的,退出操作仅仅是一种礼貌如果用户使用的是多终端中的一个终端,为了退出,用户只户使用的是多终端中的一个终端,为了退出,用户只需按下需按下Control-D键即可,系统会重新给出提示符即键即可,系统会重新给出提示符即Login,以表明该终端可供另一新用户使用用户的,以表明该终端可供另一新用户使用用户的进入与退出过程,实际上是由系统直接调用进入与退出过程,实际上是由系统直接调用Login及及Logout程序完成的程序完成的     2 2.文件操作命令.文件操作命令    (1) (1) 显显示示文文件件内内容容命命令令catcat如如果果用用户户想想了了解解自自己己在在当当前前目目录录中中的的某某个个或或某某几几个个指指定定文文件件的的内内容容时,便可使用下述格式的时,便可使用下述格式的catcat命令:命令:    $ cat filename1 filename2 ↙$ cat filename1 filename2 ↙执执行行上上述述命命令令后后,,将将按按参参数数指指定定的的顺顺序序,,依依次次把把所所列列名名字字的的文文件件内内容容送送屏屏幕幕显显示示。

若若键键入入文文件件名名有有错错,,或或该该文文件件不不在在当当前前目目录录下下,,则则该该命命令令执执行行结结果果将将显显示指定文件不能打开的信息示指定文件不能打开的信息    (2) (2) 复制文件副本的命令复制文件副本的命令cpcp其格式为:其格式为:    cp source targetcp source target该该命命令令用用于于对对已已存存在在的的文文件件sourcesource建建立立一一个个名名为为targettarget的副本    (3) (3) 对已有文件改名的命令对已有文件改名的命令mvmv其格式为其格式为    mv oldname newnamemv oldname newname  用于把原来的老名字改成指定的新名字  用于把原来的老名字改成指定的新名字    (4) (4) 撤撤消消文文件件的的命命令令rmrm它它给给出出一一个个参参数数表表,,是是要撤消的文件名清单要撤消的文件名清单    (5)(5) 确定文件类型的命令确定文件类型的命令file该命令带有一个该命令带有一个参数表,用于给出想了解其参数表,用于给出想了解其(文件文件)类型的文件名清单。

类型的文件名清单命令执行的结果将在屏幕上显示出各个文件的类型命令执行的结果将在屏幕上显示出各个文件的类型     3 3.目录操作命令.目录操作命令    (1) (1) 建建立立目目录录的的命命令令mkdir(mkdir(简简称称md)md)当当用用户户要要创创建建或或保保存存较较多多的的文文件件时时,,应应该该以以自自己己的的注注册册名名作作为为根根结结点点,,建建立立一一棵棵子子目目录录树树,,子子树树中中的的各各结结点点( (除除树树叶叶外外) )都都是是目目录录文文件件可可用用mdmd命命令令来来构构建建一一个个目目录录,,参参数数是是新新创创建建目目录录的的名名字字但但应应注注意意该该命命令令的的使使用用,,必必须须在在其其父父目目录录中中有有写写许许可可时时,,才才允允许许为为其其创创建建子子目录    (2)(2) 撤消目录的命令撤消目录的命令rmdir(简称简称rd)它实际上它实际上是是rm命令的一个特例,用于删除一个或多个指定的命令的一个特例,用于删除一个或多个指定的下级空目录若目录下仍有文件,该命令将被认为下级空目录若目录下仍有文件,该命令将被认为是一个错误操作,这样可以防止因不慎而消除了一是一个错误操作,这样可以防止因不慎而消除了一个想保留的文件。

命令的参数表用于给出要撤消的个想保留的文件命令的参数表用于给出要撤消的目录文件清单目录文件清单   (3) (3) 改改变变工工作作目目录录的的命命令令cdcd不不带带参参数数的的cdcd命命令令将将使使用用户户从从任任何何其其它它目目录录回回到到自自己己的的注注册册目目录录上上;;若若用用全全路路径径名名作作参参数数,,cdcd命命令令将将使使用用户户来来到到由由该该路路径径名名确确定定的的结结点点上上;;若若用用当当前前目目录录的的子子目目录录名名作作参参数数,,将将把把用用户户移移到到当当前前目目录录指指定定的的下下一一级级目目录录上上( (即即用用其其下下一一级级目目录录作作为为新新的的当当前前目目录录) );;用用“..”“..”号号或或“*”“*”号将使当前目录上移一级,即移到其父结点上号将使当前目录上移一级,即移到其父结点上 (4)(4) 改变对文件的存取方式的命令改变对文件的存取方式的命令chmod其格式为其格式为    chmod op-code permission filename 其其中中,,用用于于指指明明访访问问者者的的身身份份,,可可以以是是用用户户自自己己、、用用户户组组、、所所有有其其他他用用户户及及全全部部,,分分别别用用u u、、g g、、o o和和a a表表示示;;op-codeop-code是是操操作作码码,,分分别别用用 + +、、- - 及及 = = 表表示示增增 加加 、、 消消 除除 及及 赋赋 予予 访访 问问 者者 以以 某某 种种 权权 利利 ;; 而而permissionpermission则则是是分分别别用用r r、、 w w及及x x表表示示读读、、 写写及及执执行行许可。

例如,命令许可例如,命令    chmod go-w tempchmod go-w temp表示消除用户组及所有其他用户对文件表示消除用户组及所有其他用户对文件temp的写许的写许可    4 4.系统询问命令.系统询问命令    (1) (1) 访访问问当当前前日日期期和和时时间间命命令令datedate例例如如,,用用命命令令      $ date ↙$ date ↙屏幕上将给出当前的日期和时间,如为屏幕上将给出当前的日期和时间,如为      Wed Ang 14 09:27:20 PDT 1991Wed Ang 14 09:27:20 PDT 1991表示当前日期是表示当前日期是1991年年9月月14日、日、 星期三,还有时间星期三,还有时间信息若在命令名后给出参数,则信息若在命令名后给出参数,则date程序把参数作程序把参数作为重置系统时钟的时间为重置系统时钟的时间   (2) (2) 询询问问系系统统当当前前用用户户的的命命令令whowhowhowho命命令令可可列列出出当当前前每每一一个个处处在在系系统统中中的的用用户户的的注注册册名名、、终终端端名名和和注注册册进进入入时时间间,,并并按按终终端端标标志志的的字字母母顺顺序序排排序序。

例如,报告有下列三用户:例如,报告有下列三用户:    Veronica bxo66 AugVeronica bxo66 Aug  2727  13:2813:28    Rathomas dz24 AugRathomas dz24 Aug  2828  07:4207:42    Jlyates tty5 Aug  28  07:39   用户可用用户可用who命令了解系统的当前负荷情况;也命令了解系统的当前负荷情况;也可在与其他用户通信之前,用此命令去核实一下当可在与其他用户通信之前,用此命令去核实一下当前进入系统的用户及其所使用终端名和所用的正确前进入系统的用户及其所使用终端名和所用的正确的注册名例如,用户在使用系统的过程中,有时的注册名例如,用户在使用系统的过程中,有时会发现在打入一个请求后,系统响应很慢,这时用会发现在打入一个请求后,系统响应很慢,这时用户可用户可用““who|we-L””命令,使系统打印出当前的用命令,使系统打印出当前的用户数目而不显示系统用户名等的完整清单,以得知户数目而不显示系统用户名等的完整清单,以得知当前用户数目当前用户数目    (3)(3) 显示当前目录路径名的命令显示当前目录路径名的命令pwd。

当前目录当前目录的路径名是从根结点开始,通过分支上的所有结点的路径名是从根结点开始,通过分支上的所有结点到达当前目录结点为止的路径上的所有结点的名字到达当前目录结点为止的路径上的所有结点的名字拼起来构成的用户的当前目录可能经常在树上移拼起来构成的用户的当前目录可能经常在树上移动如果用户忘记了自己在哪里,便可用动如果用户忘记了自己在哪里,便可用pwd确定确定自己的位置自己的位置 7.2.27.2.2 重定向与管道命令 重定向与管道命令    1 1.重定向命令.重定向命令  在  在UNIX系统中,由系统定义了三个文件其中,系统中,由系统定义了三个文件其中,有两个分别称为标准输入和标准输出的文件,各对应有两个分别称为标准输入和标准输出的文件,各对应于终端键盘输入和终端屏幕输出它们是在用户注册于终端键盘输入和终端屏幕输出它们是在用户注册时,由时,由Login程序打开的这样,在用户程序执行时,程序打开的这样,在用户程序执行时,隐含的标准输入是键盘输入,标准输出即屏幕隐含的标准输入是键盘输入,标准输出即屏幕(输出输出)显示但用户程序中可能不要求从键盘输入,而是从显示但用户程序中可能不要求从键盘输入,而是从某个指定文件上读取信息供程序使用;同样,用户可某个指定文件上读取信息供程序使用;同样,用户可能希望把程序执行时所产生的结果数据,写到某个指能希望把程序执行时所产生的结果数据,写到某个指定文件中而非屏幕上。

这就使用户必须去改变输入与定文件中而非屏幕上这就使用户必须去改变输入与输出文件,即不使用标准输入、标准输出,而是把另输出文件,即不使用标准输入、标准输出,而是把另外的某个指定文件或设备,作为输入或输出文件外的某个指定文件或设备,作为输入或输出文件   Shell向向用用户户提提供供了了这这种种用用于于改改变变输输入入、、 输输出出设设备备的的手手段段,,此此即即标标准准输输入入与与标标准准输输出出的的重重新新定定向向用用重重定定向向符符“<”“<”和和“>”“>”分分别别表表示示输输入入转转向向与与输输出出转转向向例如,对于命令例如,对于命令    $ cat file1 ↙ ↙表表示示将将文文件件file1file1的的内内容容在在标标准准输输出出上上打打印印出出来来若若改变其输出,用命令改变其输出,用命令    $ cat file1>file2 ↙ ↙时时,,表表示示把把文文件件file1file1的的内内容容打打印印输输出出到到文文件件file2file2上上同理,对于命令同理,对于命令    $ wc ↙ ↙表表示示对对标标准准输输入入中中的的行行中中字字和和字字符符进进行行计计数数。

若若改改变变其输入,用命令其输入,用命令 $ wc>”“>>”,即此时应再用命令,即此时应再用命令    $ cat file4>>file2 ↙ ↙   便便可可在在文文件件file2file2中中,,除除了了上上次次复复制制的的file1file1内内容容外,后面又附加了外,后面又附加了file4file4的内容。

的内容当当然然,,若若想想一一次次把把两两个个文文件件file1file1和和file4file4全全部部复复制制到到file2file2中,则可用命令中,则可用命令    $ cat file1 file4>>file2 ↙ ↙此此外外,,也也可可在在一一个个命命令令行行中中,,同同时时改改变变输输入入与与输输出出例如,命令行例如,命令行    a.outfile0 ↙ ↙表示在可执行文件表示在可执行文件a.out执行时,将从文件执行时,将从文件file1中提中提取数据,而把取数据,而把a.out的执行结果数据输出到文件的执行结果数据输出到文件file0中    2 2.管道命令.管道命令    在在有有了了上上述述的的重重定定向向思思想想后后,,为为了了进进一一步步增增强强功功能能,,人人们们又又进进一一步步把把这这种种思思想想加加以以扩扩充充,,用用符符号号“|”“|”来来连连接接两两条条命命令令,,使使其其前前一一条条命命令令的的输输出出作作为为后一条命令的输入即后一条命令的输入即    $ command 1| command 2 ↙ ↙例如,对于下述输入例如,对于下述输入    cat file|wc ↙↙ 将使命令将使命令cat把文件把文件file中的数据作为中的数据作为wc命令的计数用命令的计数用输入。

输入   从概念上说,系统执行上述输入时,将为管道从概念上说,系统执行上述输入时,将为管道建立一个作为通信通道的建立一个作为通信通道的pipe文件这时,文件这时,cat命令命令的输出既不出现在终端的输出既不出现在终端(屏幕屏幕)上,也不存入某中间上,也不存入某中间文件,而是由文件,而是由UNIX系统来系统来““缓冲缓冲””第一条命令的第一条命令的输出,并作为第二条命令的输入在用管道线所连输出,并作为第二条命令的输入在用管道线所连接的命令之间,实现单向、同步运行其单向性表接的命令之间,实现单向、同步运行其单向性表现在现在: 只把管道线前面的命令的输出送入管道,而只把管道线前面的命令的输出送入管道,而管道的输出数据仅供管道线后面的命令去读取管管道的输出数据仅供管道线后面的命令去读取管道的同步特性则表现为:当一条管道满时,其前一道的同步特性则表现为:当一条管道满时,其前一条命令停止执行;而当管道空时,则其后一条命令条命令停止执行;而当管道空时,则其后一条命令停止运行除此两种情况外,用管道所连接的两条停止运行除此两种情况外,用管道所连接的两条命令命令““同时同时””运行可见,利用管道功能,可以流运行。

可见,利用管道功能,可以流水线方式实现命令的流水线化,即在单一命令行下,水线方式实现命令的流水线化,即在单一命令行下,同时运行多条命令,以加速复杂任务的完成同时运行多条命令,以加速复杂任务的完成 7.2.37.2.3 通信命令 通信命令    1 1.信箱通信命令.信箱通信命令mailmail    mail命令被作为在命令被作为在UNIX的各用户之间进行非交的各用户之间进行非交互式通信的工具互式通信的工具mail采用信箱通信方式发信者采用信箱通信方式发信者把要发送的消息写成信件,把要发送的消息写成信件,““邮寄邮寄””到对方的信箱到对方的信箱中通常各用户的私有信箱采用各自的注册名命名,中通常各用户的私有信箱采用各自的注册名命名,即它是目录即它是目录/usr/spool/mail中的一个文件,而文件名中的一个文件,而文件名又是用接收者的注册名来命名的信箱中的信件可又是用接收者的注册名来命名的信箱中的信件可以一直保留到被信箱所有者消除为止以一直保留到被信箱所有者消除为止   因而,用因而,用mail进行通信时,不要求接收者利用终进行通信时,不要求接收者利用终端与发送者会话亦即,在发信者发送信息时,虽端与发送者会话。

亦即,在发信者发送信息时,虽然接收者已在系统中注册过,但允许他此时没有使然接收者已在系统中注册过,但允许他此时没有使用系统;也可以是虽在使用系统,但拒绝接收任何用系统;也可以是虽在使用系统,但拒绝接收任何信息mail命令在用于发信时,把接收者的注册名命令在用于发信时,把接收者的注册名当作参数打入后,便可在新行开始键入信件正文,当作参数打入后,便可在新行开始键入信件正文,最后仍在一个新行上用最后仍在一个新行上用““.””来结束信件或用来结束信件或用““^D””退出退出mail程序程序(也可带选项,此处从略也可带选项,此处从略)   接收者也用接收者也用mailmail命令读取信件,可使用可选项命令读取信件,可使用可选项r r、、 q q或或p p等其命令格式为等其命令格式为    mail [-r][-q][-p][-file][-F persons]mail [-r][-q][-p][-file][-F persons]  由于信箱中可存放所接收的多个信件,这就存  由于信箱中可存放所接收的多个信件,这就存在一个选取信件的问题上述几个选项分别表示在一个选取信件的问题上述几个选项分别表示: 按按先进先出顺序显示各信件的内容;在输入中断字符先进先出顺序显示各信件的内容;在输入中断字符(Del或或Return)后,退出后,退出mail程序而不改变信箱的内程序而不改变信箱的内容;一次性地显示信箱全部内容而不带询问;把指容;一次性地显示信箱全部内容而不带询问;把指定文件当作信件来显示。

在不使用定文件当作信件来显示在不使用-p选项时,表示选项时,表示在显示完一个信件后,便出现在显示完一个信件后,便出现““??””,以询问用户,以询问用户是否继续显示下一条消息,或选读完最后一条消息是否继续显示下一条消息,或选读完最后一条消息后退出后退出mail     2 2.对话通信命令.对话通信命令writewrite    用用这这条条命命令令可可以以使使用用户户与与当当前前在在系系统统中中的的其其他他用用户户直直接接进进行行联联机机通通信信由由于于UNIXUNIX系系统统允允许许一一个个用用户户同同时时在在几几个个终终端端上上注注册册,,故故在在用用此此命命令令前前,,要要用用whowho命命令令去去查查看看目目标标用用户户当当前前是是否否联联机机,,或或确确定定接接收者所使用的终端名命令格式为收者所使用的终端名命令格式为    write user[ttyname]当接收者只有一个终端时,终端名可缺省当接收当接收者只有一个终端时,终端名可缺省当接收者的终端被允许接收消息时,屏幕提示会通知接收者的终端被允许接收消息时,屏幕提示会通知接收者源用户名及其所用终端名者源用户名及其所用终端名。

    3 3.允许或拒绝接收消息命令.允许或拒绝接收消息命令mesgmesg    mesgmesg命令的格式为:命令的格式为:        mesg[-n][-y]  选项  选项n表示拒绝对方的写许可表示拒绝对方的写许可(即拒绝接收消息即拒绝接收消息);选项;选项y指示恢复对方的写许可,仅在此时,双方才指示恢复对方的写许可,仅在此时,双方才可联机通信当用户正在联机编写一份资料而不愿可联机通信当用户正在联机编写一份资料而不愿被别人干扰时,常选用被别人干扰时,常选用n选项来拒绝对方的写许可选项来拒绝对方的写许可编辑完毕,再用带有编辑完毕,再用带有y选项的选项的mesg命令来恢复对方命令来恢复对方的写许可,不带自变量的的写许可,不带自变量的mesg命令只报告当前状态命令只报告当前状态而不改变它而不改变它 7.2.47.2.4 后台命令 后台命令  有些命令需要执行很长的时间,这样,当用户  有些命令需要执行很长的时间,这样,当用户键入该命令后,便会发现自己已无事可做,要一直键入该命令后,便会发现自己已无事可做,要一直等到该命令执行完毕,方可再键入下一条命令这等到该命令执行完毕,方可再键入下一条命令。

这时用户自然会想到应该利用这段时间去做些别的事时用户自然会想到应该利用这段时间去做些别的事UNIX系统提供了这种机制,用户可以在这种命令后系统提供了这种机制,用户可以在这种命令后面再加上面再加上““&””号,以告诉号,以告诉Shell将该命令放在后台执将该命令放在后台执行,以便用户在前台继续键入其它命令行,以便用户在前台继续键入其它命令   在在后后台台运运行行的的程程序序仍仍然然把把终终端端作作为为它它的的标标准准输输出出和和标标准准错错误误文文件件,,除除非非对对它它们们进进行行重重新新定定向向其其标标准准输输入入文文件件是是自自动动地地被被从从终终端端定定向向到到一一个个被被称称为为“/dev/null”“/dev/null”的的空空文文件件中中若若shellshell未未重重定定向向标标准准输输入入,,则则shellshell和和后后台台进进程程将将会会同同时时从从终终端端进进行行读读入入这这时时,,用用户户从从终终端端键键入入的的字字符符可可能能被被发发送送到到一一个个进进程程或或另另一一个个进进程程,,并并不不能能预预测测哪哪个个进进程程将将得得到到该该字字符    因因此此,,对对所所有有在在后后台台运运行行的的命命令令的的标标准准输输入入,,都都必必须须加加以以重重定定向向,,从从而而使使从从终终端端键键入入的的所所有有字字符符都都被被送送到到ShellShell进进程程。

用用户户可可使使用用psps、、waitwait及及KillKill命命令去了解和控制后台进程的运行令去了解和控制后台进程的运行 7.3 系 系 统统 调调 用用 7.3.17.3.1 系统调用的基本概念 系统调用的基本概念  通常,在  通常,在OS的核心中都设置了一组用于实现各的核心中都设置了一组用于实现各种系统功能的子程序种系统功能的子程序(过程过程),并将它们提供给应用,并将它们提供给应用程序调用由于这些程序或过程是程序调用由于这些程序或过程是OS系统本身程序系统本身程序模块中的一部分,为了保护操作系统程序不被用户模块中的一部分,为了保护操作系统程序不被用户程序破坏,一般都不允许用户程序访问操作系统的程序破坏,一般都不允许用户程序访问操作系统的程序和数据,所以也不允许应用程序采用一般的过程序和数据,所以也不允许应用程序采用一般的过程调用方式来直接调用这些过程,而是向应用程序程调用方式来直接调用这些过程,而是向应用程序提供了一系列的系统调用命令,让应用程序通过系提供了一系列的系统调用命令,让应用程序通过系统调用去调用所需的系统过程统调用去调用所需的系统过程     1 1.系统态和用户态.系统态和用户态  在计算机系统中,通常运行着两类程序:系统  在计算机系统中,通常运行着两类程序:系统程序和应用程序,为了保证系统程序不被应用程序程序和应用程序,为了保证系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:系有意或无意地破坏,为计算机设置了两种状态:系统态统态(也称为管态或核心态也称为管态或核心态)和用户态和用户态(也称为目态也称为目态)。

操作系统在系统态运行,而应用程序只能在用户态操作系统在系统态运行,而应用程序只能在用户态运行在实际运行过程中,处理机会在系统态和用运行在实际运行过程中,处理机会在系统态和用户态间切换相应地,现代多数操作系统将户态间切换相应地,现代多数操作系统将CPU的的指令集分为特权指令和非特权指令两类指令集分为特权指令和非特权指令两类    1) 1) 特权指令特权指令  所谓特权指令,就是在系统态时运行的指令,  所谓特权指令,就是在系统态时运行的指令,是关系到系统全局的指令其对内存空间的访问范是关系到系统全局的指令其对内存空间的访问范围基本不受限制,不仅能访问用户存储空间,也能围基本不受限制,不仅能访问用户存储空间,也能访问系统存储空间,如启动各种外部设备、设置系访问系统存储空间,如启动各种外部设备、设置系统时钟时间、关中断、清主存、修改存储器管理寄统时钟时间、关中断、清主存、修改存储器管理寄存器、执行停机指令、转换执行状态等特权指令存器、执行停机指令、转换执行状态等特权指令只允许操作系统使用,不允许应用程序使用,否则只允许操作系统使用,不允许应用程序使用,否则会引起系统混乱会引起系统混乱    2) 2) 非特权指令非特权指令    非非特特权权指指令令是是在在用用户户态态时时运运行行的的指指令令。

一一般般应应用用程程序序所所使使用用的的都都是是非非特特权权指指令令,,它它只只能能完完成成一一般般性性的的操操作作和和任任务务,,不不能能对对系系统统中中的的硬硬件件和和软软件件直直接接进进行行访访问问,,其其对对内内存存的的访访问问范范围围也也局局限限于于用用户户空空间间这这样样,,可以防止应用程序的运行异常对系统造成的破坏可以防止应用程序的运行异常对系统造成的破坏  这种限制是由硬件实现的,如果在应用程序中使  这种限制是由硬件实现的,如果在应用程序中使用了特权指令,就会发出权限出错信号,操作系统捕用了特权指令,就会发出权限出错信号,操作系统捕获到这个信号后,将转入相应的错误处理程序,并将获到这个信号后,将转入相应的错误处理程序,并将停止该应用程序的运行,重新调度停止该应用程序的运行,重新调度   2 2.系统调用.系统调用    如如上上所所述述,,一一方方面面由由于于系系统统提提供供了了保保护护机机制制,,防防止止应应用用程程序序直直接接调调用用操操作作系系统统的的过过程程,,从从而而避避免免了了系系统统的的不不安安全全性性但但另另一一方方面面,,应应用用程程序序又又必必须须取取得得操操作作系系统统所所提提供供的的服服务务,,否否则则,,应应用用程程序序几几乎乎无无法法作作任任何何有有价价值值的的事事情情,,甚甚至至无无法法运运行行。

为为此此,,在在操操作作系系统统中中提提供供了了系系统统调调用用,,使使应应用用程程序序可可以以通通过过系系统统调调用用的的方方法法,,间间接接调调用用操操作作系系统统的的相相关关过过程程,,取取得得相相应应的的服服务     当应用程序中需要操作系统提供服务时,如请当应用程序中需要操作系统提供服务时,如请求求I/O资源或执行资源或执行I/O操作,应用程序必须使用系统操作,应用程序必须使用系统调用命令由操作系统捕获到该命令后,便将调用命令由操作系统捕获到该命令后,便将CPU的状态从用户态转换到系统态,然后执行操作系统的状态从用户态转换到系统态,然后执行操作系统中相应的子程序中相应的子程序(例程例程),完成所需的功能执行完成,完成所需的功能执行完成后,系统又将后,系统又将CPU状态从系统态转换到用户态,再状态从系统态转换到用户态,再继续执行应用程序继续执行应用程序     可可见见,,系系统统调调用用在在本本质质上上是是应应用用程程序序请请求求OSOS内内核核完完成成某某功功能能时时的的一一种种过过程程调调用用,,但但它它是是一一种种特特殊殊的的过过程程调调用用,,它它与与一一般般的的过过程程调调用用有有下下述述几几方方面面的的明显差别:明显差别: (1) (1) 运行运行在不同的系统状态。

一般的过程调用,在不同的系统状态一般的过程调用,其调用程序和被调用程序都运行在相同的状态其调用程序和被调用程序都运行在相同的状态——系统态或用户态;而系统调用与一般调用的最大区系统态或用户态;而系统调用与一般调用的最大区别就在于:调用程序是运行在用户态,而被调用程别就在于:调用程序是运行在用户态,而被调用程序是运行在系统态序是运行在系统态     (2) (2) 状状态态的的转转换换通通过过软软中中断断进进入入由由于于一一般般的的过过程程调调用用并并不不涉涉及及到到系系统统状状态态的的转转换换,,可可直直接接由由调调用用过过程程转转向向被被调调用用过过程程但但在在运运行行系系统统调调用用时时,,由由于于调调用用和和被被调调用用过过程程是是工工作作在在不不同同的的系系统统状状态态,,因因而而不不允允许许由由调调用用过过程程直直接接转转向向被被调调用用过过程程通通常常都都是是通通过过软软中中断断机机制制,,先先由由用用户户态态转转换换为为系系统统态态,,经经核心分析后,才能转向相应的系统调用处理子程序核心分析后,才能转向相应的系统调用处理子程序    (3) (3) 返回问题返回问题在采用了抢占式在采用了抢占式(剥夺剥夺)调度方式调度方式的系统中,在被调用过程执行完后,要对系统中所的系统中,在被调用过程执行完后,要对系统中所有要求运行的进程做优先权分析。

当调用进程仍具有要求运行的进程做优先权分析当调用进程仍具有最高优先级时,才返回到调用进程继续执行;否有最高优先级时,才返回到调用进程继续执行;否则,将引起重新调度,以便让优先权最高的进程优则,将引起重新调度,以便让优先权最高的进程优先执行此时,将把调用进程放入就绪队列此时,将把调用进程放入就绪队列 (4) (4) 嵌套调用像一般过程一样,系统调用也嵌套调用像一般过程一样,系统调用也可以嵌套进行,即在一个被调用过程的执行期间,可以嵌套进行,即在一个被调用过程的执行期间,还可以利用系统调用命令去调用另一个系统调用还可以利用系统调用命令去调用另一个系统调用当然,每个系统对嵌套调用的深度都有一定的限制,当然,每个系统对嵌套调用的深度都有一定的限制,例如最大深度为例如最大深度为6但一般的过程对嵌套的深度则没但一般的过程对嵌套的深度则没有什么限制图有什么限制图7-3示出了没有嵌套及有嵌套的两种示出了没有嵌套及有嵌套的两种系统调用情况系统调用情况 图图7-3 系统功能的调用 系统功能的调用     3 3.中断机制.中断机制    系系统统调调用用是是通通过过中中断断机机制制实实现现的的,,并并且且一一个个操操作作系系统统的的所所有有系系统统调调用用都都通通过过同同一一个个中中断断入入口口来来实实现现。

如如MS-DOSMS-DOS提提供供了了INT INT 21H21H,,应应用用程程序序通通过过该该中中断断获取操作系统的服务获取操作系统的服务  对于拥有保护机制的操作系统来说,中断机制  对于拥有保护机制的操作系统来说,中断机制本身也是受保护的,在本身也是受保护的,在IBM PC上,上,Intel提供了多达提供了多达255 个中断号,但只有授权给应用程序保护等级的中个中断号,但只有授权给应用程序保护等级的中断号,才是可以被应用程序调用的对于未被授权断号,才是可以被应用程序调用的对于未被授权的中断号,如果应用程序进行调用,同样会引起保的中断号,如果应用程序进行调用,同样会引起保护异常,而导致自己被操作系统停止如护异常,而导致自己被操作系统停止如Linux 仅仅仅仅给应用程序授权了给应用程序授权了4 个中断号:个中断号:3、、4、、5以及以及80h,前,前三个中断号是提供给应用程序调试所使用的,而三个中断号是提供给应用程序调试所使用的,而80h正是系统调用正是系统调用(system call)的中断号的中断号 7.3.27.3.2 系统调用的类型 系统调用的类型    1 1.进程控制类系统调用.进程控制类系统调用    这这类类系系统统调调用用主主要要用用于于对对进进程程的的控控制制,,如如创创建建一一个个新新的的进进程程和和终终止止一一个个进进程程的的运运行行,,获获得得和和设设置置进进程程属性等。

属性等    1) 1) 创建和终止进程的系统调用创建和终止进程的系统调用  在多道程序环境下,为使多道程序能并发执行,  在多道程序环境下,为使多道程序能并发执行,必须先利用创建进程的系统调用来为欲参加并发执行必须先利用创建进程的系统调用来为欲参加并发执行的各程序分别创建一个进程当进程已经执行结束时、的各程序分别创建一个进程当进程已经执行结束时、 或因发生异常情况而不能继续执行时,可利用终止进或因发生异常情况而不能继续执行时,可利用终止进程的系统调用来结束该进程的运行程的系统调用来结束该进程的运行    2) 2) 获得和设置进程属性的系统调用获得和设置进程属性的系统调用  当我们创建了一个  当我们创建了一个(些些)新进程后,为了能控制新进程后,为了能控制它它(们们)的运行,应当能了解、的运行,应当能了解、 确定和重新设置它确定和重新设置它(们们)的属性这些属性包括的属性这些属性包括: 进程标识符、进程优先级、进程标识符、进程优先级、最大允许执行时间等此时,我们可利用获得进程最大允许执行时间等此时,我们可利用获得进程属性的系统调用,来了解某进程的属性,利用设置属性的系统调用,来了解某进程的属性,利用设置进程属性的系统调用,来确定和重新设置进程的属进程属性的系统调用,来确定和重新设置进程的属性。

性   3) 3) 等待某事件出现的系统调用等待某事件出现的系统调用  进程在运行过程中,有时需要等待某事件  进程在运行过程中,有时需要等待某事件(条件条件)出现后方可继续执行例如,一进程在创建了一个出现后方可继续执行例如,一进程在创建了一个(些些)新进程后,需要等待它新进程后,需要等待它(们们)运行结束后,才能继运行结束后,才能继续执行,此时可利用等待子进程结束的系统调用进续执行,此时可利用等待子进程结束的系统调用进行等待;又如,在客户行等待;又如,在客户/服务器模式中,若无任何客服务器模式中,若无任何客户向服务器发出消息,则服务器接收进程便无事可户向服务器发出消息,则服务器接收进程便无事可做,此时该进程就可利用等待做,此时该进程就可利用等待(事件事件)的系统调用,的系统调用,使自己处于等待状态,一旦有客户发来消息时,接使自己处于等待状态,一旦有客户发来消息时,接收进程便被唤醒,进行消息接收的处理收进程便被唤醒,进行消息接收的处理     2 2.文件操纵类系统调用.文件操纵类系统调用    对对文文件件进进行行操操纵纵的的系系统统调调用用数数量量较较多多,,有有创创建建文文件件、、删删除除文文件件、、打打开开文文件件、、关关闭闭文文件件、、读读文文件件、、写写文文件件、、建建立立目目录录、、移移动动文文件件的的读读/ /写写指指针针、、改改变变文文件的属性等。

件的属性等    1) 1) 创建和删除文件创建和删除文件  当用户需要在系统中存放程序或数据时,可利  当用户需要在系统中存放程序或数据时,可利用创建文件的系统调用用创建文件的系统调用creat,由系统根据用户提供,由系统根据用户提供的文件名和存取方式来创建一个新文件;当用户已的文件名和存取方式来创建一个新文件;当用户已不再需要某文件时,可利用删除文件的系统调用不再需要某文件时,可利用删除文件的系统调用unlink将指名文件删除将指名文件删除   2) 2) 打开和关闭文件打开和关闭文件  用户在第一次访问某个文件之前,应先利用打  用户在第一次访问某个文件之前,应先利用打开文件的系统调用开文件的系统调用open,将指名文件打开,即系统,将指名文件打开,即系统将在用户将在用户(程序程序)与该文件之间建立一条快捷通路与该文件之间建立一条快捷通路在文件被打开后,系统将给用户返回一个该文件的在文件被打开后,系统将给用户返回一个该文件的句柄或描述符;当用户不再访问某文件时,又可利句柄或描述符;当用户不再访问某文件时,又可利用关闭文件的系统调用用关闭文件的系统调用close,将此文件关闭,即断,将此文件关闭,即断开该用户程序与该文件之间的快捷通路。

开该用户程序与该文件之间的快捷通路    3) 3) 读和写文件读和写文件  用户可利用读系统调用  用户可利用读系统调用read,从已打开的文件,从已打开的文件中读出给定数目的字符,并送至指定的缓冲区中;中读出给定数目的字符,并送至指定的缓冲区中;同样,用户也可利用写系统调用同样,用户也可利用写系统调用write,从指定的缓,从指定的缓冲区中将给定数目的字符写入指定文件中冲区中将给定数目的字符写入指定文件中read和和write两个系统调用是文件操纵类系统调用中使用最两个系统调用是文件操纵类系统调用中使用最频繁的     3 3.进程通信类系统调用.进程通信类系统调用  在  在OS中经常采用两种进程通信方式,即消息传中经常采用两种进程通信方式,即消息传递方式和共享存储区方式当系统中采用消息传递递方式和共享存储区方式当系统中采用消息传递方式时,在通信前,必须先打开一个连接为此,方式时,在通信前,必须先打开一个连接为此,应由源进程发出一条打开连接的系统调用应由源进程发出一条打开连接的系统调用open connection,而目标进程则应利用接受连接的系统调,而目标进程则应利用接受连接的系统调用用accept connection表示同意进行通信;然后,在源表示同意进行通信;然后,在源和目标进程之间便可开始通信。

可以利用发送消息和目标进程之间便可开始通信可以利用发送消息的系统调用的系统调用send message或者用接收消息的系统调或者用接收消息的系统调用用receive message来交换信息通信结束后,还须来交换信息通信结束后,还须再利用关闭连接的系统调用再利用关闭连接的系统调用close connection结束通结束通信   用用户户在在利利用用共共享享存存储储区区进进行行通通信信之之前前,,须须先先利利用用建建立立共共享享存存储储区区的的系系统统调调用用来来建建立立一一个个共共享享存存储储区区,,再再利利用用建建立立连连接接的的系系统统调调用用将将该该共共享享存存储储区区连连接接到到进进程程自自身身的的虚虚地地址址空空间间上上,,然然后后便便可可利利用用读读和和写写共共享存储区的系统调用实现相互通信享存储区的系统调用实现相互通信  除上述的三类外,常用的系统调用还包括设备  除上述的三类外,常用的系统调用还包括设备管理类系统调用和信息维护类系统调用,前者主要管理类系统调用和信息维护类系统调用,前者主要用于实现申请设备、释放设备、设备用于实现申请设备、释放设备、设备I/O 和重定向、和重定向、获得和设置设备属性、逻辑上连接和释放设备等功获得和设置设备属性、逻辑上连接和释放设备等功能,后者主要用来获得包括有关系统和文件的时间、能,后者主要用来获得包括有关系统和文件的时间、日期信息、操作系统版本、当前用户以及有关空闲日期信息、操作系统版本、当前用户以及有关空闲内存和磁盘空间大小等多方面的信息。

内存和磁盘空间大小等多方面的信息 7.3.3 POSIX7.3.3 POSIX标准标准    目目前前许许多多操操作作系系统统都都提提供供了了上上面面所所介介绍绍的的各各种种类类型型的的系系统统调调用用,,实实现现的的功功能能也也相相类类似似,,但但在在实实现现的的细细节节和和形形式式方方面面却却相相差差很很大大,,这这种种差差异异给给实实现现应应用用程程序序与与操操作作系系统统平平台台的的无无关关性性带带来来了了很很大大的的困困难难为为解解决决这这一一问问题题,,国国际际标标准准化化组组织织ISOISO给给出出的的有有关关系系统统调调用用的的 国国 际际 标标 准准 POSIX1003.1(Portable POSIX1003.1(Portable Operating Operating System System IX)IX),,也也称称为为““基基于于UNIX UNIX 的的可可移移植植操操作作系系统统接口接口””    POSIX 定义了标准应用程序接口定义了标准应用程序接口(API),用于保,用于保证编制的应用程序可以在源代码一级上在多种操作系证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。

只有符合这一标准的应用程序,才有统上移植运行只有符合这一标准的应用程序,才有可能完全兼容多种操作系统,即在多种操作系统下都可能完全兼容多种操作系统,即在多种操作系统下都能够运行能够运行   POSIX 标准定义了一组过程,这组过程是构造标准定义了一组过程,这组过程是构造系统调用所必须的通过调用这些过程所提供的服系统调用所必须的通过调用这些过程所提供的服务,确定了一系列系统调用的功能一般而言,在务,确定了一系列系统调用的功能一般而言,在POSIX标准中,大多数的系统调用是一个系统调用标准中,大多数的系统调用是一个系统调用直接映射一个过程,但也有一个系统调用对应若干直接映射一个过程,但也有一个系统调用对应若干个过程的情形,如一个系统调用所需要的过程是其个过程的情形,如一个系统调用所需要的过程是其它系统调用的组合或变形时,它系统调用的组合或变形时, 则往往会对应多个过则往往会对应多个过程   需要明确的是,需要明确的是,POSIX标准所定义的一组过程标准所定义的一组过程虽然指定了系统调用的功能,但并没有明确规定系虽然指定了系统调用的功能,但并没有明确规定系统调用是以什么形式实现的,是库函数还是其它形统调用是以什么形式实现的,是库函数还是其它形式。

如早期操作系统的系统调用使用汇编语言编写,式如早期操作系统的系统调用使用汇编语言编写,这时的系统调用可看成是扩展的机器指令,因而,这时的系统调用可看成是扩展的机器指令,因而,能在汇编语言编程中直接使用而在一些高级语言能在汇编语言编程中直接使用而在一些高级语言或或C语言中,尤其是最新推出的一些操作系统,如语言中,尤其是最新推出的一些操作系统,如UNIX新版本、新版本、Linux、、Windows 和和OS/2 等,其系等,其系统调用干脆用统调用干脆用C语言编写,并以库函数形式提供,语言编写,并以库函数形式提供,所以在用所以在用C 语言编制的应用程序中,可直接通过使语言编制的应用程序中,可直接通过使用对应的库函数来使用系统调用,库函数的目的是用对应的库函数来使用系统调用,库函数的目的是隐藏访管指令的细节,使系统调用更像过程调用隐藏访管指令的细节,使系统调用更像过程调用但一般地说,库函数属于用户程序而非系统调用程但一般地说,库函数属于用户程序而非系统调用程序如图7-4示出了示出了UNIX/Linux的系统程序、库函的系统程序、库函数、系统调用的层次关系数、系统调用的层次关系 图图7-4 Unix/Linux系统程序、库函数、系统调用的分层关系系统程序、库函数、系统调用的分层关系 7.3.4 7.3.4 系统调用的实现系统调用的实现    1 1.中断和陷入硬件机构.中断和陷入硬件机构    1) 1) 中断和陷入的概念中断和陷入的概念    中中断断是是指指CPUCPU对对系系统统发发生生某某事事件件时时的的这这样样一一种种响响应应: : CPUCPU暂暂停停正正在在执执行行的的程程序序,,在在保保留留现现场场后后自自动动地地转转去去执执行行该该事事件件的的中中断断处处理理程程序序;;执执行行完完后后,,再再返返回回到到原原程程序序的的断断点点处处继继续续执执行行。

图图7-57-5表表示示中中断断时时CPUCPU的的活活动动轨轨迹迹还还可可进进一一步步把把中中断断分分为为外外中中断和内中断断和内中断 所所谓谓外外中中断断,,是是指指由由于于外外部部设设备备事事件件所所引引起起的的中中断断,,如如通通常常的的磁磁盘盘中中断断、、打打印印机机中中断断等等;;而而内内中中断断则则是是指指由由于于CPU内内部部事事件件所所引引起起的的中中断断,,如如程程序序出出错错(非非法法指指令令、、地地址址越越界界)、、电电源源故故障障等等内内中中断断(trap)也也被被译译为为“捕捕获获”或或“陷陷入入”通通常常,,陷陷入入是是由由于于执执行行了了现现行行指指令令所所引引起起的的;;而而中中断断则则是是由由于于系系统统中中某某事事件件引引起起的的,,该该事事件件与与现现行行指指令令无无关关由由于于系系统统调调用用引引起起的的中中断断属属于于内内中中断断,,因因此此把把由由于于系系统统调调用用引引起起中中断断的指令称为陷入指令的指令称为陷入指令 图图7-5 中断时的中断时的CPU轨迹轨迹   2) 2) 中断和陷入向量中断和陷入向量  为了处理上的方便,通常都是针对不同的设备编制  为了处理上的方便,通常都是针对不同的设备编制不同的中断处理程序,并把该程序的入口地址放在某特不同的中断处理程序,并把该程序的入口地址放在某特定的内存单元中。

此外,不同的设备也对应着不同的处定的内存单元中此外,不同的设备也对应着不同的处理机状态字理机状态字PSW,且把它放在与中断处理程序入口指,且把它放在与中断处理程序入口指针相邻接的特定单元中在进行中断处理时,只要有了针相邻接的特定单元中在进行中断处理时,只要有了这样两个字,便可转入相应设备的中断处理程序,重新这样两个字,便可转入相应设备的中断处理程序,重新装配处理机的状态字和优先级,进行对该设备的处理装配处理机的状态字和优先级,进行对该设备的处理因此,我们把这两个字称为中断向量相应地,把存放因此,我们把这两个字称为中断向量相应地,把存放这两个字的单元称为中断向量单元类似地,对于陷入,这两个字的单元称为中断向量单元类似地,对于陷入,也有陷入向量,不同的系统调用对应不同的陷入向量,也有陷入向量,不同的系统调用对应不同的陷入向量,在进行陷入处理时,根据陷入指令中的陷入向量,转入在进行陷入处理时,根据陷入指令中的陷入向量,转入实现相应的系统调用功能的子程序,即陷入处理程序实现相应的系统调用功能的子程序,即陷入处理程序由所有的中断向量和陷入向量构成了中断和陷入向量表,由所有的中断向量和陷入向量构成了中断和陷入向量表,如图如图7-6所示。

所示 图图7-6 中断向量与陷入向量 中断向量与陷入向量 (a) 中断向量 (b) 陷入向量    2 2.系统调用号和参数的设置.系统调用号和参数的设置  往往在一个系统中设置了许多条系统调用,并赋  往往在一个系统中设置了许多条系统调用,并赋予每条系统调用一个唯一的系统调用号在系统调用予每条系统调用一个唯一的系统调用号在系统调用命令命令(陷入指令陷入指令)中把相应的系统调用号传递给中断和中把相应的系统调用号传递给中断和陷入机制的方法有很多种,在有的系统中,直接把系陷入机制的方法有很多种,在有的系统中,直接把系统调用号放在系统调用命令统调用号放在系统调用命令(陷入指令陷入指令)中;如中;如 IBM 370和早期的和早期的UNIX系统,是把系统调用命令的低系统,是把系统调用命令的低8位位用于存放系统调用号;在另一些系统中,则将系统调用于存放系统调用号;在另一些系统中,则将系统调用号装入某指定寄存器或内存单元中,如用号装入某指定寄存器或内存单元中,如MS-DOS是是将系统调用号放在将系统调用号放在AH寄存器中,寄存器中,Linux则是利用则是利用EAX寄存器来存放应用程序传递的系统调用号。

寄存器来存放应用程序传递的系统调用号   每每一一条条系系统统调调用用都都含含有有若若干干个个参参数数,,在在执执行行系系统统调调用用时时,,如如何何设设置置系系统统调调用用所所需需的的参参数数,,即即如如何何将将这这些些参参数数传传递递给给陷陷入入处处理理机机构构和和系系统统内内部部的的子子程程序序( (过过程程) ),常用的实现方式有以下几种:,常用的实现方式有以下几种:    (1) (1) 陷入指令自带方式陷入指令除了携带一个陷入指令自带方式陷入指令除了携带一个系统调用号外,还要自带几个参数进入系统内部,由系统调用号外,还要自带几个参数进入系统内部,由于一条陷入指令的长度是有限的,因此自带的只能是于一条陷入指令的长度是有限的,因此自带的只能是少量的、有限的参数少量的、有限的参数    (2) (2) 直直接接将将参参数数送送入入相相应应的的寄寄存存器器中中MS-DOSMS-DOS便便是是采采用用的的这这种种方方式式,,即即用用MOVMOV指指令令将将各各个个参参数数送送入入相相应应的的寄寄存存器器中中系系统统程程序序和和应应用用程程序序显显然然应应是是都都可可以以访访问问这这种种寄寄存存器器的的。

这这种种方方式式的的主主要要问问题题是是由由于于这这种种寄存器数量有限,因而限制了所设置参数的数目寄存器数量有限,因而限制了所设置参数的数目    (3) (3) 参数表方式将系统调用所需的参数放入一参数表方式将系统调用所需的参数放入一张参数表中,再将指向该参数表的指针放在某个指定张参数表中,再将指向该参数表的指针放在某个指定的寄存器中当前大多数的的寄存器中当前大多数的OS中,如中,如UNIX系统和系统和Linux系统,便是采用了这种方式该方式又可进一系统,便是采用了这种方式该方式又可进一步分成直接和间接两种方式,如图步分成直接和间接两种方式,如图7-7所示在直接所示在直接参数方式中,所有的参数值和参数的个数参数方式中,所有的参数值和参数的个数N,都放入,都放入一张参数表中;而在间接参数方式中,则在参数表中一张参数表中;而在间接参数方式中,则在参数表中仅存放参数个数和指向真正参数数据表的指针仅存放参数个数和指向真正参数数据表的指针 图图7-7 系统调用的参数形式 系统调用的参数形式   3 3.系统调用的处理步骤.系统调用的处理步骤    在在设设置置了了系系统统调调用用号号和和参参数数后后,,便便可可执执行行一一条条系系统统调调用用命命令令。

不不同同的的系系统统可可采采用用不不同同的的执执行行方方式式在在UNIXUNIX系系统统中中,,是是执执行行CHMKCHMK命命令令;;而而在在MS-DOSMS-DOS中中则则是执行是执行INT 21INT 21软中断  系统调用的处理过程可分成以下三步:首先,  系统调用的处理过程可分成以下三步:首先,将处理机状态由用户态转为系统态;之后,由硬件将处理机状态由用户态转为系统态;之后,由硬件和内核程序进行系统调用的一般性处理,即首先保和内核程序进行系统调用的一般性处理,即首先保护被中断进程的护被中断进程的CPU环境,将处理机状态字环境,将处理机状态字PSW、、程序计数器程序计数器PC、系统调用号、用户栈指针以及通用、系统调用号、用户栈指针以及通用寄存器内容等,压入堆栈;然后,将用户定义的参寄存器内容等,压入堆栈;然后,将用户定义的参数传送到指定的地址保存起来数传送到指定的地址保存起来   其其次次,,是是分分析析系系统统调调用用类类型型,,转转入入相相应应的的系系统统调调用用处处理理子子程程序序为为使使不不同同的的系系统统调调用用能能方方便便地地转转向向相相应应的的系系统统调调用用处处理理子子程程序序,,在在系系统统中中配配置置了了一一张张系系统统调调用用入入口口表表。

表表中中的的每每个个表表目目都都对对应应一一条条系系统统调调用用,,其其中中包包含含该该系系统统调调用用自自带带参参数数的的数数目目、、系系统统调调用用处处理理子子程程序序的的入入口口地地址址等等因因此此,,核核心心可可利利用用系系统统调调用用号号去去查查找找该该表表,,即即可可找找到到相相应应处处理理子子程程序序的的入入口口地地址址而而转去执行它转去执行它  最后,在系统调用处理子程序执行完后,应恢复  最后,在系统调用处理子程序执行完后,应恢复被中断的或设置新进程的被中断的或设置新进程的CPU现场,然后返回被中断现场,然后返回被中断进程或新进程,继续往下执行进程或新进程,继续往下执行    4 4.系统调用处理子程序的处理过程.系统调用处理子程序的处理过程  系统调用的功能主要是由系统调用子程序来  系统调用的功能主要是由系统调用子程序来完成的对于不同的系统调用,其处理程序将执完成的对于不同的系统调用,其处理程序将执行不同的功能我们以一条在文件操纵中常用的行不同的功能我们以一条在文件操纵中常用的Creat命令为例来说明之命令为例来说明之   进入进入c creat的处理子程序后,核心将根据用户给的处理子程序后,核心将根据用户给定的文件路径名定的文件路径名Path,利用目录检索过程去查找指,利用目录检索过程去查找指定文件的目录项。

查找目录的方式可以用顺序查找定文件的目录项查找目录的方式可以用顺序查找法,也可用法,也可用Hash查找法如果在文件目录中找到了查找法如果在文件目录中找到了指定文件的目录项,表示用户要利用一个已有文件指定文件的目录项,表示用户要利用一个已有文件来建立一个新文件但如果在该已有来建立一个新文件但如果在该已有(存存)文件的属性文件的属性中有不允许写属性,或者创建者不具有对该文件进中有不允许写属性,或者创建者不具有对该文件进行修改的权限,便认为是出错而做出错处理;若不行修改的权限,便认为是出错而做出错处理;若不存在访问权限问题,便将已存文件的数据盘块释放存在访问权限问题,便将已存文件的数据盘块释放掉,准备写入新的数据文件如未找到指名文件,掉,准备写入新的数据文件如未找到指名文件,则表示要创建一个新文件,核心便从其目录文件中则表示要创建一个新文件,核心便从其目录文件中找出一个空目录项,并初始化该目录项,包括填写找出一个空目录项,并初始化该目录项,包括填写文件名、文件属性、文件建立日期等,然后将新建文件名、文件属性、文件建立日期等,然后将新建文件打开文件打开 7.4  UNIX系统调用系统调用 7.4.17.4.1  UNIXUNIX系统调用的类型系统调用的类型    1 1.进程控制.进程控制    该该类类系系统统调调用用包包括括::创创建建进进程程的的系系统统调调用用forkfork、、终终止止进进程程的的系系统统调调用用exitexit、、等等待待子子进进程程结结束束的的系系统统调调用用waitwait等十多条。

等十多条    (1) (1) 创建进程创建进程(fork)(fork)一个进程可以利用一个进程可以利用fork系系统调用来创建一个新进程新进程是作为调用者的子统调用来创建一个新进程新进程是作为调用者的子进程,它继承了其父进程的环境、进程,它继承了其父进程的环境、 已打开的所有文件、已打开的所有文件、根目录和当前目录等,即它继承了父进程几乎所有的根目录和当前目录等,即它继承了父进程几乎所有的属性,并具有与其父进程基本上相同的进程映像属性,并具有与其父进程基本上相同的进程映像   (2) (2) 终终止止进进程程(exit)(exit)一一个个进进程程可可以以利利用用exitexit实实现现自自我我终终止止通通常常,,在在父父进进程程创创建建子子进进程程时时,,便便在在子子进进程程的的末末尾尾安安排排一一条条exitexit系系统统调调用用这这样样,,子子进进程程在在完完成成规规定定的的任任务务后后,,便便可可进进行行自自我我终终止止子子进进程程终终止止后后,,留留下下一一记记账账信信息息statusstatus,,其其中中包包含含了了子子进进程程运运行行时记录下来的各种统计信息时记录下来的各种统计信息。

    (3) (3) 等待子进程结束等待子进程结束(wait)(wait)wait用于将调用者用于将调用者进程自身挂起,直至它的某一子进程终止为止这样,进程自身挂起,直至它的某一子进程终止为止这样,父进程可以利用父进程可以利用wait使自身的执行与子进程的终止同使自身的执行与子进程的终止同步   (4) (4) 执执行行一一个个文文件件(exec)(exec) execexec可可使使调调用用者者进进程程的的进进程程映映像像( (包包括括用用户户程程序序和和数数据据等等) )被被一一个个可可执执行行的的文文件件覆覆盖盖,,此此即即改改变变调调用用者者进进程程的的进进程程映映像像该系统调用是该系统调用是UNIXUNIX系统中最复杂的系统调用之一系统中最复杂的系统调用之一    (5) (5) 获得进程获得进程IDIDUNIX系统提供了一组用于获系统提供了一组用于获得进程标识符的系统调用,比如,可利用得进程标识符的系统调用,比如,可利用getp-id系系统调用来获得调用进程的标识符,利用统调用来获得调用进程的标识符,利用getpgrp系统系统调用来获得调用进程的进程组调用来获得调用进程的进程组ID,以及利用,以及利用getppid系统调用来获得调用进程的父进程系统调用来获得调用进程的父进程ID等。

等   (6) (6) 获获得得用用户户IDIDUNIXUNIX系系统统提提供供了了一一组组用用于于获获得得用用户户IDID的的系系统统调调用用,,如如getuidgetuid可可用用于于获获得得真真正正的的用用户户IDID,,geteuidgeteuid用用于于获获得得有有效效用用户户IDID,,getgidgetgid用用于于获得真正用户组获得真正用户组IDID等    (7) (7) 进程暂停进程暂停(pause)(pause)可用此系统调用将调用可用此系统调用将调用进程挂起,直至它收到一个信号为止进程挂起,直至它收到一个信号为止    2 2.文件操纵.文件操纵    (1) (1) 创建文件创建文件(creat)(creat)系统调用系统调用creat的功能的功能是根据用户提供的文件名和许可权方式,来创建一是根据用户提供的文件名和许可权方式,来创建一个新文件或重写一个已存文件如果系统中不存在个新文件或重写一个已存文件如果系统中不存在指名文件,核心便以给定的文件名和许可权方式来指名文件,核心便以给定的文件名和许可权方式来创建一个新文件;如果系统中已有同名文件,核心创建一个新文件;如果系统中已有同名文件,核心便释放其已有的数据块。

创建后的文件随即被打开,便释放其已有的数据块创建后的文件随即被打开,并返回其文件描述符并返回其文件描述符fd若creat执行失败,便返回执行失败,便返回““-1””   (2) (2) 打开文件打开文件(open)(open)设置系统调用设置系统调用open的目的目的,是为了方便用户及简化系统的处理的,是为了方便用户及简化系统的处理open的功的功能是把有关的文件属性从磁盘拷贝到内存中,以及能是把有关的文件属性从磁盘拷贝到内存中,以及在用户和指名文件之间建立一条快捷的通路,并给在用户和指名文件之间建立一条快捷的通路,并给用户返回一个文件描述符用户返回一个文件描述符fd文件被打开后,用户文件被打开后,用户对文件的任何操作都只须使用对文件的任何操作都只须使用fd而非路径名而非路径名   (3) (3) 关关闭闭文文件件(close)(close)当当把把一一个个文文件件用用毕毕且且暂暂不不访访问问时时,,可可调调用用closeclose将将文文件件关关闭闭,,即即断断开开用用户户程程序序与与该该文文件件之之间间已已经经建建立立的的快快捷捷通通路路在在UNIXUNIX系系统统中中,,由由于于允允许许一一个个文文件件被被多多个个进进程程所所共共享享,,故故只只有有在在无无其其他他任任何何进进程程需需要要此此文文件件时时,,或或者者说说,,在在对对其其索索引引结结点点中中的的访访问问计计数数i-counti-count执执行行减减1 1操操作作后后其其值值为为0 0,,表表示示已已无无进进程程再再访访问问该该文文件件时,才能真正关闭该文件。

时,才能真正关闭该文件     (4) (4) 读和写文件读和写文件readread和和writewrite仅当用户利用仅当用户利用open打开指定文件后,方可调用打开指定文件后,方可调用read或或write对文件对文件执行读或写操作两个系统调用都要求用户提供三个执行读或写操作两个系统调用都要求用户提供三个输入参数输入参数: ①① 文件描述符文件描述符fd② buf② buf缓冲区首址对缓冲区首址对读而言,这是用户所要求的信息传送的目标地址;对读而言,这是用户所要求的信息传送的目标地址;对写而言,这则是信息传送的源地址写而言,这则是信息传送的源地址③ ③ 用户要求传用户要求传送的字节数送的字节数n byten byte  系统调用  系统调用read的功能是试图从的功能是试图从fd所指示的文件中所指示的文件中去读入去读入n byte个字节的数据,并将它们送至由指针个字节的数据,并将它们送至由指针buf所指示的缓冲区中;系统调用所指示的缓冲区中;系统调用write的功能是试图的功能是试图把把n byte个字节数据,从指针个字节数据,从指针buf所指示的缓冲区中所指示的缓冲区中写到由写到由fd所指向的文件中。

所指向的文件中   (5) (5) 连接和去连接连接和去连接(link(link和和unlink)unlink)为了实现为了实现文件共享,必须记住所有共享该文件的用户数目文件共享,必须记住所有共享该文件的用户数目为此,在该文件的索引结点中设置了一个连接计数为此,在该文件的索引结点中设置了一个连接计数i.link每当有一用户要共享某文件时,须利用系统每当有一用户要共享某文件时,须利用系统调用调用link来建立该用户来建立该用户(进程进程)与此文件之间的连接,与此文件之间的连接,并对并对i.link做加做加1操作当用户不再使用此文件时,操作当用户不再使用此文件时,应利用系统调用应利用系统调用unlink去断开此连接,亦即做去断开此连接,亦即做i.link的减的减1操作当i.link减减1后结果为后结果为0时,表示已无用时,表示已无用户需要此文件,此时才能将该文件从文件系统中删户需要此文件,此时才能将该文件从文件系统中删除故在UNIX系统中并无一条删除文件的系统调用系统中并无一条删除文件的系统调用     3 3.进程间的通信.进程间的通信    为为了了实实现现进进程程间间的的通通信信,,在在UNIXUNIX系系统统中中提提供供了了一一个个用用于于进进程程间间通通信信的的软软件件包包,,简简称称IPCIPC。

它它由由消消息息机机制制、、共共享享存存储储器器机机制制和和信信号号量量机机制制三三部部分分组组成成在在每每一一种种通通信信机机制制中中,,都都提提供供了了相相应应的的系系统统调调用用供供用用户户程程序进行进程间的同步与通信之用序进行进程间的同步与通信之用    (1)(1) 消息机制用户消息机制用户(进程进程)在利用消息机制进行在利用消息机制进行通信时,必须先利用通信时,必须先利用msgget系统调用来建立一个消息系统调用来建立一个消息队列若成功,便返回消息队列描述符队列若成功,便返回消息队列描述符msgid,以后,以后用户便可利用用户便可利用msgid去访问该消息队列用户去访问该消息队列用户(进程进程)可利用发送消息的系统调用可利用发送消息的系统调用msgsend向用户指定的消向用户指定的消息队列发送消息;利用息队列发送消息;利用msgrcv系统调用从指定的消系统调用从指定的消息队列中接收指定类型的消息息队列中接收指定类型的消息   (2) (2) 共共享享存存储储器器机机制制当当用用户户( (进进程程) )要要利利用用共共享享存存储储器器机机制制进进行行通通信信时时,,必必须须先先利利用用shmgetshmget系系统统调调用用来来建建立立一一个个共共享享存存储储区区,,若若成成功功,,便便返返回回该该共共享享存存储储区区描描述述符符shmidshmid。

以以后后,,用用户户便便可可利利用用shmidshmid去去访访问问该该共共享享存存储储区区进进程程在在建建立立了了共共享享存存储储区区之之后后,,还还必必须须再再利利用用shmatshmat将将该该共共享享存存储储区区连连接接到到本本进进程程的的虚虚地地址址空空间间上上以以后后,,在在进进程程之之间间便便可可利利用用该该共共享享存存储储区区进进行行通通信信当当进进程程不不再再需需要要该该共共享享存存储储区区时时,,可可利利用用shmdtshmdt系统调用来拆除进程与共享存储区间的连接系统调用来拆除进程与共享存储区间的连接    (3)(3) 信号量机制在信号量机制在UNIX系统中所采用的信号系统中所采用的信号量机制,与第二章中所介绍的一般信号量集机制相似,量机制,与第二章中所介绍的一般信号量集机制相似,允许将一组信号量形成一个信号量集,并对这组信号允许将一组信号量形成一个信号量集,并对这组信号量施以原子操作,详见第十章量施以原子操作,详见第十章    4 4.信息维护.信息维护    在在UNIXUNIX系系统统中中,,设设置置了了许许多多条条用用于于系系统统维维护护的的系系统调用。

统调用    (1) (1) 设设置置和和获获得得时时间间超超级级用用户户可可利利用用设设置置时时间间的的系系统统调调用用(stime)(stime),,来来设设置置系系统统的的日日期期和和时时间间如如果果调调用用进进程程并并非非超超级级用用户户,,则则stimestime失失败败一一般般用用户户可可利利用用获获得得时时间间的的系系统统调调用用timetime来来获获得得当当前前的的日日期期和和时间    (2)(2) 获得进程和子进程时间获得进程和子进程时间(times)利用该系统利用该系统调用可获得进程及其子进程所使用的调用可获得进程及其子进程所使用的CPU时间,其中时间,其中包括调用进程在用户空间执行指令所花费的时间,系包括调用进程在用户空间执行指令所花费的时间,系统为调用进程所花费的统为调用进程所花费的CPU时间、子进程在用户空间时间、子进程在用户空间所用的所用的CPU时间、系统为各子进程所花费的时间、系统为各子进程所花费的CPU时间时间等,并可将这些时间填写到一个指定的缓冲区等,并可将这些时间填写到一个指定的缓冲区   (3) (3) 设设置置文文件件访访问问和和修修改改时时间间(utime)(utime)。

该该系系统统调调用用用用于于设设置置指指名名文文件件被被访访问问和和修修改改的的时时间间如如果果该该系系统统调调用用的的参参数数timestimes为为NULLNULL时时,,文文件件主主和和对对该该文文件件具具有有写写权权限限的的用用户户,,可可将将对对该该文文件件的的访访问问和和修修改改时时间间设设置置为为当当前前时时间间;;如如果果timestimes不不为为NULLNULL,,则则把把timestimes解解释释为为指指向向utim utim bufbuf结结构构的的指指针针,,此此时时,,文文件件主主和和超超级级用用户户能能将将访访问问时时间间和和修修改改时时间间置置入入utim utim bufbuf结构中    (4)(4) 获得当前获得当前UNIX系统的名称系统的名称(uname)利用该系统调用可将有关该系统调用可将有关UNIX系统的信息存储在系统的信息存储在utsname结构中 这些信息包括这些信息包括UNIX系统名称的字系统名称的字符串、系统在网络中的名称、符串、系统在网络中的名称、 硬件的标准名称等硬件的标准名称等    7.4.27.4.2 被中断进程的环境保护 被中断进程的环境保护    1 1..CPUCPU环境保护环境保护  当用户程序处在用户态,且在执行系统调用命  当用户程序处在用户态,且在执行系统调用命令令(即即CHMK命令命令)之前,应在用户空间提供系统调之前,应在用户空间提供系统调用所需的参数表,并将该参数表的地址送入用所需的参数表,并将该参数表的地址送入R0寄存寄存器。

在执行器在执行CHMK命令后,处理机将由用户态转为命令后,处理机将由用户态转为核心态,并由硬件自动地将处理机状态长字核心态,并由硬件自动地将处理机状态长字(PSL)、、程序计数器程序计数器(PC)和代码操作数和代码操作数(code)压入用户核心栈,压入用户核心栈,继而从中断和陷入向量表中取出继而从中断和陷入向量表中取出trap.S的入口地址,的入口地址,然后便转入中断和陷入总控程序然后便转入中断和陷入总控程序trap.S中执行   trap.Strap.S程程序序执执行行后后,,继继续续将将陷陷入入类类型型typetype和和用用户户栈栈指指针针uspusp压压入入用用户户核核心心栈栈,,接接着着还还要要将将被被中中断断进进程程的的CPUCPU环环境境中中的的一一系系列列寄寄存存器器如如R0R0~~R11R11的的部部分分或或全全部部内内容容压压入入栈栈中中至至于于哪哪些些寄寄存存器器的的内内容容要要压压入入栈栈中中,,这这取取决决于于特特定定寄寄存存器器中中的的屏屏蔽蔽码码,,该该屏屏蔽蔽码码的的每每一一位位都都与与R0~~R11中中的的一一个个寄寄存存器器相相对对应应当当某某一位置成一位置成1时,表示对应寄存器的内容应压入栈中。

时,表示对应寄存器的内容应压入栈中    2 2..APAP和和FPFP指针指针    为为了了实实现现系系统统调调用用的的嵌嵌套套使使用用,,在在系系统统中中还还设设置置了了两两个个指指针针,,其其一一是是系系统统调调用用参参数数表表指指针针APAP,,用用于于指指示示正正在在执执行行的的系系统统调调用用所所需需参参数数表表的的地地址址,,通通常常是是把把该该地地址址放放在在某某个个寄寄存存器器中中,,例例如如放放在在R12R12中中;;再再者者,,还还须须设设置置一一个个调调用用栈栈帧帧指指针针所所谓谓调调用用栈栈帧帧( (或或简简称称栈栈帧帧) ),,是是指指每每个个系系统统调调用用需需要要保保存存而而被被压压入入用用户户核核心心栈栈的的所所有有数数据据项项;;而而栈栈帧帧指指针针FPFP,,则则是是用用于于指指示示本本次次系系统统调调用用所所保保存存的的数数据据项项每每当当出出现现新新的的系系统统调调用用时时,,还还须须将将APAP和和FPFP压压入入栈栈中中图图7-87-8示示出了在出了在trap.Strap.S总控程序执行后,用户核心栈的情况总控程序执行后,用户核心栈的情况。

  当  当trap.S完成被中断进程的完成被中断进程的CPU环境和环境和AP及及FP指针的保存后,将会调用由指针的保存后,将会调用由C语言书写的公共处理程语言书写的公共处理程序序trap.C,以继续处理本次的系统调用所要完成的公,以继续处理本次的系统调用所要完成的公共处理部分共处理部分 图图7-8 用户核心栈 用户核心栈 7.4.37.4.3 系统调用陷入后需处理的公共问题 系统调用陷入后需处理的公共问题    1 1.确定系统调用号.确定系统调用号    由由上上所所述述得得知知,,在在中中断断和和陷陷入入发发生生后后,,是是先先经经硬硬件件陷陷入入机机构构予予以以处处理理,,再再进进入入trap.Strap.S,,然然后后再再调调用用trap.Ctrap.C继续处理其调用形式为:继续处理其调用形式为:    trap(usp,,type,,code,,PC,,PSL) 其其中中,,参参数数PSLPSL为为陷陷入入时时处处理理机机状状态态字字长长,,PCPC为为程程序序计计数数器器,,codecode为为代代码码操操作作数数,,typetype为为陷陷入入类类型型号号,,uspusp为为用用户户栈栈指指针针。

对对陷陷入入的的处处理理可可分分为为多多种种情情况况,,如如果果陷陷入入是是由由于于系系统统调调用用所所引引起起的的,,则则对对此此陷陷入入的的第第一一步步处处理理,,便便是是确确定定系系统统调调用用号号通通常常,,系系统统调调用用号号是是包包含含在在代代码码操操作作数数中中,,故故可可利利用用codecode来来确确定定系统调用号系统调用号i i其方法是令其方法是令      i=code & 0377i=code & 0377若若0

由于用户程序在执行系统调用命令之处理程序使用由于用户程序在执行系统调用命令之前,已将参数表的首址放入前,已将参数表的首址放入R0寄存器中,在进入寄存器中,在进入trap.C程序后,该程序便将该首址赋予程序后,该程序便将该首址赋予U.U-arg指针,指针,因此,因此,trap.C在处理参数传送时,可读取该指针的内在处理参数传送时,可读取该指针的内容,以获得用户所提供的参数表,并将之送至容,以获得用户所提供的参数表,并将之送至U.U-arg中应当注意,对于不同的系统调用,所需传送中应当注意,对于不同的系统调用,所需传送参数的个数并不相同,参数的个数并不相同,trap.C程序应根据在系统调用程序应根据在系统调用定义表中所规定的参数个数来进行传送,最多允许定义表中所规定的参数个数来进行传送,最多允许10个参数     3 3.利用系统调用定义表转入相应的处理程序.利用系统调用定义表转入相应的处理程序  在  在UNIX系统中,对于不同系统中,对于不同(编号编号)的系统调用,都的系统调用,都设置了与之相应的处理子程序为使不同的系统调用设置了与之相应的处理子程序为使不同的系统调用能方便地转入其相应的处理子程序,也将各处理子程能方便地转入其相应的处理子程序,也将各处理子程序的入口地址放入了系统调用定义表即序的入口地址放入了系统调用定义表即Sysent[]中。

中该表实际上是一个结构数组,在每个结构中包含三个该表实际上是一个结构数组,在每个结构中包含三个元素,其中第一个元素是相应系统调用所需参数的个元素,其中第一个元素是相应系统调用所需参数的个数;第二个元素是系统调用经寄存器传送的参数个数;数;第二个元素是系统调用经寄存器传送的参数个数;第三个元素是相应系统调用处理子程序的入口地址第三个元素是相应系统调用处理子程序的入口地址在系统中设置了该表之后,便可根据系统调用号在系统中设置了该表之后,便可根据系统调用号i从系从系统调用定义表中找出相应的表目,再按照表目中的入统调用定义表中找出相应的表目,再按照表目中的入口地址转入相应的处理子程序,由该程序去完成相应口地址转入相应的处理子程序,由该程序去完成相应系统调用的特定功能在该子程序执行完后,仍返回系统调用的特定功能在该子程序执行完后,仍返回到中断和陷入总控程序中的到中断和陷入总控程序中的trap.C程序中,去完成返程序中,去完成返回到断点前的公共处理部分回到断点前的公共处理部分     4 4.系统调用返回前的公共处理.系统调用返回前的公共处理  在  在UNIX系统中,进程调度的主要依据是进程系统中,进程调度的主要依据是进程的动态优先级。

随着进程执行时间的加长,其优先的动态优先级随着进程执行时间的加长,其优先级将逐步降低每当执行了系统调用命令、并由系级将逐步降低每当执行了系统调用命令、并由系统调用处理子程序返回到统调用处理子程序返回到trap.C后,都将重新计算后,都将重新计算该进程的优先级;另外,在系统调用执行过程中,该进程的优先级;另外,在系统调用执行过程中,若发生了错误使进程无法继续运行时,系统会设置若发生了错误使进程无法继续运行时,系统会设置再调度标志处理子程序在计算了进程的优先级后,再调度标志处理子程序在计算了进程的优先级后,便去检查该再调度标志是否已又被设置若已设置,便去检查该再调度标志是否已又被设置若已设置,便调用便调用switch调度程序,再去从所有的就绪进程中调度程序,再去从所有的就绪进程中选择优先级最高的进程,把处理机让给该进程去运选择优先级最高的进程,把处理机让给该进程去运行   UNIX系统规定,当进程的运行是处于系统态时,系统规定,当进程的运行是处于系统态时,即使再有其他进程又发来了信号,也不予理睬;仅当即使再有其他进程又发来了信号,也不予理睬;仅当进程已从系统态返回到用户态时,内核才检查该进程进程已从系统态返回到用户态时,内核才检查该进程是否已收到了由其他进程发来的信号。

若有信号,便是否已收到了由其他进程发来的信号若有信号,便立即按该信号的规定执行相应的动作在从信号处理立即按该信号的规定执行相应的动作在从信号处理程序返回后,还将执行一条返回指令程序返回后,还将执行一条返回指令RET,该指令将,该指令将把已被压入用户核心栈中的所有数据把已被压入用户核心栈中的所有数据(如如PSL、、PC、、FP及及AP等等)都退还到相应的寄存器中,这样,控制就都退还到相应的寄存器中,这样,控制就将从系统调用返回到被中断进程,后者继续执行下去将从系统调用返回到被中断进程,后者继续执行下去 7.5 图形用户接口图形用户接口 7.5.1 7.5.1 图形化用户界面图形化用户界面  图形化用户界面  图形化用户界面(GUI)是近年来最为流行的联机是近年来最为流行的联机用户接口形式,并已制定了国际用户接口形式,并已制定了国际GUI 标准20世纪世纪90年代推出的主流操作系统都提供了年代推出的主流操作系统都提供了GUI1981年,年,Xerox 公司在公司在Star 8010工作站操作系统中,首次推工作站操作系统中,首次推出了图形用户接口出了图形用户接口1983年,年,Apple公司又在公司又在Apple Lisa 机和机和Macintosh 机上的操作系统中成功使用了机上的操作系统中成功使用了GUI。

之后,还有之后,还有Microsoft 公司的公司的Windows,,IBM 公司的公司的OS/2,,UNIX 和和Linux 使用的使用的X-Window都使都使用了用了GUI   GUI采用了图形化的操作界面,使用采用了图形化的操作界面,使用WIMP 技技术,将窗口术,将窗口(Window)、图标、图标(Icon)、菜单、菜单(Menu)、、鼠标鼠标(Pointing device)和面向对象技术等集成在一起,和面向对象技术等集成在一起,引入形象的各种图符将系统的各项功能、各种应用引入形象的各种图符将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来,形成一个图程序和文件,直观、逼真地表示出来,形成一个图文并茂的视窗操作环境用户可以轻松地通过选择文并茂的视窗操作环境用户可以轻松地通过选择窗口、菜单、对话框和滚动条完成对他们作业和文窗口、菜单、对话框和滚动条完成对他们作业和文件的各种控制与操作件的各种控制与操作   以以Microsoft公司的公司的Windows系列操作系统为例,系列操作系统为例,在系统初始化后,操作系统为终端用户生成了一个在系统初始化后,操作系统为终端用户生成了一个运行运行explorer.exe的进程,它运行一个具有窗口界面的进程,它运行一个具有窗口界面的命令解释程序,该窗口为一个特殊的窗口,即桌的命令解释程序,该窗口为一个特殊的窗口,即桌面。

在面在““开始开始””菜单中罗列了系统的各种应用程序,菜单中罗列了系统的各种应用程序,点击某个程序,则解释程序会产生一个新进程,由点击某个程序,则解释程序会产生一个新进程,由新进程弹出一个新窗口,并运行该应用程序,该新新进程弹出一个新窗口,并运行该应用程序,该新窗口的菜单栏或图符栏会显示应用程序的子命令窗口的菜单栏或图符栏会显示应用程序的子命令用户可进一步选择并点击子命令,如果该子命令需用户可进一步选择并点击子命令,如果该子命令需要用户输入参数,则会弹出一个对话窗口,指导用要用户输入参数,则会弹出一个对话窗口,指导用户进行命令参数的输入,完成后用户点击户进行命令参数的输入,完成后用户点击““确定确定””按钮,命令即进入执行处理过程按钮,命令即进入执行处理过程   在在Windows系统中,采用的是事件驱动控制方式,系统中,采用的是事件驱动控制方式,用户通过动作来产生事件以驱动程序工作事件实质用户通过动作来产生事件以驱动程序工作事件实质就是发送给应用程序的一个消息,用户按键或点击鼠就是发送给应用程序的一个消息,用户按键或点击鼠标等动作都会产生一个事件,通过中断系统引出事件标等动作都会产生一个事件,通过中断系统引出事件驱动控制程序工作,对事件进行接收、分析、处理和驱动控制程序工作,对事件进行接收、分析、处理和清除。

各种命令和系统中所有的资源,如文件、目录、清除各种命令和系统中所有的资源,如文件、目录、打印机、磁盘、各种系统应用程序等都可以定义为一打印机、磁盘、各种系统应用程序等都可以定义为一个菜单、一个按钮或一个图标,所有的程序都拥有窗个菜单、一个按钮或一个图标,所有的程序都拥有窗口界面,窗口中所使用的滚动条、按钮、编辑框、对口界面,窗口中所使用的滚动条、按钮、编辑框、对话框等各种操作对象都采用统一的图形显示方式和操话框等各种操作对象都采用统一的图形显示方式和操作方法用户可以通过鼠标作方法用户可以通过鼠标(或键盘或键盘)点击操作选择所点击操作选择所需要的菜单、图标或按钮,从而达到控制系统、运行需要的菜单、图标或按钮,从而达到控制系统、运行某个程序、执行某个操作某个程序、执行某个操作(命令命令)的目的 7.5.27.5.2 桌面、图标和任务栏 桌面、图标和任务栏    1 1.桌面与图标的初步概念.桌面与图标的初步概念  在运行  在运行Windows时,其操作都是在桌面进行的时,其操作都是在桌面进行的所谓桌面,是指整个屏幕空间,即在运行所谓桌面,是指整个屏幕空间,即在运行Windows时用户所看到的屏幕。

该桌面是由多个任务共享的时用户所看到的屏幕该桌面是由多个任务共享的为了避免混淆,每个任务都通过各自的窗口显示其为了避免混淆,每个任务都通过各自的窗口显示其操作和运行情况,因此,操作和运行情况,因此,Windows允许在桌面上同允许在桌面上同时出现多个窗口所谓窗口,是指屏幕上的一块矩时出现多个窗口所谓窗口,是指屏幕上的一块矩形区域应用程序形区域应用程序(包括文档包括文档)可通过窗口向用户展可通过窗口向用户展示出系统所能提供的各种服务及其需要用户输入的示出系统所能提供的各种服务及其需要用户输入的信息;用户可通过窗口中的图标去查看和操纵应用信息;用户可通过窗口中的图标去查看和操纵应用程序或文档程序或文档   在面向字符的窗口中,并不提供图标在面向图在面向字符的窗口中,并不提供图标在面向图形的窗口中,图标也是作为图形用户接口中的一个形的窗口中,图标也是作为图形用户接口中的一个重要元素所谓图标,是代表一个对象的小图像,重要元素所谓图标,是代表一个对象的小图像,如代表一个文件夹或程序的图标,它是最小化的窗如代表一个文件夹或程序的图标,它是最小化的窗口当用户暂时不用某窗口时,可利用鼠标去点击口当用户暂时不用某窗口时,可利用鼠标去点击最小化按钮,即可将该窗口缩小为图标;而通过对最小化按钮,即可将该窗口缩小为图标;而通过对该图标双击的操作,又可将之恢复为窗口。

该图标双击的操作,又可将之恢复为窗口          2 2.桌面上常见的图标.桌面上常见的图标    随随着着计计算算机机设设置置的的不不同同,,在在启启动动WindowsWindows时时,,在在桌桌面面左左边边也也会会出出现现一一些些不不同同的的图图标标在在WindowsWindows中中文文版版的的桌桌面面上上( (见见图图7-9)7-9)比比较较常常见见的的图图标标有有以以下下几个:几个:    (1) (1) ““我我的的电电脑脑””双双击击此此图图标标后后,,桌桌面面上上将将出出现现““我我的的电电脑脑””窗窗口口,,并并在在窗窗口口中中会会显显现现出出用用户户计算机的所有资源计算机的所有资源    (2) “(2) “回收站回收站””该图标用于暂存用户所删除该图标用于暂存用户所删除的文件及文件夹,以便在需要时将之恢复的文件及文件夹,以便在需要时将之恢复 图图7-9 桌面与图标 桌面与图标    (3) (3) ““我我的的文文档档””该该图图标标用用于于供供用用户户存存放放自自己己建立的文件夹和文件建立的文件夹和文件    (4) (4) “Internet “Internet Explorer”(Explorer”(简简称称为为IE)IE)。

这这是是MicrosoftMicrosoft公公司司开开发发的的WWWWWW浏浏览览器器在在用用户户电电脑脑与与InternetInternet服服务务提提供供商商ISPISP连连接接成成功功后后,,便便可可通通过过双双击击IEIE图标,实现对图标,实现对InternetInternet中网页信息的浏览中网页信息的浏览    (5) “Outlook Express”(5) “Outlook Express”这是Microsoft公司公司推出的电子邮件应用软件在用户电脑与推出的电子邮件应用软件在用户电脑与ISP连接成连接成功后,可再双击功后,可再双击Outlook Express图标,以进一步连接图标,以进一步连接ISP的电子邮件服务器连接成功后,便可发送电子的电子邮件服务器连接成功后,便可发送电子邮件和接收电子邮件邮件和接收电子邮件   (6) (6) ““网网上上邻邻居居””如如果果用用户户的的电电脑脑已已连连接接到到局局域域网网上上,,那那么么用用户户便便可可通通过过该该图图标标方方便便地地使使用用局局域域网网中其它计算机上可共享的资源中其它计算机上可共享的资源    (7) (7) 收收件件箱箱。

该该软软件件用用于于发发送送或或接接收收远远程程电电子子邮邮件和    (8) “(8) “我的公文包我的公文包””在用户携带便携机出差期在用户携带便携机出差期间,无论是便携机中的文件,还是办公室计算机中的间,无论是便携机中的文件,还是办公室计算机中的文件,都可能发生变化,用户在返回单位后,应尽快文件,都可能发生变化,用户在返回单位后,应尽快使两者保持一致使两者保持一致(称之为称之为““同步同步””)我的公文包我的公文包””软件便是用于保持两者软件便是用于保持两者(便携式电脑和台式电脑中的便携式电脑和台式电脑中的文件文件)同步的软件同步的软件     3 3..““开始开始””按钮和任务栏按钮和任务栏    在在WindowsWindows桌桌面面的的下下方方,,一一般般都都设设置置了了““开开始始””按按钮钮和和任任务务栏栏,,并并作作为为系系统统的的默默认认设设置置只只要要WindowsWindows在运行,在屏幕下方即可见到它在运行,在屏幕下方即可见到它    (1) “(1) “开始开始””按钮开始开始””按钮位于任务栏按钮位于任务栏的左边当用鼠标的左键单击的左边当用鼠标的左键单击““开始开始””按钮时,便按钮时,便可打开一个开始菜单,其中包括了用户常用的工具可打开一个开始菜单,其中包括了用户常用的工具软件和应用程序,如程序选项、软件和应用程序,如程序选项、 文档选项、设置选文档选项、设置选项等。

因此,用户会经常使用项等因此,用户会经常使用““开始开始””按钮来运行按钮来运行一个程序如果用右键单击一个程序如果用右键单击““开始开始””按钮,将打开按钮,将打开一个快捷菜单,其中包括一个快捷菜单,其中包括““资源管理器资源管理器””选项此外,在关闭机器之前,应先关闭外,在关闭机器之前,应先关闭Windows,此时同,此时同样是单样是单(左左)击击““开始开始””按钮,然后再单击菜单中的按钮,然后再单击菜单中的““关闭系统关闭系统””选项   (2) (2) 任任务务栏栏设设置置任任务务栏栏的的目目的的是是帮帮助助用用户户快快速速启启动动常常用用的的程程序序,,方方便便地地切切换换当当前前的的程程序序因因此此,,在在任任务务栏栏中中包包含含若若干干个个常常用用的的应应用用程程序序小小图图标标,,如如用用于于实实现现英英文文输输入入或或汉汉字字拼拼音音输输入入等等的的小小图图标标、、控控制制音音量量大大小小的的小小图图标标、、查查看看和和改改变变系系统统时时钟钟的的小小图图标等  为了便于任务之间的切换,凡曾经运行过且尚  为了便于任务之间的切换,凡曾经运行过且尚未关闭的任务,在任务栏中都有其相应的小图标。

未关闭的任务,在任务栏中都有其相应的小图标因此,如果用户希望运行其中的某个程序,只需单因此,如果用户希望运行其中的某个程序,只需单击代表该程序的小图标,该程序的窗口便可显现在击代表该程序的小图标,该程序的窗口便可显现在屏幕上应用程序之间的切换就像看电视时的频道屏幕上应用程序之间的切换就像看电视时的频道切换一样简单切换一样简单   (3) (3) 任务栏的隐藏方式任务栏在桌面中所占的任务栏的隐藏方式任务栏在桌面中所占的大小可根据用户需要进行调整任务栏可以始终完整大小可根据用户需要进行调整任务栏可以始终完整地显现在屏幕上,不论窗口是如何切换或移动,都不地显现在屏幕上,不论窗口是如何切换或移动,都不能把任务栏覆盖掉当然,这样一来任务栏将占用一能把任务栏覆盖掉当然,这样一来任务栏将占用一定的可用屏幕空间如果用户希望尽可能拓宽屏幕的定的可用屏幕空间如果用户希望尽可能拓宽屏幕的可用空间,也可选用任务栏的隐藏方式,这时,任务可用空间,也可选用任务栏的隐藏方式,这时,任务栏并未真正被消除,只是暂时在屏幕上看不见,相应栏并未真正被消除,只是暂时在屏幕上看不见,相应地,在屏幕底部会留下一条白线,当用户又想操作任地,在屏幕底部会留下一条白线,当用户又想操作任务栏时,只需将鼠标移到此白线上,任务栏又会立即务栏时,只需将鼠标移到此白线上,任务栏又会立即显现出来,当鼠标离开该线后,任务栏又会隐藏起来。

显现出来,当鼠标离开该线后,任务栏又会隐藏起来    (4) (4) 任务子栏在任务子栏在Windows的任务栏中,可以增的任务栏中,可以增加若干个任务子栏例如,增加加若干个任务子栏例如,增加““地址子栏地址子栏””后,可后,可在其中存放许多地址,如文件夹名、在其中存放许多地址,如文件夹名、 局域网上某计算局域网上某计算机的地址、机的地址、 WWW地址等地址等;又如又如““桌面桌面””子栏,用于子栏,用于显示当前桌面上的组件显示当前桌面上的组件(““我的电脑我的电脑””、、““我的公文包我的公文包””等等)任务子栏可以不同的形式放在桌面上,如可任务子栏可以不同的形式放在桌面上,如可利用鼠标将某子栏从桌面上拖出,形成一个独立的窗利用鼠标将某子栏从桌面上拖出,形成一个独立的窗口,也可将某子栏拖至桌面的边缘,系统会自动地将口,也可将某子栏拖至桌面的边缘,系统会自动地将它变为一个独立的工具栏它变为一个独立的工具栏 7.5.37.5.3 窗口 窗口    1 1.窗口的组成.窗口的组成    在在熟熟练练使使用用WindowsWindows之之前前,,必必须须先先了了解解其其窗窗口口的的组组成成,,即即了了解解组组成成窗窗口口的的各各元元素素。

图图7-10 7-10 示示出出了了Windows Windows XPXP的的一一个个典典型型窗窗口口,,在在该该窗窗口口中中包包括括如如下诸元素:下诸元素:    (1) (1) 标题栏和窗口标题标题栏是位于窗口顶标题栏和窗口标题标题栏是位于窗口顶行的横条,其中含有窗口标题,即窗口名称,如行的横条,其中含有窗口标题,即窗口名称,如““我的电脑我的电脑””、、““我的文档我的文档””、、““控制面板控制面板””等      图图7-10  ““我的电脑我的电脑””窗口的组成窗口的组成   (2) (2) 菜菜单单栏栏通通常常,,菜菜单单栏栏都都在在窗窗口口标标题题栏栏的的下下面面,,以以菜菜单单条条的的形形式式出出现现在在菜菜单单条条中中列列出出了了可可选选的的各各菜菜单单项项,,用用于于提提供供各各类类不不同同的的操操作作功功能能,,比比如如在在““我我的的电电脑脑””窗窗口口的的菜菜单单条条中中,,有有文文件件(F)(F)、、编编辑辑(E)(E)、查看、查看(V)(V)等菜单项等菜单项    (3) (3) 工具栏工具栏位于菜单栏的下方其内工具栏工具栏位于菜单栏的下方其内容是各类可选工具,或说它由许多命令按钮组成,容是各类可选工具,或说它由许多命令按钮组成,每一个按钮代表一种工具。

例如,我们可利用删除每一个按钮代表一种工具例如,我们可利用删除命令按钮来删除一个文件或文件夹;可利用属性命命令按钮来删除一个文件或文件夹;可利用属性命令按钮来查看文件令按钮来查看文件(夹夹)的属性,包括文件的属性,包括文件(夹夹)的类型、的类型、大小,在文件夹中包含多少文件和文件的大小等大小,在文件夹中包含多少文件和文件的大小等   (4) (4) 控控制制菜菜单单按按钮钮它它位位于于窗窗口口标标题题的的左左端端可可用用它它打打开开窗窗口口的的控控制制菜菜单单,,在在菜菜单单中中有有用用于于实实现现窗口最大化、最小化、关闭等操作的选项按钮窗口最大化、最小化、关闭等操作的选项按钮    (5) (5) 最大化、最大化、 最小化和关闭按钮在窗口标最小化和关闭按钮在窗口标题栏的右边有三个按钮,单击其中间的最大化按钮,题栏的右边有三个按钮,单击其中间的最大化按钮,可把窗口放大到最大可把窗口放大到最大(占据整个桌面占据整个桌面);当窗口已经;当窗口已经最大化时,最大化按钮就变成还原按钮,单击之,最大化时,最大化按钮就变成还原按钮,单击之,又可将窗口还原为原来的大小;单击左边的最小化又可将窗口还原为原来的大小;单击左边的最小化按钮,可将窗口缩小成图标;如需关闭该窗口,可按钮,可将窗口缩小成图标;如需关闭该窗口,可单击关闭按钮。

单击关闭按钮    (6) (6) 滚滚动动条条当当窗窗口口的的大大小小不不足足以以显显示示出出整整个个文文件件( (档档) )的的内内容容时时,,可可使使用用位位于于窗窗口口底底部部或或右右边边的的滚滚动动块块( (向向右右或或向向下下移移动动) ),,以以观观察察该该文文件件( (档档) )中中的的其其余余部部分    (7) (7) 窗窗口口边边框框界界定定窗窗口口周周边边的的网网条条边边被被称称为为窗窗口口边边框框用用鼠鼠标标移移动动一一条条边边框框的的位位置置可可改改变变窗窗口口的的大大小小;;也也可可利利用用鼠鼠标标去去移移动动窗窗口口的的一一个个角角,,来来同同时时改改变变窗口两个边框的位置,以改变窗口的位置和大小窗口两个边框的位置,以改变窗口的位置和大小    (8) (8) 工作区域窗口内部的区域称为工作区域工作区域窗口内部的区域称为工作区域        2 2.窗口的性质.窗口的性质    1) 1) 窗口的状态窗口的状态  当用户双击图标  当用户双击图标A而打开相应的窗口而打开相应的窗口A时,该窗时,该窗口便处于激活状态此时用户可以看见窗口口便处于激活状态此时用户可以看见窗口A中的中的所有元素,且窗口的标题条呈高亮度蓝色。

被激活所有元素,且窗口的标题条呈高亮度蓝色被激活窗口的应用程序在前台运行,它能接收用户键入的窗口的应用程序在前台运行,它能接收用户键入的信息如果用户再双击图标信息如果用户再双击图标B而打开窗口而打开窗口B时,窗口时,窗口B又处于激活状态此时窗口又处于激活状态此时窗口A则转为非激活状态,则转为非激活状态,且窗口且窗口A被窗口被窗口B所覆盖我们把窗口虽然已被打开,所覆盖我们把窗口虽然已被打开,但却是处于非激活状态的称为打开状态在但却是处于非激活状态的称为打开状态在Windows的桌面上,允许同时有多个处于打开状态的桌面上,允许同时有多个处于打开状态的窗口,但其中只能有一个窗口处于激活状态,亦的窗口,但其中只能有一个窗口处于激活状态,亦即,仅有一个应用程序在前台运行,其余的程序都即,仅有一个应用程序在前台运行,其余的程序都在后台运行在后台运行   2) 2) 窗口的改变窗口的改变  用户可用鼠标来改变窗口的大小及其在桌面上  用户可用鼠标来改变窗口的大小及其在桌面上的位置因此,既可用鼠标来拖拽窗口边框或窗口的位置因此,既可用鼠标来拖拽窗口边框或窗口角,以改变窗口的大小,又可利用最大化和最小化角,以改变窗口的大小,又可利用最大化和最小化按钮或控制菜单,来将窗口最大化或最小化。

按钮或控制菜单,来将窗口最大化或最小化 7.5.47.5.4 对话框 对话框    1 1.对话框的用途.对话框的用途  对话框是在桌面上带有标题条、输入框和按钮  对话框是在桌面上带有标题条、输入框和按钮的一个临时窗口,也称为对话窗口虽然对话框与的一个临时窗口,也称为对话窗口虽然对话框与窗口有些相似,但也有明显差别,主要表现为窗口有些相似,但也有明显差别,主要表现为: 在所在所有对话框上都没有工具栏,而且对话框的大小是固有对话框上都没有工具栏,而且对话框的大小是固定不变的,因而也没有其相应的最大化和最小化按定不变的,因而也没有其相应的最大化和最小化按钮;对话框也不能像窗口那样用鼠标拖拽其边框或钮;对话框也不能像窗口那样用鼠标拖拽其边框或窗口角来改变其大小和位置;此外,对话框是临时窗口角来改变其大小和位置;此外,对话框是临时窗口,用完后便自动消失,或用取消命令将它消除窗口,用完后便自动消失,或用取消命令将它消除   对话框的主要用途是实现人对话框的主要用途是实现人——机对话,即系统机对话,即系统可通过对话框提示用户输入与任务有关的信息,比可通过对话框提示用户输入与任务有关的信息,比如提示用户输入要打开文件的名字、其所在目录、如提示用户输入要打开文件的名字、其所在目录、所在驱动器及文件类型等信息;或者供用户对对象所在驱动器及文件类型等信息;或者供用户对对象的属性、窗口等的环境进行重新设置,比如设置文的属性、窗口等的环境进行重新设置,比如设置文件的属性、设置显示器的颜色和分辨率、设置桌面件的属性、设置显示器的颜色和分辨率、设置桌面的显示效果;还可以提供用户可能需要的信息等。

的显示效果;还可以提供用户可能需要的信息等          2 2.对话框的组成.对话框的组成    Windows的对话框可由以下几个元素组成,其的对话框可由以下几个元素组成,其中有的简单,有的复杂图中有的简单,有的复杂图7-11(a)、、(b)分别示出了分别示出了Windows XP的的““另存为另存为””和和““格式化格式化””两个常用的两个常用的对话框 图图 7 -11 对话框 对话框 (a) ““另存为另存为””对话框对话框 (b) ““格式化格式化””对话框对话框 图图 7 -11 对话框 对话框   1) 1) 标题栏标题栏  如同窗口一样,对话框的标题栏也是位于其顶  如同窗口一样,对话框的标题栏也是位于其顶部,其中,左边部分为对话框名称部,其中,左边部分为对话框名称(如名称为如名称为““显示显示属性属性””),右边部分是关闭按钮和帮助按钮右边部分是关闭按钮和帮助按钮    2) 2) 输入框输入框    输输入入框框可可分分为为两两类类: : 一一类类是是文文本本框框,,是是一一个个供供用用户户输输入入文文本本信信息息的的矩矩形形框框,,用用户户可可通通过过键键盘盘向向文文本本框框内内输输入入任任何何符符合合要要求求的的字字符符串串。

见见图图7-11(a)7-11(a)中中的的文文件名文本框件名文本框  另一类是列表框在列表框中为用户提供参考信  另一类是列表框在列表框中为用户提供参考信息供用户选择,但用户不能对列表框中的内容进行修息供用户选择,但用户不能对列表框中的内容进行修改列表框有三种形式:第一种是简单列表框,需要改列表框有三种形式:第一种是简单列表框,需要显示的内容全部列于该框中;第二种是滚动式列表框,显示的内容全部列于该框中;第二种是滚动式列表框,在框的右边框处有一滚动条在框的右边框处有一滚动条(滑块滑块),可用来查看该框,可用来查看该框中未显示部分的内容;第三种是下拉式列表框,在框中未显示部分的内容;第三种是下拉式列表框,在框中仅有一行文字中仅有一行文字(一个选项一个选项),其右边有一个朝下的三,其右边有一个朝下的三角形符号,对它单击后,可弹出一个下拉式列表供用角形符号,对它单击后,可弹出一个下拉式列表供用户选择图户选择图7-11(a)中的是中的是““保存类型保存类型””的下拉式列表的下拉式列表框   3) 3) 按钮按钮    在在WindowsWindows中中,,提提供供了了多多种种形形式式的的按按钮钮,,如如命命令令按钮、选择按钮、滑动式按钮、数字式增减按钮等。

按钮、选择按钮、滑动式按钮、数字式增减按钮等    (1) (1) 命令按钮可用该按钮来启动一个立即响应命令按钮可用该按钮来启动一个立即响应的动作,如的动作,如““确定确定””按钮、按钮、““取消取消””按钮、按钮、““关闭关闭””按钮、按钮、““开始开始””按钮等命令按钮通常是含有文字的按钮等命令按钮通常是含有文字的矩形按钮,在对话框的底部或右部矩形按钮,在对话框的底部或右部   (2) (2) 选择按钮它又可分为单选按钮和复选按选择按钮它又可分为单选按钮和复选按钮两种前者是指在同一组的多个单选按钮中,每钮两种前者是指在同一组的多个单选按钮中,每次必须且只能选择其一单选按钮为圆形当某一次必须且只能选择其一单选按钮为圆形当某一选项被选中时,该圆形按钮中会增加一个同心圆点,选项被选中时,该圆形按钮中会增加一个同心圆点,见图见图7-11(b)中的中的““格式化类型格式化类型””下面的三个单选按下面的三个单选按钮复选按钮是指用户可根据需要在多个复选按钮钮复选按钮是指用户可根据需要在多个复选按钮中选择其中一个或多个按钮复选按钮呈方框形,中选择其中一个或多个按钮复选按钮呈方框形,如被选中,相应方框中会出现如被选中,相应方框中会出现“√”“√”标记,见图标记,见图7-11(b)中中““其他选项其他选项””下面的几个复选按钮。

下面的几个复选按钮   (3) (3) 滑滑块块式式按按钮钮某某些些对对象象的的属属性性是是可可在在一一定定范范围围内内进进行行连连续续调调节节的的,,比比如如鼠鼠标标被被双双击击的的速速度度、、键键盘的重复速率、音响音量的调节等盘的重复速率、音响音量的调节等    (4) (4) 数字式增减按钮有些属性已被数字化,数字式增减按钮有些属性已被数字化,且可在一定范围内调节如在且可在一定范围内调节如在““日期日期/时间时间””属性中,属性中,便有一对用于改变时间的数字式增减按钮在上述便有一对用于改变时间的数字式增减按钮在上述两种按钮上,都有三角形箭头标记,对箭头向上的两种按钮上,都有三角形箭头标记,对箭头向上的标记单击时,可使数字增加,单击箭头朝下的标记标记单击时,可使数字增加,单击箭头朝下的标记时,可使数字减小时,可使数字减小 IBM JCL 的例子的例子//MOONEY JOB (918,001) DAVIS,CLASS=B, PRIORITY=6//COMP EXEC PROG=IEYFORT, PARM=‘SOURCE’//SYSPINT DD SYSOUT=A//SYSLIN DDDSNAME=SYSL.UT4,DISP=OLD//DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)//SYSIN DD * … (Source Program Cards) … //GO EXEC PROG=FORTLINK,COND=(4,LT,C)//SYSPRINT DD SYSOUT=A//SYSLIN DD DSNAME=*.COMP.SYSLIN, DISP=OLD//SYSLIB DD DSNAME=SYSL.FORTLIB,DISP=OLD//FT03F001 DD SYSOUT=A,DCB=(RECFM=FA,BLKSIZE=133)//FT05F001 DD DSNAME=SYSIN//FT06F001 DD SYSOUT=A,DCB=(RECFM=FA,BLKSIZE=133)//FT07F001 DD UNIT=SYSCP//RUNLOAD EXEC PROG=LOADMOD//GO.SYSIN DD * … (Program data cards) 返回返回 …// * * 作业说明书的例子作业说明书的例子JOB. JOHNJOB JOHN,FORTRAN * DISK,FORPROG,BIN,COMPILISTLISTFILE. COMPILIST * LP,TIME(5,20)ENTER 3IF HALTED GOTO 1IF FAILED GOTO 21. RESUME2. PRINT (1,100)ENDJOB 返回返回 )w&s!pYmUjRgOcL9H6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D2A-x*t$qZqZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdLdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(x(u$rZoWkThQeM 。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档