第7章操作系统接口_第1页
第7章操作系统接口_第2页
第7章操作系统接口_第3页
第7章操作系统接口_第4页
第7章操作系统接口_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

第七章操作系统接口7.1联机用户接口7.2

Shell命令语言7.3系统调用7.4

UNIX系统调用7.5图形用户接口

7.1联机用户接口

7.1.1联机用户接口(2种方式)联机用户接口,也称为联机命令接口。不同操作系统的联机命令接口有所不同,这不仅指命令的种类、数量及功能方面,也可能体现在命令的形式、用法等方面。不同的用法和形式构成了不同的用户界面,可分成以下两种:(1)字符显示式用户界面;(2)图形化用户界面。

1.命令行方式该方式是指以行为单位输入和显示不同的命令。每行长度一般不超过256个字符,命令的结束通常以回车符为标记。命令的执行是串行、间断的,后一个命令的输入一般需等到前一个命令执行结束,如用户键入的一条命令处理完成后,系统发出新的命令输入提示符,用户才可以继续输入下一条命令。

也有许多操作系统提供了命令的并行执行方式,例如一条命令的执行需要耗费较长时间,并且用户也不急需其结果时(即两条命令执行是不相关的),则可以在一个命令的结尾输入特定的标记,将该命令作为后台命令处理,用户接着即可继续输入下一条命令,系统便可对两条命令进行并行处理。一般而言,对新用户来说,命令行方式十分繁琐,难以记忆,但对有经验的用户而言,命令行方式用起来快捷便当、十分灵活,所以,至今许多操作员仍常使用这种命令方式。简单命令的一般形式为:

Commandarg1arg2...argn其中,Command是命令名,又称命令动词,其余为该命令所带的执行参数,有些命令可以没有参数。

2.批命令方式在操作命令的实际使用过程中,经常遇到需要对多条命令的连续使用,或若干条命令的重复使用,或对不同命令进行选择性使用的情况。如果用户每次都采用命令行方式,将命令一条条由键盘输入,既浪费时间,又容易出错。因此,操作系统都支持一种称为批命令的特别命令方式,允许用户预先把一系列命令组织在一种称为批命令文件的文件中,一次建立,多次执行。使用这种方式可减少用户输入命令的次数,既节省了时间和减少了出错概率,又方便了用户。通常批命令文件都有特殊的文件扩展名,如MS-DOS系统的

.BAT文件。

7.1.2联机命令的类型按功能分成5类:①

系统访问类;②

磁盘操作类;③

文件操作类;④

目录操作类;⑤

其他命令。

1.系统访问类多用户系统中,为了保证系统的安全性,都毫无例外地设置了系统访问命令,即注册命令Login。

Login:

/提示用户键入自己的注册名

Password:

/提示用户键入自己的口令如果用户多次(通常不超过三次)键入的注册名或口令都有错,系统将解除与用户的联接。

2.磁盘操作命令P250在微机操作系统中,通常都提供了若干条磁盘操作命令。

(1)磁盘格式化命令Format。

(2)复制整个软盘命令Diskcopy。

(3)软盘比较命令Diskcomp。

(4)备份与恢复命令Backup、RESTORE。

3.文件操作命令每个操作系统都提供了一组文件操作命令。在微机OS中的文件操作命令有下述几种:

(1)显示文件命令type:

(2)拷贝文件命令copy:

(3)文件比较命令comp:

(4)重新命名命令Rename:

(5)删除文件命令erase:

4.目录操作命令

(1)建立子目录命令mkdir:

(2)显示目录命令dir:

(3)删除子目录命令rmdir:

(4)显示目录结构命令tree:

(5)改变当前目录命令chdir:

5.其它命令

(1)输入输出重定向命令。

(2)管道连接。

(3)过滤命令。

(4)批命令。7.1.3键盘终端处理程序P252为了实现人机交互,还须在微机或终端上配置相应的键盘终端处理程序,它应具有下述几方面的功能:(1)接收用户从终端上打入的字符。(2)字符缓冲,用于暂存所接收的字符。(3)回送显示。(4)屏幕编辑。(5)特殊字符处理。

1.字符接收功能为了实现人机交互,键盘终端处理程序必须能够接收从终端输入的字符,并将之传送给用户程序。有两种方式来实现字符接收功能:

(1)面向字符方式。驱动程序只接收从终端打入的字符,并且不加修改地将它传送给用户程序。这通常是一串未加工的ASCII码。但大多数的用户并不喜欢这种方式。

(2)面向行方式。终端处理程序将所接收的字符暂存在行缓冲中,并可对行内字符进行编辑。仅在收到行结束符后,才将一行正确的信息送命令解释程序。在有的计算机中,从键盘硬件送出的是键的编码(简称键码),而不是ASCII码。例如,当打入a键时,是将键码“30”放入I/O寄存器,此时,终端处理程序必须参照某种表格,将键码转换成ASCII码。应当注意,某些IBM的兼容机使用的不是标准键码。此时,处理程序还须选用相应的表格将其转换成标准键码。

2.字符缓冲功能为了能暂存从终端键入的字符,以降低中断处理器的频率,在终端处理程序中,还必须具有字符缓冲功能。字符缓冲可采用以下两种方式之一:

(1)专用缓冲区方式。

(2)公用缓冲池方式。图7-1两种缓冲方式

3.回送显示回送显示(回显)是指每当用户从键盘输入一个字符后,终端处理程序便将该字符送往屏幕显示。 硬件实现回显。 软件实现回显。

4.屏幕编辑用户经常希望能对从键盘打入的数据(字符)进行修改,如删除(插入)一个或多个字符。为此,在终端处理程序中,还应能实现屏幕编辑功能,包括能提供若干个编辑键。常用的编辑键有:

(1)删除字符键。

(2)删除一行键。

(3)插入键。

(4)移动光标键。

(5)屏幕上卷或下移键,等等。

5.特殊字符处理终端处理程序必须能对若干特殊字符进行及时处理,这些字符是:

(1)中断字符。当程序在运行中出现异常情况时,用户可通过键入中断字符的办法来中止当前程序的运行。在许多系统中是利用Break或Delete或Ctrl+C键作为中断字符。对中断字符的处理比较复杂。当终端处理程序收到用户键入的中断字符后,将向该终端上的所有进程发送一个要求进程终止的软中断信号,这些进程收到该软中断信号后,便进行自我终止。

(2)停止上卷字符。用户键入此字符后,终端处理程序应使正在上卷的屏幕暂停上卷,以便用户仔细观察屏幕内容。在有的系统中,是利用Ctrl+S键来停止屏幕上卷的。

(3)恢复上卷字符。有的系统利用Ctrl+Q键使停止上卷的屏幕恢复上卷。终端处理程序收到该字符后,便恢复屏幕的上卷功能。上述的Ctrl+S与Ctrl+Q两字符并不被存储,而是被用去设置终端数据结构中的某个标志。每当终端试图输出时,都须先检查该标志。若该标志已被设置,便不再把字符送至屏幕。

7.1.4命令解释程序

1.命令解释程序的作用主要作用是在屏幕上给出提示符,请用户键入命令,然后读入该命令,识别命令,再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行,并将处理结果送屏幕上显示。若用户键入的命令有错,而命令解释程序未能予以识别,或在执行中间出现问题时,则应显示出某一出错信息。

2.命令解释程序的组成

(1)常驻部分。这部分包括一些中断服务子程序。例如:正常退出中断INT20,它用于在用户程序执行完毕后,退回操作系统;驻留退出中断INT27,用这种方式,退出程序可驻留在内存中;还有用于处理和显示标准错误信息的INT24等。常驻部分还包括这样的程序:当用户程序终止后,它检查暂存部分是否已被用户程序覆盖,若已被覆盖,便重新将暂存部分调入内存。

(2)初始化部分。它跟随在常驻内存部分之后,在启动时获得控制权。这部分还包括对AUTOEXEC.BAT文件的处理程序,并决定应用程序装入的基地址。每当系统接电或重新启动后,由处理程序找到并执行AUTOEXEC.BAT文件。由于该文件在用完后不再被需要,因而它将被第一个由COMMAND.COM装入的文件所覆盖。

(3)暂存部分。这部分主要是命令解释程序,并包含了所有的内部命令处理程序、批文件处理程序,以及装入和执行外部命令的程序。它们都驻留在内存中,但用户程序可以使用并覆盖这部分内存,在用户程序结束时,常驻程序又会将它们重新从磁盘调入内存,恢复暂存部分。

图7-2

COMMAND.COM的工作流程

3.命令解释程序的工作流程7.2

Shell命令语言

Shell也是一种程序设计语言

7.2.1简单命令

1.进入与退出系统

2.文件操作命令

3.目录操作命令

4.系统询问命令7.2.2重定向与管道命令7.2.3通信命令

1.信箱通信命令mail

2.对话通信命令write

3.允许或拒绝接收消息命令mesg7.2.4后台命令7.3系

7.3.1系统调用的基本概念通常,在OS的核心中都设置了一组用于实现各种系统功能的子程序(过程),并将它们提供给应用程序调用。由于这些程序或过程是OS系统本身程序模块中的一部分,为了保护操作系统程序不被用户程序破坏,一般都不允许用户程序访问操作系统的程序和数据,所以也不允许应用程序采用一般的过程调用方式来直接调用这些过程,而是向应用程序提供了一系列的系统调用命令,让应用程序通过系统调用去调用所需的系统过程。

1.系统态和用户态两类程序:系统程序和应用程序,为了保证系统程序不被应用程序有意或无意地破坏,为计算机设置了两种状态:系统态(也称为管态或核心态)和用户态(也称为目态)。操作系统在系统态运行,而应用程序只能在用户态运行。在实际运行过程中,处理机会在系统态和用户态间切换。相应地,现代多数操作系统将CPU的指令集分为特权指令和非特权指令两类。

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

2)非特权指令非特权指令是在用户态时运行的指令。一般应用程序所使用的都是非特权指令,它只能完成一般性的操作和任务,不能对系统中的硬件和软件直接进行访问,其对内存的访问范围也局限于用户空间。这样,可以防止应用程序的运行异常对系统造成的破坏。

这种限制是由硬件实现的。

2.系统调用系统调用,使应用程序间接调用操作系统的相关过程,取得相应的服务。当应用程序中需要操作系统提供服务时,如请求I/O资源或执行I/O操作,应用程序必须使用系统调用命令。

CPU的状态:用户态->系统态->用户态。

系统调用是一种特殊的过程调用,它与一般的过程调用有下述几方面的明显差别:

(1)运行在不同的系统状态。调用程序是运行在用户态,而被调用程序是运行在系统态。

(2)状态的转换通过软中断进入。通过软中断机制,先由用户态转换为系统态,经核心分析后,才能转向相应的系统调用处理子程序。

(3)返回问题。返回时要对进程做优先权分析。当调用进程仍具有最高优先级时,才返回到调用进程继续执行;否则,将引起重新调度,以便让优先权最高的进程优先执行。此时,将把调用进程放入就绪队列。

(4)嵌套调用。像一般过程一样,系统调用也可以嵌套进行。当然,每个系统对嵌套调用的深度都有一定的限制,例如最大深度为6。但一般的过程对嵌套的深度则没有什么限制。图7-3示出了没有嵌套及有嵌套的两种系统调用情况。

图7-3系统功能的调用

3.中断机制系统调用是通过中断机制实现的,并且一个操作系统的所有系统调用都通过同一个中断入口来实现。如MS-DOS提供了INT21H,应用程序通过该中断获取操作系统的服务。对于拥有保护机制的操作系统来说,中断机制本身也是受保护的,在IBMPC上,Intel提供了多达255个中断号,但只有授权给应用程序保护等级的中断号,才是可以被应用程序调用的。7.3.2系统调用的类型(4大类)

1.进程控制类系统调用这类系统调用主要用于对进程的控制,如创建一个新的进程和终止一个进程的运行,获得和设置进程属性等。

1)创建和终止进程的系统调用

2)获得和设置进程属性的系统调用

3)等待某事件出现的系统调用

2.文件操纵类系统调用对文件进行操纵的系统调用数量较多,有创建文件、删除文件、打开文件、关闭文件、读文件、写文件、建立目录、移动文件的读/写指针、改变文件的属性等。

1)创建和删除文件

2)打开和关闭文件

3)读和写文件

3.进程通信类系统调用P264两种进程通信方式:消息传递方式和共享存储区方式。 消息传递方式:打开连接,源进程openconnection接受连接,目标进程acceptconnection;利用发送消息sendmessage或用接收消息receivemessage来交换信息。通信结束后,还须再利用关闭连接的系统调用closeconnection结束通信。共享存储方式:建立一个共享存储区建立连接(将该共享存储区连接到进程自身的虚地址空间上)相互通信:读和写共享存储区的系统调用。

4.设备管理类系统调用和信息维护类系统调用 前者主要用于实现申请设备、释放设备、设备I/O和重定向、获得和设置设备属性、逻辑上连接和释放设备等功能, 后者主要用来获得包括有关系统和文件的时间、日期信息、操作系统版本、当前用户以及有关空闲内存和磁盘空间大小等多方面的信息。

7.3.3POSIX标准目前许多操作系统在实现的细节和形式方面却相差很大,这种差异给实现应用程序与操作系统平台的无关性带来了很大的困难。为解决这一问题,国际标准化组织ISO给出的有关系统调用的国际标准POSIX1003.1(PortableOperatingSystemIX),也称为“基于UNIX的可移植操作系统接口”。

POSIX定义了标准应用程序接口(API),用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。只有符合这一标准的应用程序,才有可能完全兼容多种操作系统,即在多种操作系统下都能够运行。

POSIX标准定义了一组过程,这组过程是构造系统调用所必须的。通过调用这些过程所提供的服务,确定了一系列系统调用的功能。一般而言,在POSIX标准中,大多数的系统调用是一个系统调用直接映射一个过程,但也有一个系统调用对应若干个过程的情形。

需要明确的是,POSIX标准所定义的一组过程虽然指定了系统调用的功能,但并没有明确规定系统调用是以什么形式实现的,是库函数还是其它形式。如图7-4示出了UNIX/Linux的系统程序、库函数、系统调用的层次关系。

图7-4Unix/Linux系统程序、库函数、系统调用的分层关系

7.3.4系统调用的实现

1.中断和陷入硬件机构

1)中断和陷入的概念中断是指CPU对系统发生某事件时的这样一种响应:CPU暂停正在执行的程序,在保留现场后自动地转去执行该事件的中断处理程序;执行完后,再返回到原程序的断点处继续执行。 外中断:是指由于外部设备事件所引起的中断,如通常的磁盘中断、打印机中断等; 内中断:是指由于CPU内部事件所引起的中断,如程序出错(非法指令、地址越界)、电源故障等。内中断(trap)也被译为“捕获”或“陷入”。图7-5中断时的CPU轨迹

2)中断和陷入向量中断向量:中断处理程序入口指针、处理机状态字PSW。存放这两个字的单元称为中断向量单元。陷入向量:类似中断向量。由所有的中断向量和陷入向量构成了中断和陷入向量表,如图7-6所示。

图7-6中断向量与陷入向量

(a)中断向量

(b)陷入向量

2.系统调用号和参数的设置每条系统调用有一个唯一的系统调用号。系统调用号的传递:1)直接把系统调用号放在系统调用命令(陷入指令)中;如

IBM370和早期的UNIX系统,是把系统调用命令的低8位用于存放系统调用号;2)将系统调用号装入某指定寄存器或内存单元中,如MS-DOS是将系统调用号放在AH寄存器中,Linux则是利用EAX寄存器来存放应用程序传递的系统调用号。

参数传递方式有以下几种:

(1)陷入指令自带方式。陷入指令除了携带一个系统调用号外,还要自带几个参数进入系统内部,由于一条陷入指令的长度是有限的,因此自带的只能是少量的、有限的参数。

(2)直接将参数送入相应的寄存器中。MS-DOS便是采用的这种方式,即用MOV指令将各个参数送入相应的寄存器中。系统程序和应用程序显然应是都可以访问这种寄存器的。这种方式的主要问题是由于这种寄存器数量有限,因而限制了所设置参数的数目。图7-7系统调用的参数形式

(3)参数表方式。将系统调用所需的参数放入一张参数表中,再将指向该参数表的指针放在某个指定的寄存器中。

3.系统调用的处理步骤在设置了系统调用号和参数后,便可执行一条系统调用命令。不同的系统可采用不同的执行方式。在UNIX系统中,是执行CHMK命令;而在MS-DOS中则是执行INT21软中断。系统调用的处理过程可分成以下三步:首先,将处理机状态由用户态转为系统态;之后,由硬件和内核程序进行系统调用的一般性处理,即首先保护被中断进程的CPU环境,将处理机状态字PSW、程序计数器PC、系统调用号、用户栈指针以及通用寄存器内容等,压入堆栈;然后,将用户定义的参数传送到指定的地址保存起来。

其次,是分析系统调用类型,转入相应的系统调用处理子程序。为使不同的系统调用能方便地转向相应的系统调用处理子程序,在系统中配置了一张系统调用入口表。表中的每个表目都对应一条系统调用,其中包含该系统调用自带参数的数目、系统调用处理子程序的入口地址等。因此,核心可利用系统调用号去查找该表,即可找到相应处理子程序的入口地址而转去执行它。最后,在系统调用处理子程序执行完后,应恢复被中断的或设置新进程的CPU现场,然后返回被中断进程或新进程,继续往下执行。

4.系统调用处理子程序的处理过程系统调用的功能主要是由系统调用子程序来完成的。对于不同的系统调用,其处理程序将执行不同的功能。P268例子:Creat命令7.4

UNIX系统调用

7.4.1

UNIX系统调用的类型7.4.2被中断进程的环境保护7.4.3系统调用陷入后需处理的公共问题7.5图形用户接口

7.5.1图形化用户界面图形化用户界面(GUI)是近年来最为流行的联机用户接口形式,并已制定了国际GUI标准。20世纪90年代推出的主流操作系统都提供了GUI。1981年,Xerox公司在Star8010工作站操作系统中,首次推出了图形用户接口。1983年,Apple公司又在AppleLisa机和Macintosh机上的操作系统中成功使用了GUI。之后,还有Microsoft公司的Windows,IBM公司的OS/2,UNIX和Linux使用的X-Window都使用了GUI。

GUI采用了图形化的操作界面,使用WIMP技术,将窗口(Window)、图标(Icon)、菜单(Menu)、鼠标(Pointingdevice)和面向对象技术等集成在一起,引入形象的各种图符将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来,形成一个图文并茂的视窗操作环境。用户可以轻松地通过选择窗口、菜单、对话框和滚动条完成对他们作业和文件的各种控制与操作。

Microsoft公司的Windows系列操作系统。explorer.exe进程,它运行一个具有窗口界面的命令解释程序,该窗口为一个特殊的窗口,即桌面。在“开始”菜单中罗列了系统的各种应用程序,点击则生成新进程并弹出一个新窗口,其菜单栏或图符栏会显示应用程序的子命令。可进一步选择并点击子命令,输入参数在弹出的一个对话窗口中进行输入,完成后用户点击“确定”按钮,命令即进入执行处理过程。

在Windows系统中,采用的是事件驱动控制方式7.5.2桌面、图标和任务栏

1.桌面与图标的初步概念P274桌面,是指整个屏幕空间,即在运行Windows时用户所看到的屏幕。窗口,是指屏幕上的一块矩形区域。图标,是代表一个对象的小图像。

2.桌面上常见的图标

温馨提示

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

评论

0/150

提交评论