1.1 操作系统基本概念
定义
定义:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理组织调度计算机工作和资源的分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件
- 操作系统是系统资源的管理者
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
- os向上层提供方便易用的服务
- 联机命令接口(交互式命令接口)(例如cmd。特点:一句一句执行
- 脱机命令接口(批处理命令接口)特点:输入一批命令,一起执行
- 程序接口。由一组系统调用(也称为广义指令)组成,只能通过程序代码间接使用
- os是系统软件,最接近硬件
- 实现对硬件机器的扩展
- 没有任何软件支持的计算机称为裸机,覆盖了软件的机器称为扩充机器,又称虚拟机
操作系统的特征
并发和共享是os最基本的特征,互为存在条件
- 并发(基本特性
- 并发是指多个时间在同一时间间隔内发生,宏观上同时发生,微观上交替发生
- 并行:多个事件在统一时刻同时发生
- 操作系统的并发性:计算机系统中“同时”运行着多个程序,这些程序宏观上看是同时运行的,而微观上看是交替运行的
- 考点:单核CPU统一时刻只能执行一个程序,各个程序只能并发地执行;而多核CPU统一时刻可以执行多个程序,因此多个程序可以并行执行
- 共享(基本特性
- 互斥共享方式:一个时间段内只允许一个进程访问该资源(称为临界资源
- 同时共享方式:允许一个时间段内多个进程“同时”进行访问
- 虚拟
- 虚拟是把一个物理上的实体变为若干个逻辑上的对应物
- 虚拟处理器(时分复用技术
- 虚拟存储器(空分复用技术
- 异步
- 多道程序环境下,允许多个程序并发进行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进
操作系统的发展和分类
发展阶段
- 手工操作阶段
- 缺点:用户独占全机;资源利用率低;CPU等待手工操作,CPU利用不充分
- 批处理阶段(os开始出现
- 单道批处理系统(脱机输入输出技术)。缺点:资源利用率低,吞吐量低
- 多道批处理系统。优点:多道程序并发执行;缺点:不提供人机交互
- 分时操作系统:解决了人机交互问题。缺点:不能优先处理紧急任务
- 实时操作系统:及时性,可靠性
- 硬实时系统:必须在绝对严格的时间内完成处理
- 软实时系统:接受偶尔违反时间规定
- 其他操作系统:网络操作系统、分布式操作系统、个人计算机操作系统
1 | 错题记录: |
考点:程序运行的甘特图
操作系统的运行机制
预备知识:程序如何运行?CPU执行一条一条机器指令的过程
- 应用程序 普通程序员写的程序,只能使用非特权指令
- 内核程序 内核包括必不可少的部分,有时候会让CPU执行特权指令
CPU具有两种状态,用户态(又称目态)和内核态(又称管态)
- 处于内核态时,说明正在运行内核程序,可以执行特权指令
- 处于用户态时,说明在运行应用程序,只能执行非特权执行
特权指令:不允许用户直接使用,例如IO指令,置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器的指令
内核态和用户态的切换
- 内核态->用户态:一条修改PSW的特权指令
- 用户态->内核态:中断引起,硬件自动完成
访管指令:将程序的运行由用户态转到核心态,访管指令不是特权指令
中断和异常
中断是让操作系统内核夺回CPU使用权的唯一途径,会使CPU由用户态转变为内核态
中断的类型:
- 内中断(也叫异常、例外)内中断不可以被屏蔽
- 与当前执行的指令有关
- 中断信号来自CPU内部
- 例如:试图在用户态执行特权指令 / 试图除以0 / 陷入指令(一条特殊的指令,在应用程序想请求操作系统内核的服务)
- 外中断(狭义的“中断”)
- 与当前执行指令无关
- 中断信号来自CPU外部
- 可屏蔽中断INTR,不可屏蔽中断NMI
- 例子:时钟中断(时钟部件发来的中断信号) / IO设备发来的中断信号
异常分为三类:
- 陷阱(trap
- 故意引发的,由陷入指令引发
- 故障(fault
- 错误条件引起,可以被修复
- 例如缺页故障
- 中止(abort
- 致命错误,无法修复
中断机制的基本原理
不同的中断信号需要不同中断处理程序来处理,CPU监测到中断信号后会根据中断信号类型查询中断向量表,找到相应的中断处理程序在内存中的存放位置
显然中断处理程序一定是内核程序
系统调用
操作系统为用户提供命令接口和程序接口,其中程序接口由一组系统调用组成
系统调用使操作系统提供给编程人员使用的接口,应用程序可以通过系统调用来请求获得操作系统内核的服务
系统调用和库函数的区别:系统调用更底层,库函数有一些会封装系统调用
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
1 | 错题区: |
操作系统的体系结构
分层法
将操作系统分为若干层,最底层为硬件,最高层为用户接口,每层只能调用紧邻它的低层的功能和服务(单向依赖)
优点:
- 便于系统的调试和验证
- 易于维护和扩充
缺点:
- 合理定义每一层比较困难,灵活性差
- 效率较差
模块化
按照功能将操作系统划分为若干个具有独立性的模块
操作系统的内核
内核是操作系统最基本最核心的部分,实现操作系统内核功能的程序就是内核程序
- 时钟管理
- 中断处理
- 原语
- 对系统资源进行管理
- 进程管理
- 存储器管理
- 设备管理
大内核:内核中包含上述四个功能的程序
微内核:内核中只包含上述前三个功能的程序