![[中文] Operating Systems Notes: 01 - 操作系统概述](/_astro/operating_systems.eoYuiDc5_17eG84.webp)
![[中文] Operating Systems Notes: 01 - 操作系统概述](/_astro/operating_systems.eoYuiDc5_17eG84.webp)
21 min read
中文[中文] Operating Systems Notes: 01 - 操作系统概述
Operating Systems Notes: Overview of Operating Systems
views | comments
一、操作系统是什么?#
操作系统的定义#
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合:
- 资源的管理者:能以尽量有效、合理的方式组织和管理计算机的软硬件资源
- 服务的提供者:合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能
- 机器能力的扩展:使得用户能够灵活、方便地使用计算机,使整个计算机系统能高效地运行
操作系统的作用#
- 虚拟机:将物理资源(处理器、内存、磁盘)转换成更通用、更强大、更易用的虚拟形式
- 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. 批处理操作系统#
批:供一次加载的磁带或磁盘,通常由若干个作业组装成
工作方式:
- 用户将作业交给系统操作员
- 系统操作员将许多用户的作业组成一批作业,输入到计算机系统中
- 系统操作员启动操作系统
- 系统自动、依次执行每个作业
- 由系统操作员将作业结果交给用户
典型的作业结构:由一张张卡片组成,卡片上是命令和程序
分类:
- 单道批处理系统(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. 分布式操作系统#
- 分布式系统:处理和控制的分散(相对于集中式系统)
- 以计算机网络为基础,基本特征是处理的分布(功能和任务的分布)
- 所有系统任务可在系统中任何处理机上运行,自动实现全系统范围内的任务分配
- 特征:
- 是一个统一的操作系统
- 资源进一步共享
- 透明性: 资源共享,分布对用户来讲是不知道的
- 自治性: 处于分布式系统的多个主机处于平等地位,无主从关系
- 处理能力增强、速度更快、可靠性增强
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. 操作系统的主要作用和典型特征#
操作系统的主要作用:
- 管理计算机硬件和软件资源
- 为应用程序提供统一的服务接口
- 实现人机交互,提供用户界面
- 提高系统资源利用率
- 保护系统安全和数据完整性
操作系统的典型特征(与其他软件相比):
- 并发性:能够同时运行多个程序
- 共享性:多个用户/程序共享系统资源
- 虚拟性:将物理资源抽象为逻辑资源
- 异步性:程序执行的结果与时间有关
- 持久性:操作系统常驻内存
- 特权性:拥有对硬件的直接控制权
- 复杂性:结构复杂,功能丰富