第二章操作系统用户界面2.1简介一、用户与计算机之间的交互:是由用户界面来完成的。用户通过用户界面向计算机系统提交服务需求,计算机通过用户界面向用户提供所需要的服务。计算机系统的用户有两类:(1)一类是普通用户(使用计算机的应用服务,以解决实际应用问题)和管理员用户(负责计算机和操作系统的正常与安全运行)。(2)另一类是程序开发人员(需要使用操作系统所提供的编程功能开发新的应用程序,完成用户所要求的服务)。操作系统为普通用户、管理员用户以及编程人员用户提供不同的用户界面。操作系统为普通用户、管理员用户提供的界面由一组以不同形式表示的操作命令组成——命令控制界面。操作系统为编程人员提供的界面是系统调用。不同操作系统提供不同的系统调用。概念功能设计结构设计详细设计编辑输入建档输出执行链接编译调试修改需求分析一般编程过程2.2一般用户的输入输出界面一、作业的定义1、作业:是指在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作。2、作业步:在一个作业的处理过程中计算机所做的相对独立的工作。每个作业步产生下一个作业步的输入文件。如:编辑输入、编译编译连接装配运行目标程序段目标程序源程序输入数据子程序库函数动态库函数计算结果作业是由不同顺序相连的作业步组成的。典型的作业步二、作业的组织作业由程序、数据和作业说明书三部分组成。程序和数据完成用户所要求的业务处理工作;而作业说明书则体现用户的控制意图。作业说明书的内容:作业的基本描述--用户名、作业名、编程语言、最大处理时间等;作业控制描述--作业控制方式、作业步的操作顺序、作业执行出错处理等;资源要求描述--处理时间、优先级、内存空间、外设类型和数量、库函数或实用程序等;1.作业控制块(JCB:JobControlBlock)作业控制块是批处理作业存在的唯一标志,其中保存有系统对于作业进行管理所需要的全部信息它们被保存于磁盘区域中(1)作业控制块的内容:作业控制块中所包含的信息数量及内容因系统而异较简单的系统较复杂的系统作业标识用户帐号调度信息资源需求作业状态作业类别输入井地址输出井地址进入系统时间开始处理时间作业完成时间作业退出时间资源使用情况作业控制块JCB(2)作业控制块的建立当作业开始由输入设备向磁盘的输入井传输时,系统输入程序为其建立一个作业控制块,并进行初始化。初始化的大部分信息取自作业说明书(3)作业控制块的使用需要访问作业控制块的程序系统输入程序作业调度程序作业控制程序系统输出程序等(4)作业控制块的撤销作业完成后,其作业控制块由系统输出程序撤消,作业控制块被撤消后其作业也不复存在。2、作业表每个作业有个作业控制块所有作业JCB构成一个作业表作业表存放在外存固定区域中,长度固定限制了系统所能同时容纳的作业数量系统输入程序、作业调度程序、系统输出程序都需要访问作业表,因而存在互斥问题。JCB1JCB2……JCBi……JCBn作业表三、批处理作业的状态及转换一个作业从进入系统到运行结束经历四个不同的状态:“提交”“后备”“运行”“完成”作业和进程的状态转换图数据提交状态退出状态后备状态运行状态作业控制进程…输入设备数据源程序输出设备作业说明书输入井运行等待就绪输出井输入程序输出程序作业调度进程调度四、一般用户的输入输出1、联机输入输出方式大多用于交互式系统,用户和系统通过交互会话来输入输出作业。主机和外围设备直接相连。2、脱机输入输出方式(预输入方式)利用个人计算机作为外围处理机进行输入输出处理。解决了设备联机输入输出是速度太慢的问题。主机公用存储器低档PC机低档P0C机3、直接耦合方式把主机和外围机通过一个共用的大容量外存直接耦合起来。慢速的输入输出过程由外围低档机管理公用存储器中的大量数据的高速读写由主机完成4、SPOOLING系统(假脱机技术)多台外围设备通过通道或DMA器件和主机与外存链接起来。作业的输入输出过程由主机中的操作系统控制。输入装置输入装置通道通道输出装置输出装置通道主机系统输入管输出管理模块理模块外设输入井输出井SPOOLing系统(1)SPOOLING系统的组成输入井和输出井输入缓冲区和输出缓冲区输入管理模块、输出管理模块(2)SPOOLING系统的工作原理系统的输入程序包含两个独立的过程,一个过程负责从外部设备把信息读入缓冲区;另一个过程是写过程,负责把缓冲区中的信息送到外存输入井中。在系统输入模块收到作业输入请求后,输入管理模块中的读过程负责将信息从输入装置读入缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中。读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到硬件结束标志后,系统再次驱动写过程把最后一批信息写入外存并调用中断处理程序结束该次输入。2.3命令控制界面一、操作系统为用户提供两个接口界面:命令接口界面、系统用调。用户利用命令来组织和控制作业的执行,或管理计算机系统。编程人员使用系统调用来请求操作系统提供服务。使用操作命令进行作业控制的主要方式有两种:脱机方式和联机方式。(1)脱机方式:利用作业控制语言(作业控制命令)来编写作业说明书,以控制作业的执行和出错处理。常用在批处理系统中,也称它为“批处理方式”,而把采用批处理控制方式的作业称为“批处理作业”。(2)联机方式:用户利用系统为其提供的一组键盘或其他操作方式命令,交互地控制程序执行和管理计算机系统。二、联机控制方式命令分类:环境设置:用来改变终端用户所在位置、执行路径等执行权限管理:用来控制用户访问系统和读、写、执行有关文件的权限。系统管理:用于系统维护、开机与关机、增加或减少终端用户、计时收费等。大部分为系统管理员使用文件管理:用来管理和控制终端用户的文件。编辑、编译、链接装配和执行编辑:用来帮助用户输入用户文件。通信:用来进行主机和远程终端之间的呼叫、联接以及断开等,从而在主机和终端之间建立会话信道。资源要求:用户使用该类命令向系统申请资源。现代操作系统中,大都提供批处理方式和联机控制方式。批处理方式即指传统的作业控制语言编写的作业说明书方式,也指那些把不同的交互命令按一定格式组合后的命令文件方式。三、命令控制界面的发展:近年来,命令控制界面的人机交互方式发生了革命性变化。无论是Windows系列,还是UNIX系列的操作系统,它们的命令控制界面都是由多窗口的按钮式图形界面组成。在这些系统中,命令已被开发成一条条能用鼠标点击而执行的简单的菜单或小巧的图标。而且,用户也可以在提示符的提示下用普通字符方式输入各种命令。用声音控制的命令控制界面也已逐步开发出来。计算机系统的命令控制界面将会越来越方便和越来越拟人化。2.5系统调用系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。操作系统内有事先编好的实现这些功能的子程序或过程。这些程序或过程是操作系统程序模块的一部分,为保证操作系统程序不被用户程序破坏,系统调用不能直接被用户程序调用,而只能通过访管指令来申请调用它们。系统中控制系统调用服务的机构称为陷阱(trap)处理机构。由系统调用引起处理机中断的指令称为陷阱指令(访管指令)。系统调用分类:(1)设备管理:这类系统调用被用来请求和释放设备,以及启动设备操作等。(2)文件管理:这类系统调用包括创建、删除文件,读、写文件以及移动文件指针等。(3)进程控制:进程创建、进程执行、进程撤销、执行等待和执行优先级控制等。(4)进程通信:进程间传递消息或信号的系统调用。(5)存储管理:内存块的申请、释放,获取作业占用内存块的首址、大小等。(5)线程管理:线程的创建、调度、执行、撤销等。不同的系统提供不同的系统调用。系统调用的实现过程:用户在源程序中使用系统调用,并给出系统调用名和参数,即产生一条相应的陷阱指令,处理机在执行到这条指令后,引起处理机中断,并发出有关信号给陷阱处理机构,该处理机构收到信号后,启动相关程序保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表找到该系统子程序并执行。执行完毕后,退出中断,返回到用户程序的断点,恢复现场,继续执行用户程序。SystemcallA0A1AiAn用户程序……陷入处理机构(1)保护处理机现场(2)取系统调用功能号并寻找子程序入口(3)返回A0A1AiAn……sub0sub1subisubn……系统子程序入口地址表系统调用的处理过程系统调用参数的传递:系统调用有时需要传递给系统子程序以不同的参数。而且系统调用的执行结果也要以参数形式返回给用户程序。那么,怎样实现用户程序和系统程序之间的参数传递呢?由陷阱指令自带参数。一般来说,一条陷阱指令的长度总是有限的,而且,该指令还要携带一个系统调用的功能号,因此,陷阱指令只能自带极有限的几个参数进入系统内部。通过有关通用寄存器来传递参数。这些寄存器应是系统程序和用户程序都能访问的。不过,寄存器长度也是较短的。从而无法传递较多的参数。因此,在系统调用较多的系统中,大多在内存中开辟专用堆栈区来传递参数。用户态和核心态:在系统发生访管中断时,为了不让用户程序直接访问系统程序,反映处理机硬件状态的处理机状态字PSW中相应位要从用户执行模式转换为系统执行模式。这一转换在发生访管中断时由硬件自动实现。处理机在用户程序中执行称为用户态。处理机在系统程序中执行称为系统态。系统调用与过程调用的相同点:改变指令流程重复执行和公用改变指令流程后需要返回原处系统调用与一般过程调用的区别:运行在不同的系统状态一般过程调用,其调用程序和被调用程序都运行在相同状态:用户态或系统态。系统调用:调用程序在用户态,被调用程序在系统态进入的方式不同一般过程调用可以直接通过过程调用语句将控制转移到被调用的过程。执行系统调用时,由于调用和被调用过程处于不同的系统状态,必须通过访管中断进入。代码层次不同一般的过程调用中的被调用程序是用户级程序。系统调用是操作系统中的代码程序,是系统级序。系统调用是动态调用,而一般过程调用方式是静态调用嵌套调用系统调用也允许嵌套调用,即在一被调用过程执行期间,可再利用系统调用命令调用另一系统调用一般每个系统对嵌套调用的深度有限制“广令指义”和“虚处理机”系统调用命令扩充机器指令,增强系统的功能,方便用户使用,称为“广义指令”“广义指令”和机器指令的不同:机器指令是由硬件线路直接实现的“广义指令”由OS提供的多个子程序,软件实现的“虚处理机”:从用户角度来看,“广义指令”,扩大了机器指令系统,增强了处理机功能提供了一台功能更强,使用更方便的处理机,实现了处理机性能上的扩充为了区别于真实的物理处理机,称它为“虚处理机”2.6UNIX用户界面一、UNIX发展历史与特点UNIX操作系统是在1969年又贝尔实验室的汤普逊和理奇等人在PDP-7上开发成功的16位微机操作系统。UNIX正式发表在1974年的美国计算机学会杂志ACM上。当时已经是第5版,而已经在大学里得到较多地使用和好评。在1975才引入多道技术,从而成为一个真正的多用户分时系统。二、UNIX系统的特点UNIX在不长的时间内获得了巨大的成功,这与他在设计上的特点是分不开的。特点:(1)UNIX系统是一个可供多用合同时操作的会话式分时操作系统。(2)为了向用户提供会话式功能和使得用户可以利用UNIX系统的功能,UNIX系统向用户提供了两种用户友好的界面或接口(3)UNIX系统具有一个可装卸的分层树型结构文件系统(4)UNIX系统把所有外部设备都当作文件,并分别赋予它们对应的文件名(5)UNIX系统核心程序的绝大部分源代码和系统上的支持软件都用C语言编写三、UNIX系统结构UNIX系统结构可分为三层:(1)最内层是UNIX操纵系统核心,它包含文件控制系统和进程控制系统。这两部分的实现因厂家和版本而异,其程序量