操作系统---(6)操作系统接口
操作系统中有专门响应用户控制要求的接口,负责系统与用户之间的双向信息传送
(1)脱机命令接口——作业控制说明语言
- 批处理系统中,用户提交给系统的一个计算任务,就是一个作业
- 批作业=程序+数据+作业控制说明书
- 作业控制说明书由作业控制语言编写,也就是由一条条控制作业如何运行的命令组成。
- 作业控制说明语言是由-组作业控制命令组成的集合,专门用于批处理系统。
作业控制说明语言:
(2)联机命令接口
- 命令行方式操作接口(键盘命令)
- 图形化界面(鼠标点击)
终端用户使用的操作命令接口,主要实现人-机交互。用户通过终端命令或者鼠标点击来控制作业的运行。该类接口涉及的服务程序:- “终端处理程序”
- 命令解释程序
- “鼠标点击事件响应程序”
Linux命令解释器shell执行流程
(3)程序级接口——系统调用
操作系统还提供一种适用于应用程序中的功能调用接口,叫做|系统调用(system call),允许用户在自己的应用程序中调用系统i中提供的一些功能模块。简单地说,系统调用就是应用程序要调用系统程序。
系统调用是应用程序获得操作系统服务的唯一途径。
为什么应用程序要进行系统调用呢?
系统指令:
特权指令
非特权指令
- 特权指令是指那些直接管理控制系统资源和状态的指令,用错可能导致整个系统崩溃。比如:清内存、设置时钟等。
- 只有系统程序才能执行特权指令,应用程序只能执行非特权指令。
系统调用的服务例程
- 系统资源的分配、驱动、调度以及管理数据的检|索、修改等操作,是不能允许用户程序自行处理;的,否则系统就无安全性及管理控制之说了。
- |操作系统以系统调用形式提供一系列实现预定底层功能的内核函数,每个系统调用都有写好的服务例程,每个服务例程有其入口地址。
(4)CPU的两种工作状态
-
管态(系统态)
执行系统程序的状态,允许执行所有命令 -
目态(用户态)
执行用户程序的状态,只允许执行非特权指令
系统调用前后
访管指令是一条可以在目态下执行的指令,用户程序中凡是要调用操作系统功能时就安排一条访管指令。当处理器执行到访管指令时就产生一个中断事件(自愿中断),暂停用户程序的执行,而让操作系统来为用户服务。所以访管指令不是特权指令。