1、2.1 2.1 简介简介2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面2.3 2.3 命令控制界面命令控制界面2.4 Linux 2.4 Linux 与与 Windows Windows 的命令控制界面的命令控制界面2.5 2.5 系统调用系统调用2.6 Linux 2.6 Linux 和和 Windows Windows 的系统调用的系统调用本章小结本章小结习题习题第第 2 2 章章 操作系统用户界面操作系统用户界面 本章主要从本章主要从用户使用用户使用和和系统管理系统管理两方面出发两方面出发, 讨论操作系讨论操作系统为用户提供的统为用户提供的编程接口编程接口和和命令控制命令控
2、制接口。接口。 首先讨论操作系统的命令控制接口及与其相关的作业控制首先讨论操作系统的命令控制接口及与其相关的作业控制和管理概念,然后介绍系统调用与编程接口,最后介绍操作系和管理概念,然后介绍系统调用与编程接口,最后介绍操作系统用户界面示例。统用户界面示例。第第 2 2 章章 操作系统用户界面操作系统用户界面2.1 2.1 简介简介 用户界面是操作系统的重要组成部分。用户界面负责用用户界面是操作系统的重要组成部分。用户界面负责用户和操作系统之间的交互。即用户通过用户界面向计算机系户和操作系统之间的交互。即用户通过用户界面向计算机系统提交服务需求,计算机通过用户界面向用户提供用户所需统提交服务需求
3、,计算机通过用户界面向用户提供用户所需要的服务。要的服务。 用户的分类及用户界面:用户的分类及用户界面: 普通用户和管理员普通用户和管理员-命令控制界面命令控制界面 开发人员开发人员-系统调用系统调用2.2.1 2.2.1 作业的定义作业的定义 作业是操作系统中一个常见的概念。关于什么是作业,作业是操作系统中一个常见的概念。关于什么是作业,有两个方面的解释。有两个方面的解释。 一个是从用户角度看作业,另一个是从一个是从用户角度看作业,另一个是从系统的角度来看作业。从用户的角度,可以从逻辑上抽象地系统的角度来看作业。从用户的角度,可以从逻辑上抽象地( (并非精确地并非精确地) )描述作业的定义,
4、而从系统的角度,则可以定描述作业的定义,而从系统的角度,则可以定义出作业的组织形式。义出作业的组织形式。 一般编制一个应用程序大致要经过图一般编制一个应用程序大致要经过图2.12.1中所描述的几步。中所描述的几步。即由概念或构思出发经过功能设计、结构设计以及详细设计即由概念或构思出发经过功能设计、结构设计以及详细设计过程之后,再编制程序和进行编辑输入、编译链接和反复调过程之后,再编制程序和进行编辑输入、编译链接和反复调试之后再形成执行代码,并被执行,然后输出执行结果和建试之后再形成执行代码,并被执行,然后输出执行结果和建立相应的文档等。立相应的文档等。2.2 2.2 一般用户的输入输出界面一般
5、用户的输入输出界面2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面图图 2.1 2.1 一般编程过程一般编程过程 在图在图2.12.1中,直到编辑为止的各步都可认为是可由人工独中,直到编辑为止的各步都可认为是可由人工独立完成的立完成的( (尽管也有许多支撑软件存在尽管也有许多支撑软件存在) ),但从编辑输入开始,但从编辑输入开始的以下各步却是在用户的要求控制下由计算机完成。的以下各步却是在用户的要求控制下由计算机完成。 在一次应用业务处理过程中,从输入开始到输出结束,在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一用户要求计算机所
6、做的有关该次业务处理的全部工作称为一个个作业作业。 作业由不同的顺序相连的作业由不同的顺序相连的作业步作业步组成。组成。 作业步是在一个作业的处理过程中,计算机所做的相对作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。一般来说,每一个作业步产生下一个作业步的独立的工作。一般来说,每一个作业步产生下一个作业步的输入文件。输入文件。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面 从系统的角度看,作业则是一个比程序更广的概念。它从系统的角度看,作业则是一个比程序更广的概念。它由由程序程序、数据数据和和作业说明书作业说明书组成。系统通过作业说明书控制组成。系统通过作业说明书控
7、制文件形式的程序和数据,使之执行和操作。而且,在批处理文件形式的程序和数据,使之执行和操作。而且,在批处理系统中,作业是抢占内存的基本单位。也就是说,批处理系系统中,作业是抢占内存的基本单位。也就是说,批处理系统以作业为单位把程序和数据调入内存以便执行。统以作业为单位把程序和数据调入内存以便执行。 需要说明的是,作业的概念一般用于早期批处理系统和需要说明的是,作业的概念一般用于早期批处理系统和现在的大型机、巨型机系统中,对于广为流行的微机和工作现在的大型机、巨型机系统中,对于广为流行的微机和工作站系统,人们一般不太使用作业的概念。站系统,人们一般不太使用作业的概念。2.2 2.2 一般用户的输
8、入输出界面一般用户的输入输出界面2.2.2 2.2.2 作业组织作业组织 如上所述,作业由三部分组成,即程序、数据和作业说如上所述,作业由三部分组成,即程序、数据和作业说明书。一个作业可以包含多个程序和多个数据集,但必须至明书。一个作业可以包含多个程序和多个数据集,但必须至少包含一个程序。否则将不成为作业。少包含一个程序。否则将不成为作业。 作业中包含的程序和数据完成用户所要求的业务处理工作业中包含的程序和数据完成用户所要求的业务处理工作。作业说明书则体现用户的控制意图。由作业说明书在系作。作业说明书则体现用户的控制意图。由作业说明书在系统中生成一个称为统中生成一个称为作业控制块作业控制块(j
9、ob control block(job control block,JCBJCB) )的的表格。该表格登记该作业所要求的资源情况、预计执行时间表格。该表格登记该作业所要求的资源情况、预计执行时间和执行优先级等。从而,操作系统通过该表了解到作业要求,和执行优先级等。从而,操作系统通过该表了解到作业要求,并分配资源和控制作业中程序和数据的编译、链接、装入和并分配资源和控制作业中程序和数据的编译、链接、装入和执行等。执行等。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面 作作业说明书主要包含三方面内容,即作业的业说明书主要包含三方面内容,即作业的基本描述基本描述、作、作业业控制描述控
10、制描述和和资源要求描述资源要求描述。作业基本描述包括用户名、作业。作业基本描述包括用户名、作业名、使用的编程语言名、允许的最大处理时间等。而作业控制名、使用的编程语言名、允许的最大处理时间等。而作业控制描述则大致包括作业在执行过程中的控制方式。资源要求描述描述则大致包括作业在执行过程中的控制方式。资源要求描述包括要求内存大小、外设种类和台数、处理机优先级、所需处包括要求内存大小、外设种类和台数、处理机优先级、所需处理时间、所需库函数或实用程序等。理时间、所需库函数或实用程序等。 作业说明书的主要内容如图作业说明书的主要内容如图2.2 2.2 所示。所示。 一般来说,作业说明书方式主要用在批处理
11、系统中,且各一般来说,作业说明书方式主要用在批处理系统中,且各计算机厂家都对自己的系统定义有各自的作业说明书的格式和计算机厂家都对自己的系统定义有各自的作业说明书的格式和内容。内容。 另外,在微机系统和工作站系统中,人们常用批处理文件另外,在微机系统和工作站系统中,人们常用批处理文件或或 shellshell程序方式编写作业说明书。程序方式编写作业说明书。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面图图2.2 2.2 作业说明作业说明书的主要书的主要内容内容2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面作业的建立作业的建立 建立一个作业建立一个作业必须必须把该作业
12、所包含的全部程序和数据输把该作业所包含的全部程序和数据输入到计算机的外部辅助存储设备上入到计算机的外部辅助存储设备上( (简称为外存或辅存简称为外存或辅存) ),而而且且, ,还要由作业注册程序在系统中为该作业申请建立起一个相还要由作业注册程序在系统中为该作业申请建立起一个相应的作业控制块。应的作业控制块。 作业控制块和作业之间具有一一对应关系。当一个作业作业控制块和作业之间具有一一对应关系。当一个作业的全部程序和数据输入到外存且在系统中建立了相应的作业的全部程序和数据输入到外存且在系统中建立了相应的作业控制块之后,就说一个作业已经建立起来了。控制块之后,就说一个作业已经建立起来了。 一个作业
13、的建立过程包括两个子过程,一个是一个作业的建立过程包括两个子过程,一个是作业的输作业的输入入,另一个是,另一个是作业控制块的建立作业控制块的建立。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面 作业的输入作业的输入指将作业的程序、数据和作业说明书从输入设指将作业的程序、数据和作业说明书从输入设备备( (例如键盘例如键盘) )输入到外存,并形成有关初始信息。必须有外部输入到外存,并形成有关初始信息。必须有外部启动信号,通知系统调用相应的输入管理程序来负责控制和完启动信号,通知系统调用相应的输入管理程序来负责控制和完成作业的输入工作。成作业的输入工作。 有关作业输入管理程序的详细部分
14、,将在设备管理和文件有关作业输入管理程序的详细部分,将在设备管理和文件系统中讨论。系统中讨论。 这里需要指出的是,作业输入管理程序决定了作业的输入这里需要指出的是,作业输入管理程序决定了作业的输入方式。再者,与作业输入过程的启动相似,作业输入过程的结方式。再者,与作业输入过程的启动相似,作业输入过程的结束也必须由用户给出信号,使得相应设备发出中断信号后结束束也必须由用户给出信号,使得相应设备发出中断信号后结束输入过程。输入过程。 下面讨论作业的输入方式。下面讨论作业的输入方式。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面2.2.3 作业输入方式作业输入方式 作业输入方式可分为作
15、业输入方式可分为5种,即联机输入方式、脱机输入方种,即联机输入方式、脱机输入方式、直接耦合方式、式、直接耦合方式、SPOOLING(Simultaneous Peripheral Operations On-Line)系统和网络输入方式。系统和网络输入方式。1. 联机输入方式联机输入方式 大多用在交互式系统中大多用在交互式系统中, 用户和系统通过交互会话来输入用户和系统通过交互会话来输入作业。外围设备直接和主机相连接。一台主机可以连接一台或作业。外围设备直接和主机相连接。一台主机可以连接一台或多台外围设备。在单台设备和主机相连接进行作业输入时,由多台外围设备。在单台设备和主机相连接进行作业输入
16、时,由于外围设备的输入输出速度远远低于于外围设备的输入输出速度远远低于CPU处理速度,有可能处理速度,有可能造成造成CPU资源的浪费。如果使用多台外围设备同时联机输入资源的浪费。如果使用多台外围设备同时联机输入的话,则又成为下面将要介绍的的话,则又成为下面将要介绍的SPOOLING系统。系统。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面2. 2. 脱机输入方式脱机输入方式 又称为又称为预输入方式预输入方式。脱机输入方式利用低档个人计算机作。脱机输入方式利用低档个人计算机作为外围处理机进行输入处理。在低档个人机上,用户通过联机为外围处理机进行输入处理。在低档个人机上,用户通过联机
17、方式把作业首先输入到后援存储器,例如磁盘或磁带上;然后,方式把作业首先输入到后援存储器,例如磁盘或磁带上;然后,用户把装有输入数据的后援存储器拿到主机的高速外围设备上用户把装有输入数据的后援存储器拿到主机的高速外围设备上和主机连接,从而在较短的时间内完成作业的输入工作。和主机连接,从而在较短的时间内完成作业的输入工作。 脱机输入解决了快速输入输出问题,提高了主机的资源利脱机输入解决了快速输入输出问题,提高了主机的资源利用率,但反过来说,这又是以牺牲低档机为代价的。而且,脱用率,但反过来说,这又是以牺牲低档机为代价的。而且,脱机输入需要用户进行干预或进行一定的操作,例如移动存储介机输入需要用户进
18、行干预或进行一定的操作,例如移动存储介质和连接后援存储器等。另外,脱机输入输出方式存在灵活性质和连接后援存储器等。另外,脱机输入输出方式存在灵活性差的缺点,即遇到紧急任务需要处理时,无法直接交给主机以差的缺点,即遇到紧急任务需要处理时,无法直接交给主机以便优先处理。便优先处理。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面3. 直接耦合方式直接耦合方式 保留脱机输入方式的快速输入的优点保留脱机输入方式的快速输入的优点,又没有脱机输入方又没有脱机输入方式的人工干预的缺点和具有较强灵活性的输入方式是直接耦式的人工干预的缺点和具有较强灵活性的输入方式是直接耦合方式。直接耦合方式把主机和
19、外围低档机通过一个合方式。直接耦合方式把主机和外围低档机通过一个公用的公用的大容量外存大容量外存直接耦合起来,从而省去了在脱机输入中那种依直接耦合起来,从而省去了在脱机输入中那种依靠人工干预来传递后援存储器的过程。在直接耦合方式中,靠人工干预来传递后援存储器的过程。在直接耦合方式中,慢速的输入输出过程仍由外围低档机自己管理慢速的输入输出过程仍由外围低档机自己管理,而对公用存,而对公用存储器中的大量数据的高速读写则由主机完成。直接耦合方式储器中的大量数据的高速读写则由主机完成。直接耦合方式的原理如图的原理如图2.3所示。所示。 直接耦合方式需要一个大容量的公用存储器,而且需要直接耦合方式需要一个
20、大容量的公用存储器,而且需要把多台低档机和主机、公用存储器固定连接起来。这种输入把多台低档机和主机、公用存储器固定连接起来。这种输入方式的成本较高,一般只适用于大型机或巨型机系统。方式的成本较高,一般只适用于大型机或巨型机系统。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面图图2.3 2.3 直接耦合输入方式直接耦合输入方式4. SPOOLING系统系统 SPOOLING又可译作外围设备同时联机操作。又可译作外围设备同时联机操作。 SPOOLING系统的工作原理如图系统的工作原理如图2.4所示。所示。 在在SPOOLIN
21、G系统中,多台外围设备通过通道或系统中,多台外围设备通过通道或DMA器器件和主机与外存连接起来。作业的输入输出过程由主机中的件和主机与外存连接起来。作业的输入输出过程由主机中的操作系统控制。操作系统中的操作系统控制。操作系统中的输入程序包含两个独立的过程输入程序包含两个独立的过程,一个一个过程负责从外部设备把信息读入缓冲区;过程负责从外部设备把信息读入缓冲区;另一个另一个是写过是写过程程, 负责把缓冲区的信息送到外存输入井中。这里,外围设备负责把缓冲区的信息送到外存输入井中。这里,外围设备既可以是各种终端既可以是各种终端, 也可以是其他的输入设备,例如纸带输入也可以是其他的输入设备,例如纸带输
22、入机或读卡机等。机或读卡机等。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面图图2.4 SPOOLING2.4 SPOOLING系统系统 通道通道是一个独立于是一个独立于CPU的专管输入输出的处理机,它控的专管输入输出的处理机,它控制外设或外存与内存之间的信息交换。它有自己的通道指令,制外设或外存与内存之间的信息交换。它有自己的通道指令,以驱动外设进行读写操作。不过,这些指令需要以驱动外设进行读写操作。不过,这些指令需要 CPU 执行相执行相应的应的“启动通道启动通道”指令发来启动信号之后才开始执行。指令发来启动信号之后
23、才开始执行。 DMA 方式相似于通道方式。方式相似于通道方式。 与通道不同的是,在与通道不同的是,在 DMA 方式中,信息的传送方向、信方式中,信息的传送方向、信息传送的源地址和目的地址以及传送长度等都是由息传送的源地址和目的地址以及传送长度等都是由 CPU 控制控制而不是由而不是由 DMA 器件控制的。器件控制的。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面 SPOOLING系统的输入方式既不同于脱机方式,也不同系统的输入方式既不同于脱机方式,也不同于直接耦合方式。于直接耦合方式。 在系统输入模块收到作业输入请求信号后,输入管理模在系统输入模块收到作业输入请求信号后,输入管理
24、模块中的读过程负责将信息从输入装置读入缓冲区。当缓冲区满块中的读过程负责将信息从输入装置读入缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存输入井中。读过程和写时,由写过程将信息从缓冲区写到外存输入井中。读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外件结束标志之后,系统再次驱动写过程把最后一批信息写入外存并调用中断处理程序结束该次输入。然后,系统为该作业建存并调用中断处理程序结束该次输入。然后,系统为该作业建立作业控制块立作业控制块 JCB,从而使输入井中的作业进入
25、作业等待队,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存。列,等待作业调度程序选中后进入内存。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面5. 网络输入方式网络输入方式 网络输入方式以上述几种输入方式为基础。当用户需要网络输入方式以上述几种输入方式为基础。当用户需要把在计算机网络中某一台主机上输入的信息传送到同一网中把在计算机网络中某一台主机上输入的信息传送到同一网中另一台主机上进行操作或执行时,就构成了网络输入方式。另一台主机上进行操作或执行时,就构成了网络输入方式。 因为网络输入方式涉及到不同计算机间的通信问题,且因为网络输入方式涉及到不同计算机间的
26、通信问题,且该问题的讨论已超出了本书的范围,因此,本书中不准备进该问题的讨论已超出了本书的范围,因此,本书中不准备进一步讨论。一步讨论。2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面2.2.4 JCB的建立的建立 * 在系统把作业信息输入到外存输入井之后,还要根据作在系统把作业信息输入到外存输入井之后,还要根据作业说明书内容和有关作业信息在外存中的位置等建立作业控业说明书内容和有关作业信息在外存中的位置等建立作业控制块制块JCB。 JCB包含了系统包含了系统对作业进行管理所必须的信息对作业进行管理所必须的信息。即:作。即:作业名、作业估计执行时间、优先数、作业建立时间、作业说业名
27、、作业估计执行时间、优先数、作业建立时间、作业说明书文件名、程序语言类型、内存要求、外设要求、作业状明书文件名、程序语言类型、内存要求、外设要求、作业状态、以及作业在外存中的存储地址等。态、以及作业在外存中的存储地址等。 作业名作业名是为了识别不同作业的需要而设立的。而是为了识别不同作业的需要而设立的。而作业估作业估计执行时间、建立时间以及优先数计执行时间、建立时间以及优先数等则是为作业调度算法提等则是为作业调度算法提供参数。作业估计执行时间一般由用户通过作业说明书输入,供参数。作业估计执行时间一般由用户通过作业说明书输入,而优先数则既可以由用户输入,也可以由系统根据某种原则而优先数则既可以由
28、用户输入,也可以由系统根据某种原则给出。给出。* 2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面 作业说明书作业说明书是控制作业执行的依据。是控制作业执行的依据。 程序语言类型指明该作业所需要的编译系统和有关的库函程序语言类型指明该作业所需要的编译系统和有关的库函数类型等。数类型等。 作业状态则描述作业生存期的各个阶段。这些阶段是作业作业状态则描述作业生存期的各个阶段。这些阶段是作业的提交、后备、执行以及完成阶段。的提交、后备、执行以及完成阶段。 从作业输入请求开始到建立从作业输入请求开始到建立JCB表,作业处于表,作业处于提交提交状态。状态。在建立在建立JCB表之后到被作业调度
29、程序选中进入内存,作业在作表之后到被作业调度程序选中进入内存,作业在作业等待队列中处于业等待队列中处于后备后备状态。作业进入内存后到执行结束,处状态。作业进入内存后到执行结束,处于于执行执行状态。最后,作业执行结束到撤消之间,作业处于状态。最后,作业执行结束到撤消之间,作业处于完成完成状态。状态。 作业进入内存处于执行状态并不意味着该作业立即占据处作业进入内存处于执行状态并不意味着该作业立即占据处理机,作业处于执行状态只是表示该作业作为一道程序进入内理机,作业处于执行状态只是表示该作业作为一道程序进入内存参与对存参与对CPU和其他资源的竞争。和其他资源的竞争。* 2.2 2.2 一般用户的输入
30、输出界面一般用户的输入输出界面 从系统的角度看,从系统的角度看,JCBJCB表的数量是一个常数表的数量是一个常数,建立一个作,建立一个作业的过程实质上是在输入了有关信息之后申请分得和填写一业的过程实质上是在输入了有关信息之后申请分得和填写一张空白的张空白的JCBJCB表的过程。表的过程。 由于操作系统中所允许的由于操作系统中所允许的JCBJCB表中项数是一常数,因此,表中项数是一常数,因此,当当JCBJCB表中各项都已分配出去时,系统无法为用户建立作业。表中各项都已分配出去时,系统无法为用户建立作业。从而,作业建立过程失败。从而,作业建立过程失败。 另外,由于另外,由于外存输入井的大小外存输入
31、井的大小也是有限的。如果输入井也是有限的。如果输入井中没有足够的空间存放该作业的话,则作业的创建仍然是失中没有足够的空间存放该作业的话,则作业的创建仍然是失败的。败的。 只有在获得只有在获得JCBJCB表项和足够的输入井空间之后,一个作业表项和足够的输入井空间之后,一个作业才可能创建成功。才可能创建成功。* 2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面 对内存和外设等的要求是该作业对硬件资源的要求。用对内存和外设等的要求是该作业对硬件资源的要求。用户在作业说明书中提出的资源要求称为户在作业说明书中提出的资源要求称为静态申请静态申请。 静态申请有一个资源利用率不高的问题静态申请有
32、一个资源利用率不高的问题, 现代操作系统较现代操作系统较少使用静态申请方式,而大多采用在执行过程中,由有关系少使用静态申请方式,而大多采用在执行过程中,由有关系统调用动态申请和释放资源的方式。这种方式虽然管理较为统调用动态申请和释放资源的方式。这种方式虽然管理较为复杂,但资源的利用率较高。复杂,但资源的利用率较高。 作业在外存中的地址指明作业在外存中的位置,以便系作业在外存中的地址指明作业在外存中的位置,以便系统将该作业调入内存时迅速地找到它。统将该作业调入内存时迅速地找到它。* 2.2 2.2 一般用户的输入输出界面一般用户的输入输出界面2.3 2.3 命令控制界面命令控制界面 操作系统为用
33、户提供两个接口界面。一个是系统为用户提供操作系统为用户提供两个接口界面。一个是系统为用户提供的各种的各种命令接口命令接口界面。用户利用这些操作命令来组织和控制作业界面。用户利用这些操作命令来组织和控制作业的执行或管理计算机系统。另一个接口是的执行或管理计算机系统。另一个接口是系统调用系统调用。编程人员使。编程人员使用系统调用来请求操作系统提供服务。操作系统的命令控制界面用系统调用来请求操作系统提供服务。操作系统的命令控制界面就是用来组织和控制作业运行的。就是用来组织和控制作业运行的。 使用操作命令进行作业控制的主要方式有两种:使用操作命令进行作业控制的主要方式有两种:联机和脱机联机和脱机方式方
34、式。 脱机方式脱机方式即用户将作业的执行顺序和出错处理方法一并以作即用户将作业的执行顺序和出错处理方法一并以作业控制说明书的方式或命令文件方式提交给系统,由系统按照作业控制说明书的方式或命令文件方式提交给系统,由系统按照作业说明书或命令文件中所规定的顺序控制作业执行。执行过程中,业说明书或命令文件中所规定的顺序控制作业执行。执行过程中,用户无法干涉,只能等待作业正常执行结束或出错停止之后查看用户无法干涉,只能等待作业正常执行结束或出错停止之后查看执行结果或出错信息,以便修改作业内容或控制过程执行结果或出错信息,以便修改作业内容或控制过程。 脱机控制方式脱机控制方式利用作业控制语言来编写表示用户
35、控制意利用作业控制语言来编写表示用户控制意图的作业控制程序,也就是作业说明书。作业控制语言的语图的作业控制程序,也就是作业说明书。作业控制语言的语句就是作业控制命令。不同的批处理系统提供不同的作业控句就是作业控制命令。不同的批处理系统提供不同的作业控制语言。制语言。 联机控制方式联机控制方式不要求用户填写作业说明书,系统只为用不要求用户填写作业说明书,系统只为用户提供一组键盘或其他操作方式的命令。用户使用系统提供户提供一组键盘或其他操作方式的命令。用户使用系统提供的操作命令和系统会话,交互地控制程序执行和管理计算机的操作命令和系统会话,交互地控制程序执行和管理计算机系统。其工作过程是,用户在系
36、统给出的提示符下敲入特定系统。其工作过程是,用户在系统给出的提示符下敲入特定的命令,系统在执行完该命令后向用户报告执行结果;然后,的命令,系统在执行完该命令后向用户报告执行结果;然后,用户决定下一步的操作。如此反复,直到作业执行结束。凡用户决定下一步的操作。如此反复,直到作业执行结束。凡是使用过是使用过DOS、Windows或或UNIX系统的读者,对联机控制系统的读者,对联机控制方式都应该是不陌生的。方式都应该是不陌生的。2.3 2.3 命令控制界面命令控制界面 与脱机控制方式相比,联机控制方式的命令种类要丰富与脱机控制方式相比,联机控制方式的命令种类要丰富得多。这些命令可大致分为以下几类得多
37、。这些命令可大致分为以下几类: :(1) (1) 环境设置。环境设置。(2) (2) 执行权限管理。执行权限管理。(3) (3) 系统管理。系统管理。(4) (4) 文件管理。文件管理。(5) (5) 编辑、编译、链接装配和执行。编辑、编译、链接装配和执行。 (6) (6) 通信。通信。(7) (7) 资源要求。资源要求。2.3 2.3 命令控制界面命令控制界面 联机控制方式大大地方便了用户。但在某些情况下,用联机控制方式大大地方便了用户。但在某些情况下,用户反复输入众多的命令也会浪费不必要的时间。因此,在现户反复输入众多的命令也会浪费不必要的时间。因此,在现代操作系统中,大都提供批处理方式和
38、联机控制方式。这里,代操作系统中,大都提供批处理方式和联机控制方式。这里,批处理方式既指传统的作业控制语言编写的作业说明书方式,批处理方式既指传统的作业控制语言编写的作业说明书方式,也指那些把不同的交互命令按一定格式组合后的命令文件方也指那些把不同的交互命令按一定格式组合后的命令文件方式。式。习题习题2.11 编写一个简单的编写一个简单的 Shell 程序,完成一个已有数据文件的程序,完成一个已有数据文件的复制和打印。复制和打印。 .xt02cplp.sh.xt02cplp.sh2.3 2.3 命令控制界面命令控制界面 近年来,命令控制界面的人机交互方式发生了革命性变近年来,命令控制界面的人机
39、交互方式发生了革命性变化。无论是化。无论是 Windows Windows 系列,还是系列,还是 UNIX UNIX 系列的操作系统,它系列的操作系统,它们的命令控制界面都是由多窗口的按钮式图形界面组成。在们的命令控制界面都是由多窗口的按钮式图形界面组成。在这些系统中,命令已被开发成一条条能用鼠标点击而执行的这些系统中,命令已被开发成一条条能用鼠标点击而执行的简单的菜单或小巧的图标。而且,用户也可以在提示符的提简单的菜单或小巧的图标。而且,用户也可以在提示符的提示下用普通字符方式输入各种命令。示下用普通字符方式输入各种命令。 可以预计,计算机系统的命令控制界面将会越来越方便可以预计,计算机系统
40、的命令控制界面将会越来越方便和越来越拟人化。和越来越拟人化。2.3 2.3 命令控制界面命令控制界面 演示演示任务:任务: 使用命令控制界面,配置使用命令控制界面,配置LinuxLinux的的 samba samba 服务,使服务,使WindowsWindows系统能够访问系统能够访问 Linux Linux 的共享文件。的共享文件。2.4 Linux 2.4 Linux 与与 WindowsWindows的命令控制界面的命令控制界面 系统调用系统调用是操作系统提供给编程人员的唯一接口。编程是操作系统提供给编程人员的唯一接口。编程人员利用系统调用人员利用系统调用, ,在源程序一级动态请求和释放
41、系统资源,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。事实上,命令控制界面也是在系统调用的基础上关的功能。事实上,命令控制界面也是在系统调用的基础上开发而成的。开发而成的。 系统调用大致可分为如下系统调用大致可分为如下几类几类: :(1) (1) 设备管理设备管理。该类系统调用被用来请
42、求和释放有关设备、。该类系统调用被用来请求和释放有关设备、以及启动设备操作等。以及启动设备操作等。(2) (2) 文件管理文件管理。对文件的读、写、创建和删除等。对文件的读、写、创建和删除等。2.5 2.5 系统调用系统调用(3) (3) 进程控制进程控制。进程是一个在功能上独立的程序的一次执行。进程是一个在功能上独立的程序的一次执行过程。进程控制的有关系统调用包括进程创建、进程执行、过程。进程控制的有关系统调用包括进程创建、进程执行、进程撤消、执行等待和执行优先级控制等。进程撤消、执行等待和执行优先级控制等。(4) (4) 进程通信进程通信。该类系统调用被用在进程之间传递消息或信。该类系统调
43、用被用在进程之间传递消息或信号。号。(5) (5) 存储管理存储管理。包括调查作业占据内存区的大小、获取作业。包括调查作业占据内存区的大小、获取作业占据内存区的始址等。占据内存区的始址等。(6) (6) 线程管理线程管理。包括线程的创建、调度、执行、撤销等。包括线程的创建、调度、执行、撤销等。 不同的系统提供有不同的系统调用。一般,每个系统为不同的系统提供有不同的系统调用。一般,每个系统为用户提供几十到几百条系统调用。用户提供几十到几百条系统调用。2.5 2.5 系统调用系统调用 为了提供系统调用功能,操作系统内必须有事先编制好为了提供系统调用功能,操作系统内必须有事先编制好的实现这些功能的子
44、程序或过程。的实现这些功能的子程序或过程。 为了保证操作系统程序不被用户程序破坏,一般操作系为了保证操作系统程序不被用户程序破坏,一般操作系统都不允许用户程序访问操作系统的系统程序和数据。统都不允许用户程序访问操作系统的系统程序和数据。 那么,编程人员给定了系统调用名和参数之后是怎样得那么,编程人员给定了系统调用名和参数之后是怎样得到系统服务的呢到系统服务的呢? 这需要有一个类似于硬件中断处理的中断这需要有一个类似于硬件中断处理的中断处理机构。处理机构。 当用户使用系统调用时,产生一条相应的指令,处理机当用户使用系统调用时,产生一条相应的指令,处理机在执行到该指令时发生相应的中断,并发出有关信
45、号给该处在执行到该指令时发生相应的中断,并发出有关信号给该处理机构。该处理机构在收到了处理机发来的信号后,启动相理机构。该处理机构在收到了处理机发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能。关的处理程序去完成该系统调用所要求的功能。2.5 2.5 系统调用系统调用 在系统中为控制系统调用服务的机构称为陷阱在系统中为控制系统调用服务的机构称为陷阱(trap)处处理机构。与此相对应,把由于系统调用引起处理机中断的指理机构。与此相对应,把由于系统调用引起处理机中断的指令称为令称为陷阱指令陷阱指令 (或称访管指令或称访管指令) 。 在操作系统中,每个系统调用都对应一个事先给定的在操作系
46、统中,每个系统调用都对应一个事先给定的功功能号能号,例如,例如0,1,2,3等。在陷阱指令中必须包括对应系统等。在陷阱指令中必须包括对应系统调用的功能号。而且,在有些陷阱指令中调用的功能号。而且,在有些陷阱指令中, 还带有传递给陷还带有传递给陷阱处理机构和内部处理程序的有关参数。阱处理机构和内部处理程序的有关参数。 为了实现系统调用,系统设计人员还必须为实现各种系为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编造统调用功能的子程序编造入口地址表入口地址表,每个入口地址都与相,每个入口地址都与相应的系统子程序名对应起来。然后,由陷阱处理程序把陷阱应的系统子程序名对应起来。然后
47、,由陷阱处理程序把陷阱指令中所包含的功能号与该入口地址表中的有关项对应起来,指令中所包含的功能号与该入口地址表中的有关项对应起来,从而由系统调用功能号驱动有关系统子程序执行。从而由系统调用功能号驱动有关系统子程序执行。2.5 2.5 系统调用系统调用 由于在系统调用处理结束之后,用户程序还需利用系统由于在系统调用处理结束之后,用户程序还需利用系统调用的返回结果继续执行,因此,在进入系统调用处理之前,调用的返回结果继续执行,因此,在进入系统调用处理之前,陷阱处理机构还需陷阱处理机构还需保存处理机现场保存处理机现场。再者。再者, 在系统调用处理在系统调用处理结束之后,陷阱处理机构还要结束之后,陷阱
48、处理机构还要恢复恢复处理机现场。处理机现场。 在操作系统中,处理机的现场一般被保护在特定的内存在操作系统中,处理机的现场一般被保护在特定的内存区或寄存器中。区或寄存器中。 系统调用的处理过程如图系统调用的处理过程如图2.5所示。所示。2.5 2.5 系统调用系统调用2.5 2.5 系统调用系统调用图图2.5 2.5 系统调用的处理过程系统调用的处理过程 有关系统调用的另一个问题是有关系统调用的另一个问题是参数传递参数传递问题。不同的系统问题。不同的系统调用需要传递给系统子程序以不同的参数。而且系统调用的执调用需要传递给系统子程序以不同的参数。而且系统调用的执行结果也要以参数形式返回给用户程序。
49、行结果也要以参数形式返回给用户程序。 怎样实现用户程序和系统程序之间的参数传递呢怎样实现用户程序和系统程序之间的参数传递呢 ? 下面下面介绍几种常用的实现方法。介绍几种常用的实现方法。 一种是由一种是由陷阱指令自带参数陷阱指令自带参数。一般来说,一条陷阱指令的。一般来说,一条陷阱指令的长度总是有限的长度总是有限的 , 而且,该指令还要携带一个系统调用的功而且,该指令还要携带一个系统调用的功能号,从而,陷阱指令只能自带极有限的几个参数进入系统内能号,从而,陷阱指令只能自带极有限的几个参数进入系统内部。部。 2.5 2.5 系统调用系统调用 另一种办法是通过使用有关另一种办法是通过使用有关通用寄存
50、器来传递参数通用寄存器来传递参数。显。显然然,这些寄存器应是系统程序和用户程序都能访问的。不过,这些寄存器应是系统程序和用户程序都能访问的。不过,由于寄存器长度也是较短的。从而无法传递较多的参数。因由于寄存器长度也是较短的。从而无法传递较多的参数。因此,在系统调用较多的系统中,大多在内存中开辟专用此,在系统调用较多的系统中,大多在内存中开辟专用堆栈堆栈区来传递参数。区来传递参数。 另外,在系统发生访管中断或陷阱中断时,为了不让用另外,在系统发生访管中断或陷阱中断时,为了不让用户程序直接访问系统程序,反映处理机硬件状态的处理机状户程序直接访问系统程序,反映处理机硬件状态的处理机状态字态字 PSW
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。