01-操作系统简述

1 操作系统的目标和作用

1.1 操作系统的目标

  • 有效性:提高系统资源利用率,提高系统吞吐量
  • 方便性:避免用户书写机器语言
  • 可扩充性:能方便地增添新的功能和模块
  • 开放性:按照某些标准开发,以便软硬件的兼容等等

1.2 操作系统的作用

  1. OS 作为用户与计算机硬件系统之间的接口

    • 命令方式
    • 系统调用方式
    • 图标–窗口方式
  2. OS 作为计算机系统资源的管理者

    • 处理机管理

      • 处理器上可执行的指令分为
        • 特权指令
        • 非特权指令
      • 处理器状态划分为
        • 管态(管理态)
        • 目态(用户态)

      处理器状态保证了特权指令的正确使用,把 OS 与用户程序区别开来

    • 存储器管理

    • I/O 设备管理

    • 文件管理

  3. OS 实现了对计算机资源的抽象

    • 裸机:完全无软件的计算机系统,向用户提供的是实际硬件接口,利用机器指令进行编程
    • 扩充机器/虚机器:覆盖了设备管理软件,向用户(进程)提供了一个对硬件操作的抽象模型

1.3 推动操作系统发展的主要动力

  • 不断提高计算机资源利用率
  • 方便用户
  • 器件的不断更新换代
  • 计算机体系结构的不断发展
  • 不断提出新的应用要求

2 操作系统的发展过程

2.1 无操作系统的计算机系统

真空管

  1. 人工操作方式
    • 人工装填纸带,CPU 大多数时间在等待,浪费了大量的资源
  2. 脱机输入/输出方式
    • 在手工与 CPU 之间加上了一个磁带,以优化 I/O 与 CPU 速度不匹配的问题

2.2 单道批处理系统

晶体管,单道批处理系统是 OS 的前身

  1. 单道批处理系统的处理过程
    • 用监督程序来解放装填纸带人员的双手,并进一步解决了 I/O 与 CPU 之间速度不匹配的问题
  2. 单道批处理系统的特征
    • 自动性
    • 顺序性
    • 单道性:内存中仅有一道程序运行

2.3 多道批处理系统

小规模集成电路

  1. 多道程序设计的基本概念
    • 用户提交的作业形成队列,按一定算法将若干作业调入内存
  2. 多道程序设计的优点
    • 资源利用率高
    • 系统吞吐量大
  3. 多道程序设计的缺点
    • 平均周转时间长
    • 无交互能力
  4. 多道批处理系统需要解决的问题
    • 处理机管理问题
    • 内存管理问题
    • I/O 设备管理问题
    • 文件管理问题
    • 作业管理问题

2.4 分时系统

分时系统是指,在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。

  1. 分时系统产生的动力
    • 人机交互:人们亟需可以实现人机交互的处理机以便调试运行程序
    • 共享主机
    • 便于用户上机
  2. 分时系统实现中的关键问题
    • 及时接收:及时接收各个用户终端的输入
      • 系统配置多路卡
      • 终端输入缓冲区
    • 及时处理:及时处理用户键入的命令
      • 作业应直接进入内存
      • 将 CPU 的时间分片,每个作业每次只能运行一个时间片
  3. 分时系统的特征
    • 多路性:允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。
    • 独立性:每个人都好像独占资源
    • 及时性:用户的请求能在很短的时间内获得响应
    • 交互性:用户可通过终端与系统进行广泛的人机对话

2.5 实时系统

所谓“实时”,是表示“及时”,而实时系统(Real Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

  1. 应用需求
    • 实时控制:实时采集现场数据,并对所采集的数据进行及时处理
    • 实时信息处理:例如订票系统
  2. 实时任务
    • 按任务执行时是否呈现周期性来划分
      • 周期性实时任务:外部设备周期性地发出激励信号给计算机
      • 非周期性实时任务:激励信号并无明显的周期性,但都有一个截止时间
    • 根据对截止时间的要求来划分
      • 硬实时任务
      • 软实时任务
  3. 实时系统与分时系统特征的比较
    • 多路性:实时控制系统周期性地对多路现场采集控制。分时系统中的多路性则与用户情况有关,时多时少。
    • 独立性:都是彼此独立地操作,互不干扰
    • 交互性:实时信息处理系统弱于分时系统
    • 及时性:实时性都是以人所能接受的等待时间来确定的。而实时控制系统的及时性,是以控制对象所要求的截止时间来确定的
    • 可靠性:实时信息处理系统更具可靠性

2.6 微机操作系统的发展

  1. 单用户单任务操作系统
    • CP/M: 8 位
    • MS-DOS:16 位
  2. 单用户多任务操作系统
    • 各种 Windows
  3. 多用户多任务操作系统
    • UNIX
      • Solaris
      • Linux

2.7 其它操作系统

  • 网络操作系统:Windows NT
  • 分布式操作系统:可独立也可协同,对用户来说相当于一个操作系统
  • 嵌入式操作系统

3 操作系统的基本特性

3.1 并发性

  1. 并行与并发
    • 并行性
      • 宏观并行,微观并行。
      • 是指两个或多个事件在同一“时刻”发生。
      • 需要硬件支持,如多流水线、多核处理器或者分布式计算系统。
    • 并发性(Concurrence)
      • 宏观并行,微观串行。
      • 是指两个或多个事件在同一“时间间隔”内发生
      • 利用时分技术,引入进程和线程
  2. 引入进程(Process)
    • 为了实现并发,引入了进程的概念
    • 进程是系统中资源分配的基本单位,能独立运行。它是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。
  3. 引入线程(Threads)
    • 为了进一步提高并发程度,在进程内引入了线程
    • 线程作为独立运行和独立调度的基本单位,基本上不拥有系统资源,对其调度的开销就会小很多
  4. 协程(coroutine)
    • 协程是线程的线程,发生在用户态上,而不是内核态上
    • 与线程相比, 协程的优点在于
      • 避免了线程创建/切换带来的消耗
      • 不需要多线程的锁机制

3.2 共享性

共享是指系统中的资源可以被多个并发进程共同使用。

  1. 互斥共享技术
    • 保证各个进程之间不会混淆
    • 互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。
  2. 同时访问方式
    • 各个进程可以“同时”访问同一个设备,比如磁盘

并发和共享是多用户(多任务)OS的两个最基本的特征。它们又是互为存在的条件

3.3 虚拟技术

虚拟技术把一个物理实体转换为多个逻辑实体。

  1. 时分复用技术
    • 虚拟处理机技术
    • 虚拟设备技术
  2. 空分复用技术
    • 虚拟磁盘技术:磁盘分区
    • 虚拟存储器技术:虚拟内存

3.4 异步性

异步指进程不是一次性执行完毕,而是“走走停停”,以不可知的速度向前推进。

只要在操作系统中配置有完善的进程同步机制,且运行环境相同,作业经多次运行都会获得完全相同的结果。

4 操作系统的主要功能

4.1 处理机管理

对处理机的管理可归结为对进程、线程的管理

  1. 进程控制
    • 创建进程、分配资源、撤消进程、控制进程状态转换
    • 为进程创建线程、撤消线程
  2. 进程同步
    • 进程互斥方式:锁
    • 进程同步方式:信号量。由同步机构对进程的执行次序加以协调。
  3. 进程通信
    • 同一计算机,直接通信,由源进程利用发送命令直接将消息挂到目标进程的消息队列上
  4. 调度
    • 作业调度:从后备队列中选出作业,分配资源,建立进程,插入就绪队列
    • 进程调度:从进程(线程)的就绪队列中选出进程,分配处理机,设置运行现场,使进程投入执行

4.2 存储器管理

存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。

  1. 内存分配
    • 静态分配:装入时确定,运行期间不允许申请新空间,也不允许作业在内存中“移动”
    • 动态分配:允许申请新空间,也允许作业在内存中“移动”
  2. 内存保护:由硬件实现越界检查,确保每道程序都只在自己的内存区中运行
  3. 地址映射:在硬件的支持下,将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址
  4. 内存扩充:借助于虚拟存储技术,从逻辑上去扩充内存容量
    • 请求调入:允许只装入部分程序和数据就启动程序,运行时可向 OS 请求从磁盘调入所需内存
    • 置换:内存空间不够时,将内存中暂时用不上的程序、数据调至盘上,腾出空间,调入所需部分

4.3 设备管理

设备管理的主要任务是:完成用户进程提出的 I/O 请求;为用户进程分配其所需的 I/O 设备;提高 CPU 和 I/O 设备的利用率;提高 I/O 速度;方便用户使用 I/O 设备。

  1. 缓存管理:设置缓冲区,提高效率
  2. 设备分配:设备控制、回收
  3. 设备处理:设备处理程序又称为设备驱动程序

4.4 文件管理

  1. 文件存储空间的管理
  2. 目录管理
  3. 文件的读/写管理和保护

4.5 操作系统与用户之间的接口

  1. 用户接口
    • 联机用户接口:命令解释
    • 脱机用户接口:批处理用户接口
    • 图形用户接口
  2. 程序接口

4.6 现代操作系统的新功能

  • 系统安全
  • 网络的功能和服务
  • 支持多媒体

5 OS 结构设计

5.1 传统的操作系统结构

  1. 无结构 OS:早期系统小的时候
  2. 模块化结构 OS
    • 基本概念:“分解”和“模块化”
    • 模块的独立性:内聚性,耦合度
    • 优缺点
      • 提高正确性、可理解性和可维护性,增强适应性,加速开发过程
      • 接口设计很难满足实际需求,设计决定“无序性”
  3. 分层式结构 OS:有序分层
    • 基本概念:自底向上的分层设计,每一步设计都是建立在可靠的基础上
    • 优缺点
      • 保证系统的正确性,易扩充和易维护性
      • 增加系统的通信开销,系统效率降低了

5.2 客户/服务器模式

  1. 客户/服务器模式的组成
    • 客户机
    • 服务器
    • 网络系统
  2. 客户/服务器之间的交互
    • 客户发送请求消息
    • 服务器接收消息
    • 服务器回送消息
    • 客户机接收消息
  3. 客户/服务器模式的优点
    • 数据的分布处理和存储
    • 便于集中管理
    • 灵活性和可扩充性
    • 易于改编应用软件

基本客户/服务器模式的不足之处是存在着不可靠性和瓶颈问题。如果在网络中配置多个服务器,并采取相应的安全措施,则可加以改善。

5.3 面向对象的程序设计

5.4 微内核 OS 结构

微内核 OS 结构是建立在模块化、层次化结构的基础上的,并采用了客户/服务器模式和面向对象的程序设计技术

  1. 微内核操作系统的基本概念
    • 足够小的内核
      • 内核是指精心设计的、能实现现代 OS 最基本的核心功能的部分。微内核并非是一个完整的 OS,而只是操作系统中最基本的部分
      • 只有微内核这一个模块运行在内核态,其余模块运行在用户态。因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失
    • 基于 C/S 模式
      • 将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。
    • 应用“机制与策略分离”原理
      • 机制:实现某一功能的具体执行机构
      • 策略:在机制的基础上,借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标
      • 微内核操作系统中,通常将机制放在 OS 的微内核中。
    • 采用面向对象技术
  2. 微内核的基本功能(与硬件紧密相关)
    • 进程(线程)管理
    • 低级存储器管理
    • 中断和陷入处理
  3. 微内核操作系统的优点
    • 提高了系统的可扩展性
    • 增强了系统的可靠性
    • 可移植性
    • 提供了对分布式系统的支持
    • 融入了面向对象技术
  4. 微内核操作系统存在的问题
    • 运行效率有所降低:在完成一次客户对 OS 提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式及上下文的多次切换

01-操作系统简述
https://janycode.github.io/2016/04/28/01_操作系统/01_操作系统基础/01-操作系统简述/
作者
Jerry(姜源)
发布于
2016年4月28日
许可协议