操作系统——作业管理


先来理解几个概念

        作业管理、通信事务管理是操作系统提供给用户的最直接服务。

        操作系统类型:单用户操作系统;多道批处理系统;分时系统(Unix系统);实时系统;网络操作系统;分布式操作系统(分布式操作系统是网络操作系统的高级阶段)。

        操作系统运行环境:最为重要的是中断机构。事件引发中断,中断必须加以处理,操作系统由此被驱动。操作系统本身的代码运行在核心态。用户态进入核心态的唯一途径是中断。在Unix中是trap(陷门)。

        主动模块:OS启动时就参与运行的程序代码段。被动模块:被主动模块调用而运行的模块或被另外一些被动模块调用,例如中断处理程序。 

        操作系统启动过程:
  1. 首先是执行ROM中(ROM)的自举程序(几十条指令);
  2. 引导程序,执行引导程序将OS加载到内存;
  3. 初启程序,初始化及检测各个硬件及软件;
  4. CPU运行一个“闲逛”进程。闲逛就是OS执行一个空操作,OS处于待机状态。

   作业管理

2.1 什么叫作业

        用户交个计算机的工作称为作业;

        作业由程序、数据、作业说明3部分组成;

        我们接触的操作系统作业分为:批处理作业和交互式作业;

        脱机是批处理作业的主要特征。脱机的意思是不由人再操作。

        交互式作业以联机为主要特征。

2.2 操作系统提供的用户界面

        程序界面(编程系统调用的界面):它由一组系统调用命令组成。每条系统调用指令都对应一个由操作系统设计者事先编制好的、能完成某些特定功能的例行程序。供用户编程使用的界面,用户可以把系统调用命令写进程序中。系统调用在程序一级上为用户提供支持,所以称为程序界面。

        联机用户界面(键盘操作屏幕操作的界面):由键盘命令和屏幕命令组成。键盘命令是由联机用户交互式终端上通过键盘键入的命令。屏幕命令的输入主要是靠鼠标的点击,拖曳移动。

        脱机用户界面:它由一组作业控制命令组成。这组作业控制命令带有浓厚的编程语言特征,所以又被称为作业控制语言。C-Shell语言编写作业说明书,规格如下:

86% nroff -mm glossary > glossary.out & [1] 26025
%:命令提示符;
86:命令顺序号;
nroff:命令名;
-mm:参数;
glossary:文件名;
>:传送命令;
&:后台命令(只有在前台命令不运行时,后台命令才运行);
[1]:顺序号 
26025:进程号

2.2.1 Unix系统调用执行过程

        Unix中有64中系统调用命令。执行系统调用例行程序模块时涉及到处理机运行状态的改变:用户态到系统态,执行完例行程序后再返回用户态。Unix的系统调用命令是通过中断结构“陷入(trap)”操作系统的核心。

如何找到OS内部的例行程序?

        通过系统调用命令表找到相应命令的入口地址,进而找到例行程序,执行完例行程序之后再返回调用处。Trap 03,通过03查找命令表,从而从用户态进入核心态。硬件上执行trap指令是,会自动自陷中断。

2.2.2 键盘命令执行过程

  1. 读入命令行;
  2. 由“启动”终端处理程序中的命令解释程序分离命令名,查命令入口表;
  3. 取参数;
  4. 转入指针指向的例程;
  5. 执行例程;
  6. 读入下一条命令。

2.2.3 屏幕命令执行过程——事件驱动

        事件驱动产生命令——命令排队——细分命令(用户命令,OS命令,DOS命令)——转到相应的处理程序。

2.2.4 用户界面现状与发展

        屏幕功能将更加丰富;

        屏幕命令的接受附件将更加智能化;

2.3 交互式作业管理

        交互式作业有一个输入(编辑)、编译、运行、调试、再编译、再运行的反复过程。

2.4 批处理作业管理

        三种状态:后备状态(处理前)—(作业调度)—运行状态(作业控制)—(作业撤离)—完成状态(处理后);

        作业登录:作业登录程序负责为作业建立JCB;作业外存地址、作业登录时间;所有作业的JCB被链接在一起,习惯上称为作业队列。

2.4.1 作业撤离

        从作业队列上取下该作业的JCB,释放JCB中指明的各种资源。

2.4.2 作业调度

从后备作业队列中选出一个作业装入主存,参与多道运行。

常见的作业调度算法:

  1. 先来先服务(FCFS)——选后备队列中第一个位置上的作业;
  2. 短作优先(SJF)——选最短(指运行时间最短的作业);
  3. 响应比高者优先(HRN);
  4. 优先级法——选优先级最大的作业。

2.4.3 作业控制

        作业 = 程序 + 数据 + 作业说明书 

        作业控制程序实际上是作业控制命令的解释执行程序,它根据用户作业的说明书,逐条解释执行其命令。

某作业说明书的一个片段:

cc f1.c /*编译f1模块,生成f1.obj文件*/
cc f2.c /*编译f2模块,生成f2.obj文件*/
link f1.obj f2.obj f.exe -lib :/*将两个目标文件链接成一个可执行文件f.exe

        在多处理机环境下,作业控制程序有识别作业,步并行关系的能力和任务分派能力。

        作业控制程序同样要能控制并发程序。作业控制程序被启动后以进程的方式运行,称为作业控制进程,它是运行态作业的祖先进程,再由祖先进程创建子孙进程,形成作业的进程家族。

2.4.4 作业与进程

进程(process)就是为描述任务的动态行为而提出来的;

作业(任务)是由多个进程组成的,作业的资源需求量等于它的进程拥有的资源数量之和。

现在操作系统把进程作为申请资源的基本单位,把线程(thread)作为任务执行的基本单位。



你可能感兴趣的:(操作系统)