《操作系统用户界面第2章.ppt》由会员分享,可在线阅读,更多相关《操作系统用户界面第2章.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 操作系统用户界面 本章主要从用户使用和系统管理两方面出发,讨论操作系统为用户提供的编程接口和命令控制接口。首先讨论操作系统的命令控制接口及与其相关的作业控制和管理概念,然后介绍系统调用与编程接口,最后介绍操作系统用户界面示例。第2章 操作系统用户界面u 作业的基本概念u 作业的建立u 命令控制界面接口u 系统调用u UNIX用户界面(自学)课时:2.0作业的基本概念n 作业的定义 从用户的角度,在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。作业由不同的顺序相连的作业步组成。作业步是计算机所做的一个相对独立的工作。作业的基本概
2、念n 作业的定义 从系统的角度,作业由程序、数据和作业说明书组成。在批处理系统中,系统是以作业为单位把程序和数据调入内存执行的。作业的概念常用在批处理系统中。作业的建立n 作业的组织 作业说明书体现用户的控制意图。由作业说明书在系统中生成一个称为作业控制块(job control block,JCB)的表格。JCB包含三方面内容,即基本描述、控制描述和资源要求描述。作业的建立作业的建立n 作业的组织 作业说明书主要实现批处理的控制,不同计算机厂家都有各自的作业说明书的格式和内容。在微机系统中,人们常用批处理文件或shell程序方式编写作业说明书。尤其在Unix类系统中shell程序设计也很重要
3、。n 作业的建立过程 一个作业的建立过程包括两个子过程:l 作业的输入:输入数据、程序、作业说明书等;l JCB的建立:申请创建作业的JCB,标志着系统中存在该作业。作业的建立n 作业输入方式 常分为三种,即联机输入方式、脱机输入方式、SPOOLING系统。1)联机输入方式u 用户和系统通过交互会话来输入作业u 外围设备直接和主机相连接作业的建立n 作业输入方式 2)脱机输入方式 称为预输入方式。为了解决单台设备联机输入时的CPU浪费问题,利用辅机作为外围处理机进行输入处理。在辅机上,将作业输入到高速设备磁盘或磁带上;再把磁盘与主机联机输入作业。作业的建立n 作业输入方式 3)SPOOLING
4、系统 SPOOLING(Simultaneous Peripheral Operations On-Line),即同时的外围设备联机操作,也称假脱机。其工作原理如图2.4所示。作业的建立作业的建立技术支持:技术支持:通通道技术和中断道技术和中断技术技术SPOOLING结构结构n 作业输入方式 3)SPOOLING系统 在SPOOLING系统中,作业的输入输出过程由主机控制、通道操作完成,需由中断技术支持。作业的建立作业的建立输入状态输入状态完成状态完成状态后备状态后备状态运行状态运行状态作业控制进程作业控制进程 输入设备输入设备数据数据源程序源程序输出设备输出设备作业说作业说明书明书输输入入井
5、井运行运行等待等待就绪就绪输输出出井井输输入入程程序序输输出出程程序序作作业业调调度度进程进程调度调度作业的执行周期与状态转换图作业的执行周期与状态转换图n 作业输入方式 3)SPOOLING系统 组成组成l 硬件:大容量外存(磁盘)l 软件:u 预输入程序:I/O输入井;u 作业调度程序:选择后备作业进入内存;u 井读程序:输入井内存;u 井写程序:内存输出井;u 缓输出程序:输出井 I/O;作业的建立井管理程序井管理程序 操作系统的命令控制界面就是用来组织和控制作业运行的。包括脱机和联机方式。脱机方式:用户以作业控制说明书方式或命令文件方式提交给系统,由系统按照作业说明书或命令文件中所规定
6、的顺序控制作业执行。如:Linux系统下shell程序。命令控制界面接口 联机方式:用户直接使用操作命令与系统进行交互式会话完成系统的控制和管理。Windows用户日常操作都属于联机方式。在现代操作系统中,大都提供脱机(批处理)方式和联机控制方式。命令控制界面接口 系统调用是操作系统提供给编程人员的唯一接口,有助于提高了OS的安全性。利用系统调用,用户程序可以动态请求和释放系统资源,完成与硬件相关的工作以及控制程序的执行等。OS中系统调用服务机构称为陷入(trap)处理机构。与此对应,把由于系统调用引起处理机中断的指令称为陷入指令(或称访管指令)。系统调用接口系统调用接口系统调用的执行过程l
7、特权指令与CPU运行状态 特权指令指只能由操作系统使用的指令。n 用户态:也称常态、目态、外壳态,即 CPU执行用户程序,不允许执行特权指令。n 系统态:也称特态、管态、核心态,即CPU执行系统程序,可执行所有指令。Trap指令属于哪类指令?系统调用接口l 系统调用与一般过程调用的比较 相同点:n 改变指令流程;n 重复执行和公用;n 改变指令流程后需要返回原处;系统调用接口l 系统调用与一般过程调用的比较 不同点:n 运行在不同的系统状态:一般过程调用,其调用程序和被调用程序都运行在相同状态,核心态或用户态;系统调用,调用程序在用户态,被调用程序在系统态。系统调用接口l 系统调用与一般过程调
8、用的比较 不同点:n 嵌套或递归调用:对系统调用,一般不允许在同一个进程中发生嵌套或递归(不同进程可以重入同一个系统调用)。n 进入方式不同:利用int或trap指令进行系统调用;利用call 或 jmp 指令进入普通的过程调用。系统调用接口l 系统调用与一般过程调用的比较 不同点:n 系统调用是动态的,一般过程调用是静态的:系统调用程序中不包含被调用代码,调用地址和返回地址都是不固定的;而一般过程调用的被调用代码与调用代码在同一程序之内,其调用地址是固定的,返回地址是不固定的。系统调用接口自学要求:n UNIX的发展历史n UNIX的特点n UNIX的接口UNIX用户界面习 题1.什么是作业
9、和作业步?2.作业由哪几部分组成?3.叙述SPOOLING系统的工作原理。4.简述作业控制块及其作用。5.操作系统提供哪些接口?6.结合实际,总结你的日常作业控制方式。7.什么是系统调用?与一般过程调用有何区别。8.区别两种系统(CPU)运行状态。9.试述UNIX的主要特点【例】操作系统提供给程序员的接口是()A 进程B 系统调用C 库函数D 系统调用和库函数【答案】B【例】用户在程序中试图读某文件的第100个逻辑块,使用操作系统的()接口A 系统调用B 图形用户接口C 原语D 键盘命令【答案】A【例】在下列语言中属于脱机作业控制语言的是()A 作业控制语言B 汇编语言C 会话式程序设计语言D
10、解释BASIC【答案】A【例】用户使用操作系统通常有三种手段,它们是终端命令,系统调用命令和()A 计算机高级命令B 宏命令C 作业控制语言D 汇编语言【答案】C【例】用户要在程序一级获得系统帮助,必须通过()。A.进程调度 B.作业调度 C.键盘命令 D.系统调用【答案】D【例】用户的应用程序和应用系统是通过()提供的支持和服务来使用系统资源完成其操作的。A 点击鼠标B 键盘命令C 系统调用D 图形用户界面【答案】C【例】用户可以通过()两种方式来使用计算机。A 命令方式和函数方式B 命令方式和系统调用方式C 命令方式和文件管理方式D 设备管理方式和系统调用方式【答案】B【例】系统调用的目的
11、是()。A.请求系统服务 B.终止系统服务 C.申请系统资源 D.释放系统资源【答案】A【例】系统调用是由操作系统提供的内部调用,它()。A.直接通过键盘交互方式使用 B.只能通过用户程序间接使用 C.是命令接口中的命令使用 D.与系统的命令一样【答案】B【例】操作系统内核与用户程序、应用程序之间的接口是()。A.shell 命令 B.图形界面 C.系统调用 D.C 语言函数【答案】C【例】当CPU执行操作系统代码时,称处理机处于()。A 执行态B 目态C 管态D 就绪态【答案】C【例】为了便于用户直接或间接地控制自己的作业,操作系统向用户提供了命令接口,该接口又可进一步分为()A 联机用户接
12、口和脱机用户接口B 程序接口和图形接口C 联机用户接口和程序接口D 脱机用户接口和图形接口【答案】A【例】用户在一次解题或一个事务处理过程中要求计算机系统所做工作的集合称为_。【答案】作业【例】所谓系统调用,就是用户在程序中调用_所提供的一些子功能【答案】操作系统【例】脱机命令接口和联机命令接口有什么不同?【答案】脱机命令接口是OS提供给批处理作业用户的作业控制语言。批处理用户不能直接与自己的运行作业进行交互,只能向系统提供用作业控制语言编写的作业说明书,并委托系统按作业说明书中的作业控制命令,来对它们的作业进行控制和管理联机命令接口则不要求用户填写作业说明书,此时,系统将向用户一组键盘命令或
13、其他操作方式的命令,用户可通过这些命令来交互地控制自己程序的运行,并获得操作系统的服务。【例】处理机为什么要区分核心态和用户态两种操作方式?什么情况下进行两种方式的转换?【解答】为了保护操作系统不受破坏,通常将CPU的执行方式分为两种:核心态和用户态。在核心态,允许执行CPU的指令全集,而在用户态,只能执行非特权指令,从而使系统得到保护。当用户希望得到操作系统服务时,使用系统调用命令。这样,当CPU执行到系统调用时,CPU的执行方式就由用户态变为核心态,执行用户希望的服务。完成服务后,在返回用户程序之前,CPU的执行状态再变为用户态,继续执行用户程序。【例】简述系统调用与过程调用有什么相同和不
14、同点。【解答】相同点:执行都改变指令的流程;都可以重复执行和共享调用;允许嵌套调用。区别:1 运行在不同的系统状态。一般过程调用,其调用程序和被调用程序都运行在相同的状态:核心态或用户态。系统调用中,调用程序运行在用户态,被调用程序运行在核心态。用户态向核心态转变时,通过陷入指令实现。2 进入方式不同。一般的过程调用不涉及系统状态的转换,由调用程序直接通过调用语句转向调用过程。系统调用,调用和被调用过程在不同系统状态,不允许由调用过程直接转向被调用过程,必须通过软中断机制先由用户态转换为核心态。3 返回问题一般过程调用在被调用过程执行完后,将直接返回到调用过程继续执行;系统调用,如果系统采用抢
15、占调度方式,则在被调用过程执行完后,必须先对系统中所有要求运行的进程做优先分析。只有当调用进程仍具有最高优先权时,才返回到调用进程继续执行;否则,将引起重新调度。【例】区别概念:操作命令与 系统调用【解答】操作命令是提供给普通用户使用的与操作系统的接口方式,其目的是便于用户利用利用这种接口方式组织和控制作业的执行。系统调用是操作系统向编程人员提供的请求操作系统服务和使用设备时的一种接口。操作系统调用命令对应操作系统提供服务的一些子程序。用户通过这些称为特殊指令的命令来调用这些子程序,已取得操作系统的服务。【例】简述系统调用的实现过程【解答】系统调用是操作系统提供给软件开发人员的惟一接口,开发人
16、员可利用它使用系统功能。OS核心中都由一组实现系统功能的过程(子程序),系统调用是对上述过程的调用。因此,系统调用直观上像一个黑箱子,对用户屏蔽操作系统的具体动作而只提供有关的功能。为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编造入口地址表,每个入口都与相应的系统子程序名对应起来。然后,由陷阱处理程序把陷进指令中所包含的功能号与该入口地址表中的有关项对应起来,从而有系统调用功能号驱动有关系统子程序执行。由于在系统调用处理结束后,用户程序还需利用系统调用的返回结果继续执行,因此,在进入系统调用处理前,陷阱处理机构还需保存处理机现场。再者,在系统调用处理结束后,陷阱处理机构还
17、要恢复处理机现场。在操作系统中,处理机的现场一般被保护在特定的内存区或寄存器中。【例】命令接口和图形用户接口分别有什么优缺点?【解答】命令接口的优点是功能强,速度快,灵活性好,屏幕开销少,缺点是显示不直接,难学难记。图形用户接口的优点是显示直观,操作简便,易学;缺点是实现的代码规模大,对内外存容量,cpu速度和显示器的要求较高。作业的几种状态作业的几种状态【例】作业的全部信息都已通过输入机输入,并由操作系统将其存放在磁盘的某些盘区等待运行,这种状态称为作业的()。A 提交状态B 运行状态C 后备状态D 完成状态【分析】作业从提交到完成,分为4种状态:1 提交状态:通过终端向计算机键入2 后备状
18、态:作业全部通过输入机输入,由OS将其存放在磁盘中。3 运行状态:作业被调度程序选中送入主存中投入运行4 完成状态:作业完成,释放资源,退出系统【答案】C【例】作业在生存期有4个状态,它们(),后备,执行和完成A 就绪B 提交C 等待D 开始【答案】B【例】下列叙述中,符合批处理作业特征的有_。(A)其中包含有作业说明书(B)具有就绪状态(C)运行过程和用户没有交互作用 (D)其中包含有程序和数据(E)用户可以通过键盘输入程序运行过程需要的数据【解析】采用批处理控制方式的作业,用户把对作业执行的控制意图用作业控制语言写成一份说明书,连同该作业的源程序和初始数据一起输入到计算机系统,系统就可按用
19、户说明书来控制作业的执行。作业执行过程中用户不能干预,一切由系统自动地控制作业的执行。w因此,选项(A)、(C)、(D)是正确的。“就绪状态就绪状态”是进程具有的状态,作业没有该状态是进程具有的状态,作业没有该状态,选项(B)是错误的;由于运行过程和用户没有交互作用,所以“用户可以通过键盘输入程序运行过程需要的数据”(选项E)是错误的。【答案】ACD【例】一个作业从进入系统到运行结束,经历的状态包括_。(A)进入状态 (B)就绪状态(C)后备状态 (D)运行状态(E)完成状态【解析】一个作业从进入系统到运行结束,一般要经历进入、后备、运行和完成四个阶段,相应地,作业亦有进入、后备、运行和完成四
20、种状态。因此,选项(A)、(C)、(D)、(E)是正确的。w 注意,作业的运行状态是指作业被调入内存运行,不意味着占用处理机。【答案】ACDE【例】下列有关作业的叙述中,_是正确的。(A)作业一旦被作业调度选中,即占有了(B)批处理系统对作业的控制意图是靠作业说明书来实现的,用户不能控制作业的执行(C)作业调度程序从处于等待状态的队列中选取作业投入运行(D)作业一旦被作业调度选中,该作业即进入内存(E)允许多个用户在各自的终端上同时交互地使用计算机的系统称为分时操作系统【解析】作业提交后进入作业队列,处于后备状态;作业调度程序从处于后备状态的队列中选取作业,作业一旦被作业调度选中,该作业即进入
21、内存。因此,选项(A)、(C)是错误的【答案】BDE【例】作业一旦被作业调度选中,即占有了。()【解析】一个作业一旦被作业调度选中,说明作业处于运行状态,该作业已进入到内存中,并以进程形式存在于系统中,属该作业的进程可能处于运行、就绪或等待状态,不一定占有。【答案】错误【例】简述作业在系统中有哪几种状态。【解析】w一个作业从进入系统到运行结束,一般要经历进入、后备、运行和完成四个阶段,相应地,作业亦有进入、后备、运行和完成四种状态。w (1)进入状态:作业的信息正在从输入设备上预输入到输入井,此时称作业处于进入状态。w (2)后备状态:当作业的全部信息都已输入,且由操作系统将其存放在输入井中,
22、此时称作业处于后备状态。系统将所有处于后备状态的作业组成后备作业队列,等待作业调度程序的调度。w (3)运行状态:一个后备作业被作业调度程序选中,分配了必要的资源,调入内存运行,称作业处于运行状态。w (4)完成状态:当作业正常运行完毕或因发生错误非正常终止时,作业进入完成状态。SPOOLing【例】虚拟设备是指()A 把共享设备模拟独占设备B 允许用户程序不必全部装入主存便可使用系统中的设备C 允许用户以标准化方式来使用设备D 允许用户使用比系统中具有的物理设备更多的设备【答案】A【例】下面4个选项中不属于SPOOLing系统特点的是()。A提高了内存的利用率B 提高了I/O操作的速度C将独
23、占设备改造为共享设备D 实现了虚拟设备功能【分析】所有字符设备都是独享设备并属于慢速设备,本质上属于顺序存取设备。因此,一个进程在某台字符设备上进行数据交换,要等待较长时间,并且在该数据交换完成之前,其他进程不能同时访问这台设备,当一个进程正在使用这类设备进行一次较大量的数据交换时,其他需要同时访问该设备的进程就要等待较长时间,从而降低了整个系统的并发能力。SPOOLing技术正是针对上述问题提出的一种设备管理技术。在多道程序系统中,用程序模拟脱机输入/输出时外围控制机的功能,这样在主机的直接控制下实现脱机输入/输出功能。此时的外围操作与CPU对数据处理同时进行,这种在联机情况下实现的外围设备
24、同时操作称为SPOOLing,假脱机。SPOOLing系统的核心思想是利用一台可共享的,高速大容量的块设备(磁盘)来模拟独享设备的操作,使一台独享设备变成多台可并行使用的虚拟设备。其主要特征是提高了I/O操作的速度,将独享设备改造成为共享设备;实现了虚拟设备功能。【答案】A【例】在关于SPOOLing的叙述中,()描述是不正确的A SPOOLing系统中不需要独占设备B SPOOLing系统加快了执行速度C SPOOLing系统使独占设备变成共享设备D SPOOLing系统利用了处理器与通道并行工作管理。【分析】SPOOLing系统有如下特征:1 提高了速度。对数据进行的I/O操作,已从低速I
25、/O设备进行的I/O操作,演变为从输入井或输出井中数据的存取,如同脱机输入输出一样,提高了I/O速度,缓解了CPU与低速I/O设备之间速度不匹配的矛盾。2 将独占设备改造成共享设备。在SPOOLing系统中,实际上并没有任何进程分配设备,而只是在输入井或输出井中,这样,便把独占设备改造成共享设备3 实现了虚拟设备功能。宏观上,多个进程在同时使用一台独占设备,而对每一个进程而言,都认为自己独占一个设备。【答案】A【例】虚拟设备是操作系统利用某种I/O技术,将某个_设备改造为多个用户可以共享的设备。【分析】虚拟设备是利用某种技术把独占设备改造成可由多个进程共享的设备。虚拟分配技术是利用共享设备去模
26、拟独占设备,从而使独占设备成为共享的,快速I/O的设备,实现虚拟分配的最有名的技术是SPOOLing技术。SPOOLing是在通道技术和多道程序基础上产生的,它由主机和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作【答案】独占设备【例】虚拟设备是通过 技术,把 变成能为若干用户 的设备。【答案】SPOOLING,独享,共享【例】打印机通过SPOOLING技术改造后,可以成为供多个用户同时使用的虚拟设备。()【答案】正确。【例】虚拟设备技术将不能共享的设备改造成为可以共享的设备。()【解答】对【例】什么是预输入和缓输出?【解答】对于输入而言,预输入是指作业
27、在执行前,预先把用户提交的若干个作业的信息(程序,数据)从低速设备(纸带机,读卡机)输入到高速外设(磁盘,磁带)上。当用户程序被作业调度程序选中运行时,并发进程试图从低速输入设备上读数据时,SPOOLing程序截获此请求,把它转换为从磁盘上读。磁盘是可共享的设备,各并发进程可同时从磁盘上读。给各用户进程的感觉就好像系统提供了若干给各用户进程的感觉就好像系统提供了若干台输入设备一样。台输入设备一样。对于输出而言,缓输出是指为了将独享的打印机改造成为用户概念上的共享设备,当任何运行的互用进程要向打印机输出信息时,系统截获此请求,首先将输出的信息编制成打印文件,并将它们存放在可共享的快速设备上。当打印设备空闲时,再从共享设备上一个一个地取文件进行打印。从而将独立使用的打印机变为可由多用户共享使用的打印机。将实现的这两个过程分别称为预输入和缓输出。【例】在实现后台打印时,SPOOLing系统应为请求I/O的进程提供哪些服务?【解答】在请求后台打印时,SPOOLing应为请求I/O的进程提供的服务主要由SPOOLing的输出进程来承担,做三件事:1 在输出井上请求一块缓冲区,将要打印的数据送入其中。2 请求一张空白“用户请求打印表”,填入打印说明信息后挂入请求打印队列。3 一旦打印机空闲,就从请求打印队列头部取下一个请求打印表,根据表中要求将输入井的数据读入内存缓冲区,由打印机输出。
限制150内