计算机操作系统概述2
操作系统控制计算机
计算机系统操作方式
OS规定了合理操作计算机的工作流程,OS的操作接口——系统程序,OS提供给用户的功能级接口,为用户提供的解决操作计算机和计算共性问题的所有服务的集合,OS的两类作业级接口:脱机作业控制方式,作业控制语言;联机作业控制方式,操作控制命令
脱机作业控制方式
- OS:提供作业说明语言
- 用户:编写作业说明书,确定作业加工控制步骤,并与程序数据一并提交
- 操作员:通过控制台输入作业
- OS:通过作业控制程序自动控制作业的执行
- 例:批处理OS的作业控制方式,UNIX的shell程序,DOS的bat文件
联机作业控制方式
- 计算机:提供终端(键盘/显示器)
- 用户:登录系统
- OS:提供命令解释程序
- 用户:联机输入命令,直接控制作业步的执行
- 例:分时OS的交互控制方式
命令解释程序
命令解释程序:接受和执行一条用户提出的对作业的加工处理命令,当一个新的批作业被启动,或新的交互型用户登录进系统时,系统就自动地执行命令解释程序,负责读入控制卡或命令行,作出相应解释,并予以执行,会话语言:可编程的命令解释程序,图形化的命令控制方式,多通道交互的命令控制方式
命令解释程序的处理过程
OS启动命令解释程序,输出命令提示符,等待键盘中断/鼠标点击/多通道识别,每当用户输入一条命令(暂存在命令缓冲区)并按回车换行时,申请中断,CPU响应后,将控制权交给命令解释程序,接着读入命令缓冲区内容,分析命令、接受参数,执行处理代码,前台命令执行结束后,再次输出命令提示符,等待下一条命令,后台命令处理启动后,即可接收下条命令
人机交互
操作系统的人机交互部分
OS改善人机界面,为用户使用计算机提供良好的环境,人机交互设备包括传统的终端设备和新型的模式识别设备,OS的人机交互部分用于控制有关设备运行和理解执行设备传来的命令,人机交互功能是决定计算机系统友善性的重要因素,是当今OS研发热点
人机交互的发展
初期发展
- 交互式控制方式
- 行命令控制方式:1960年代开始使用
- 全屏幕控制方式:1970年代开始使用
- 斯坦福研究所提出的发展计划
- 始于1960年代,1980年代广泛应用
- 强调人而不是技术是人机交互的中心
- 代表性成果:鼠标、菜单与窗口控制
WIMP界面
- 缘起:70年代后期Xerox的原型机Star
- 特征:窗口(Windows)、图标(Icons)、菜单(Menu)和指示装置(PointingDevices)为基础的图形用户界面WIMP
- 得益:Apple最初采用并大力推动
- 时间:1990年代开始广泛使用
- 不足:不允许同时使用多个交互通道,从而产生人-机交互的不平衡
多媒体计算机
- 缘起:1985年的MPC
- 把音频视屏、图形图像和人机交互控制结合起来,进行综合处理的计算机系统
- 构成:多媒体硬件平台、多媒体OS、图形用户接口、多媒体数据开发工具
- 提供与时间有关的时变媒体界面,既控制信息呈现,也控制何时呈现/如何呈现
- 人机交互界面需要使用多种媒体,同时支持多通道交互整合,改善用户体验
虚拟现实系统
- 缘起:1980年代的虚拟现实新型用户界面
- VR通过计算机模拟三维虚拟世界,根据观察点、观察点改变的导航和对周围对象的操作,来模拟临境(身临其境)的感觉
- 支持多通道交互整合,提供良好用户体验
- 支持用户主动参与的高度自然的三维HCI,以及语音识别、头部跟踪、视觉跟踪、姿势识别等新型HCI
- 容许用户产生含糊和不精确的输入
程序接口
操作系统的程序接口
操作系统的程序接口——系统调用,操作系统实现的完成某种特定功能的过程;为所有运行程序提供访问操作系统的接口
实现机制
- 陷入处理机制:计算机系统中控制和实现系统调用的机制
- 陷入指令:也称访管指令,或异常中断指令,计算机系统为实现系统调用而引起处理器中断的指令
- 每个系统调用都事先规定了编号,并在约定寄存器中规定了传递给内部处理程序的参数
系统调用的实现要点
编写系统调用处理程序,设计一张系统调用入口地址表,每个入口地址指向一个系统调用的处理程序,并包含系统调用自带参数的个数,陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场
系统结构
操作系统软件的规模
在计算机软件发展史上,OS是第一个大规模的软件系统,1960年代,由OS开发所衍生的体系结构、模块化开发、测试与验证、演化与维护等研究,直接催生了软件工程这一新兴研究领域(另一个催生来源是DB应用引发的需求与规格),OS作为大型软件,结构设计是关键
操作系统软件的结构设计
- OS构件
- 内核、进程、线程、管程等
- 设计概念
- 模块化、层次式、虚拟化
- 内核设计是OS设计中最为复杂的部分
操作系统内核
单内核:内核中各部件杂然混居的形态,始于1960年代,广泛使用;如Unix/Linux,及Windows(自称采用混合内核的CS结构)
微内核:1980年代始,强调结构性部件与功能性部件的分离,大部分OS研究都集中在此
混合内核:微内核和单内核的折中,较多组件在核心态中运行,以获得更快的执行速度
外内核:尽可能减少内核的软件抽象化和传统微内核的消息传递机制,使得开发者专注于硬件的抽象化;部分嵌入式系统使用