目录:
一、概述:
作业的基本概念:
——作业通常是指用户在一次计算过程中或者一次事物处理过程中要求计算机系统所作的工作的集合。
——任何一个作业都要经过若干加工步骤才能得到结果,作业的每一个加工步骤称为一个作业步。
——一次有一批作业进入系统,并在操作系统控制下,一个接一个地进行处理,称之为作业流。
——作业的两种基本类型:批处理作业、交互式作业
用户接口:
二、命令接口:
联机命令接口:
命令的格式和分类:
——一般格式为:
- 命令名 参数,参数,…,参数。
——操作控制命令类型有:
- 系统访问命令 ;文件、目录管理命令;编辑修改命令;编译、连接和执行命令;询问命令;操作员专用命令。
例如:
在开始 --> 运行 里输入 cmd ,打开命令提示符模式窗口。
- 磁盘格式化命令Format 它被用于对指定驱动器上的软盘进行格式化。
- 复制整个软盘命令Diskcopy 该命令用于复制整个磁盘,另外它还有附加的格式化功能。
- 软盘比较命令Diskcomp 该命令用于将源盘与目标盘的各磁道及各扇区中的数据逐一进行比较。
- 备份命令Backup 该命令用于把硬盘上的文件复制到软盘上; 显示文件命令type 用于将指定文件显示在屏幕上。
- 拷贝文件命令copy 用于实现文件的拷贝。
- 文件比较命令comp 该命令用于对两个指定文件进行比较。 两文件可以在同一个或不同的驱动器上。
- 重新命名命令Rename 该命令用于将以第一参数命名的文件, 改成用第二参数给定的名字。
- 删除文件命令erase 该命令用于删除一个或一组文件。
- 建立子目录命令mkdir 用于建立指定名字的新目录。
- 显示目录命令dir 显示指定磁盘中的目录项。
- 删除子目录命令rmdir 该命令用于删除指定的子目录文件。
- 显示目录结构命令tree 该命令用于显示指定盘上的所有目录路径及其层次关系。
- 改变当前目录命令chdir 该命令用于将当前目录改变为由路径名参数给定的目录。
命令的接收和解释执行:
交互式系统提供的命令接口应当完成的基本任务是:接收用户的命令——>解释操作系统命令语言中的命令——>将命令传送到系统以便执行——>接收系统发来的信息,以响应语言的形式提交给用户。
为了实现人机交互,还须在系统上配置相应的I/O装置,通常为键盘和显示器,均由终端处理程序进行管理和控制。
终端处理程序:
配置在终端上的终端处理程序主要用于实现人机交互,具有以下功能:
——接收用户从终端上输入的字符
——字符缓冲管理 (公用缓冲和专用缓冲)
——回送显示
——屏幕编辑
——特殊字符处理 ( Break或Delete或Ctrl+C 等)
命令解释程序:
——命令解释程序通常位于操作系统的最外层,用户直接与其交互。
——主要功能是:
- 对用户输入的命令进行解释,并转入相应的命令处理程序去执行。
——对于用户输入的命令,命令解释程序有以下两种处理方法:
- 由命令解释程序直接处理。在没有创建子进程功能的系统中,终端命令通常直接对应的命令解释程序直接处理。在这样的系统中,任何时刻仅有一个进程对应一个终端用户。
- 由子进程代为处理。在具有创建子进程功能的系统中,对于较为简单的命令,命令解释程序自己就能完成,此时由命令解释程序直接处理;而对于较为复杂的命令,如对于一个C源程序的编译,命令解释程序本身不能处理,此时它为终端用户创建一个子程序,由该子程序进行处理。
——具体流程:
在联机操作方式下,终端处理程序把用户键入的信息送键盘缓冲区中保存。一旦用户键入回车符,便立即把控制权交给命令处理程序。显然,对于不同的命令,应有能完成特定功能的命令处理程序与之对应。可见,命令解释程序的主要作用,是在屏幕上给出提示符,请用户键入命令,然后读入该命令,识别命令,再转到相应命令处理程序的入口地址,把控制权交给该处理程序去执行,并将处理结果送屏幕上显示。若用户键入的命令有错,而命令解释程序未能予以识别,或在执行中间出现问题时,则应显示出某一出错信息。
——工作流程:
一种简单的识别命令的方法是基于一张表格,其中的每一表目都是由命令名及其处理程序的入口地址两项所组成。如果暂存部分在该表中能找到键入的命令,且是内部命令,便可以直接从对应表项中获得该命令处理程序的入口地址,然后把控制权交给该处理程序去执行该命令。
脱机命令接口(批处理用户接口):
批处理作业在进入系统之前,用户必须用作业控制语言写好一份作业控制说明书,以告诉操作系统用户希望如何控制作业执行。
——作业控制语言是对用户作业的进行组织和管理的各种控制命令的集合。
——作业控制说明书是用户用于描述批处理作业处理过程控制意图的一种特殊程序。
——作业控制说明书主要包括内容:作业的基本描述、作业控制描述和资源要求描述。
——作业的组成:程序、数据和作业控制说明书。
三、系统调用:
系统调用是操作系统提供给编程人员的唯一接口,通过系统调用得到特权指令提供的功能,而不直接使用特权指令。
系统调用的概念:
由操作系统提供,用户程序可以调用的包含特权指令的子程序称为“系统功能调用”程序(或简称为“系统调用”)从而得到特权指令提供的功能,而且并没有使用特权指令。
系统调用分类:
——文件操作类: 创建、打开、读、写、删除等。
——进程控制类:创建、执行、撤销等。
——资源申请类:申请或归还内存、请求或释放设备等。
——进程通信类:进程间传递消息或信号。
——信息维护类:用户与OS间传递信息,如获取时间等。
系统调用的处理过程:
基本概念:
——在系统中为控制系统调用服务的机构称为陷入(TRAP)或异常处理机构。
——由于系统调用引起处理机中断的指令称为陷入或异常指令(或称访管指令)。
——每个系统调用都对应一个事先给定的功能号,例如0、1、2、3等,称为系统调用功能号。
——为了实现系统调用,系统设计人员还必须为实现各种系统调用功能的子程序编写入口地址表,每个入口地址都与相应的系统程序名对应起来。
——陷入处理程序把陷入指令包含功能号与入口地址表有关项对应, 驱动有关子程序执行。
——在系统调用处理结束之后,用户程序需利用系统调用返回结果继续执行。
保护现场、恢复现场:
——进入系统调用处理前,陷入处理机构还需保存处理机现场。
——在系统调用处理结束之后,要恢复处理机现场,现场被保护在特定的内存区或寄存器中。
系统调用的执行过程大体上分成以下三步:
——设置系统调用号和参数。
——系统调用命令的一般性处理。
——系统调用命令处理程序做具体处理。
怎样实现用户程序和系统程序间的参数传递?(常用的3种实现方法)
——由陷入指令自带参数:陷入指令的长度有限,且还要携带系统调用功能号,只能自带有限的参数。
——通过有关通用寄存器来传递参数:这些寄存器应是系统程序和用户程序都能访问,由于寄存器长度较短,无法传递较多的参数 。
——大多在内存中开辟专用堆栈区来传递参数。
系统调用与一般过程调用的异同:
相同点:
——改变指令流程
——重复执行和公用
——改变指令流程后需要返回原处
不同点:
(1)系统调用通过软中断进入。
一般的过程调用可直接由调用过程转向被调用过程;系统调用通常都是通过软中断机制转向相应的命令处理程序。
软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。很多情况下,软中断和"信号"有些类似,同时,软中断又是和硬中断相对应的,"硬中断是外部设备对CPU的中断","软中断通常是硬中断服务程序对内核的中断","信号则是由内核(或其他进程)对某个进程的中断"。(来源自百度百科)
(2)运行在不同的处理器状态。
一般的过程调用,其调用程序和被调用程序都运行在相同的处理器状态 ;系统调用调用程序运行在目态,而被调用程序则运行在管态。
(3)处理器状态的转换不同。
一般的过程调用不涉及系统状态的转换;系统调用需要系统状态转换(通过软中断机制先由用户态转换为核心态)。
(4)返回问题不同。
一般的过程调用在被调用过程执行完后,将返回到调用过程继续执行;系统调用不一定返回原调用过程。
(5)嵌套调用。
像一般过程一样,系统调用也允许嵌套调用,但对嵌套调用的深度都有一定的限制。
四、作业管理:
批处理作业的调度:
作业调度:
操作系统根据允许并发工作的道数和一定的算法从等待的作业(后备作业)中选取若干作业装入内存储器,使它们可以去获得处理器运行。
作业调度程序:
完成作业调度工作的程序。
作业调度算法衡量:
选取调度算法应考虑的主要因素:
公平性、均衡使用资源、吞吐率、平衡系统和用户要求。
作业调度性能衡量的指标:
——CPU利用率
——吞吐量
——周转时间:
- 假定作业i进入“输入井”的时间为Si,若它被选中执行,得到计算结果的时间为Ei,它的周转时间定义为:Ti=Ei-Si
——平均周转时间:
- 所有作业的周转时间的平均值。假定作业i的周转时间定义为Ti,平均周转时间定义为;
——带权周转时间:
- 作业的带权周转时间为作业的周转时间与作业的运行时间之比。
——平均带权周转时间:
- 所有作业的带权周转时间的均值。
作业调度算法:
先来先服务算法:
——算法:按照作业进入系统的先后次序来挑选作业,先进入系统的作业优先被挑选。
——优点:算法容易实现。
——缺点:效率不高、不利于短作业。
最短作业优先算法:
——算法:总是选取计算时间最短的作业投入运行。
——优点:算法容易实现,缩短了平均周转时间,提高了系统的吞吐能力。
——缺点:忽视了作业等待时间,计算时间靠用户估计。
响应比最高者优先算法:
——算法:响应比=(等待时间+计算时间)/计算时间,作业调度时总是选取响应比高的作业投入运行。
——优点:既照顾了短作业,考虑了系统的吞吐量,又考虑了不使长作业长时间等待。
——缺点:响应比公式中的计算时间仍是用户的估计时间。
优先数调度算法:
——算法:每次总是选择优先数高的作业。
——优先数的确定:一种是用户自己提出;一种是由系统综合考虑有关因素来确定。
分类调度算法:
——算法:根据系统运行情况和作业属性将作业分类(如计算型、I/O型等),作业调度时轮流从这些不同的作业类中挑选作业。
——目标:力求均衡地利用各种系统资源,发挥资源的使用效率,又力求使用户满意。
作业调度与处理器调度的关系:
进入计算机系统的作业只有经过两级调度后才能占用处理器。
-
第一级是作业调度,使作业进入内存储器。
-
第二级是处理器调度,使作业进程占用处理器。
作业的状态:
——提交状态:
- 作业还未进入算机系统内之前,用户正在向系统提交作业时所处的状态。
——后备状态:
- 作业的提交完成后,作业便处于后备状态。
——运行状态:
- 作业被选中,分配资源,调入内存,创建进程。
——完成状态:
- 当作业运行结束或异常终止时,作业进入完成状态。
Ending... ...