从六大角度理解计算机操作系统

计算机操作系统

操作系统的概念

  • 操作系统(Operating System),简称OS
  • OS是计算机系统最基础的系统软件,管理软硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程,为用户使用计算机提供良好运行环境

操作系统

  • 简而言之,操作系统是方便用户、管理和控制计算机软硬件资源的系统程序集合
    #从用户角度看,OS管理计算机系统的各种资源,扩充硬件的功能,控制程序的执行
    #从人机交互看,OS是用户与机器的接口,提供良好的人机界面,方便用户使用计算机
    #从系统结构看,OS是一个大型软件系统,其功能复杂,体系庞大,采用层次式、模块化的程序结构

操作系统的组成

  • 进程调度子系统
  • 进程通信子系统
  • 内存管理子系统
  • 设备管理子系统
  • 文件管理子系统
  • 网络通信子系统
  • 作业控制子系统

操作系统的类型

  • 从操作控制方式看
    #多道批处理操作系统,采用脱机控制方式
    #分时操作系统,采用交互控制方式
    #实时操作系统
  • 从应用领域看
    #服务器操作系统、并行操作系统
    #网络操作系统、分布式操作系统
    #个人及操作系统、手机操作系统
    #嵌入式操作系统、传感器操作系统

一、资源管理的角度

操作系统的资源

  • 硬件资源
    #处理器、内存、外设
  • 信息资源
    #数据、程序

管理计算机系统的软硬件资源

  • 处理器资源:哪个程序占有处理器运行?
  • 内存资源: 程序/数据在内存中如何分布?
  • 设备管理:如何分配、去配和使用设备?
  • 信息资源管理:如何访问文件信息?
  • 信号量资源:然后和管理进程之间的通信?

屏蔽资源使用的底层细节

  • 驱动程序:最底层的、直接控制和监视各类硬件(或文件)资源的部分
  • 职责是隐藏底层硬件的具体细节,并向其他部分提供一个抽象的、通用的接口
  • 比如说:打印一段文字或一个文件,既不需知道文件信息存储在硬盘上的细节,也不比知道具体打印机类型和控制细节

资源的共享与分配方式

  • 资源共享方式
    #独占使用方式
    #并发使用方式
  • 资源分配策略
    #静态分配方式(好处:不会死锁;坏处:效率低)
    #动态分配方式(好处:效率高;坏处:可能会死锁)
    #资源抢占方式(好处:效率高,不会死锁;坏处:一旦抢占,原来对资源的使用如何回轨)

二、程序控制角度

多道程序同时计算

  • CPU速度与I/O速度不匹配的矛盾,非常突出
  • 只有让多道程序同时进入内存争抢CPU运行,才可以够使得CPU和外围设备充分并行,从而提高计算机系统的使用效率

多道程序同时计算例
从六大角度理解计算机操作系统
从六大角度理解计算机操作系统

多道程序同时计算的宏观分析

  • 甲、乙两道程序
  • 独占计算机单道运行时均需1小时,占用CPU时间18分钟,CPU利用率为39%
  • 按多道程序设计方法同时运行,CPU利用率50%,由于需提供36分钟的CPU时间,大约运行72分钟。考虑到OS调度开销,实际花费时间还要长些,如80分钟
  • 就处理两道作业而言,提高效率33%
    就单道作业而言,延长执行时间20分钟,即延长了33%的时间

多道程序设计及优点

  • 多道程序设计:指让多个程序同时进入计算机的主存储器进行计算
  • 多道程序设计的特点
    #CPU与外部设备充分并行
    #外部设备之间充分并行
    #发挥CPU的使用效率
    #提高单位时间的算题量

多道程序系统的实现

  • 为进入内存执行的程序简历管理实体:
    进程
  • OS应能管理与控制进程程序的执行
  • OS协调管理各类资源在进程间的使用
    #处理器的管理和调度
    #主存储器的管理和调度
    #其他资源的管理和调度

多道程序系统的实现要点

  • 如何使用资源:调用操作系统提供的服务例程(如何陷入操作系统)
  • 如何复用CPU:调度程序(在CPU空闲时让其他程序运行)
  • 如何使CPU与I/O设备充分并行:设备控制器与通道(专用的I/O处理器)
  • 如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理)

三、操作系统控制计算机的角度

计算机系统操作方式

  • OS规定了合理操作计算机的工作流程
  • OS的操作接口——系统程序
    OS提供给用户的功能级接口,为用户提供的解决操作计算机和计算共性问题的所有服务的集合
  • OS的两类作业级接口
    #脱机作业控制方式:作业控制语言
    #联机作业控制方式:操作控制命令

脱机作业控制方式

  • OS:提供作业说明语言
  • 用户:编写作业说明书,确定作业加工控制步骤,并与程序数据一并提交
  • 操作员:通过控制台输入作业
  • OS:通过作业控制程序自动控制作业的执行
  • 例:批处理OS的作业控制方式,UNIX的shell程序,DOS的VAT文件

联机作业控制方式

  • 计算机:提供终端(键盘/显示器)
  • 用户:登录系统
  • OS:提供命令解释程序
  • 用户:联机输入命令,直接控制作业步的执行
  • 例:分时OS的交互控制方式

命令解释程序

  • 命令解释程序:接受和执行一条用户提出的对作业的加工处理命令
  • 当一个新的批作业被启动,或新的交互型用户登录进系统时,系统就自动的执行命令解释程序,负责读入控制卡或命令行,作出相应解释,并予以执行
  • 会话语言:可编程的命令解释程序(UNIX的shell就是典型的会话语言)
  • 图形化的命令控制方式
  • 多通道交互的命令控制方式

命令解释程序的处理过程

  • OS启动命令解释程序,输出命令提示符,等待键盘中断/鼠标点击/多通道识别
  • 每当用户输入一条命令(在存在命令缓冲区)并按回车换行时,申请中断
  • CPU响应后,将控制权交给命令解释程序,接着读入命令缓冲区内容,分析命令、接受参数,执行处理代码
  • 前台命令执行结束后,再次输出命令提示符,等待下一条指令
  • 后台命令处理启动后,即可接收下调命令

四、人机交互的角度

操作系统的人机交互部分

  • OS改善人机界面,为用户使用计算机提供良好的环境
  • 人机交互设备包括传统的终端设备和新型的模式识别设备
  • OS的人机交互部分用于控制有关设备运行和理解执行设备传来的命令
  • 人机交互功能是决定计算机系统友善性的重要因素,是当今OS研发热点

人机交互的初期发展

  • 交互式控制方式
    #行命令控制方式:1960年代开始使用
    #全屏幕控制方式:1970年代开始使用
  • 死他们付研究所提出的发展计划
    #始于1960年代,1980年代广泛应用
    #强调人而不是技术是人机交互的中心
    #代表性成果:鼠标、菜单与窗口控制

人机交互发展—WIMP界面

  • 缘起:70年代后期Xerox的原型机Star
  • 特征:窗口(Windows)、图标(Icons)、菜单(Menu)和指示装置(Pointing Devices)为基础的图形用户界面WIMP
  • 得益:Apple最初采用并大力推动
  • 时间1990年代开始广泛使用
  • 不足:不允许同时使用多个交互通道,从而产生人—机交互不平衡

人机交互发展—多媒体计算机

  • 缘起:1985年的MPC
  • 把音频视屏、图形图像和人机交互控制结合起来,进行综合处理的计算机系统
  • 构成:多媒体硬件平台、多媒体OS、图形用户接口、多媒体数据开发工具
  • 提供与事件有关的时变媒体界面,既控制信息呈现,也控制何时呈现/如何呈现
  • 人机交互界面需要使用多媒体,同时支持多通道交互整合,改善用户体验

人机交互发展—虚拟现实系统

  • 缘起:1980年代的虚拟现实新型用户界面
  • VR通过计算机模拟三维虚拟世界,根据观察点、观察改变的导航和对周围对象的操作,来模拟临境(身临其境)的感觉
  • 支持多通道交互整合,提供良好用户体验
  • 支持用户主动参与的高度自然的三维HCI(人机交互),以及语音识别、头部跟踪、视觉跟踪、姿势识别等新型HCI
  • 容许用户产生含糊和不精确输入

五、程序接口的角度

操作系统的程序接口

  • 操作系统的程序接口——系统调用
  • 操作系统实现的完成某种特定功能的过程;为所有运行程序提供访问操作系统的接口

系统调用的实现机制

  • 陷入处理机制:计算机系统中控制和实现系统调用的机制
  • 陷入指令:也称访管指令,或异常中断指令,计算机系统为实现系统调度而引起处理器中断的指令
  • 每个系统调用都事先规定了编号,并在约定寄存器中规定了传递给内部处理程序的参数

系统调用的实现要点

  • 编写系统调用处理程序
  • 设计一张系统调用入口地址表,每个入口地址指向一个系统调用的处理程序,并包含系统调用自带参数的个数
  • 陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理期现场

系统调用的实现流程
从六大角度理解计算机操作系统

六、系统结构的角度

操作系统软件的规模

  • 在计算机软件发展史上,OS是第一个大规模的软件系统
  • 1960年代,由OS开发所衍生的体系结构、模块化开发、测试与验证、演化与维护等研究,直接催生了软件工程这一新兴研究领域(另一个催生来源是DB应用引发的需求与规格)
  • OS作为大型软件,结构设计是关键

操作系统软件的结构设计

  • OS构件
    内核、进程、线程、管程等
  • 设计概念
    模块化、层次式、虚拟化
  • 内核设计是OS设计中最为复杂的部分

操作系统内核

  • 单内核:内核中各部件杂然混居的形态,始于1960年代,广泛使用;如Unix/Linux,及Windows(自称采用混合内核的CS结构)
  • 微内核:1980年代始,强调结构性部件与功能性部件的分离,大部分OS研究都集中在此
  • 混合内核:微内核和单内核的折中,较多组件在核心太态中运行
  • 外内核:尽可能减少内核的软件抽象化和传统微内核的消息传递机制,使得开发者专注于硬件的抽象化;部分嵌入式系统使用

操作系统实现的一种层次结构
从六大角度理解计算机操作系统

操作系统实现的第二种层次结构
从六大角度理解计算机操作系统