Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
379 lines (311 sloc) 20.7 KB

第一章 计算机操作系统概述

第一节

时间 硬件 语言 用途
1945 电子真空管 机器语言 应用于科学计算
1956 晶体管 批处理控制 Fortran/COBOL 数据处理领域
1959 集成电路 多道程序 操作系统/数据库/高级语言 应用领域得到了进一步的拓展
1976 大规模/超大规模集成电路 向快速化/小型化/系统化/网络化/智能化等方面发展
1980 微机出现 廉价化促使应用领域快速膨胀
1990 图形化人机交互技术 友善化推动了应用人群的快速扩展
2003 移动计算

计算机系统组成

  • 硬件子系统和软件子系统
  • 硬件:CPU、I/O控制系统等
  • 软件:操作系统等

计算机系统的用户视图

第二节

计算机硬件系统

  • 中央处理器:运算单元,用于执行机器指令的运算;控制单元:解义机器指令。
  • 主存储器:存储正在执行的指令和数据。
  • 外围设备:显示器等输出设备,键盘鼠标等输入设备,硬盘等存储设备,机机网络设备。
  • 总线:连接

冯诺依曼模型

存储程序计算机在体系结构上主要特点:

  1. 以运算单元为中心,控制流由指令流产生;
  2. 采用存储程序原理,面向主存组织数据流;
  3. 主存是按地址访问、线形编址的空间;
  4. 指令由操作码和地址码组成;
  5. 数据以二进制编码。

总线

  • 总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是 CPU 、内存、输入输出设备传递信息的公用通道。
  • 计算机的各个部件通过总线相连接,外围设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统
  • 按照所传输的信息种类,总线包括一组控制线、一组数据线和一组地址线。

总线类型

  • 内部总线:用于 CPU 芯片内部连接各元件;
  • 系统总线:用于连接 CPU 、存储器和各种 I/O 模块等主要部件
  • 通信总线:用于计算机系统之间通信。

中央处理器(CPU)

是计算机运算核心(Core)和控制单元(Control Unit),主要包括:

  • 运算逻辑部件:一个或多个运算器;
  • 寄存器部件:包括通用寄存器、控制与状态寄存器,以及高速缓冲存储器(Cache)
  • 控制部件:
    • 实现各部件间联系的数据、控制及状态的内部总线
    • 负责对指令译码、发出为完成每条指令所要执行操作的控制信号、实现数据传输等功能的部件。

存储器的组织结构

L0 ~ L4 :挥发性存储器,断电数据消失。

外围设备及其控制

设备类型:

  • 输入设备
  • 输出设备
  • 存储设备
  • 机机通信设备:不同网络设备块大小不一致,以字节、以包等进行数据传输

设备控制方式:

  • 轮询方式:CPU 忙式控制,CPU 执行内存数据交换;
  • 中断方式:CPU 启动外设,外设中断 CPU ,CPU 执行内存数据交换。
  • DMA (直接内存存取)方式:CPU 启动 DMA ,DMA 执行输入输出与内存数据交换,DMA 中断 CPU 。举个例子,移动一个外部内存的区块到芯片内部更快的内存区,这样的操作并没有让处理器工作拖延,反而可以重新排程处理其它工作。

第三节

计算机软件系统的组成

  • 系统软件:操作系统、实用程序、语言处理程序和数据库管理系统。操作系统为实施对各种软硬件资源的管理控制;实用程序为方便用户所设,如文本编辑;语言处理程序把用汇编语言/高级语言编写的程序,翻译成可执行的机器语言程序。
  • 支撑软件:有接口软件、工具软件、环境数据库,支持用户使用计算机的环境,提供开发工具。(也可以认为是系统软件的一部分)
  • 应用软件:是用户按其需要自行编写的专用程序。

软件开发的不同层次

  • 计算机硬件系统:机器语言;
  • 操作系统之资源管理:机器语言 + 广义指令(拓充了硬件资源管理);
  • 操作系统之文件系统:机器语言 + 系统调用(扩充了信息资源管理);
  • 数据库管理系统:+ 数据库语言(扩充了功能更强的信息资源管理);
  • 语言处理程序:面向问题的语言。

第四节

计算机的手工操作

哈哈,跟之前上计算机组成原理一样,做个大实验手指疼两天。

装入程序的引进

  • 引入卡片和纸带描述程序指令与数据
  • 引入装入程序(Loader)。自动化执行程序装入,必要时进行地址转换;通常存放在 ROM 中。

引入汇编语言后的计算机控制

  • 计算机操作变成:汇编和执行两个阶段。

高级语言之后

  • 计算机操作变成:编译、连接和执行三步骤。

简单批处理系统的操作

  • 原先,手工操作与计算机速度严重不匹配的问题。现在,引入作业控制语言,用户编写作业说明书,描述对一次计算机求解(作业)的控制;
  • 操作员控制计算机成批输入作业,成批执行作业;
  • 这一方式明显缩短了手工操作时间,提高了计算机系利用率;
  • 这一阶段,磁带的出现,使得卡片与纸带等机械输入方式得以进一步提高。

只是一个简单的批处理系统,谈不上是操作系统,只提供了一个半自动化操作方式,并没有解决与中央处理器电子速度不匹配的矛盾,要让多个程序同时进入计算机系统,而想要多道程序同时进行,就需要进行程序的切换,而该切换的解决需要更加高速的外存储设备的支撑。

IMG_39B4C3077F37-1.jpeg

操作系统与自动化系统

磁盘的出现,计算机操作系统从此出现,实现了真正的自动化控制。

第五节

操作系统概念

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

操作系统

操作系统是方便用户、管理和控制计算机软硬件资源的系统程序集合。

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

操作系统的组成

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

操作系统的类型

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

第六节

操作系统的资源

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

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

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

屏蔽资源使用的底层细节

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

资源的共享与分配方式

  • 资源共享方式:独占使用方式、并发使用方式;
  • 资源分配策略:静态分配方式(无死锁)、动态分配方式(注意死锁)、资源抢占方式(无死锁)。

第七节

多道程序同时计算

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

多道程序设计

  • 多道程序设计:指让多个程序同时进入计算机的主存储器进行计算;

  • 多道程序设计的特点

    • CPU 与外部设备充分并行;
    • 外部设备之间充分并行;
    • 发挥 CPU 的使用效率;
    • 提高单位时间的算题量。

    多道程序系统的实现

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

多道程序系统的实现要点:

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

第八节

计算机系统操作方式

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

脱机作业控制方式

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

联机作业控制方式

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

命令解释程序

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

命令解释程序的处理过程

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

第九节

操作系统的人机交互部分

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

人机交互的初期发展

  • 交互式控制方式:

    • 行命令控制方式:1960 年代开始使用;
    • 全屏幕控制方式:1970 年代开始使用;
  • 斯坦福研究所提出的发展计划:

    • 始于 1960 年代,1980 年代广泛应用;
    • 强调人而不是技术是人机交互的中心;
    • 代表性成果:鼠标、菜单与窗口控制。

    人机交互发展 —— WIMP 界面

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

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

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

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

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

第十节

操作系统的程序接口

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

系统调用的实现机制

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

系统调用的实现要点

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

IMG_0282.jpg

第十一节

操作系统软件的规模

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

操作系统软件的结构设计

  • OS 构件:内核、进程、线程、管程等;
  • 设计概念:模块化、层次式、虚拟化。

操作系统内核

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

IMG_A6FF6590554B-1.jpeg

IMG_FA03C006D2D8-1.jpeg

第二章 处理器管理

第一节 处理器与寄存器

操作系统是对计算机硬件的第一次扩充,操作系统在设计的实话贯彻了软硬件协同的概念,操作系统对硬件设计提出了一系列要求。

处理器部件的简单示意

屏幕快照 2018-09-25 18.16.28.png

用户可见寄存器

  • 可以使程序员减少访问主存储器的次数,提高指令执行的效率;
  • 所有程序可使用,包括应用呈现和系统程序:
    • 数据寄存器:又称通用寄存器(AX、BX、CX、DX);
    • 地址寄存器:索引寄存器(SI、DI)、栈指针寄存器(SP、BP)、段地址寄存器(CS、DS、SS、ES)等;

控制与状态寄存器

  • 用于控制处理器的操作。主要被具有特权的操作系统程序使用,以控制程序的执行。
  • 程序计数器 PC :存储将取指令的地址;
  • 指令寄存器 IR :存储最近使用的指令;
  • 条件码 CC :CPU 为指令操作结果设置的位,标志正/负/零/溢出等结果;
  • 标志位:中断位、中断允许位、中断屏蔽位、处理器模式位、内存保护位等。

程序状态字 PSW

  • PSW 即是操作系统的概念,指记录当前程序运行的动态信息,通常包含:
    • 程序计数器,指令寄存器,条件码;
    • 中断字,中断运行/禁止,中断屏蔽,处理器模式,内存包含,调试控制。
  • PSW 也是计算机系统的寄存器
    • 通常设置一组控制与状态寄存器;
    • 也可以专设一个 PSW 寄存器。

第二节 指令与处理器模式

机器指令

  • 机器指令是 计算机系统执行 的基本命令,是 中央处理器执行 的基本单位;
  • 指令由一个或多个字节组成,包括操作码字段、一个或多个操作数地址字段以及一些表征机器状态的状态字或特征码;
  • 指令完成各种算术逻辑运算、数据传输、控制流跳转特征码。

指令执行过程

  • CPU 根据 PC (程序计数器)取出指令,放入 IR (指令暂存器),并对指令译码,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。
  • 一种指令执行步骤如下:
    • 取指:根据 PC 从存储器或高速缓冲存储器中取指令到 IR ;
    • 解码:解译 IR 中的指令来决定其执行行为;
    • 执行:连接到 CPU 部件,执行运算,产生结果并写回,同时在 CC 里设置运算结论标志;跳转指令操作 PC ,其它指令递增 PC 值。

特权指令与非特权指令

  • 用户程序并非能够使用全部机器指令,那些与计算机核心资源相关的特殊指令会被保护。
    • 如:启动 I/O 指令、置 PC 指令等
    • 核心资源相关的指令只能被操作系统程序使用;
    • 特权指令:只能被操作系统内核使用的指令;
    • 非特权指令:能够被所有程序使用的指令。

处理器模式

  • 计算机通过设置处理器模式实现特权指令管理;
  • 计算机一般设置 0 、 1 、2 、 3 等四种运行模式,建议分别对应: 值 | 保护级别 --- | --- 0 | 操作系统内核 1 | 系统调用 2 | 共享库程序 3 | 用户程序
  • 一般来说,现代操作系统只使用 0 和 3 两种模式,对应与内核模式和用户模式。

模式的切换

  • 简称模式切换,包括“用户模式 -> 内核模式”和“内核模式 -> 用户模式”的转换;
  • 中断、异常或系统异常等事件导致用户程序向 OS 内核切换,触发:用户模式 -> 内核模式;
    • 程序运行时发生并响应中断
    • 程序运行时发生异常
    • 程序请求操作系统服务
  • OS 内核处理完成后,调用中断返回指令触发:内核模式 -> 用户模式。

中断

中断的概念

  • 中断是指程序执行过程中,遇到急需处理的事件时,暂时中止 CPU 上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。
  • 操作系统时“中断驱动”的;换言之,中断时激活操作系统的唯一方式。
  • 中断有广义和狭义之分,上述中断是广义的中断。

中断、异常与系统异常

  • 狭义的中断指来源于处理器之外的中断事件,即与当前运行指令无关的中断事件,如 I/O 中断、时钟中断、外部信号中断等。
  • 异常指当前运行指令引起的中断事件,如地址异常、算数异常、处理器硬件故障等。
  • 系统异常指执行陷入指令而触发系统调用引起的中断事件,如请求设备、请求 I/O 、创建进程等。