# 什么是操作系统
# 为什么需要操作系统
- 用户几乎不可能使用裸机。
- 计算机硬件只能识别 0、1 二值机器码。
- 机器码直观性差,容易出错,难于交流。
- 因此,通常在计算机硬件之上会覆盖一层软件,以方便用户使用计算机硬件。
- 如果在裸机之上覆盖一层 I/O 设备管理软件,就能使用户较方便地使用外部设备;
- 如果在其上再覆盖一层文件管理软件,用户就很容易存取系统文件和用户文件;
- 每覆盖一层新的软件,就构造了一台功能更强的虚拟机器。通过 OS,计算机能提供种类更多,质量更高的服务。
# 什么是操作系统
把操作系统定义为用以控制和管理计算机系统资源,方便用户使用的程序和数据结构的集合
- CPU 是计算机硬件的核心,是计算机系统的心脏。
- 操作系统则是计算机软件的核心,是计算机系统的大脑。
- 操作系统是整个计算机系统的控制中心,是计算机系统中首要的、最重要的、最复杂的系统软件。
# 操作系统的其他定义
-
Resource allocator 资源分配者 – manages and allocates resources. 管理和分配资源
-
Control program 控制程序– controls the execution of user programs and operations of I/O devices . 控制用户程序的运行和 I/O 设备的操作
-
Kernel 内核– the one program running at all times (all else being application programs). 在全时运行的一个程序(其他的是应用)
# 计算机系统部件
- Hardware 硬件 – provides basic computing resources (CPU, memory, I/O devices). 提供基本的运算资源
- Operating system 操作系统 – controls and coordinates the use of the hardware among the various application programs for the various users. 在各种应用程序和用户之间控制与协调对硬件的使用
- Applications programs 应用程序– define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs). 定义解决用户问题的资源使用方式(编译、数据库、视频游戏、事务程序等)
- Users (people, machines, other computers) 用户(人、机、其他计算机).
# 操作系统在计算机系统中的地位
硬件之上的第一层软件,是对硬件的首次扩充,又是其他软件运行的基础
从顶到底分别是:
- 应用软件:应用用户
- 系统工具:应用开发人员
- 操作系统:应用开发人员
- 计算机硬件:操作系统开发人员
# 操作系统目标
- 执行用户程序并使用户问题更易解决。
- 使计算机系统更易使用。
- 以一种有效率的方式使用硬件。
# 操作系统的作用
-
计算机硬件、软件资源的管理者
-
用户使用计算机硬件、软件的接口
-
操作系统是直接与硬件相邻的第一层软件,它是由大量极其复杂的系统程序和众多的数据结构集成的。
# 操作系统的发展
# 发展动力:需求推动发展
- 资源利用角度:
为了提高计算机资源利用率和系统性能,从单道到多道、集中到分布、从专用到泛在等 - 用户角度:
方便用户,人机交互 - 技术角度:
物理器件发展,CPU 的位宽度(指令和数据)、快速外存、光器件等,以及计算机体系结构的不断发展:单处理机、多处理机、多核、计算机网络
# OS 的发展和计算机硬件技术、体系结构相关
- 第一代 (1946 年 - 1955 年): 真空管时代,无操作系统
- 第二代 (1955 年 - 1965 年): 晶体管时代,批处理系统
- 第三代 (1965 年 - 1980 年): 集成电路时代,多道程序设计
- 第四代 (1980 年 - 至今): 大规模和超大规模集成电路时代,分时系统。
- 现代计算机正向着巨型、微型、并行、分布、网络化和智能化几个方面发展。
# 操作系统的发展过程
# 手工操作
- 1946 ~ 50 年代(真空管)
- 集中计算(计算中心), 计算机资源昂贵,用户独占全机
- 以 ENIAC 为代表
- 工作方式
人工操作方式,用户是计算机专业人员; - 编程语言:机器语言;
- I/O:纸带或卡片;
- 缺点:
- 用户独占全机,独占系统的全部硬件资源,设备利用率很低
- CPU 等待用户:手工装入 / 卸取纸带或卡片
- 主要矛盾
- 人机矛盾:人工操作方式与机器利用率的矛盾
- CPU 与 I/O 之速度不匹配的矛盾
- 提高效率的途径
- 批处理
- 脱机 I/O
脱机 I/O 方式
I/O 工作在外围机 / 卫星机的控制下完成,或者说是在脱离主机的情况下进行。使用磁带作为输入 / 输出的中介,这种具体的输入 / 输出不需要在主计算机上进行的方式称 “脱机输入 / 输出
# 单道批处理系统
50 年代末~60 年代中(晶体管)
把一批作业以脱机输入方式输入到磁带 / 磁鼓,利用磁带或磁盘把任务分类编成作业顺序执行,每批作业由专门监督程序(Monitor)自动依次处理
批处理系统解决了高速计算机的运算、处理能力与人工干预之间的速度矛盾,实现了作业自动过渡。
- Resident monitor 常驻管理程序
- Initial control in monitor 初始化管理程序
- Control transfers to job 转换控制到作业
- When job completes control transfers back to monitor 作业完成后转换控制回管理程序
# 运行特征:
- 顺序性:磁带上的各道作业是顺序地进入内存,各作业的完成顺序与他们进入内存的顺序相同
- 单道性:内存中仅有一道程序运行
- 自动性
# 优缺点
- 优点:减少了 CPU 的空闲时间,提高了主机 CPU 和 I/O 设备的使用效率,提高了吞吐量。
- 缺点:CPU 和 I/O 设备使用忙闲不均.
# 多道程序设计
60 年代中~70 年代中(集成电路)
多道:内存中同时存放几个作业,使之都处于执行的开始点和结束点之间多个作业共享 CPU、内存、外设等资源
目的:利用多道批处理提高资源的利用率
60 年代通道和中断技术的出现
解决了输入输出等待计算的问题
通道:
是一种专用部件,负责外部设备与内存之间信息的传输。
中断:
指主机接到外界的信号(来自 CPU 外部或内部)时,立即中止原来的工作,转去处理这一外来事件,处理完后,主机又回到原来工作点继续工作。
# 多道程序对 OS 的要求
- 存储管理:系统必须为若干作业分派空间
- cpu 调度:系统必须在就绪作业中挑选
- 设备分配
- 系统提供 I/O 程序
# 多道批处理所用技术
- 作业调度:作业的现场保存和恢复--上下文切换
- 资源共享:资源的竞争和同步--互斥 (exclusion) 和同步 (synchronization) 机制;
- 内存使用:提高内存使用效率(为当前由 CPU 执行的程序提供足够的内存)--覆盖 - (overlap),交换 (swap) 和虚拟存储 (virtual memory);
- 内存保护:系统存储区和各应用程序存储区不可冲突;
- 文件非顺序存放、随机存取
# 运行特征
- 无序性:作业的完成顺序与它进入内存的顺序之间无严格的对应关系
- 多道性:内存中同时驻留多道程序并发执行,从而有效地提高了资源利用率和系统吞吐量
- 调度性:作业调度、进程调度
# 优缺点
- 优点
资源利用率高:CPU, 内存,I/O 设备
系统吞吐量大 - 缺点
无交互能力,用户响应时间长
作业平均周转时间长
用户的新需求
- 多任务处理(多用户)
- 交互服务
# 分时系统
70 年代中期至今
分时是指多个用户分享使用同一台计算机
- 多个用户分时
- 前台和后台程序 (foreground & background) 分时
分时技术:把 CPU 的时间分成若干个大小相等(或不等)的时间单位,称为时间片(如 100 毫秒),每个终端用户获得 CPU(获得一个时间片)后开始运行,当时间片到,该用户程序暂停运行,等待下一次运行。
# 要求
- 及时接收
利用多路卡和缓冲区 - 及时处理
作业必须直接进入内存
每个作业一次只运行很短的时间
# 分时系统的特点
- 人机交互性好
- 共享主机:多个用户同时使用
多路性:众多联机用户可以同时使用同一台计算机;
独占性:各终端用户感觉到自己独占了计算机;
交互性:用户与计算机之间可进行 “会话”;
及时性:用户的请求能在很短时间内获得响应。
# 实时系统 (Real-Time Systems)
具有严格确定的时间限制的操作系统,对实时性要求很高,专用性强。
分为硬实时系统与软实时系统。
# 实时系统的特征
- 实时时钟管理:提供系统日期和时间、定时和延时等时钟管理功能;
- 过载保护:缓冲区排队,丢弃某些任务,动态调整任务周期;过载是指进入系统的任务数目超出系统的处理能力;
- 高度可靠性和安全性--容错能力(如故障自动复位)和冗余备份(双机,关键部件)。
# 实时系统与批处理系统和分时系统的区别
专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统。
实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构。
高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余。如双机系统。
事件驱动和队列驱动:实时系统的工作方式:接受外部消息,分析消息,调用相应处理程序进行处理。
可与通用系统结合成通用实时系统:实时处理前台作业,批处理为后台作业。
# 并行系统 (Parallel Systems)
1975 年前后,为了提高计算机系统性能和可靠性产生了并行系统(也称多处理机系统 multi-processor) 🏷注意区分多处理器与多道
并行系统:有紧密通信的、多于一个 CPU 的多处理器系统,属于紧耦合系统
包括对称多处理器系统与非对称处理器系统
优点:吞吐量大、经济、可靠
# 分布式系统 (Distributed Systems)
计算分布在若干物理处理器上,属于松散耦合系统
分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。
硬件角度:各个计算机是自治的,通过网络互联;
软件角度:用户看到的是一台逻辑计算机。
分布式系统具有一个统一的操作系统,它可以把一个大任务划分成很多可以并行执行的子任务,并按一定的策略将它们动态地分配给各个计算机执行,并控制管理各个计算机的资源分配、运行及计算机之间的通信,以协调任务的并行执行。
优点:资源共享、加快计算、可靠、可通信
# 网络操作系统
网络操作系统是在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。网络操作系统为网上计算机进行方便而有效的网络资源共享,提供网络用户所需各种服务的软件和相关规程的集合。
# 网络操作系统的功能
- 通常操作系统的功能:处理机管理、存储器管理、设备管理、文件管理等;
- 网络通信功能:通过网络协议进行高效、可靠的数据传输;
- 资源管理:协调各用户使用;
- 网络服务:文件和设备共享,信息发布;
- 网络管理:安全管理、故障管理、性能管理等;
- 互操作:直接控制对方比交换数据更为困难;
- Network Operating System 网络操作系统
provides file sharing 提供文件共享
provides communication scheme 提供通信机制
runs independently from other computers on the network 运行独立于网络上的其他计算机
# 分布式操作系统和网络操作系统的比较
- 耦合程度(从分布式任务管理和调度):
A. 分布式系统是紧密耦合系统:分布式 OS 是在各机上统一建立的 “OS 同质”,直接管理 CPU、存储器和外设;统一进行全系统的管理;
B. 网络通常容许异种 OS 互连,各机上各种服务程序需按不同网络协议 “协议同质”。 - 并行性:
A. 分布式 OS 可以将一个进程分散在各机上并行执行 “进程迁移”;
B. 网络则各机上的进程独立。 - 透明性:用户是否知道或指定资源在哪个机器上(如 CPU、内存或外设)。
A. 分布式系统的网络资源调度对用户透明,用户不了解所占有资源的位置;
B. 网络操作系统中对网络资源的使用要由用户明确指定; - 健壮性:分布式系统要求更强的容错能力(工作时系统重构)
# 嵌入式系统
在各种设备、装置或系统中,完成特定功能的软硬件系统
它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是 “计算机”
通常工作在反应式或对处理时间有较严格要求环境中
由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统
嵌入式操作系统,是运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等等资源进行统一协调、调度、指挥和控制的系统软件。
# 典型嵌入式操作系统的特性
- 完成某一项或有限项功能;不是通用型的;
- 在性能和实时性方面有严格的限制;
- 能源、成本和可靠性通常是影响设计的重要因素;
- 占有资源少、易于连接;
- 系统功能可针对需求进行裁剪、调整和生成以便满足最终产品的设计要求。
嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等
# 操作系统的功能
# 进程管理
- 目标:完成进程资源分配和调度等功能
- 功能
进程控制:创建、撤销、挂起、改变运行优先级等--主动改变进程的状态
进程调度:作业和进程的运行切换,以充分利用处理机资源和提高系统性能
进程同步:协调并发进程之间的推进步骤,以协调资源共享
进程通信:进程之间的信息交换
# 内存管理
内存管理的任务是对要运行的作业分配内存空间,作业运行结束时要收回其所占用的内存空间。操作系统要对每一个作业的内存空间和系统内存空间实施保护。
- 目标:提高内存利用率、方便用户使用、提供足够的存储空间
- 功能
存储分配与回收
存储保护
地址重定位
内存扩充
# 设备管理
- 目标:完成用户的 I/O 请求,为用户分配 I/O 设备、提高 I/O 速度,提高 CPU 与 I/O 设备利用率、方便设备使用
- 功能
缓冲管理
设备分配与回收
设备处理:利用设备驱动程序(通常在内核中)完成对设备的操作。
虚拟设备
设备独立性:提供统一的 I/O 设备接口,使应用程序独立于物理设备
# 文件管理
- 目标:实现外存上的信息资源 “按名存取”
- 功能
文件存储空间管理:如何存放信息,以提高空间利用率
目录管理:文件检索
文件存取控制:文件保护
软件管理:软件的版本、相互依赖关系、安装和拆除等
# 用户接口
- 目标:为用户使用计算机系统提供一个友好的访问 OS 的接口
- 操作系统提供 2 类接口:
作业级接口:行命令、菜单、或图形化的操作界面(GUI)、语音以及作业控制语言等;“联机” 或 “脱机”。
程序级接口:供用户程序和系统程序调用操作系统功能,也称系统调用;
# 操作系统的特征
# 并发
- 多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。并行 (parallel) 是指在同一时刻发生。
- 在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)。
- 程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程。
# 共享
- 多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用。
- 互斥共享(如音频设备):资源分配后到释放前,不能被其他进程所用。
- 同时访问(如可重入代码,磁盘文件)
- 资源分配难以达到最优化
# 虚拟
- 一个物理实体映射为若干个对应的逻辑实体--分时或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。
- CPU--每个用户(进程)的 “虚处理机”
- 存储器--每个进程都占有的地址空间(指令+数据+堆栈)
- 显示设备--多窗口或虚拟终端 (virtual terminal)
# 异步性
- 也称不确定性,指进程的执行顺序和执行时间的不确定性;
- 进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢
- 判据:无论快慢,应该结果相同--通过进程互斥和同步手段来保证
- 难以重现系统在某个时刻的状态(包括重现运行中的错误)