第一章:操作系统概述
操作系统的概念(定义)、功能和目标
概念(定义)
- 负责管理协调硬件、软件等计算机资源的工作
- 为上层的应用程序、用户提供简单易用的服务
- 操作系统是系统软件,而不是硬件
功能和目标
1. 作为系统资源的管理者
- 提供的功能
- CPU管理
- 内存管理
- 文件管理
- 设备管理
- 目标: 安全、高效
2. 作为用户和计算机硬件之间的接口
- 提供的功能
- 命令接口
- 联机命令接口:用户说一句,系统做一句
- 脱机命令接口:用户说一堆,系统做一堆
- 程序接口:只能通过用户程序间接使用,由一组系统调用组成。(程序接口=系统调用=广义指令)
- GUI(图形用户界面)
- 命令接口
- 目标: 方便用户使用
3. 作为最接近硬件的层次
- 功能: 实现对硬件机器的扩展
- 目标: 扩展机器
操作系统的特征
操作系统最基本的特征是并发
和共享
并发
1. 定义:
两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生的。操作系统就是伴随着程序并发而诞生的。并发性是其他三个特性的基础。
2. 并发与并行的区别:
并发:两个或多个事件在同一时间间隔内发生
并行:两个或多个事件在同一时刻内发生
共享
1. 定义:
系统中的资源可供内存中多个并发执行的进程共同使用。
- 互斥共享:如摄像头(宏观同时都不行)
- 同时共享:如硬盘资源(宏观同时)、扬声器(微观同时)
2. 并发与共享的关系:
- 互为存在的条件
- 如果失去并发性,系统中只有一个程序在运行,共享性失去存在的意义
- 如果失去共享性,两个或多个程序不能同时访问系统资源,则无法实现并发
虚拟
1. 定义:
一个物理上的实体变为若干个逻辑上的对应物
2. 虚拟技术:
空分复用:如虚拟储存技术
时分复用:如虚拟处理器技术
3. 并发与虚拟的关系:
如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性
异步
1. 定义:
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
并发与异步的关系:
如果失去了并发性,则系统只能串行地处理各个进程,每个进程的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性
操作系统的发展与分类
手工操作阶段
1. 特点:
用户使用纸带机进行输入输出
2. 缺点:
- 用户独占全机
- 人机速度矛盾:输入输出速度远远慢于CPU处理速度
批处理阶段–单道批处理系统
1. 特点:
引入脱机输入/输出技术(用磁帯完成),并用监督程序(操作系统的雏形)负责控制
2. 优点:
缓解了一定程度的人机速度矛盾
3. 缺点:
内存中只有一道程序运行,CPU大量时间浪费在等待IO的过程中
批处理阶段–多道批处理系统
1. 特点:
操作系统正式诞生,引入中断技术
2. 优点:
多道程序并发执行,共享计算机资源
3. 缺点:
- 无交互性,用户提交作业后就失去了对其运行的控制能力
- 批处理,用户响应时间长
分时操作系统
1. 特点:
计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互
2. 优点:
- 解决人机交互问题
- 允许多个用户同时使用一台计算机,且用户对计算机的操作相互独立
3. 缺点:
不能优先处理紧急的任务,操作系统对每个用户/作业是完全公平的
实时操作系统
1. 特点:
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性
2. 优点:
能够优先响应紧急任务
操作系统的运行机制与体系结构
运行机制
1. 两种指令:
特权指令
非特权指令
2. 两种处理器状态:
核心态(管态)
用户态(目态)
3. 两种应用程序:
内核程序
应用程序
操作系统内核
1. 时钟管理
2. 中断处理
3. 原语
- 是一种特殊的程序
- 处于操作系统最底层,最接近硬件的部分
- 具有原子性,不可再分。即运行不可中断(利用关中断指令和开中断指令实现)
- 运行时间短,调用频繁
4. 对系统资源进行管理(有的操作系统不把其归到内核中)
- 进程管理
- 存储器管理
- 设备管理
操作系统的体系结构
1. 大内核:
特点:将操作系统的主要工作模块都作为系统内核,运行在核心态
优点:高性能
缺点:内核代码庞大、结构混乱、难以维护
2. 微内核:
特点:只把最基本的功能保留在内核
优点:内核功能少、结构清晰、便于维护
缺点:需要频繁地在用户态和核心态切换,性能低
中断和异常
中断的本质
发生中断意味着需要操作系统介入,开展管理工作。有了中断,才能实现多道程序并发执行
中断的作用
- 中断是实现处理器从用户态转换到核心态的唯一途径
- 中断发生后,当前进程暂停运行,处理器立即进入核心态,操作系统内核介入对中断进行处理
用户态与核心态之间的转换是怎么实现的?
用户态
->核心态
是通过中断实现的
核心态
->用户态
是通过执行一个特权指令,将程序状态字(PSW)的标志位设置为用户态。
中断的分类
1. 内中断(异常、例外、陷入):
特点:信号源于CPU内部
、与当前执行的指令有关
种类:
- 陷阱、陷入(trap):有意而为之的异常,如系统调用
- 故障(fault):由错误条件引起的,有可能被故障处理程序修复,如缺页
- 终止(abort):由不可恢复的致命操作导致的结果,如整数除0
2. 外中断(狭义的中断):
特点:信号源于CPU外部
、与当前执行的指令无关
种类:I/O中断请求、人工干预
系统调用
作用
提供应用程序使用的接口,保证系统的稳定性和安全性,防止用户非法操作
特点
在核心态下执行
按功能分类
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
实现步骤
- 传递系统调用参数
- 执行陷入指令
- 执行相应系统调用程序(核心态)
- 返回用户程序