01 操作系统概述

1.3 什么是操作系统

操作系统的地位:

  • 把CPU抽象成进程

  • 把磁盘抽象成文件

  • 把内存抽象成地址空间

OS内核的特征:

  • 并发

    计算机系统中同时存在多个运行的程序,需要OS管理和调度

  • 共享

    宏观上:“同时”访问硬件资源;微观上:互斥访问

  • 虚拟

    利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他提供服务

  • 异步

    程序的执行不是一管到底,而是走走停停,向前推进的速度不可预知。另一方面,只要运行环境相同,OS需要保证程序的结果也相同。

1.6 操作系统的演变

在过去二十年OS底层技术有极大的改变。

操作系统的演变:

单用户系统(45-55)

操作系统 = 装载器 + 通用子程序库

问题:昂贵组件的低利用率(利用率 = 执行时间 / (执行时间 + 读卡时间)

多道程序系统(65-80)

  • 保持多个工作在内存中并且在各工作时间复用CPU

分时(70-)

仍然是多个作业交替。但中断的条件不再简单是IO,而是定时中断,切换进程。

个人OS:每个用户一个系统

个人电脑系统:

  • 单用户

  • 利用率已不再是关注点

  • 重点是GUI和多媒体功能

  • 很多老的服务和功能不存在

安全问题越来越重要

分布式OS:每个用户多个系统

可用性和可靠性有进一步提高。

1.7 操作系统结构

简单结构

MS-DOS 在最小空间,设计用于提供大部分功能(1981-1994)

  • 没有拆分模块

  • 在接口和功能水平没有很好分离

  • 主要用汇编编写(移植性差)

分层结构

  • 将操作系统分为多层

    • 每层建立在底层之上

    • 最底层(layer 0)是硬件

    • 最高层(layer N)是用户界面

  • 每一层仅使用更低一层的功能和服务

大大提高了可移植性:把依赖机器和不依赖机器的功能分为两层。

但是层次多了会降低效率

微内核结构

把尽可能多的功能放到用户态。只保留进程间通信和对硬件的支持。

外核结构(Exokernel)

  • 内核只保留管理硬件和安全等作用,其他都放到用户态。

  • 让内核分配机器的物理资源给多个应用程序,并让每个程序决定如何处理这些资源

VMM(虚拟机管理器)

OS不再直接和硬件打交道。VMM负责资源的隔离,OS负责资源的管理。