概述

计算机层次

概述 - 图1

定义

操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织和调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。

功能和目标

作为系统资源的管理者

概述 - 图2

举例

分别对应了操作系统提供的功能

概述 - 图3

作为用户和计算机硬件之间的接口

  • 命令接口:允许用户直接使用
  • 程序接口:允许用户通过程序间接使用
  • GUI:现代操作系统中最流行的图形用户接口

概述 - 图4

用户接口

包括联机命令接口和脱机命令接口

概述 - 图5

作为最接近硬件的层次

  • 需要提供的功能和目标:实现对硬件机器的拓展。
  • 没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器。
  • 通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机。

操作系统的特征

概述 - 图6

并发和并行

并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
常考易混概念――并行:指两个或多个事件在同一时刻同时发生。

概述 - 图7

共享

共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

概述 - 图8

举例

概述 - 图9

共享和并发的关系

  • 并发性指计算机系统中同时存在着多个运行着的程序。
  • 共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。

概述 - 图10

虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。

概述 - 图11

空分复用技术

概述 - 图12

时分复用技术

概述 - 图13

异步

异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

举例

概述 - 图14

显然,如果失去了并发性,则系统只能串行地处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性。

操作系统的发展与分类

概述 - 图15

手工操作阶段

概述 - 图16

单道批处理阶段

概述 - 图17

多道批处理系统

概述 - 图18

为什么多道批处理系统能够使资源利用率大幅提升?

举例:

概述 - 图19

若采用单道批处理,那么任务都是串行执行

概述 - 图20

若采用多道批处理,那么在其他部件空闲时可以开始处理其他进程

概述 - 图21

分时操作系统

概述 - 图22

实时操作系统

概述 - 图23

其他操作系统

概述 - 图24

OS运行机制和体系结构

运行机制

两种指令

“指令”就是处理器(CPU)能识别、执行的最基本命令。

概述 - 图25

两种处理器状态

概述 - 图26

两种程序

概述 - 图27

体系结构

内核

内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。实现操作系统内核功能的那些程序就是内核程序

内核的层次图

概述 - 图28

内核的结构图
概述 - 图29

大内核和微内核

由于不同操作系统对内核的划分不同,所以分类大内核和微内核操作系统。

概述 - 图30

可以类比:

概述 - 图31

总结

概述 - 图32

中断和异常

概述

为了实现不同的线程直接进行切换,需要中断机制。

概述 - 图33

  • 当中断发生时,CPU立即进入核心态。
  • 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
  • 对于不同的中断信号,会进行不同的处理。

发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户+态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

遗留问题:用户态、核心态之间的切换是怎么实现的?

答:“用户态→核心态”是通过中断实现的。并且中断是唯一途径。“核心态→用户态”的切换是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。

中断的分类

方式一:

概述 - 图34

方式二:

概述 - 图35

外中断的处理过程

概述 - 图36

总结

概述 - 图37

系统调用

概述

“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。

概述 - 图38

系统调用的作用

应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。

分类

概述 - 图39

应用程序和库函数的区别

概述 - 图40

系统调用过程

概述 - 图41

总结

概述 - 图42