Back

[中文] Operating Systems Notes: 01 - 操作系统概述[中文] Operating Systems Notes: 01 - 操作系统概述

一、操作系统是什么?#

操作系统的定义#

操作系统是计算机系统中的一个系统软件,是一些程序模块的集合:

  • 资源的管理者:能以尽量有效、合理的方式组织和管理计算机的软硬件资源
  • 服务的提供者:合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能
  • 机器能力的扩展:使得用户能够灵活、方便地使用计算机,使整个计算机系统能高效地运行

操作系统的作用#

  • 虚拟机:将物理资源(处理器、内存、磁盘)转换成更通用、更强大、更易用的虚拟形式
  • APIs:提供可供用户调用的接口,提供应用程序的标准库
  • 资源管理器:允许多程序运行(共享CPU),允许多程序并发访问内存,允许多程序访问设备

设计与实现目标#

  • 抽象
    • 模块化
    • 使用高级语言(C)而非汇编
  • 性能(最小化开销)
    • 最小化额外的时间(指令)
    • 最小化额外的空间(内存/磁盘)
  • 保护:应用之间、操作系统与应用之间的隔离
  • 可靠性
  • 节能
  • 安全性:防止恶意应用的入侵
  • 移动性:能够运行在越来越小的设备上

二、从不同角度认知操作系统#

1. 资源管理的观点#

  • 自底向上 操作系统是资源的管理者
  • 硬件资源:CPU,内存,设备(I/O设备、磁盘、时钟、网络接口等)
  • 软件资源:磁盘上的文件、信息
  • 资源管理目的:实现资源共享、提高资源利用率
  • 复用方式:时间及空间

怎样管理资源?

  • 数据结构与算法
    • 跟踪记录资源使用状况
    • 分配和回收资源(资源分配策略与算法)
      • 静态分配策略
      • 动态分配策略 ✓
  • 资源管理目标
    • 提高资源利用率
    • 资源使用时的保护
    • 协调多个进程对资源请求的冲突

2. 进程的观点#

从操作系统运行的角度动态观察操作系统:

  • 操作系统是由一些可同时、独立运行的进程和一个对这些进程进行协调的核心组成
  • 进程:完成某一特定功能的程序,是程序的一次执行过程,动态的、有生命的,有诞生/消亡

3. 虚机器观点#

从操作系统内部结构来看:

  • 把操作系统分成若干层
  • 每一层完成其特定功能,构成一个虚机器,并对上一层提供支持
  • 通过逐层功能扩充,最终完成整个操作系统虚机器
  • 操作系统虚机器向用户提供各种功能,完成用户请求

三、操作系统的特征#

1. 并发(concurrency)#

  • 处理多个同时性活动的能力
  • 计算机系统中同时运行多个程序
  • 宏观上:这些程序同时在执行
  • 微观上:单CPU情况下,任何时刻只有一个程序在执行,即这些程序在CPU上轮流执行
  • 由并发引起的问题:活动切换、保护、相互依赖的活动间的同步
  • **并行(parallel)**与”并发”的区别

2. 共享(sharing)#

操作系统与多个用户程序共同使用计算机系统中的资源

  • 共享有限的系统资源
  • 操作系统要对系统资源进行合理分配和使用
  • 资源在一个时间段内交替被多个进程所用
    • 互斥共享(如打印机)
    • 同时共享(访问)(如可重入代码,磁盘文件)
  • 由于共享引发的问题:资源分配难以达到最优化,资源使用时需要保护

3. 虚拟(Virtual)#

  • 一个物理实体映射为若干个对应的逻辑实体(分时或分空间)
  • 虚拟技术是操作系统管理系统资源的重要手段,可提高资源利用率
    • CPU:每个用户(进程)的”虚处理器”
    • 存储器:每个进程都占有的地址空间(代码+数据+堆、栈)
    • 显示设备:多窗口或虚拟终端

4. 随机性(不确定性)#

  • 操作系统必须随时对以不可预测的次序发生的事件进行响应
  • 进程的运行速度不可预知:多个进程并发执行,“走走停停”,无法预知每个进程的运行推进快慢
  • 难以重现系统在某个时刻的状态(包括重现运行中的错误)

四、操作系统发展历史#

技术变化与概念重用#

技术变化导致某些思想过时并迅速消失,但技术的另一种变化还可能使它们复活。例如:

  • 磁盘上文件分配—连续文件(CD-ROM文件系统)
  • 硬件保护
  • 动态链接(MULTICS首先提出)
  • 计算服务(MULTICS,以大量的、附有相对简单用户机器的、集中式Internet服务器形式回归) → 云计算

操作系统发展阶段#

第1阶段(1948-1970):硬件昂贵,人工便宜#

  • 控制台:一次一个用户(独占资源)
  • 批处理:装入程序 → 运行 → 打印输出结果(无保护)
  • 多道程序设计:多个程序同时运行,多个用户共享系统(需要存储保护)
  • SPOOLing技术:批处理作业处理流程

第2阶段(1970-1985):硬件便宜,人工昂贵#

  • 交互、分时:多个用户同时与系统交互
  • 用户可以在线工作:开发、调试、编辑等
  • 问题:增加用户时 → 系统性能降低(响应时间、抖动)

第一个分时操作系统CTSS

  • 1959年在MIT提出分时系统思想
  • 每个用户有一个联机终端
  • 计算机能够为许多用户提供交互式、快速服务,同时在CPU空闲时还能在后台运行大作业

重要历史事件

  • OS/360:IBM发布时带着已知的1000个错误
  • Multics:1963年开始,1969年才发布
  • UNIX:一群计算机迷在贝尔实验室开发,初衷是在DEC PDP-7小型计算机上玩星际探险游戏

第3阶段(1981-):硬件非常便宜,人工非常昂贵#

  • 个人计算时代
  • 开始PC硬件资源有限,一次运行一个程序,OS是一个例程库,回归简单
  • 逐渐PC资源丰富,OS又成为一个庞然大物(大型OS),存储保护、多道程序设计再次出现

第4阶段(1981-):分布式#

  • 网络:允许不同机器很容易地相互共享资源(打印机、文件服务器、Web服务器)
  • 解决问题:共享,安全

第5阶段(1995-):移动计算时代#

  • 各种移动终端的出现(笔记本、平板、手机、机顶盒、可穿戴设备等)
  • 特点:小型、移动、便宜,但能力有限

第6阶段(2006-):云计算时代#

  • 提供可无限扩展的、可随时获取的、按需使用、按使用付费的资源
  • 云计算操作系统:云计算后台数据中心的整体管理运营系统
  • 作用:
    • 管理和驱动海量服务器、存储等基础硬件
    • 为云应用软件提供统一、标准的接口
    • 管理海量的计算任务以及资源调配

第7阶段(200?-):泛在计算/普适计算/物联网#

  • 许多联网设备为许多人提供个性化的服务

五、操作系统分类#

传统分类#

1. 批处理操作系统#

  • :供一次加载的磁带或磁盘,通常由若干个作业组装成

  • 工作方式

    1. 用户将作业交给系统操作员
    2. 系统操作员将许多用户的作业组成一批作业,输入到计算机系统中
    3. 系统操作员启动操作系统
    4. 系统自动、依次执行每个作业
    5. 由系统操作员将作业结果交给用户
  • 典型的作业结构:由一张张卡片组成,卡片上是命令和程序

  • 分类

    • 单道批处理系统(simple batch processing, uni-programming)
    • 多道批处理系统(multiprogramming system)

SPOOLing系统(技术)

  • 1961年,英国曼彻斯特大学,Atalas机
  • Simultaneous Peripheral Operation On-Line(同时的外围设备联机操作)—假脱机技术
  • 思想:利用磁盘作缓冲,将输入、计算、输出分别组织成独立的任务流,使I/O和计算真正并行
  • 工作原理
    • 作业进入到磁盘上的输入井
    • 按某种调度策略选择几种搭配得当的作业,并调入内存
    • 作业运行的结果输出到磁盘上的输出井
    • 结果从磁盘上的输出井送到打印机
  • 主要特点
    • 提高I/O速度
    • 将独占设备改造为共享设备
    • 实现虚拟设备功能

2. 分时操作系统(time-sharing system)#

  • 时间片(time slice):操作系统将CPU的时间划分成若干个片段
  • 操作系统以时间片为单位,轮流为每个终端用户服务, 每次服务一个时间片 (其特点是利用人的错觉,使人感觉不到)
  • 追求目标:及时响应(依据是响应时间)
  • 响应时间:从终端发出命令到系统给予回答所经历的时间

3. 实时操作系统#

  • 使计算机能及时响应外部事件的请求,在规定的严格时间内完成对该事件的处理
  • 分类
    • 实时过程控制:工业控制,军事控制
    • 实时通信(信息)处理:电讯(自动交换),银行,飞机订票,股市行情
  • 追求目标:对外部请求在严格时间范围内作出反应,高可靠性
  • 特征:关键参数是时间
  • 类型
    • 硬实时系统:某个动作绝对必须在规定的时刻或时间范围完成
    • 软实时系统:接受偶尔违反最终时限

4. 个人计算机操作系统#

  • 计算机在某一时间内为单用户服务
  • 追求目标:界面友好,使用方便,丰富的应用软件

5. 网络操作系统#

  • 基于计算机网络,在各种计算机操作系统上按网络体系结构协议标准开发的软件
  • 功能:网络管理,通信,安全,资源共享和各种网络应用
  • 追求目标:相互通信,资源共享

6. 分布式操作系统#

  • 分布式系统:处理和控制的分散(相对于集中式系统)
  • 以计算机网络为基础,基本特征是处理的分布(功能和任务的分布)
  • 所有系统任务可在系统中任何处理机上运行,自动实现全系统范围内的任务分配
  • 特征
    1. 是一个统一的操作系统
    2. 资源进一步共享
    3. 透明性: 资源共享,分布对用户来讲是不知道的
    4. 自治性: 处于分布式系统的多个主机处于平等地位,无主从关系
    5. 处理能力增强、速度更快、可靠性增强

7. 嵌入式操作系统#

  • 嵌入式系统:在各种设备、装置或系统中,完成特定功能的软硬件系统
  • 嵌入式操作系统:运行在嵌入式系统环境中,对整个嵌入式系统及其所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制的系统软件

Tanenbaum分类#

  • 大型机操作系统
  • 服务器操作系统
  • 多处理机操作系统
  • 个人计算机操作系统
  • 掌上计算机操作系统(移动计算机操作系统)
  • 嵌入式操作系统
  • 传感器节点操作系统
  • 实时操作系统
  • 智能卡操作系统

智能卡操作系统#

  • 智能卡:一种包含有一块CPU芯片的信用卡
  • 特点
    • 非常严格的运行能耗和存储空间的限制
    • 有些智能卡只有单项功能,如电子支付
  • 专用的操作系统
    • 有些智能卡是面向Java的,ROM中有Java虚拟机解释器
    • Java小程序被下载到卡中并由JVM解释器解释
    • 有些卡可以同时处理多个Java小程序,需要多道程序调度
    • 资源管理和保护由卡上的操作系统处理
  • 通信方式
    • 在读写器与智能卡之间通过”命令-响应对”方式进行通信和控制
    • 读写器发出操作命令,智能卡接收命令
    • 操作系统对命令解释,完成命令的解密与校验
    • 操作系统调用相应程序进行数据处理,产生应答信息,加密后送给读写器

六、重点小结#

典型的国产操作系统#

麒麟、鸿蒙、Openeuler、统信等

核心概念#

  • 操作系统的概念
  • 理解操作系统的不同角度
  • 操作系统的主要特征
  • 典型的、历史上/当前有重要意义的操作系统
  • 重要的操作系统技术及相关技术
    • 多道程序设计
    • 中断
    • 通道
    • SPOOLing技术
  • 操作系统的分类

重要历史操作系统#

  • OS/360
  • MULTICS

操作系统特征#

  • 并发
  • 共享
  • 虚拟
  • 随机性

七、常见问题解答#

1. Buffer Cache的作用和工作原理#

在UNIX操作系统中,文件子系统与块设备之间的Buffer Cache:

  • 作用
    • 减少对物理设备的访问次数,提高I/O性能
    • 协调CPU与I/O设备之间的速度差异
    • 支持数据的读写缓冲,实现数据共享
  • 工作原理
    • 当进程请求读取数据时,系统首先检查Buffer Cache中是否有所需数据
    • 如果有(命中),直接从Buffer Cache返回数据
    • 如果没有(未命中),从物理设备读取数据到Buffer Cache,再返回给进程
    • 写操作时,数据先写入Buffer Cache,再由系统决定何时写回物理设备

2. UNIX的名字来历(猜测)#

UNIX名字可能来源于MULTICS(Multiplexed Information and Computing Service)的简化和双关语:

  • MULTICS是一个复杂的分时系统
  • UNIX(Uniplexed Information and Computing Service)表示简化版的MULTICS
  • 也有说法是”UNIX”是”eUNuchs”(阉割版的MULTICS)的变体

3. 批处理操作系统的区别#

  • 单道批处理:一次只能执行一个作业,作业按顺序依次执行,前一个作业完成后才能执行下一个
  • 多道批处理:内存中同时存放多个作业,CPU在这些作业之间切换执行,提高了CPU利用率和系统吞吐量

4. SPOOLing技术的现状#

SPOOLing技术并未过时,在现代计算机系统中仍有广泛应用:

  • 打印系统:现代操作系统的打印队列管理
  • 邮件系统:电子邮件的发送和接收过程
  • 后台作业处理:批处理任务的调度和执行
  • 数据库系统:事务处理和日志管理

5. 传统分时系统在今天的意义#

传统分时系统在今天仍有重要意义:

  • 多用户支持:现代操作系统继承了分时系统的多用户并发访问能力
  • 资源共享:分时思想是云计算、虚拟化等现代技术的基础
  • 交互式计算:分时系统建立的交互式计算模式仍是现代系统的核心特性
  • 公平调度:分时系统的时间片轮转调度思想仍被广泛应用

6. 操作系统的主要作用和典型特征#

操作系统的主要作用

  • 管理计算机硬件和软件资源
  • 为应用程序提供统一的服务接口
  • 实现人机交互,提供用户界面
  • 提高系统资源利用率
  • 保护系统安全和数据完整性

操作系统的典型特征(与其他软件相比):

  • 并发性:能够同时运行多个程序
  • 共享性:多个用户/程序共享系统资源
  • 虚拟性:将物理资源抽象为逻辑资源
  • 异步性:程序执行的结果与时间有关
  • 持久性:操作系统常驻内存
  • 特权性:拥有对硬件的直接控制权
  • 复杂性:结构复杂,功能丰富
[中文] Operating Systems Notes: 01 - 操作系统概述
https://www.lyt0112.com//blog/operating_systems_note_1-zh
Author Yutong Liang
Published at March 11, 2025
Copyright CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨