操作系统(Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充
操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合
操作系统的目标和作用
操作系统的目标:
- 方便性:使用编译命令将用户采用高级语言书写的程序翻译成机器代码;直接通过OS所提供的各种命令操纵计算机系统,方便了用户
- 有效性:提高系统资源的利用率,提高系统的吞吐量
- 可扩充性:适应计算机硬件、体系结构以及计算机应用发展的要求
- 开放性:遵循世界标准规范,遵循开放系统互连OSI国际标准
操作系统的作用:
- OS 作为用户与计算机硬件系统之间的接口:用户通过OS来使用计算机系统
- OS 作为计算机系统资源的管理者
- 处理机:用于分配和控制处理机
- 存储器:负责内存的分配和回收
- I/O设备:负责I/O设备的分配与操纵
- 文件管理:用于实现对文件的存取、共享和保护
- OS实现了对计算机资源的抽象
- 覆盖了I/O软件的机器称为扩充机器或虚机器,向用户提供了一个对硬件操作的抽象模型
- 增强了系统的功能,隐藏了对硬件操作的具体细节
操作系统的发展过程
-
未配置操作系统的计算机系统:
- 人工操作方式
缺点:- 用户独占全机
- CPU等待人工操作
CPU的速度在迅速提高,I/O设备的速度缺提高缓慢,使CPU与I/O设备之间速度不匹配的矛盾更加突出
- 脱机输入/输出方式
优点:- 减少了CPU的空闲时间
- 提高了I/O的速度
- 人工操作方式
-
批处理系统
批处理系统旨在提高系统资源的利用率和系统的吞吐量-
单道批处理系统
系统对作业的处理是成批进行的,内存中始终只保存一道作业缺点:系统中的资源得不到充分利用
-
多道批处理系统
为了进一步提高资源的利用率和系统吞吐量,将用户提交的作业先存放到外存上,拍成“后备队列”,根据一定调度算法,选择若干作业调入内存,共享CPU和系统中的各种资源,使多道程序交替得运行
优缺点:
- 资源利用率高
- 系统吞吐量大
- CPU和其他资源保持忙碌状态
- 仅当作业完成时或运行不下去时才进行切换,系统开销小
- 平均周转时间长
- 无交互能力
-
多道批处理系统特征:
-
多道
-
宏观上并行
-
微观上串行分时系统
分时系统的特征:
- 多路性
- 独立性
- 及时性
- 交互性:可通过终端与系统进行广泛的人机对话
-
实时系统
系统能及时响应外部事件的请求,在规定时间内完成对该事件的处理,并控制所有实时任务协调一致地运行
实时系统的类型:
- 工业(武器)控制系统:火炮的自动控制系统、飞机的自动驾驶系统,导弹的制导系统
- 信息查询系统:飞机或火车的订裹系统
- 多媒体系统
- 嵌入式系统
实时系统最主要的特征
- 及时性
- 可靠性
-
微机操作系统的发展:
微机操作系统按运行方式分为以下几类:- 单用户单任务操作系统
- 单用户多任务操作系统
- 多用户多任务操作系统
操作系统的基本特性
- 并发(Concurrence)
- 并行性是指两个或多个事件在同一时刻发生
- 并发性是指两个或多个事件在同一时间间隔内发生
- 共享(Sharing)
指系统中的资源可供内存中多个并发执行的进程共同使用
目前实现资源共享的主要方式有以下两种:- 互斥共享方式
临界资源:在一段时间内只允许一个进程访问的资源 - 同时访问方式
典型的可供多个进程“同时”访问的资源是磁盘设备
- 互斥共享方式
- 虚拟(Virtual)
通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能- 时分复用技术:利用处理机的空闲时间运行其他程序
- 空分复用技术:利用存储空间的空闲空间分区域存放和运行其他多道程序
- 异步(Asynchronism)
并发和共享是多用户(多任务)0S的两个最基本的特征
操作系统的主要功能
引入OS的主要目的:
提供良好的运行环境,以保证多道程序能有条不紊、高效地运行,最大程度地提高系统中各种资源的利用率,方便用户的使用
- 处理机管理功能
对处理机的管理可归结为对进程的管理。处理机管理的主要功能有- 进程控制:创建进程,分配资源,撤销进程,回收资源
为作业创建进程、撤销已结束的进程,控制进程在运行过程中的状态转换 - 进程同步:为多个进程的运行进行协调
- 进程通信:
当相互合作的进程处于同一计算机系统时,通常在它们之间采用直接通信方式 - 调度
- 作业调度
- 进程调度
- 进程控制:创建进程,分配资源,撤销进程,回收资源
- 存储器管理功能
- 内存分配:为每道程序分配内存空间,使它们各得其所
- 内存保护:确保每道用户程序都是仅在自己的内存空间内运行,彼此互不干扰
- 地址映射:将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址
- 内存扩充:从逻辑上扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多
- 设备管理功能
- 缓冲管理
- 设备分配
- 设备处理:设备处理程序又称设备驱动程序
- 文件管理功能
- 文件存储空间的管理
- 目录管理
- 文件的读/写管理和保护
- 操作系统与用户之间的接口
- 用户接口
- 联机用户接口
- 脱机用户接口
- 图形用户接口
- 程序接口
由一组系统调用组成的,每一个系统调用都是一个能完成特定功能的子程序
- 用户接口
- 系统调用
- 系统调用又被称为广义指令
- 系统调用的相关处理都是在核心态下进行
- 系统调用按功能分类为:
- 设备管理
- 文件管理
- 进程控制
- 进程通信
- 内存管理
操作系统的运行环境
- 内核态与用户态
- 操作系统的内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分
- 操作系统内核的核心功能包括时钟管理,中断处理,原语,进程管理,存储器管理,设备管理
- 用户态也叫做目态,核心态也叫做管态
- 操作系统的指令分为特权指令和非特权指令
- 特权指令是只能由操作系统才能执行的指令,如I/O指令、内存清零指令,只能在核心态下执行
- 非特权指令是用户可以去执行的指令,在用户态下执行
- 中断与异常
- 中断分为内中断和外中断
- 内中断信号的来源是CPU内部,与当前执行指令的有关
- 外中断信号的来源是CPU外部,与当前执行指令的无关
- 内中断也称为异常或者陷入(trap)
- 外中断就是狭义上的中断
- 中断可以使CPU从用户态切换为核心态
- 中断分为内中断和外中断
OS结构设计
软件质量指标:功能性,有效性,可靠性,易使用性,可维护性,易移植性
-
无结构操作系统
-
模块化结构OS
模块独立性的标准:- 内聚性:模块内部各部分间联系的紧密程度
- 耦合度:模块间相互联系和相互影响的程度
优点:
- 提高OS设计的正确性、可理解性、可维护性
- 增强OS的可适应性
- 加速OS的开发过程
问题:
- 对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求
- 各模块的设计齐头并进,无法寻找一个可靠的决定顺序,造成各种决定的“无序性”
-
分层式结构OS
客户服务器模式
客户服务器系统由三部分组成:
- 客户机
- 服务器
- 网络系统:实现通信和网络资源共享
交互分为四步
- 客户发送请求消息
- 服务器接收消息
- 服务器回送消息
- 客户机接收消息
优点:
- 数据的分布处理和存储
- 便于集中管理
- 灵活性和可扩充性
- 易于改编应用软件
面向对象的程序设计技术
优点:
- 通过”重用“,提高产品质量和生产率
- 使系统具有更好的易修改性和易扩展性
- 更易于保证系统的正确性和可靠性
微内核 OS 结构
- 基本概念:
- 足够小的内核
微内核并非是一个完整的OS,而只是将操作系统中最基本的部分放入微内核 - 基于客户服务器模式
最基础的部分放入内核中,绝大部分功能都放在微内核外面的一组服务器中实现 - 应用机制与策略分离原理
机制:实现某一功能的具体执行机构
策略:在机制的基础上借助于某些参数和算法来实现该功能的优化 - 采用面向对象技术
- 足够小的内核
- 微内核通常包含以下几部分:
- 与硬件处理紧密相关的部分
- 一些较基本的功能
- 客户和服务器之间的通信
- 微内核的基本功能
- 进程(线程)管理
- 低级存储器管理
- 中断和陷入处理
- 微内核操作系统的优点
- 提高了系统的可扩展性
- 增强了系统的可靠性
- 可移植性强
- 提供了对分布式系统的支持
- 融入了面向对象技术
- 微内核操作系统存在的问题
- 微内核OS存在着潜在的缺点。其中最主要的是,较之早期OS,微内核OS的运行效率有所降低:需要利用消息实现多次交互和进行用户内核模式与上下文的多次切换