01-操作系统简述
1 操作系统的目标和作用
1.1 操作系统的目标
- 有效性:提高系统资源利用率,提高系统吞吐量
- 方便性:避免用户书写机器语言
- 可扩充性:能方便地增添新的功能和模块
- 开放性:按照某些标准开发,以便软硬件的兼容等等
1.2 操作系统的作用
OS 作为用户与计算机硬件系统之间的接口
- 命令方式
- 系统调用方式
- 图标–窗口方式
OS 作为计算机系统资源的管理者
处理机管理
- 处理器上可执行的指令分为
- 特权指令
- 非特权指令
- 处理器状态划分为
- 管态(管理态)
- 目态(用户态)
处理器状态保证了特权指令的正确使用,把 OS 与用户程序区别开来
- 处理器上可执行的指令分为
存储器管理
I/O 设备管理
文件管理
OS 实现了对计算机资源的抽象
- 裸机:完全无软件的计算机系统,向用户提供的是实际硬件接口,利用机器指令进行编程
- 扩充机器/虚机器:覆盖了设备管理软件,向用户(进程)提供了一个对硬件操作的抽象模型
1.3 推动操作系统发展的主要动力
- 不断提高计算机资源利用率
- 方便用户
- 器件的不断更新换代
- 计算机体系结构的不断发展
- 不断提出新的应用要求
2 操作系统的发展过程
2.1 无操作系统的计算机系统
真空管
- 人工操作方式
- 人工装填纸带,CPU 大多数时间在等待,浪费了大量的资源
- 脱机输入/输出方式
- 在手工与 CPU 之间加上了一个磁带,以优化 I/O 与 CPU 速度不匹配的问题
2.2 单道批处理系统
晶体管,单道批处理系统是 OS 的前身
- 单道批处理系统的处理过程
- 用监督程序来解放装填纸带人员的双手,并进一步解决了 I/O 与 CPU 之间速度不匹配的问题
- 单道批处理系统的特征
- 自动性
- 顺序性
- 单道性:内存中仅有一道程序运行
2.3 多道批处理系统
小规模集成电路
- 多道程序设计的基本概念
- 用户提交的作业形成队列,按一定算法将若干作业调入内存
- 多道程序设计的优点
- 资源利用率高
- 系统吞吐量大
- 多道程序设计的缺点
- 平均周转时间长
- 无交互能力
- 多道批处理系统需要解决的问题
- 处理机管理问题
- 内存管理问题
- I/O 设备管理问题
- 文件管理问题
- 作业管理问题
2.4 分时系统
分时系统是指,在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。
- 分时系统产生的动力
- 人机交互:人们亟需可以实现人机交互的处理机以便调试运行程序
- 共享主机
- 便于用户上机
- 分时系统实现中的关键问题
- 及时接收:及时接收各个用户终端的输入
- 系统配置多路卡
- 终端输入缓冲区
- 及时处理:及时处理用户键入的命令
- 作业应直接进入内存
- 将 CPU 的时间分片,每个作业每次只能运行一个时间片
- 及时接收:及时接收各个用户终端的输入
- 分时系统的特征
- 多路性:允许在一台主机上同时联接多台联机终端,系统按分时原则为每个用户服务。
- 独立性:每个人都好像独占资源
- 及时性:用户的请求能在很短的时间内获得响应
- 交互性:用户可通过终端与系统进行广泛的人机对话
2.5 实时系统
所谓“实时”,是表示“及时”,而实时系统(Real Time System)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 应用需求
- 实时控制:实时采集现场数据,并对所采集的数据进行及时处理
- 实时信息处理:例如订票系统
- 实时任务
- 按任务执行时是否呈现周期性来划分
- 周期性实时任务:外部设备周期性地发出激励信号给计算机
- 非周期性实时任务:激励信号并无明显的周期性,但都有一个截止时间
- 根据对截止时间的要求来划分
- 硬实时任务
- 软实时任务
- 按任务执行时是否呈现周期性来划分
- 实时系统与分时系统特征的比较
- 多路性:实时控制系统周期性地对多路现场采集控制。分时系统中的多路性则与用户情况有关,时多时少。
- 独立性:都是彼此独立地操作,互不干扰
- 交互性:实时信息处理系统弱于分时系统
- 及时性:实时性都是以人所能接受的等待时间来确定的。而实时控制系统的及时性,是以控制对象所要求的截止时间来确定的
- 可靠性:实时信息处理系统更具可靠性
2.6 微机操作系统的发展
- 单用户单任务操作系统
- CP/M: 8 位
- MS-DOS:16 位
- 单用户多任务操作系统
- 各种 Windows
- 多用户多任务操作系统
- UNIX
- Solaris
- Linux
- UNIX
2.7 其它操作系统
- 网络操作系统:Windows NT
- 分布式操作系统:可独立也可协同,对用户来说相当于一个操作系统
- 嵌入式操作系统
3 操作系统的基本特性
3.1 并发性
- 并行与并发
- 并行性
- 宏观并行,微观并行。
- 是指两个或多个事件在同一“时刻”发生。
- 需要硬件支持,如多流水线、多核处理器或者分布式计算系统。
- 并发性(Concurrence)
- 宏观并行,微观串行。
- 是指两个或多个事件在同一“时间间隔”内发生
- 利用时分技术,引入进程和线程
- 并行性
- 引入进程(Process)
- 为了实现并发,引入了进程的概念
- 进程是系统中资源分配的基本单位,能独立运行。它是由一组机器指令,数据和堆栈等组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。
- 引入线程(Threads)
- 为了进一步提高并发程度,在进程内引入了线程
- 线程作为独立运行和独立调度的基本单位,基本上不拥有系统资源,对其调度的开销就会小很多
- 协程(coroutine)
- 协程是线程的线程,发生在用户态上,而不是内核态上
- 与线程相比, 协程的优点在于
- 避免了线程创建/切换带来的消耗
- 不需要多线程的锁机制
3.2 共享性
共享是指系统中的资源可以被多个并发进程共同使用。
- 互斥共享技术
- 保证各个进程之间不会混淆
- 互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。
- 同时访问方式
- 各个进程可以“同时”访问同一个设备,比如磁盘
并发和共享是多用户(多任务)OS的两个最基本的特征。它们又是互为存在的条件
3.3 虚拟技术
虚拟技术把一个物理实体转换为多个逻辑实体。
- 时分复用技术
- 虚拟处理机技术
- 虚拟设备技术
- 空分复用技术
- 虚拟磁盘技术:磁盘分区
- 虚拟存储器技术:虚拟内存
3.4 异步性
异步指进程不是一次性执行完毕,而是“走走停停”,以不可知的速度向前推进。
只要在操作系统中配置有完善的进程同步机制,且运行环境相同,作业经多次运行都会获得完全相同的结果。
4 操作系统的主要功能
4.1 处理机管理
对处理机的管理可归结为对进程、线程的管理
- 进程控制
- 创建进程、分配资源、撤消进程、控制进程状态转换
- 为进程创建线程、撤消线程
- 进程同步
- 进程互斥方式:锁
- 进程同步方式:信号量。由同步机构对进程的执行次序加以协调。
- 进程通信
- 同一计算机,直接通信,由源进程利用发送命令直接将消息挂到目标进程的消息队列上
- 调度
- 作业调度:从后备队列中选出作业,分配资源,建立进程,插入就绪队列
- 进程调度:从进程(线程)的就绪队列中选出进程,分配处理机,设置运行现场,使进程投入执行
4.2 存储器管理
存储器管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。
- 内存分配
- 静态分配:装入时确定,运行期间不允许申请新空间,也不允许作业在内存中“移动”
- 动态分配:允许申请新空间,也允许作业在内存中“移动”
- 内存保护:由硬件实现越界检查,确保每道程序都只在自己的内存区中运行
- 地址映射:在硬件的支持下,将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址
- 内存扩充:借助于虚拟存储技术,从逻辑上去扩充内存容量
- 请求调入:允许只装入部分程序和数据就启动程序,运行时可向 OS 请求从磁盘调入所需内存
- 置换:内存空间不够时,将内存中暂时用不上的程序、数据调至盘上,腾出空间,调入所需部分
4.3 设备管理
设备管理的主要任务是:完成用户进程提出的 I/O 请求;为用户进程分配其所需的 I/O 设备;提高 CPU 和 I/O 设备的利用率;提高 I/O 速度;方便用户使用 I/O 设备。
- 缓存管理:设置缓冲区,提高效率
- 设备分配:设备控制、回收
- 设备处理:设备处理程序又称为设备驱动程序
4.4 文件管理
- 文件存储空间的管理
- 目录管理
- 文件的读/写管理和保护
4.5 操作系统与用户之间的接口
- 用户接口
- 联机用户接口:命令解释
- 脱机用户接口:批处理用户接口
- 图形用户接口
- 程序接口
4.6 现代操作系统的新功能
- 系统安全
- 网络的功能和服务
- 支持多媒体
5 OS 结构设计
5.1 传统的操作系统结构
- 无结构 OS:早期系统小的时候
- 模块化结构 OS
- 基本概念:“分解”和“模块化”
- 模块的独立性:内聚性,耦合度
- 优缺点
- 提高正确性、可理解性和可维护性,增强适应性,加速开发过程
- 接口设计很难满足实际需求,设计决定“无序性”
- 分层式结构 OS:有序分层
- 基本概念:自底向上的分层设计,每一步设计都是建立在可靠的基础上
- 优缺点
- 保证系统的正确性,易扩充和易维护性
- 增加系统的通信开销,系统效率降低了
5.2 客户/服务器模式
- 客户/服务器模式的组成
- 客户机
- 服务器
- 网络系统
- 客户/服务器之间的交互
- 客户发送请求消息
- 服务器接收消息
- 服务器回送消息
- 客户机接收消息
- 客户/服务器模式的优点
- 数据的分布处理和存储
- 便于集中管理
- 灵活性和可扩充性
- 易于改编应用软件
基本客户/服务器模式的不足之处是存在着不可靠性和瓶颈问题。如果在网络中配置多个服务器,并采取相应的安全措施,则可加以改善。
5.3 面向对象的程序设计
5.4 微内核 OS 结构
微内核 OS 结构是建立在模块化、层次化结构的基础上的,并采用了客户/服务器模式和面向对象的程序设计技术
- 微内核操作系统的基本概念
- 足够小的内核
- 内核是指精心设计的、能实现现代 OS 最基本的核心功能的部分。微内核并非是一个完整的 OS,而只是操作系统中最基本的部分
- 只有微内核这一个模块运行在内核态,其余模块运行在用户态。因为需要频繁地在用户态和核心态之间进行切换,所以会有一定的性能损失
- 基于 C/S 模式
- 将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。
- 应用“机制与策略分离”原理
- 机制:实现某一功能的具体执行机构
- 策略:在机制的基础上,借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标
- 微内核操作系统中,通常将机制放在 OS 的微内核中。
- 采用面向对象技术
- 足够小的内核
- 微内核的基本功能(与硬件紧密相关)
- 进程(线程)管理
- 低级存储器管理
- 中断和陷入处理
- 微内核操作系统的优点
- 提高了系统的可扩展性
- 增强了系统的可靠性
- 可移植性
- 提供了对分布式系统的支持
- 融入了面向对象技术
- 微内核操作系统存在的问题
- 运行效率有所降低:在完成一次客户对 OS 提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式及上下文的多次切换
01-操作系统简述
https://janycode.github.io/2016/04/28/01_操作系统/01_操作系统基础/01-操作系统简述/