用户接口及作业管理
作业管理
什么是作业?
用户角度
在一次应用业务理过程中,从输入开始到输出结束,用户要求计算机所作的有关该次业务处理的全部工作称为一个作业
在一个作业的处理过程中,计算机所做的每个相对独立的工作就是一个作业步,作业由不同顺序的作业步组成
作业 = 作业步1 + 作业步2 +…+ 作业步n
系统角度
从系统的角度,可以将作业视为程序、数据和作业说明书构成的整体
作业 = 程序 + 数据 + 作业说明书
书写作业说明书的语言称为作业控制语言(JCL)
作业说明书用于描述批处理作业处理过程控制意图的一种程序
作业的建立
作业的建立指的是一个作业的全部程序和数据输入到外存且在系统中建立了相应的作业控制块(JCB)
作业的建立:
- 作业的输入
- 作业控制块的建立
作业输入方式
(1)联机输入方式:外围设备和主机直接连接的输入方式,单台设备与主机连接时,IO与作业处理不能并行,降低了CPU的效率
(2)脱机输入方式:利用低档个人计算机作为外围处理机进行输入处理
脱机实现:主机与输入设备不是直接连接
输入过程:在个人机上,用户通过联机方式将作业输入到后援存储器,然后将装有输入数据的后援存储器拿到主机的高速外设上与主机连接,解决了主机 CPU 的浪费,以牺牲个人机为代价;灵活性差,需人工干预介质传送。
(3)直接耦合方式:将主机和外围抵档机通过一个公用的大容量外存直接耦合
特点:
- 保留了脱机方式快速的优点,克服了其人工干预的缺点
- 需要大容量公用存储器和多台低档机,成本高
(4)spooling系统:假脱机同时外围设备联机操作
工作原理:
- 作业执行前用慢速设备将作业预先输入到后援存储器(如磁盘、磁鼓,称为输入井)中,称为预输入
- 作业运行后,使用数据时,从输入井中取出
- 作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中
- 作业全部运行完毕,再由外设输出全部数据和信息,称为缓输出
假脱机:实现了对作业输入、 组织调度和输出的统一管理,使外设在 CPU 直接控制下,与 CPU 并行工作,虽然主机与输入设备没有分离,却具有了脱机的性质
(5)网络输入方式:当用户需要在A网络中某一台主机上输入的信息传送到A网络中的另一台主机上进行操作或执行时,即构成网络输入方式
作业控制块的建立
作业控制块(JCB)是在作业建立时系统根据作业说明书建立的。
在运行过程中, JCB 是系统对作业进行管理的必要信息 ,主要包括:
- 作业名
- 估计执行时间
- 优先数(用于调度)
- 作业说明书文件名
- 程序类型(需调用的系统程序)
- 资源要求(静态,或中间可以随作业步变化)
- 作业状态(提交、后备、执行、完成)
用户接口
操作系统为用户提供两类接口:
- 程序级接口
- 命令级接口
程序级接口
程序级接口是系统为用户在程序级别提供有关服务而设置的,由一组系统调用命令组成
作用:使这些程序与系统控制的资源或提供的服务之间实现交互作用
注意:程序级接口只能在高级语言或汇编语言中作为函数和过程被调用, 而不能像一个命令那样直接在系统提示符下输入
void main()
{
int i;
if ( fork() == 0 )
{
for ( i = 1; i <1000; i ++ )
printf("This is child process\n");
}
else
{
for ( i = 1; i <1000; i ++ )
printf("This is parent process\n");
}
}
其中的 fork() 就是一个系统调用函数—>程序级接口
程序级接口的调用依靠系统调用
OS内核中有一组 实现系统功能 的子程序,在编程语言执行程序级接口函数时,依靠系统调用实现函数相应功能
系统调用的实现过程:系统调用语句本身是由硬件提供的,但其调用的功能是操作系统提供的
系统调用与普通过程调用的区别:
系统调用需要从CPU用户态变为内核态
普通过程调用全程在用户态下完成
命令级接口
命令级接口:用户在DOS或Unix文字界面的系统提示符下输入的命令
Windows 操作系统提供的图形用户接口实质上也是命令级接口
区别:
系统调用需要从CPU用户态变为内核态
普通过程调用全程在用户态下完成
命令级接口
命令级接口:用户在DOS或Unix文字界面的系统提示符下输入的命令
Windows 操作系统提供的图形用户接口实质上也是命令级接口
总结:命令级接口提供给用户直接在键盘终端上交互式地使用,程序级接口提供给用户在编程时使用