文章目录
一、资源管理
包括:
- 复用:多个进程共享有限的物理资源
- 虚拟:把一个物理资源变成多个逻辑对应物
- 抽象:屏蔽资源复杂性,提高资源易用性
1、资源复用
系统内多个进程竞争使用资源,资源复用让多个进程共享有限的物理资源
主要包含:
- 空分复用:从空间上分割成更小的单元进行使用
- 内存被划分成不同的资源
- 连续存储管理
- 分页、分段存储管理
- 虚拟存储管理
- 硬盘被划分成不同的区域
- 磁盘分区、柱面、簇、扇区
- 内存被划分成不同的资源
- 时分复用:从时间上进行分割,形成时间片,确保在单一时间内,进程对资源是独占的
- 处理器:中断、抢占、调度算法、共享过程中的进程通信、同步
- 设备I/O:虚拟设备、 驱动调度算法
进程可以空分复用主存资源进入主存
进程可以时分复用处理器以执行代码
多道程序设计 = > => =>多个进程共享硬件的技术
2、资源虚拟
对资源进行转化、模拟或整合,把一个物理资源转变成逻辑上的多个对应物


3、资源抽象
处理系统的复杂性,提高资源易用性
- 创建软件来屏蔽硬件资源的物理特性和接口细节
- 简化对硬件资源的操作、控制和使用
- 不考虑物理细节对资源执行操作
二、资源抽象
1、基础抽象

OS的基础抽象包括:
- 进程抽象
进程:对于进入主存的当前运行程序在处理机上操作的抽象状态集 - 虚存抽象
虚存:每个进程在运行时需要独占一个完整的、硕大的寻址空间 - 文件抽象
文件:将数据字节映射到存储设备的物理块中,形成可命名的逻辑字节流

2、其他抽象
对其他低层硬件资源抽象:
- 中断
- 时钟
- 网络接口
没有特定基础硬件的软件资源抽象:
- 消息
- 信号量
- 共享数据结构
三、操作系统的作用
操作系统既是“管理员”,又是“服务员”:
- 对内作为“管理员”,做好计算机系统软硬件资源的管理、控制与调度,提高系统效率和资源利用率
- 对外作为“服务员”,是用户和硬件之间的接口和人机界面,为用户提供尽可能友善的运行环境和最佳服务
- 管理系统资源
- 控制程序执行
- 改善人机界面
- 提供各种(系统调用)服务
- 合理组织计算机工作流程
- 为用户方便有效使用计算机提供良好运行环境
四种常用观点:
观点 | 作用 |
---|---|
系统实现观点 | ![]() |
资源管理观点 | ![]() |
进程交互观点 | ![]() |
服务用户观点 | ![]() |
四、操作系统的功能和特性
1、五大功能
(1)处理器管理
目标:最大限度提高处理器利用率,通过调度、分配和回收处理器资源,使多道程序能够同时执行。
对处理器的管理即是对进程和线程的管理和调度:
- 引入进程概念,抽象程序执行状态
- 引入线程概念,细化程序执行粒度
(2)存储管理
目标:管理内存(和辅存)资源,支持多道程序运行,提高存储空间利用率。
(3)设备管理
目标:完成用户对各种外部设备的I/O请求,加快数据传输速度,发挥设备并行性,提高设备利用率;利用设备驱动程序,屏蔽硬件操作细节,提供简单的设备使用方法。
(4)文件管理
目标:针对信息(数据)资源的管理
程序和数据都是以文件形式存储和在外存中。
(5)网络与通信管理
2、三大特性
(1)并发性
- 并发:两个或以上的事件或活动在同一时间间隔内发生
- 并行:两个或以上的事件或活动在同一时刻发生
并发性的实质:有限个物理CPU在若干道程序之间实现多路复用,在多用户(进程)间共享以提高资源利用率。
(2)共享性
操作系统中的资源(包括硬件资源和信息资源)可被多个并发执行的进程共同使用,而不是被其中某一个独占。
共享方式:
- 透明资源共享
- 独占资源共享
(3)异步性
即随机性、不确定性,多道程序环境中,多个进程的并发活动导致随机事件发生
五、多道程序设计
允许多个程序同时进入主存储器并交替计算的方法。即计算机内存中同时存放了多道程序,它们都处于开始和结束点之间
- 从宏观上看,多道程序并发运行,它们都处于运行过程中,但都未运行结束
- 从微观上看,多道程序的执行是串行的,各道程序轮流占用CPU,交替地执行
多道程序技术离不开中断和通道技术的发展。
- 中断:避免CPU因不断轮询设备而浪费时间
- 通道:专门负责I/O的独立处理器,减轻CPU的处理压力
一般来说,I/O操作速度远小于CPU的速度,在进行I/O操作时,CPU处于完全的闲置状态。
需要引入多道程序设计,充分发挥计算机系统部件的并行工作能力,提高CPU利用率和系统吞吐量(单位时间内完成的程序作业数量)。


1、利弊
利:
- 提高了CPU的利用率
- 提高了内存和I/O设备的利用率
- 提高了系统的吞吐率
- 充分发挥了系统的并行性
弊:
- 每单道程序延长了计算时间
- 延长了作业周转时间
- 牺牲了用户的响应时间
2、CPU利用率
在进行多道程序设计时,需要关注并发道数问题
- 并不是道数越多,效率就越高
- 内存容量和用户响应时间等因素也影响多道程序道数的多寡
假设单道程序等待I/O操作时间占其运行时间的比例为 p p p,当内存中有 n n n 道程序时,所有程序都等待I/O的概率是 p n p^n pn,则: C P U 利 用 率 = 1 − p n CPU利用率 = 1 - p^n CPU利用率=1−pn


3、多重处理系统
- 配置多个物理处理器
- 能够并行执行多道程序
多重处理系统,必须采用多道程序设计技术;
而多道程序设计不一定要求有多重处理系统支持。
4、三个问题
- 存储保护、程序浮动和内存扩充
多道进程间,只访问自己的区域;每个进程并不能占据内存中的固定位置,而是由操作系统进行分配,需要进行地址重定位;多个进程占据的空间会超出物理内存大小,需要辅存支持。 - 处理器的管理和调度
多个进程需要轮流(或依据其它策略)来占据处理器时间。 - 系统资源的管理和调度
其它系统资源也需要按一定策略来分配给不同进程使用。
六、操作系统的发展和分类
- 批处理系统
- 分时操作系统
- 实时操作系统
- 进一步发展为:
- 微机操作系统
- 并行操作系统
- 网络操作系统
- 分布式操作系统
- 嵌入式操作系统
1、批处理操作系统
用户把要计算的应用问题编成程序,连同数据和作业说明书一起交给操作员,操作员集中一批作业,输入到计算机中。然后,由操作系统来调度和控制作业的执行。这种批量化处理作业方式的操作系统称为批处理操作系统
批处理系统的主要特征(优缺点) :
- 用户脱机工作
- 成批处理作业
- 单/多个程序运行
2、分时操作系统
允许多个联机用户同时使用一台计算机系统操作系统。
在一台主机上连接有多个终端,每个用户在各自的终端上以问答方式控制程序运行,主机中央处理器轮流为每个终端用户服务一段很短的时间,这段时间称为一个时间片,若一个终端用户的程序在一个时间片内未执行完,则挂起等待再次分到时间片时继续运行。每个用户感到自己好象独占一台计算机
分时操作系统的主要特性:
- 同时性:若干个终端用户同时联机使用计算机
- 独立性:每个用户感到自己好象独占一台计算机
- 及时性:用户发出的命令能够很快被主机响应
- 交互性:人机交互,联机工作,方便调试、修改程序
分时时间片的长度选取应根据:
- 时间片长度
- 机器速度
- 用户的多少
- 响应的要求
- 系统的开销
时间片设得太短会导致过多的进程切换,减少实际运行用户程序的时间比,从而降低CPU的利用率。
时间片设得太长会使小的交互型请求的响应时间变长。
前台作业:一般是交互型作业,用户需要频繁地与作业进行交互
后台作业:一般为批处理型作业,运行时间长,且不需要用户频繁与之交互
3、实时操作系统
指当外界事件或数据产生时,能接收并以足够快的速度予以处理,处理的结果又能在规定时间内来控制监控的生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行。
- 过程控制系统:如生产过程控制系统、导弹制导系统、飞机自动驾驶系统、火炮自动控制系统
- 信息查询系统:计算机同时从成百上千的终端接受服务请求和提问,并在短时间内作出回答和响应。如情报检索系统
- 事务处理系统:计算机不仅要对终端用户及时作出响应,还要频繁更新系统中的文件或数据库。如银行业务系统
分时操作系统为用户提供一个通用的交互型开发运行环境;
实时操作系统通常为特殊用途提供专用系统 。
七、基本服务和用户接口
共性服务:
- 创建程序:提供程序的编辑、调试、编译等生成工具
- 执行程序:装入内存、执行、异常报告、终止程序
- 数据I/O:以简单方式提供给用户进行I/O
- 信息存取:文件操作
- 通信服务:进程通信
- 错误检测和处理
其他功能:
- 资源分配
- 统计
- 保护
操作系统通过程序接口和操作接口,向用户提供服务:
- 程序接口:由一组系统调用(System Call))组成,用户程序使用“系统调用”就可获得操作系统的底层服务;使用或访问系统的各种软硬件资源。
- 操作接口:为用户操作控制计算机工作和提供服务的手段的集合,通常有:
- 操作控制命令
- 图形操作界面
- 批处理系统提供的作业控制语言(命令)等

1、程序接口和系统调用
- 系统调用:
为了扩充机器功能、增强系统能力、方便用户使用而在内核中建立的特殊的公共子程序,它是用户程序或其它系统程序获得操作系统服务的唯一途径,系统调用也称为广义指令。 - 系统调用与机器指令的区别:
- 机器指令由硬件实现
- 广义指令(系统调用)是由操作系统在机器指令基础上实现的过程或子程序
内核态(kernel mode):又称管态、核心态。运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。程序受硬件保护,用户不能随意篡改内容。
用户态(user mode):又称目态、普通态。执行的代码被硬件限定,不能进行例如写入其他进程的存储空间这样的操作。
系统调用作用:
- 所有进程只能通过系统调用访问系统资源,由内核基于权限提供一致性规则对资源访问进行裁决,保证系统安全性。
- 对系统资源的调用方法进行抽象,提供一致性接口,避免用户在使用资源时发生错误,提高编程效率。
系统调用的参数传递:
- 不同的系统调用需传递给系统调用处理程序不同的参数
- 系统调用执行的结果也要以参数形式返回给用户程序
系统调用与函数调用的区别:
- 调用形式不同
- 被调用代码的位置不同
- 提供方式不同
- 调用实现不同
2、操作接口和系统程序
- 作业是用户提交给操作系统进行计算的一个独立任务
- 控制作业时,用到的两类作业级接口:
- 联机作业控制接口:交互型作业处理
- 字符型用户界面:字符界面(命令行、批处理)
- 图形化用户界面 - 脱机作业控制接口:批处理作业处理
- 联机作业控制接口:交互型作业处理
命令解释程序:
接受和执行一条用户从键盘输入的命令,它通常保存一张命令名字(动词)表,其中记录着所有操作命令及其处理程序的入口地址或有关信息。
当新的批作业被启动,或新的交互型用户登录时,系统就自动地执行命令解释程序,它负责读入控制卡或命令行,并作出相应解释和执行。
系统程序:
又称标准程序或实用程序(Utilities)。不属于操作系统的核心,但为用户程序的开发、调试、执行、和维护解决带有共性的问题或执行公共操作。
操作系统常以外部操作命令形式向用户提供许多系统程序,它的功能和性能很大程度上反映了操作系统的功能和性能,用户看待操作系统,不是看系统调用怎么样,而是看系统程序怎么样。
八、结构设计
操作系统设计呈现出以下特征:
- 复杂程度高
- 生成周期长
- 正确性难保证
1、内核
内核不是进程,而是支持系统运行基本功能的一组程序模块。
内核对硬件处理器及有关资源进行首次改造,以便给进程的执行提供良好的运行环境 。
内核分为:
- 微内核:内核很小,仅具有极少的必须功能,其它功能都在核外实现。通过微内核提供的消息传递机制完成其余功能模块间的联系。内核和核外服务程序的开发是分离的
- 单内核:内核具有较多的功能,运行时是一个大的二进制映像,模块间的联系通过函数或过程调用实现
2、结构
(1)单体式结构
以功能模块为操作系统的基本单位
- 每个模块有一定的独立功能,若干模块可协作完成某个功能
- 模块间调用方法自由、随意,可不加控制
- 模块分别设计、编码、调试
优缺点:
- 优点:
- 结构紧密
- 组合方便
- 灵活性高
- 系统效率高 - 缺点:
- 模块独立性差
- 模块间调用关系复杂
- 系统结构不清晰
- 难以保证系统正确性
(2)层次式结构
- 把操作系统划分为内核和模块(进程)
- 模块(进程)按功能调用次序排列成层次
- 层次间只能单向依赖和调用,高层可调用低层功能,反之不能
- 层次间不构成循环调用关系
优缺点:
- 优点:
- 规范层次依赖和调用关系
- 系统接口少、简单
- 逐层保证正确性 - 缺点:
- 层次间通信开销较大
- 影响系统效率
(3)虚拟机结构
- 将一台物理计算机虚拟成了若干台逻辑计算机,而且每个虚拟计算机可以运行不同的操作系统,每个操作系统上又可并发运行多道程序
- 进程其实并不直接运行在虚拟计算机上,而是运行在虚拟计算机上运行的操作系统上,从而不同进程赖以运行的内核(平台)可以不相同
(4)微内核结构
-
封装所有应用必需的核心功能,形成微内核(microkernel)
-
其它功能形成运行在用户态的服务进程。
将操作系统分成两大部分
- 运行在用户态并以客户/服务器方式活动的进程
- 运行在核心态的内核
除内核部分外,操作系统的其他部分被分成若干个相对独立的进程,每一个进程实现一类服务,称服务器进程
优缺点:
- 优点:
- 提供一致性接口,不用区分内核级服务还是用户级服务
- 良好的可扩充性,增加新功能只需更新服务器即可
- 可移植性好,与CPU相关的代码都在微内核中
- 支持分布式系统,只需要发布消息,不必知道服务器是在哪台硬件设备上 - 缺点:
- 所有进程通信,都必须通过内核的通信机制才能进行通信
- 系统效率低
3、运行模型
-
服务例程嵌入到应用进程中运行
- 操作系统的地址空间被包含在用户进程的地址空间中
- 操作系统例行程序也在用户进程的上下文环境中执行
- 只切换处理器状态,而不切换进程,来提高效率 -
服务例程作为独立进程运行
- OS功能(函数)作为进程执行的模型把操作系统组织成一组系统进程
- 即操作系统功能是这些系统进程集合运行的结果,这些系统进程也称为服务器或服务器进程
- 与用户进程或其他服务器进程之间构成了客户/服务器关系