1.1 操作系统基本概念
1.1.1 定义
定义:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理组织调度计算机工作和资源的分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件
1.1.2 操作系统的特征
并发和共享是os最基本的特征,互为存在条件
并发(Occurrence
- 并发是指多个事件在同一时间间隔内发生,宏观上同时发生,微观上交替发生
- 并行:多个事件在同一时刻同时发生
- 操作系统的并发性:计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行的,而微观上看是交替运行的
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行;而多核CPU同一时刻可以执行多个程序,因此多个程序可以并行执行
共享(Sharing
- 互斥共享方式:一个时间段内只允许一个进程访问该资源(称为临界资源
- 同时共享方式:允许一个时间段内多个进程“同时”进行访问
虚拟(Virtual
- 虚拟是把一个物理上的实体变为若干个逻辑上的对应物
- 虚拟处理器(时分复用技术
- 虚拟存储器(空分复用技术
异步(Asynchronism
- 多道程序环境下,允许多个程序并发进行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进
1.1.3 操作系统的目标和功能
- 操作系统是系统资源的管理者
- 处理机管理:以进程(或线程)为基本单位
- 存储器管理
- 文件管理
- 设备管理:完成用于IO请求,使用各种设备
- os向上层提供方便易用的服务
- 联机命令接口(交互式命令接口)(例如cmd。特点:一句一句执行
- 脱机命令接口(批处理命令接口)特点:输入一批命令,一起执行
- 程序接口。由一组系统调用(也称为广义指令)组成,只能通过程序代码间接使用
- os是系统软件,最接近硬件
- 实现对硬件机器的扩展
- 没有任何软件支持的计算机称为裸机,覆盖了软件的机器称为扩充机器,又称虚拟机
- 系统调用是操作系统提供给用户的,只能通过用户程序间接使用
- 操作系统提供给编程人员的接口是:系统调用
- 操作系统提供给应用程序的接口是:系统调用
- 计算机开机后,操作系统最终被加载到RAM中
1.2 操作系统的发展和分类
1.2.1 手工操作阶段
缺点
- 用户独占全机,资源利用率低
- CPU等待手工操作,CPU利用不充分
1.2.2 批处理阶段(os开始出现
为了解决人机矛盾、CPU和IO设备之间速度不匹配的矛盾
1. 单道批处理系统(脱机输入输出技术)
系统对作业的处理成批进行,但内存中始终保持一道作业
特点:
- 自动性
- 顺序性:各道作业顺序进入内存执行
- 单道性
2. 多道批处理系统。
优点:多道程序并发执行
缺点:不提供人机交互
1.2.3 分时操作系统
特点:
- 同时性:允许多个终端用户同时使用一台计算机
- 交互性:用户可以方便地与系统进行人机对话
- 独立性:系统中多个用户可以彼此独立进行操作,互不干扰
- 及时性:用户请求能在很短时间内获得响应
优点:解决了人机交互问题
缺点:不能优先处理紧急任务
- 分时操作系统
1.2.4 实时操作系统
及时性,可靠性
- 硬实时系统:必须在绝对严格的时间内完成处理
- 软实时系统:接受偶尔违反时间规定
- 实时操作系统必须在被控制对象规定时间内处理来自外部的事件
1.2.5 其他操作系统
网络操作系统、分布式操作系统、个人计算机操作系统
- 实时系统的进程调度采用:抢占式的优先级高者优先
- 分时系统的一个重要性能是响应时间,对操作系统的(优先级+非抢占式调度算法)因素进行改进有利于改善系统的响应时间
- 中断技术使得多道批处理系统的IO设备可与CPU并行工作
1.3 操作系统的运行机制
1.3.1 处理器运行模式
预备知识:程序如何运行?CPU执行一条一条机器指令的过程
- 应用程序:普通程序员写的程序,只能使用非特权指令
- 内核程序:内核包括必不可少的部分,有时候会让CPU执行特权指令
CPU具有两种状态,用户态(又称目态)和内核态(又称管态)
- 处于内核态时,说明正在运行内核程序,可以执行特权指令
- 处于用户态时,说明在运行应用程序,只能执行非特权执行
特权指令:不允许用户直接使用,例如IO指令,置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器的指令
内核态和用户态的切换
- 内核态->用户态:一条修改PSW的特权指令
- 用户态->内核态:中断引起,硬件自动完成
访管指令:将程序的运行由用户态转到核心态,访管指令不是特权指令
大部分操作系统内核包括四方面内容:时钟管理、终端机制、原语、系统控制的数据结构及处理
- IO指令只能在内核态下执行
1.3.2 中断和异常
中断是让操作系统内核夺回CPU使用权的唯一途径,会使CPU由用户态转变为内核态
中断的类型:
- 内中断(也叫异常、例外)内中断不可以被屏蔽
- 与当前执行的指令有关
- 中断信号来自CPU内部
- 例如:试图在用户态执行特权指令 / 试图除以0 / 陷入指令(一条特殊的指令,在应用程序想请求操作系统内核的服务)
- 外中断(狭义的“中断”)
- 与当前执行指令无关
- 中断信号来自CPU外部
- 可屏蔽中断INTR,不可屏蔽中断NMI
- 例子:时钟中断(时钟部件发来的中断信号) / IO设备发来的中断信号
异常分为三类:
- 陷阱(trap
- 故意引发的,由陷入指令引发
- 故障(fault
- 错误条件引起,可以被修复
- 例如缺页故障(要访问的页不在主存,需要操作系统将其调入主存后再进行访问
- 中止(abort
- 致命错误,无法修复
中断机制的基本原理
不同的中断信号需要不同中断处理程序来处理,CPU监测到中断信号后会根据中断信号类型查询中断向量表,找到相应的中断处理程序在内存中的存放位置
显然中断处理程序一定是内核程序
1.3.3 系统调用
操作系统为用户提供命令接口和程序接口,其中程序接口由一组系统调用组成
系统调用使操作系统提供给编程人员使用的接口,应用程序可以通过系统调用来请求获得操作系统内核的服务
系统调用和库函数的区别:系统调用更底层,库函数有一些会封装系统调用
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
- 下列操作系统的各个功能组成部分中,不需要硬件支持的是:
A. 进程调度(不需要,由调度算法实现
B. 时钟管理(需要计数器
C. 地址映射(需要寄存器存储基址
D. 中断系统(需要硬件支持- 外部中断处理过程中,PC值由中断隐指令自动保存,通用寄存器内容由操作系统保存。操作系统完成的任务:提供中断服务、初始化中断向量表、保存中断屏蔽字
- 时钟中断的主要工作是处理和时间有关的信息以及决定是否执行调度程序,包括系统时间,进程的时间片,延时,使用CPU的时间,各种定时器等等
- 用户程序设计时,使用系统调用命令,该命令经过编译后,形成若干参数和trap指令
1.4 操作系统的体系结构
1. 分层法
将操作系统分为若干层,最底层为硬件,最高层为用户接口,每层只能调用紧邻它的低层的功能和服务(单向依赖)
优点:
- 便于系统的调试和验证
- 易于维护和扩充
缺点:
- 合理定义每一层比较困难,灵活性差
- 效率较差
2. 模块化
按照功能将操作系统划分为若干个具有独立性的模块
优点:
- 提高操作系统设计的正确性、可理解性和可维护性
- 增强操作系统可适应性
- 加速操作系统的开发过程
缺点:
- 模块间的接口规定很难满足对接口的实际需求
- 各个模块设计者齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,难以找到可靠的决定顺序
3. 宏内核
宏内核,又称单内核或大内核
宏内核将系统的主要功能模块都作为一个紧密联系的整体运行在核心态
4. 微内核
1. 微内核的基本概念
- 将内核中最基本的功能保留在内核,那些不需要在核心态执行的功能移到用户态执行,从而降低内核的设计复杂性
- 被移出内核的操作系统代码根据分层的原则被划分成功若干服务程序,其执行相互独立,交互则借助微内核进行通信(不是分层设计
- 微内核结构将操作系统划分为:微内核和多个服务器。微内核包含:与硬件处理紧密相关的部分、一些较基本的功能、客户和服务器之间的通信(基于C/S模式
- 为了提高可靠性,只有微内核运行在内核态,其余模块运行在用户态
2. 微内核的基本功能
- 进程和线性管理
- 低级存储器管理
- 中断和陷入处理
3. 微内核的特点
- 扩展性和灵活性
- 可靠性和安全性
- 可移植性
- 分布式计算
- 缺点:需要频繁在内核态和用户态之间切换,内核切换开销大;没有使系统变得高效
1.5 操作系统引导
- MBR的任务:检查分区表是否正确,确定活动分区,在程序结束时将该分区的启动程序(操作系统引导扇区)调入内存加以执行
1.6 虚拟机
- 真实硬件不会直接执行虚拟机中的敏感指令
- 虚拟机中可以安装多种操作系统
- 虚拟机是运行在计算机中的一个应用程序
- 虚拟机文件封装在一个文件夹中并存储在数据存储器中