非零基础自学计算机操作系统
文章目录
- 非零基础自学计算机操作系统
- 第1章 操作系统概述
- 1.6 操作系统的界面形式
- 1.6.1 交互终端命令
- 1.6.2 图形用户界面
- 1.6.3 触屏用户界面
- 1.6.4 作业控制语言
- 1.6.5 系统调用命令
- 1.7 操作系统的运行机理
第1章 操作系统概述
1.6 操作系统的界面形式
从虚拟机的观点来看,操作系统是对计算机硬件的第一级扩充,也是最基本、最重要的扩充,配有操作系统的计算机在功能等方面与裸机相比大大增强了。
在大多数情况下,用户通过操作系统与计算机硬件打交道,而不直接使用计算机硬件。那么,用户是如何使用操作系统的呢?换句话说,用户与操作系统之间的界面形式是什么样的呢?
一般来说,操作系统为用户提供5种界面形式:
- 交互终端命令
- 图形用户界面
- 触屏用户界面
- 作业控制语言
- 系统调用命令
1.6.1 交互终端命令
交互终端命令(又称命令行,command line)是分时操作系统所具有的界面形式。
系统为交互终端用户提供一组交互式命令,用户可以通过终端键盘输入这些命令。每个输入命令都被操作系统中的命令解释程序所接收,该程序分析接收到的命令,然后调用操作系统中的相应模块完成此命令所要求的功能,最后将此命令的执行结果输出给用户,用户根据此结果决定下一条命令的输入,直到用户完成自己的工作。
交互终端命令界面由命令解释程序提供,该程序通常属于操作系统内核,但是UNIX系统的交互式命令解释程序由shell(外壳)提供,而shell并不属于系统核心,而是运行于核心之外的目态程序,它通过系统调用与核心打交道,完成命令所要求的动作。
交互终端命令的一般形式为“命令名选项参数”,其中命令名指定操作功能,选项是对命令功能的调整,参数是命令操作的对象。一般系统都提供几十条甚至上百条交互式命令,操作人员必须熟记这些命令,才能对系统应用自如,这一般只有计算机专业人员才能做到。
1.6.2 图形用户界面
考虑用户尤其是非计算机专业人员使用计算机系统的方便性,现代操作系统都提供了图形用户界面(GUI)形式,GUI在本质上也属于交互式界面形式,只不过界面由命令行转变为图形提示和鼠标操作。
图形用户界面一般由视窗、图标、菜单、对话框等基本元素以及对基本元素所能进行的操作构成。在有些系统如Windows中,仍然保持一个行式命令的界面,不过该界面实际上是作为一个特殊的视窗实现的。
1.6.3 触屏用户界面
由于感应式接触屏幕的出现和普及,在手机和平板电脑上出现了触屏界面形式,这类设备一般没有键盘和鼠标,用户通过触摸和手的姿势产生中断,与操作系统进行交互,这类设备也可以在屏幕上仿真一个键盘,通过触摸虚拟按键输入文字。
1.6.4 作业控制语言
这是批处理系统所具有的界面形式。
系统为用户提供一种作业控制语言(job control language,JCL)。当用户欲提交批作业时,他使用这种语言书写作业说明书,该说明书以操作系统所能识别的形式描述一个用户作业的处理步骤,然后将此说明书与程序、数据一道提交给操作系统。操作系统将按照作业说明书所规定的步骤一步一步地处理作业。
作业说明书是用一种专门的语言书写的,称为作业控制语言,作业控制语言是与操作系统相关的。不同的操作系统具有不同的作业控制语言,一般包含几十个作业控制命令。作业控制语言是批处理系统中操作系统与用户之间的主要界面形式。
1.6.5 系统调用命令
系统调用(system call)命令也称为应用程序接口(application program interface,API),这是在用户程序级别上与操作系统打交道的方式。
几乎所有类型的操作系统都有这种接口。操作系统为用户提供一组系统调用命令,用户可以将这些系统调用命令写在程序中。当用户程序在运行过程中执行到这些系统调用命令时,将发生自愿性中断,进入操作系统。
操作系统将根据不同的系统调用命令转到相应的处理程序完成该调用命令所要求的服务。
系统调用命令通常可以分为以下几类:
- 与文件相关的系统调用命令,如建立文件、撤销文件、打开文件、关闭文件、读写文件等:
- 与进程相关的系统调用命令,如创建子进程、撤销子进程、跟踪子进程等:
- 与进程间通信相关的系统调用命令,如发送消息、接收消息、发送信件、接收信件等:
- 与资源相关的系统调用命令,如申请资源、释放资源等。
- …
应当指出,用户与操作系统之间的5种界面形式是操作系统所提供的。对于不同的操作系统来说,这5种界面形式不尽相同。
从用户的角度来说,当然希望能够将所有操作系统与用户之间的5种界面形式统一化、标准化。但是由于历史的原因以及机器结构等方面的差异,目前尽管在统一作业控制语言方面已经有人做了一些有益的工作,但是从整体来看进展不大。
1.7 操作系统的运行机理
操作系统是中断驱动的,考虑一个系统中并发执行的两个程序P1和P2,假设在时刻t1程序P1执行,在时刻t2程序P2执行,t1<t2,则在时刻(t1,t2)之间一定发生过中断,即中断是程序切换的必要条件。
实际上,程序P1不可能将CPU的使用权限直接交给程序P2,将处理器的使用权限由P1转交给P2只能由操作系统完成,而操作系统要完成CPU的重新分配必须首先获得CPU的使用权。
操作系统取代P1成为处理器的持有者的唯一途径是中断。中断将引出新的程序状态字并导致系统由目态转到管态,即进入操作系统。操作系统在执行完中断例程之后,既可能继续执行P1,也可能决定执行P2,这与CPU的调度原则有关。
在后一种情况下,操作系统将保存P1的状态信息,然后恢复P2的状态信息并通过置程序状态字指令使系统转到目态运行P2。多道程序运行机理如下图所示。
有许多可能引起中断的事件,这些事件既可能与运行进程有关,如访管、地址越界、非法指令、溢出等,也可能与运行进程无关,如系统时钟、I/O设备完成信号等。
这里统一使用“中断”这一术语,在有些书籍中除“中断”外还使用“访管”“自陷”“功能调用”等术语,实质上它们都属于自愿性中断。