1、第七章 操作系统接口引子:联机命令接口联机命令接口用户接口 程序接口程序接口程序接口 用户和操作系统间的两种接口 系统调用 操作命令或 JCL 操 作 系 统 裸 机(命令接口)(程序接口)n程 序 接 口 又 称 应 用 编 程 接 口程 序 接 口 又 称 应 用 编 程 接 口 A P I(Application Programming Interface),允许运行程序调用操作系统的服务和功能。n程序接口由一组系统调用(System Call))组成,用户程序使用“系统调用”就可获得操作系统的底层服务,使用或访问系统的各种软硬件资源。n在程序设计语言(如C语言)中,往往提供与各系统调用
2、对应的库函数,应用程序可通过对应的库函数来使用系统调用,n库函数的目的是隐藏访管指令细节,使系统调用更象过程调用,但一般地说,库函数属于用户程序而非系统程序。n操作系统为用户提供系统调用也出于安全和效率考虑,使得用户态程序不能自由地访问内核关键数据结构或直接访问硬件资源。操作系统(进程管理、存储管理、文件管理、设备管理等)标准库函数(打开、关闭、读、写、创建、撤销等)标准系统程序(实用程序)(汇编、编译、编辑、Shell等)用户用户接口库函数接口系统调用接口 硬件(处理器、存储器、磁盘、打印机、终端等)用户态核心态7.1 联机用户接口 P248命令接口包括:联机用户接口和脱机用户接口终端用户利
3、用该终端用户利用该接口可以调用操接口可以调用操作系统的功能,作系统的功能,取得操作系统取得操作系统的服务。的服务。专为批处理专为批处理作作业的用户提业的用户提供供的。(批处的。(批处理理用户接口)用户接口)n也称联机命令接口。n分类:字符显示式用户界面;图形化用户界面7.1.1 联机用户接口命令语言命令行方命令行方式和批命式和批命令方式令方式1.命令行方式:命令行方式:Command arg1 arg2argn2.批命令方式批命令方式7.1.2 联机命令的类型P2501.系统访问类n注册命令Login(用在多用户系统中)系统访问类、磁盘操作类、文件操作类、系统访问类、磁盘操作类、文件操作类、目
4、录操作类、通信类、其他命令目录操作类、通信类、其他命令Login:Password:2.磁盘操作类磁盘操作类nFormatnDiskcopynDiskcompnBackup(备份)Restore(恢复)3.文件操作命令nTypenCopynCompnRenamenErase4.目录操作命令nMkdirnDirnRmdirnTreenchdir5.其他命令n输入输出重定向命令输入输出重定向命令n管道连接管道连接 Command1|Command2|.n过滤命令过滤命令 find/N/C/Vn批命令批命令 7.1.3 键盘终端处理程序n接收用户从终端上打入的字符接收用户从终端上打入的字符n字符缓冲
5、字符缓冲,用于暂存所接收的字符用于暂存所接收的字符n回送显示回送显示n屏幕编辑屏幕编辑n特殊字符处理特殊字符处理 中断字符中断字符,停止上卷字符停止上卷字符,恢复上卷字符恢复上卷字符1.字符接收功能(1)面向字符方式(2)面向行方式2.字符缓冲功能3.回送显示4.屏幕编辑5.特殊字符处理包括:中断字符(Break,ctrl+C),停止上卷字符(ctrl+S),恢复上卷字符(ctrl+Q)7.1.4 命令解释程序1.命令解释程序的作用命令解释程序的作用n在屏幕上给出提示符在屏幕上给出提示符n读入该命令读入该命令n识别命令识别命令n转到相应命令处理程序的入口地址转到相应命令处理程序的入口地址n将结
6、果送屏幕显示将结果送屏幕显示C,Shell2.命令解释程序的组成n常驻部分常驻部分 包括一些中断服务子程序包括一些中断服务子程序n初始化部分初始化部分n暂存部分暂存部分3.命令解释程序的工作流程7.2 Shell 命令语言nShell是是UNIX与用户的交互接口与用户的交互接口,是操作是操作系统的最外层系统的最外层,称为外壳称为外壳nShell既是一种命令语言既是一种命令语言,也是一种程序也是一种程序设计语言设计语言nShell不是不是UNIX的核心程序的核心程序,运行在用户运行在用户态态Shell命令的使用方式n一般格式一般格式:command arg 1,arg 2,argnnShell的
7、命令提示符的命令提示符:$或或%n例子例子:$sh comfile(回车回车)7.2.1 简单命令1.进入与退出系统进入与退出系统 Login:和和Logout2.文件操作命令文件操作命令n显示文件内容命令显示文件内容命令cat n复制文件副本的命令复制文件副本的命令cpn文件改名命令文件改名命令mvn撤销文件命令撤销文件命令rmn确定文件类型命令确定文件类型命令file简单命令续:3.目录操作命令目录操作命令n建立目录命建立目录命mkdirn撤销目录命令撤销目录命令rmdirn改变工作目录命令改变工作目录命令cdn改变存取方式改变存取方式chmod4.系统询问命令系统询问命令n当前日期和时间
8、当前日期和时间daten询问系统当前用户的命询问系统当前用户的命令令whon显示当前目录路径名命显示当前目录路径名命令令pwd7.2.2 重定向与管道命令1.重定向命令重定向命令n例例1$cat file1file2n例例2$wcfile2n例例4$cat file1 file4file2n例例5 a.outfile02.管道命令n$command 1|command 2n例子例子 cat file|wc7.2.3 通信命令1.信箱通信命令信箱通信命令mailn是一种非交互式通信的工具是一种非交互式通信的工具n用用“.”来结束信件或用来结束信件或用“D”退出退出mail程序程序n接收者也用接收
9、者也用mail命令读取信件命令读取信件mail-r-q-p-file-F person2.对话通信命令对话通信命令writen实现联机通信实现联机通信nwrite userttyname3.允许或拒绝接收消息允许或拒绝接收消息命令命令mesgnmesg-n-y7.2.4 后台命令n可用可用ps、wait、kill等命令了解和控制等命令了解和控制后台进程的运行后台进程的运行7.3 系统调用7.3.1 系统调用的基本概念1.系统态和用户态CPU的指令集分为:特权指令和非特权指令。这种限制是由硬件实现的。2.系统调用与一般过程调用的差别与一般过程调用的差别:(1)运行在不同的系统状态运行在不同的系统
10、状态 调用程序运行调用程序运行在用户态在用户态,而被调用程序是运行在系统态而被调用程序是运行在系统态(2)通过软中断进入通过软中断进入.(3)返回问题返回问题.(4)嵌套调用嵌套调用(a)系统调用与返回用户程序系统调用命令系统功能调用返回返回返回7.3.2 系统调用的类型1.进程控制类进程控制类n包括创建进程和中止进程、获得和设置进程属性、等待某事件出现等。2.文件操纵类文件操纵类3.进程通信类进程通信类n通信方式通信方式:消息传递方式和共享存储区方消息传递方式和共享存储区方式式7.3.4 系统调用的实现P2661.中断和陷入硬件机构中断和陷入硬件机构(1)什么是中断和陷入什么是中断和陷入n中
11、断中断:中断是指中断是指CPU对系统发生某事件时对系统发生某事件时的这样一种响应的这样一种响应:CPU暂停正在执行的程暂停正在执行的程序序,在保留现场后自动地转去执行该事件在保留现场后自动地转去执行该事件的中断处理程序的中断处理程序;执行完后执行完后,再返回到原程再返回到原程序的断点处继续执行序的断点处继续执行.被中断程序被中断程序中断点中断点中断处中断处理程序理程序中断处理开始中断处理开始中断处理结束中断处理结束图7-5 中断时的CPU轨迹 外中断(又称中断):指来自处理器和主存之外的中断,即外部设备事件所引起的中断.内中断(又称异常):指来自处理器和主存内部的中断。内中断(trap)也被译
12、为捕获或陷入。按照中断信号的来源,可把中断分为外中断和内中断外中断和内中断两类:外中断包括:时钟中断、控制台中断、I/O中断等。不同的中断具有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断。内中断包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。异常异常是不能被屏蔽的,一旦出现应立即响应并加以处理。中断和异常的区别(1):中断中断是由与现行指令无关的中断信号触发的,且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的,如时钟中断、硬盘读
13、写服务请求中断;中断和异常的区别如下(2):异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常又分为出错出错和陷入陷入。出错和陷入的区别如下:它们发生时保存的返回指令地址不同,出错保存指向触发异常的那条指令,而陷入保存指向触发异常的那条指令的下一条指令。从异常返回时,出错会重新执行那条指令,而陷入就不会重新执行那条指令。如缺页异常是一种出错,而陷入主要应用在调试中。(2)中断和陷入向量n将不同设备的不同的中断处理程序的入将不同设备的不同的中断处理程序的入口地址放在特定的内存单元中口地址放在特定的内存单元中.n不同的设备也对应着不
14、同的处理机状态不同的设备也对应着不同的处理机状态字字PSWn上面的这两个字称为中断向量上面的这两个字称为中断向量,存放两个存放两个字的单元称为中断向量单元字的单元称为中断向量单元.2.系统调用号和参数的设置n直接将参数送入相应的寄存器中直接将参数送入相应的寄存器中.n参数表方式参数表方式3.系统调用的处理步骤n首先首先,将处理机状态由用户态转为系统态将处理机状态由用户态转为系统态n其次其次,是分析系统调用类型是分析系统调用类型,转入相应的系转入相应的系统调用处理程序统调用处理程序n在系统调用处理子程序执行完后在系统调用处理子程序执行完后,应恢复应恢复被中断的或设置新进程的被中断的或设置新进程的
15、CPU现场现场,然后然后返回被中断进程或新进程返回被中断进程或新进程,继续往下执行继续往下执行4.系统调用处理子程序的处理过程7.4 UNIX系统调用7.4.1 UNIX系统调用的类型系统调用的类型n包括进程控制、文件操纵、进程间通信包括进程控制、文件操纵、进程间通信和信息维护和信息维护1.进程控制n创建进程(fork)n终止进程(exit)n等待子进程结束(wait)n执行一个文件(exec)n获得进程IDn获得用户IDn进程暂停(pause)2.文件操纵n创建文件(creat)n打开文件(open)n关闭文件(close)n读和写文件n连接和去连接3.进程间通信n消息机制(msgget,msgsend,msgrcv)n共享存储器机制(shmget,shmat,shmdt)n信号量机制4.信息维护7.4.2 被中断进程的环境保护nCPU环境保护nAP和FP指针7.4.3 系统调用陷入后需处理的若干公共问题要进行的处理包括要进行的处理包括:n确定系统调用号确定系统调用号n实现参数传送实现参数传送n转入相应的系统调用处理子程序转入相应的系统调用处理子程序7.5 图形用户接口(GUI)
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。