操作系统的资源管理技术
- 复用
解决物理资源不足的问题 - 虚拟
解决物理资源不足的问题 - 抽象
用于处理系统复杂性,重点解决易用性 - 组合使用资源管理技术
复用+抽象
操作系统中的基础抽象
- 进程抽象
- 虚存抽象
- 文件抽象
操作系统功能和特性
从资源管理角度,操作系统有5项功能
- 处理器管理
对进程/线程的管理和调度,包括进程、线程控制和管理、确定处理器调度策略等 - 存储管理
理内存资源,提高内存空间利用率,内存分配与回收、地址和转换 - 设备管理
管理各种外部设备 - 文件管理
提供文件逻辑、物理组织的方法,实现文件管理等 - 联网与通信管理
操作系统是一个并发系统,主要特性有
- 并发性
两个或两个以上的活动或时间在同一时间间隔内发生 - 共享性
计算机中的资源可以被多个并发执行的程序共同使用 - 异步性(随机性)
不可预知
多道程序设计
允许多个作业(程序)同时进入计算机系统的内存并启动交替计算的方法
可以提高CPU的利用率,充分发挥计算机硬部件的并行性
优点
- 提高CPU、内存和设备的利用率
- 提高系统的吞吐率,使单位时间内完成的作业数量增加
- 充分发挥系统的并行性,使设备与设备之间、CPU与设备之间均可并行工作
缺点
延长了作业周转时间
多道程序设计系统!=多重处理系统,后者指配置多个物理处理器,能真正同时执行多道程序的计算机系统
实现多道程序设计必须解决的3个问题
- 存储保护和程序浮动
使内存中各道程序只能访问自己区域 - 处理器管理与分配
解决分配CPU的规则 - 资源管理与调度
其他资源(如存储器、设备及文件)要按照一定策略来分配和调度
操作系统的分类
通用操作系统:拥有以下两个或全部功能
-
批处理操作系统
服务于一系列成为批的作业。作业是把程序、数据连同作业说明书组织起来的任务单位,把批中的作业预先输入作业队列中,由操作系统按照作业说明书的要求调度和控制作业执行
特征- 批量集中处理
- 多道程序运行
- 作业脱机工作
优点
- 系统资源利用率高
- 作业吞吐量大
缺点
- 作业周转时间长
- 不具备交互式计算能力
- 不利于程序的开发和调试
-
分时操作系统
特点- 同时性
若干终端用户联机使用计算机,分时是指多个用户分享同一台计算机的CPU时间 - 独立性
终端用户彼此独立,每个终端用户感觉好像独占整台计算机 - 及时性
终端用户没有大计算量的立即性请求能够在足够短的时间内得到响应(并非立即) - 交互性
人机交互
- 同时性
实时操作系统
提供及时响应和高可靠性
操作系统的基本服务和用户接口
用户接口
操作系统可以通程序接口和操作接口将其服务提供个用户
系统调用
内核提供的一系列具有预定功能的服务例程
系统调用把应用程序的请求传送至内核,调用相应服务例程完成所需处理
作用
- 内核可以基于权限和规则对资源访问进行裁决,保证系统安全性
- 系统调用对资源进行抽象,提供一致性接口,避免用户在使用资源时发生错误,且编程效率大大提高
系统调用是应用程序获得操作系统服务的唯一途径
库函数和系统调用的差别
- 应用程序角度
无差别,用户关心的是函数名、参数类型个数、返回值等 -
系统实现角度
使用库函数可以隐藏访管指令的细节,使得系统调用更像函数调用,对用户隐蔽系统调用实现细节
库函数属于应用程序,用户态运行
系统调用对应的服务例程属于系统程序,内核态运行
系统调用的实现
操作系统实现系统调用功能的机制称为陷阱或异常处理机制
系统调用引起处理器中断的指令为访管指令,访管指令为非特权指令,在用户态执行,执行后才转向内核态
过程
应用程序执行系统调用,产生中断转向内核态,进入陷阱处理程序,它将按功能号来查询入口地址表,并转至对应的服务例程执行;完成胡退出中断,返回应用程序断电继续运行
系统调用和函数调用的差别
- 调用的形式和实现方式不同
- 被调用代码的位置不同
- 提供方式不同
操作系统结构和运行模型
结构分类
- 单内核结构(Linux)
把模块作为操作系统的基本单位,按照功能需要把整个系统分解为若干模块,每个模块具有一定独立能力 - 层次式结构
- 虚拟机结构
-
微内核结构
仅将所有应用必须的核心功能放入内核,称为微内核,其他功能都在内核之外,由用户态运行的服务进程实现- 实现思路
将操作系统分成两部分,运行在内核态的内核;运行在用户态并以客户 - 服务器方式执行的进程层,操作系统其他部分功能由相对独立的若干服务器进程来实现 - 优点
- 对进程的请求提供一致性的接口
- 具有较好的可扩充性和易修改性
- 可移植性好
- 对分布式系统提供有力支撑
- 缺点:运行效率低,进程间必须通过内核的通讯机制才能进行通讯
- 实现思路
内核
内核是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,运行于内核态,具有直接访问硬件设备和所有内核空间的权限,是仅有的能够执行特权指令的程序
其他
自由软件!=免费软件