# 操作系统的概念功能和目标
# 操作系统的概念
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配:以提供给用户和其他软件方便的接口和环境:它是计算机系统最基本的系统软件
- 操作系统是系统资源的管理者
- 向上层提供方便易用的服务
- 是最接近硬件的一层软件
# 操作系统的功能和目标
# 作为系统资源的管理者
# 提供的功能
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
# 目标
- 安全
- 高效
# 向上层提供方便易用的服务
# 联机命令接口实例(Windows 系统)
连接命令接口 = 交互式命令(用户说一句,系统执行一句)
# 脱机命令接口实例(Windows 系统)
脱机命令接口 = 批处理命令接口(用户说一堆,系统执行一堆)
# 程序接口
可以在程序中进行系统调用来使用程序接口,普通用户不能直接使用程序接口,只能通过程序代码间接使用
# 作为最接近硬件的层次
- 需要实现对硬件机器的拓展
- 没有任何软件的计算机称为逻辑,在裸机之上安装操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强,使用更方便的机器
- 通常把覆盖了软件的汲取称为扩充机器,又称为虚拟机
# 操作系统的特征
# 并发
# 并发概念
指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生
# 并行概念
指的是多个事件在同一时刻发生
# 操作系统的并发性
计算机系统中同时运行着多个程序,这些程序宏观上看的同时运行的,微观上看是交替运行的
- 单核 CPU 同一时刻只能运行一个程序,各个程序只能并发执行
- 多核 CPU 同一时刻能运行多道程序,多个程序可以并行执行
# 共享
# 共享概念
资源共享,指的是系统中资源可供内存中多个并发执行的进程同时使用
# 两种资源共享
# 互斥共享
系统中某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
# 同时共享
系统中的某些资源,允许一个时间段内由多个进程同时对他们进行访问
# 并发和共享的关系
- 并发性指计算机系统同时存在多个运行着的程序
- 共享性指系统中资源可提供多个并发执行的进程共同使用
- 如果失去并发性,系统中只有一个系统在运行,共享性会失去价值
- 如果失去共享性,则无法同时发送文件,就无法并发
# 虚拟
# 虚拟概念
物理上的实体变为若干个逻辑上的对应物,物理实体是实际存在的,而逻辑上对应物是用户感受到的
# 空分复用技术
虚拟存储器技术
# 时分复用技术
虚拟机处理器
如果失去并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了,因此,没有并发,就谈不上虚拟性
# 异步
# 异步概念
在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
# 操作系统的发展与分类
# 手工操作阶段
# 批处理阶段 —— 单道批处理系统
引入脱机输入 / 输出技术,并由监督程序负责控制作业的输入输出
- 优点:缓解了一定程度上的人机速度矛盾,资源利用率有所提升
- 却带你:内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序,CPU 有大量事件实在空闲等待时间,资源利用率依旧低
# 批处理阶段 —— 多道批处理阶段
# 分时操作系统
分时操作系统:计算机以时间为单位轮流为每一个用户 / 作业服务,各个用户可通过终端与计算机进行交互
- 优点:用户请求可以被及时响应,解决了人机交互问题,允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在
- 缺点:不能优先处理一些紧急的任务,操作系统对各个用户 / 作业都是公平的,循环的为每个用户作业服务一个时间片,不区分任务的紧急性
# 实时操作系统
能够优先响应一些紧急任务,某些紧急任务不需要时间片排队
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件,实时操作系统主要特点是及时性和可靠性
# 硬实时系统
必须严格在规定时间内完成处理(导弹制导,自动驾驶等)
# 软实时系统
能接收偶尔违反时间规定(12306 火车订票系统)
# 操作系统运行机制
# 内核程序 & 应用程序
内核程序组成操作系统内核(Kernel)
# 特权指令 & 非特权指令
操作系统内核作为管理者,有时会让 CPU 执行一些特权指令
应用程序只能使用非特权指令执行
# 内核态 & 用户态
- 处于内核态时:说明此时正在运行的是内核程序,此时可以执行特权指令
- 处于用户态时:说明此时正在运行的是应用程序,此时只能执行非特权指令
# 中断和异常
# 中断的作用
中断会使 CPU 由用户态转变为内核态,使操作系统重新夺回对 CPU 的控制权
中断是让操作系统唯一夺回 CPU 使用权的唯一途径
# 中断类型
# 内中段
与当前执行指令有关,中断信号来源于中断内部(异常)
# 外中断
与当前执行命令无关,中断信号来源于 CPU 外部(中断)
# 中断分类
# 内中断(异常,例外)
# 陷阱,陷入(trap)
有陷入指令林发,用程序故意引发的
# 故障(fault)
有错误条件引起的,可能被内核程序修复,内核程序修复故障后会把 CPU 使用权还给程序,让它继续执行下去
# 终止(abort)
由致命错误引起,内核程序无法修复错误,因此一般不再将 CPU 的使用权还给终止的程序,而是直接终止该用户程序
# 外中断(中断)
# 时钟中断
# IO 请求中断
# 中断机制的基本原理
不同的中断信号,需要用不同的中断处理程序来处理,当 CPU 检测到中断信号后,会根据中断信号的类型取查询中断向量表,以此来找到相应的中断处理程序在内存中的存放位置
# 系统调用
# 系统调用意义
系统调用是操作系统提供给应用程序使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来获得操作系统内核的服务
# 系统调用与库函数的区别
普通应用程序 | 可直接进行系统调用,也可使用库函数,有的库函数还涉及系统调用,有的不涉及 |
---|---|
编程语言 | 向上提供库函数,有时会将系统调用封装成库函数,以隐藏系统调用的一些细节,使程序编程更加方便 |
操作系统 | 向上提供系统调用,使得上层模拟程序请求内核的服务 |
裸机 |
# 系统调用的过程
传递系统调用参数 --> 执行陷入指令(用户态) --> 执行相应的内请求核程序处理系统调用(和心态) --> 返回应用程序
# 操作系统的体系结构
# 操作系统的内核
内核时操作系统最基本,最核心的部分
实现操作系统内核功能的那些程序就是内核程序
# 操作系统的体系结构
# 大内核和微内核比较
# 大内核
- 将操作系统的主要功能模块都作为系统内核,运行在和心态
- 优点:高性能
- 缺点:内核代码庞大,结构混乱,难以维护
# 微内核
- 只把最基本的功能保留在内核
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁的在核心态与用户态之间切换,性能低