《天大《操作系统原理》学习笔记六.pdf》由会员分享,可在线阅读,更多相关《天大《操作系统原理》学习笔记六.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统原理学习笔记六 主 题:操作系统原理学习笔记 内 容:操作系统原理学习笔记六 作业管理 操作系统为用户提供了使用计算机的十分简单且便利的方式。用户如何向计算机提交作业和控制自己作业的运行,以及计算机如何合理安排和按照用户的要求完成作 业的规定的任务等,都是由操作系统的作业管理实现的。一、作业的组织:1、作业与作业步 计算机广泛应用在各个不同领域中,它们为人类完成形形色色的工作,这些交给计算机系统完成的工作就是作业(JOB)。作业是用户在一次算题过程中或一次事物处理中,要求计算机系统所做的工作的集合。作业的形态是用户编制的程序和要处理的数据。计算机通过编译或汇编、连接、装配、运行等步骤,
2、最终由计算机送出用户所需要的运行结果。从计算机管理的角度看,上述一系列的由计算机执行的任务就是作业。计算机在完成用户提交的作业过程中,是通过执行一系列有序的工作步骤进行的,每个步骤完成作业的一部分特定工作。把计算机系统完成一个作业所需的一系列有序的相对独立的工作步骤称为作业步。作业的各个作业步虽然功能相对独立,但它们之间相互关联,往往是一个作业步的执行需要使用上一个作业步的执行结果。2作业的分类 根据计算机系统对作业处理方式,一般把作业分成两大类:批量型作业、交互型作业。在大型计算机系统的批处理系统中运行的作业称为批量型作业,又称批处理作业。批处理系统一次可以成批接收多个用户作业,并把它们放入
3、磁盘中等待运行。操作系统的作业调度按照一定的算法从多个等待的作业中选择某些作业装入内存空间投入运行。批量型作业在输入计算机系统前,须由用户使用作业控制语言向系统说明如何控制作业的运行。在小型计算机系统中的分时系统中运行的作业称为交互型作业,又称终端作业。在分时系统中,用户通过各自的终端向计算机系统发出各种操作命令,告诉操作系统如何控制作业运行。操作系统也通过终端向用户报告运行情况和结果。3作业的状态 在从用户把作业提交给系统直到作业完成的整个活动过程中,在系统的安排下作业操作系统原理学习笔记六 要经历若干阶段。作业在每一阶段中所处的状况称为作业的状态。通常系统中的作业可以分为提交、后备、执行和
4、完成四种状态。提交状态是指作业尚未进入计算机系统之前,用户向系统提交作业过程时所处的状态。后备状态是指用户提交的作业已通过输入设备输入到辅助存储器时所处的状态。后备状态又称收容状态。执行状态是指作业被装入内存后运行的过程。作业管理模块中的作业流管理进程 JSP,把从后备作业中调度进入执行状态的作业转换成进程的形式,即为作业创建进程。完成状态是指作业正常完成其全部运行过程,或因发生错误而终止运行时状态。4 作业控制块 系统在作业级上设置了作业控制块 JCB(Job Control Block)用于记载作业的管理信息。JCB 是作业调度的依据。作业提交给系统进入后备状态后,系统为每个作业建立一个作
5、业控制块 JCB。JCB 在作业的整个运行过程中始终存在,并且其内容与作业的状态同步地动态变化。当作业完成并退出系统时,JCB 被撤销。JCB 是一个作业在系统中存在的唯一标志,系统根据 JCB 才感知到作业的存在。处于后备状态作业的根据它们的类型组成一个或多个后备作业队列。后备作业队列是由作业控制块 JCB 用表格或链指针组成的队列。后备作业队列可按优先数大小或作业到达系统的时间顺序等排列。二、操作系统与用户的接口 操作系统为用户提供了两种使用界面,即两种类型的接口:程序级接口,系统调用又称广义指令;作业控制级接口(作业控制命令),作业控制语言、键盘操作命令。1 程序级接口 1)广义指令的形
6、式 在一些操作系统中广义指令在形式上和一般机器指令相似,但其功能的实现是由操作系统中相应的程序模块来完成的。广义指令的一般形式是:命令符 参数 l,参数 2,2)管态和目态 为了系统的安全,处理机要工作在两种不同的状态下:管态和目态。处理机在执行操作系统的程序代码时就处在管态下,而执行用户程序和其它系统应用程序时是处在目态下。处理机在两种工作状态下使用硬件权限不同。管态下,处理机可以执行特权指令。特权指令是只能由操作系统使用的机器指令,它们通常是与控制和管理系统资源有关的指令。在管态下程序可以访问内存的任何区域。处理机在目态下运行时不能执行特权指令,也不能访问用户作业存储区域以外的内存单元,否
7、则将会引起中断。处理机的工作状态的转换是由一条特殊的指令引起的,称为访管指令。操作系统原理学习笔记六 3)广义指令处理过程 程序中的每一条广义指令,经过汇编(或编译)之后,将转换成若干条机器指令代码,这段代码的作用:(1)参数传送、(2)执行访管指令。访管指令将引起访管中断,执行访管中断处理程序:l 保护“现场”。l 访问中断入口表,转入操作系统相应功能程序模块的入口地址。在程序执行过程中把执行结果放入指定的寄存器或内存单元中。l 恢复“现场。广义指令和机器指令本质的不同。指令系统的机器指令是由机器硬件(或微程序)分析执行的,广义指令是由操作系统解释后由操作系统本身的程序实现的。计算机配备了操
8、作系统后,呈现在用户面前的是一台功能更强、使用方便的处理机。为了区别于真实的物理处理机,把呈现在用户面前的配备有操作系统的处理机称为虚拟处理机。2 作业控制级接口 在批处理系统中是由作业控制命令组成的作业控制语言。在分时系统中它们是一组键盘操作命令或图形用户接口。1)作业控制语言 在批处理系统中,由于用户不能直接干预作业的运行。所以,通常把批处理系统的用户称为脱机用户。为了能够使脱机用户能够向系统说明作业运行的的步骤,系统向用户提供了脱机用户的接口,即作业控制语言(J C L)作业控制语言实际上是一组具有固定格式和功能的作业控制命令。用户使用这些作业控制命令通过编写作业说明书或制作作业控制卡。
9、系统管理员把它们与作业一起输入到计算机系统中。当作业运行时,由操作系统对作业说明书或控制卡中的控制命令逐条进行解释,控制作业的自动执行。2)键盘操作命令 在分时系统中,用户使用终端的键盘与计算机进行交互。通常把分时系统的用户称为交互式用户或联机用户。为了便于交互式用户控制它们作业的运行,操作系统提供了交互式用户或联机用户接口,键盘操作命令。3)图形用户界面 图形用户界面是操作系统提供的另一种联机用户接口。通过图形用户界面,用户可以对出现在屏幕上的对象直接进行操作,以此控制作业的运行。图形用户界面一般是在屏幕上称为窗口的一个矩形区域。窗口是在用户与系统进行交互的界面。每一个窗口对于用户作业的一个
10、任务或进程,用户可以同时打开多个窗口来并行运行多个进程。用户使用键盘或鼠标对菜单中的各种操作进行选择,选中的操作由系统自动执行。图形用户界面的“选择并点取”方式大大减少了用户的记忆工作量,极大地方便了用户,受到普遍欢迎。操作系统原理学习笔记六 三、作业调度 在多道系统中,多个作业可以同时共享计算机的系统资源。面对多道作业,系统如何合理地分配系统资源,使它们能够以最大的效率顺利地运行,是作业调度所解决的问题。作业调度的主要功能是按照一定的策略从作业后备队列中选取一个或若干个作业调入主存,为其分配所需的系统资源,然后将这些作业转换成执行状态,交由进程调度程序在处理机上运行。完成作业调度功能的程序称
11、为作业调度程序。作业调度是在高层次的作业级进行调度,以能否满足作业请求的主存、外设等系统资源做为调度的依据。进程调度是面向处理机资源的低层次调度,它为由作业调度而进入执行状态的多个作业进程合理地分配处理机。作业调度又称为高级调度,进程调度又称为低级调度。1 作业调度程序的功能。作业调度程序通常做为一个进程在系统中执行,它是在系统初始化时创建的。作业调度进程完成的主要工作是完成作业从后备状态到执行状态的转变,及其从执行状态到完成状态的转变。作业调度的主要任务是按照一定的调度算法从系统的后备作业队列中选出一些作业,分给它们所需要的资源,做好作业运行前的淮备工作,使它们成为内存中随时可以运行的作业。
12、l 按照某种调度算法从后备作业队列中挑选作业。l 为选中的作业建立相应的作业进程,为进程分配所需的主存和外设资源。l 记录已进入系统的各作业情况,把作业在运行过程中的动态变化登记在作业控制块 J C B 中。l 在作业结束时做好善后处理工作。2 作业调度策略 l 为了提高系统内部处理机与外设的并行工作的程度,尽量把使用处理机为主的C P U 时间型作业与使用外设为主的输入输出型作业搭配运行。l 为了提高主存的利用效率,尽可能把主存请求量大的作业与主存请求量小的作业合理搭配运行。l 为了提高作业的吞吐量,减少作业周转时间,应尽量选择运行时间短的作业优先进入系统运行。l 作业调度算法应该尽量简单,
13、并使系统的时间和空间的开销最小。衡量调度算法性能的指标:l 处理机利用率:处理机有效运行时间、处理机总运行时间 l 平均周转时间:11()niiTTn=l 系统吞吐量:单位时间内平均完成作业的个数。3 作业调度算法 l 先来先服务算法 F C F S 操作系统原理学习笔记六 l 短作业优先算法 S J F l 最高响应比优先算法 H R N 响应比=作业等待时间/作业运行时间 l 优先级算法 l 资源搭配算法 四、作业控制 在把作业输入给系统后,组织作业的工作流程,以及对运行中错误的处理等方面,需要用户决定和干预。作业的运行需要用户进行必要的控制。用户对作业的控制是通过操作系统提供的作业控制接
14、口实现的。用户对作业的控制方式典型的有两种:l 脱机控制方式(自动控制方式):用户通过脱机用户接口,即作业控制语言对作业进行脱机控制。l 联机控制方式(直接控制方式):用户通过联机用户接口,即键盘操作命令或图形用户界面对作业进行联机控制。1 脱机控制方式 用户使用脱机用户接口,即作业控制语言,可以实现对作业进行控制。作业控制语言是一种由若干作业控制命令组成的形式语言。使用作业控制语言通常有两种形式:作业控制卡、作业说明书 作业概况:用户作业名、使用语言、作业控制方式、作业优先级,作业运行时间等信息。作业流程:各个作业步的先后顺序,每个作业步使用的程序及数据等。作业的资源需求:要求的内存和外存容
15、量、I/O 设备的类型及台数、I/O 量等。作业控制卡是一些穿有作业控制命令的卡片。在作业输入到计算机时,作业控制卡片分别插入各作业步的源程序卡片和数据卡片之前。在作业运行中,系统每次读到一张控制卡,就得到一条控制命令,系统就按照命令完成指定的操作。作业说明书是由作业控制命令编写的一个文本。作业说明书必须和作业的程序和数据一起输入到系统中。在作业运行过程中,系统按作业说明书中控制命令的顺序依次完成指定的操作。2 联机控制方式 用户使用操作系统提供的联机控制接口,以人机交互的方式控制作业的运行,称为联机控制方式。l 命令驱动方式 l 图形界面驱动方式 l 命令文件方式 2.1 命令驱动方式 用户
16、使用操作系统提供的操作命令来控制作业的运行。用户通过终端或控制台的键盘敲入一条操作命令。由系统的命令处理进程对输入的命令进行解释和执行,并把运行结果报告用户。C O M M A N D r e g 1,r e g 2 r e g n 操作系统原理学习笔记六 l 系统访问命令 l 编辑和文件管理命令 l 编译、汇编和链接命令 l 询问命令 l 系统管理命令 2.2 图形界面驱动方式 命令驱动方式提供给用户的字符界面缺乏直观性,所以有些操作系统提供了图形界面。图形界面通过各种图形或图标提供操作功能,用户可以使用鼠标或键盘点击有关图标来实现所需的操作。2.3 命令文件方式 用户可以把需要键入的一条条
17、操作命令写成一个文件,然后把这个文件输入系统,由系统按照文件中的操作命令自动逐条执行。这种由操作命令组成的文件称为命令文件。五、Linux 的作业管理 L i n u x 与一般分时操作系统一样对用户作业的管理提供了两种接口:程序级接口系统调用、命令级接口s h e l l。1 系统调用 当用户程序需要访问系统资源时,必须通过系统调用向操作系统提出请求服务,使程序控制转向操作系统,由操作系统内核的服务程序完成相应的功能。操作系统在完成服务后,将控制和结果再返回给用户程序。一个进程在发出系统调用后,进程的执行状态就由用户态转入核心态。在核心态下执行内核的代码。系统完成服务请求后再返回用户态。系统
18、调用可以看作是一个所有 L i n u x 进程共享的子程序库,但是它们只能在核心态下运行。在 L i n u x 内核的 s y s _ c a l l _ t a b l e 表列出了所有的系统调用。每一个系统调用都有相应的系统服务例程入口。L i n u x 的系统调用是由系统调用总控程序 s y s t e m _ c a l l 控制的,它是中断服务程序之一。中断总控程序主要功能:l 保存处理机执行系统调用前的状态;l 检验当前调用是否合法;l 根据系统调用向量,使处理机跳转到相应的系统服务例程的入口;l 从系统服务例程返回后恢复处理机状态并进入用户程序。2 s h e l l 简介
19、 L i n u x 操作系统在对作业的管理中提供了联机控制方式,它们是操作系统用户间的命令级接口,称为 s h e l l。L i n u x 提供了多种 s h e l l,其中缺省使用的是 B a s h。s h e l l 实质上是一个命令解释器,用户在提示符下输入的命令行首先由 s h e l l 解释,然后再送入 L i n u x 内核去执行。操作系统原理学习笔记六 L i n u x 中 s h e l l 提供的命令有两种:l 内部命令 l 外部命令。内部命令包括在内核中,它们常驻在内存储器。外部命令通常以程序文件的形式存放在外存,并纳入文件系统中某个目录之下。s h e l l 的另一个重要特性是它自身就是一个解释型的程序设计语言。允许用户编写由 s h e l l 命令组成的程序,任何在提示符中能键入的命令都能放到可执行的 s h e l l程序中。支持在普通高级语言中使用的程序元素,如函数、变量、数组等,以及循环、分支等流程控制结构。L i n u x 除提供各种键盘命令外,还提供了图形用户界面(G U I),称为 X W i n d o w。象W i n d o w s 一样,有窗口、图标和菜单,所有的管理都是通过鼠标控制。当前比较流行的窗口管理器是 K D E 和 G N O M E。注:本章相关概念、定义和具体需要掌握的内容请参见教材和课件。