文章目录
1. 计算机系统概述
1.1 操作系统的基本概念
1.1.1 操作系统的概念
操作系统(Operating System,OS) 是指控制和管理整个计算机系统的硬件与软件资源,合理地组织,调度计算机的工作与资源的分配,进而为用户和其它软件提供方便接口与环境的程序集合.操作系统是计算机系统中最基本的系统软件.
1.1.2 操作系统的特征
- 并发(Concurrence)
- 共享(Sharing)
- 互斥共享方式
- 同时访问方式
- 虚拟(Virtual)
- 异步(Asynchronism)
并发 与 共享 是两个最基本的特征,二者互为存在条件.
并发 指两个或多个事件在同一时间间隔内发生.这些事件 宏观上是同时发生 , 但微观上是交替发生 .
并行 指两个或多个事件在同一时刻同时发生.
操作系统就是伴随着"多道程序技术"而出现的.因此, 操作系统和程序并发是一起诞生的 .
单核CPU同一时刻只能执行一个程序,各个程序只能并发执行.
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行.
并发性是操作系统一个最基本的特性.
共享 即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用.共享可分为两种资源共享方式.
- 互斥共享方式 :系统中的某些资源,虽然可以提供给多个进程使用,但 一个时间段内只允许一个进程访问该资源 .
- 同时共享方式 :系统中的某些资源, 允许一个事件段内由多个进程"同时"对它们进行访问 .所谓的"同时"往往是宏观上的,而在微观上,这些进程可能时交替地对该资源进行访问的(即分时共享).
虚拟 是指把一个物理上的实体变为若干个逻辑上的对应物.物理实体是实际存在的,而逻辑上的对应物是用户感受到的.
虚拟技术分为 空分复用技术(如虚拟存储器技术) 和 时分复用技术(如虚拟处理器)
异步 是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性.
只有系统拥有并发性,才有可能等导致异步性.
1.1.3 操作系统的目标和功能
- 操作系统作为计算机系统资源的管理者
- 处理机管理
- 处理器管理
- 文件管理
- 设备管理
- 操作系统作为用户与计算机硬件系统之间的接口
- 命令接口
- 程序接口
- 操作系统实现了对计算机资源的扩充
1.2 操作系统发展历程
1.2.1 手工操作阶段(无操作系统)
缺点:
- 用户独占全机,资源利用率低
- CPU等待手工操作,CPU利用不充分
1.2.2 批处理阶段(操作系统开始出现)
- 单道批处理系统
系统对作业的处理是成批进行的,但内存中始终保持一道作业.
引入 脱机输入/输出技术 ,并由 监督程序 负责控制作业的输入,输出.
特征:- 自动性
在顺利的情况下,磁带上的一批作业能自动地逐个运行,而无需人工干预. - 顺序性
磁带上的各道作业顺序地进入内存,各道作业的完成顺序与它们进入内存的顺序完全相同,亦即先调入内存的作业先完成. - 单道性
内存中仅有一道程序运行,即监督程序每次从磁带上只调入一道程序进入内存运行,当程序完成或发生异常情况时,才换入其后继程序进入内存运行.
每次主机内存中仅存放一道作业,每当它在运行期间发出输入/输出请求后,高速的CPU便处于等待低速的I/O完成的状态.
- 自动性
- 多道批处理系统
多道程序设计允许多个程序同时进入内存并允许它们在CPU中交替运行,这些程序共享系统中的各种硬/软件资源.
当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序.
多道程序设计的特点是多道,宏观上并行,微观上串行.- 多道
计算机内存中同时存放多道相互独立的程序. - 宏观上并行
同时进入系统的多道程序都处于运行过程中,即它们先后开始各自的运行,但都未运行完毕. - 微观上串行
内存中的多道程序轮流占有CPU,交替执行.
缺点:
用户响应的时间较长,不提供人机交互能力.
- 多道
1.2.3 分时操作系统
计算机以 时间片 为单位 轮流为各个用户/作业服务 ,各个用户可通过终端与计算机及进行交互.
用户请求可以被即时响应,解决了人机交互问题.允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在.
不能优先处理一些紧急任务.操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性.
- 硬实时系统:必须在绝对严格的规定时间内完成处理.
- 软实时系统:能接受偶尔违反时间规定.
特征:
- 同时性
- 交互性
- 独立性
- 及时性
1.2.4 实时操作系统
能够优先响应一些紧急任务,某些紧急任务不需时间片排队.
在实时操作系统的控制下,计算机系统接受到外部信号后及时进行处理,并且 要在严格的时限内处理完事件 .实时操作系统的主要特点是 及时性和可靠性 .
1.2.5 网络操作系统和分布式计算机系统
网络操作系统:能把网络中各个计算机有机结合起来,实现数据传送等功能,实现网络中各种资源的共享和各台计算机之间的通信.
分布式操作系统:主要特点是分布性和并行性.系统中各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行,协同完成这个任务.
1.2.6 个人计算机操作系统
1.3 操作系统运行环境
1.3.1 处理器运行模式
"指令"就是CPU能识别,执行的最基本命令.
在计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是应用程序.前者是后者的管理者,内核程序能执行一些特权指令.
- 特权指令 :指不允许用户直接使用的指令,如I/O指令,置中断指令,存取用于内存保护的寄存器,送程序状态字到程序字寄存器(PSW)等的指令.
- 非特权指令 :指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏.
CPU中有一个寄存器叫 程序状态字寄存器(PSW) ,其中有个二进制位,1表示"内核态",0表示"用户态".
在具体实现上,将CPU的运行模式划分为 用户态(目态) 和 核心态(管态,内核态) .
处于 内核态时 ,说明此时正在运行的是 内核程序 ,此时可以执行 特权指令 .
处于 用户态时 ,说明此时正在运行的是 应用程序 ,此时只能执行 非特权指令 .
内核态->用户态 :执行一条 特权指令–修改PSW 的标志位为"用户态",这个动作意味着操作系统将主动让出CPU使用权.
用户态->内核态 :由 “中断”" 引发, 硬件自动完成变态过程 ,触发中断信号意味着操作系统将强行夺回CPU的使用权.
大多数操作系统的内核包括4方面内容:
- 时钟管理
- 中断机制
- 原语
- 系统控制的数据结构及处理
1.3.2 中断和异常的概念
"中断"是 让操作系统内核夺回CPU使用权 的唯一途径.
- 中断和异常的定义
中断(Interruption) 也称外中断,是指来自CPU执行指令外部的事件.
异常(Exception) 也称内中断,是指来自CPU执行指令内部的事件. - 中断和异常的分类
外中断可分为 可屏蔽中断 和 不可屏蔽中断 .
异常可分为 故障(fault) , 自陷(trap) 和 终止(abort) . - 中断和异常的处理过程
不同的中断信号,需要用不同的中断处理程序来处理 .当CPU检测到中断信号后,会根据中断信号的类型去查询" 中断向量表 ",以此来找到相应的中断处理程序在内存中断存放位置.
1.3.3 系统调用
按功能分类:
- 设备调用
- 文件调用
- 进程调用
- 进程通信
- 内存管理
系统调用过程:
传递系统调用参数->执行陷入指令(用户态)->执行相应的请求内核程序处理系统调用(核心态)->返回应用程序
- 陷入指令(非特权指令) 是在 用户态 执行的,执行陷入指令之后立即引发一个 内中断 ,使CPU进入 核心态 .
- 发出系统调用请求 是在 用户态 ,而 对系统调用的相应处理 是在 核心态 下进行.
1.4 操作系统结构
大内核 :将操作系统的主要功能模块都作为系统内核,运行在核心态.
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核 :只把最基本的功能保留在内核.
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态与用户态之间切换,性能低
随着操作系统功能的不断增多和代码规模的不断扩大,提供合理的结构,对于降低操作系统复杂度,提升操作系统安全与可靠性来说尤为重要.
- 分层结构
内核分多层,每层可单向调用更低一层提供的接口.
优点:- 便于调试和验证,自底向上逐层调试验证.
- 易扩充和易维护,各层之间调用接口清晰固定.
缺点: - 仅可调用相邻低层,难以合理定义各层的边界.
- 效率低,不可跨层调用,系统调用执行时间长.
- 模块化
将内核划分为多个模块,各模块之间相互协作.
内核=主模块+可加载内核模块
优点:- 模块间逻辑清晰易于维护,确定模块接口后即可多模块同时开发.
- 支持动态加载新的内核模块,增强OS适应性.
- 任何模块都可以直接调用其它模块,无需采用消息传递进行通信,效率高.
缺点: - 模块间的接口定义未必合理,食用.
- 模块间相互依赖,更难调试和验证.
- 宏内核(大内核)
所有的系统功能都放在内核里(大内核结构的OS通常也采用了"模块化"的设计思想)
优点:
性能高,内核内部各种功能都可以直接相互调用.
缺点:- 内核庞大功能复杂,难以维护.
- 大内核中某个功能模块出错,就可能导致整个系统崩溃.
- 微内核
只把中断,原语,进程通信等最核心的功能放入内核.进程管理,文件管理,设备管理等功能以用户进程的形式运行在用户态.
优点:- 内核小功能少,易于维护,内核可靠性高.
- 内核外的某个功能模块出错不会导致整个系统崩溃.
缺点: - 性能低,需要频繁的切换用户态/核心态.用户态下的各功能模块不可以直接相互调用,只能通过内核的"消息传递"来间接通信.
- 用户态下的各功能模块不可以直接相互调用,只能通过内核的"消息传递"来间接通信.
- 外核
内核负责进程调度,进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责资源使用安全.
优点:- 外核可直接给用户进程分配"不虚拟","不抽象"的硬件资源,使用户进程可以更灵活的使用硬件资源.
- 减少了虚拟硬件资源的"映射层",提升效率.
缺点: - 降低了系统的一致性.
- 使系统变得复杂.
1.5 操作系统引导
操作系统引导:
- CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进性硬件自检,再开机)
- 将磁盘的第一块–主引导记录,读入内存,执行磁盘引导程序,扫描分区表
- 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成"开机"的一系列动作
1.6 虚拟机
1.6.1 虚拟机的基本概念
虚拟机(Virtual Machine,VM) 是一台逻辑计算机,是指利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的,统一的,模拟的计算环境.
同义术语:虚拟机管理程序(Virtual Machine Monitor,VMM),虚拟机监控程序(Hypervisor).
- 第一类虚拟机管理程序
直接运行在硬件上. - 第二类虚拟机管理程序
运行在宿主操作系统上.
1.6 虚拟机
1.6.1 虚拟机的基本概念
虚拟机(Virtual Machine,VM) 是一台逻辑计算机,是指利用特殊的虚拟化技术,通过隐藏特定计算平台的实际物理特性,为用户提供抽象的,统一的,模拟的计算环境.
同义术语:虚拟机管理程序(Virtual Machine Monitor,VMM),虚拟机监控程序(Hypervisor).
- 第一类虚拟机管理程序
直接运行在硬件上. - 第二类虚拟机管理程序
运行在宿主操作系统上.