一、操作系统概述
内容来自老师的课件,仅供复习和学习
导航
- 操作系统的目标和发展
- 操作系统的发展历史
- 操作系统的主要理论成就
- 主流操作系统的介绍

1.1 操作系统的目标与功能
- 操作系统是机器与应用程序之间的接口程序
- 功能:动态分配系统的共享资源给正在执行的程序
- 进程调度
- 内存管理
- 设备控制
![image]()
- 操作系统是硬件基础上的第一层软件:
- 控制应用程序的执行
- 应用程序和硬件间的接口
- 操作系统的设计目标:
- 方便:使计算机易于使用
- 有效:高效管理计算机系统的资源
- 易扩展:可引入新的系统功能
1.1.1 作为用户/计算机接口
- 为应用程序员屏蔽硬件细节,提供计算机系统的接口
![image]()
- 操作系统提供的服务
- 程序开发
- 程序运行
- 访问输入/输出设备
- 文件访问控制
- 系统访问
- 错误检测与响应
- 统计记账
- ......
- 计算机系统的三个关键界面/接口
- ISA(Instruction set architecture)指令集体系结构
- 定义计算机可遵循的机器语言指令系统
- 是软硬件的分界接口
- 应用程序和实时工具都可以直接访问ISA的子集————用户ISA
- 操作系统则有权访问另外的管理系统资源的机器语言指令————系统ISA
- ABI(Application binary interface)应用程序二进制接口
- 定义二进制可移植交叉程序的标准
- 定义对操作系统与硬件资源的系统调用接口,和通过用户ISA可用的系统服务
- API(Application programming interface)应用编程接口
- 程序可通过增补的HLL(高级语言)库调用来访问硬件资源和经由用户ISA提供的可用系统服务
- 任何系统调用通常都是通过库来完成的
- 利用API,应用程序可以容易地(通过重新编译)移植到支持同样API的其他系统
- ISA(Instruction set architecture)指令集体系结构
1.1.2作为资源管理器
- 计算机就是一组资源,用于数据的传送、存储和处理,以及对这些功能的控制
- 操作系统负责管理计算机的软硬件资源
- 操作系统通过管理计算机资源控制计算机
- (作为控制器的)操作系统与(被控制的)普通软件的作用相同,都是由处理器执行的一组程序
- 操作系统经常放弃控制,须依赖处理器重新获取控制
- 操作系统管理的主要资源
![image]()
1.1.3操作系统的易扩展性
操作系统应该能不断发展
- 硬件升级与新型硬件:新型处理器(如支持分页机制、APU)、新型输入/输出设备(如触摸屏)
- 新服务:适应用户和系统管理员的需要(如图形界面、多点触控)
- 修正错误:修正操作系统不可避免存在的各种错误(如发布各种补丁程序)
设计要求
- 模块化接口
- 接口定义
- 说明文档
- ......
操作系统的定义
- 操作系统是一组程序的集合,其功能为
- 控制和管理计算机硬件和资源软件
- 合理地对各种作业(job,单一程序)进行调度(scheduling)
- 方便用户使用计算机系统
1.2操作系统的发展历史

- 串行处理
- 简单批处理
- 多道程序批处理
- 分时系统
- 实时系统
- ......
1.2.1串行处理
- 早期计算机没有操作系统
- 存在两个主要问题
- 人工调度
- 准备时间长
- 串行处理:用户必须顺序访问计算机的操作模式
![image]()
- 提高串行处理效率的方法
- 开发公用软件的各种系统软件工具
- 函数库
- 链接器
- 加载器
- 调试器
- 输入/输出驱动程序
- ......
- 开发公用软件的各种系统软件工具
1.2.2简单批处理系统
- 动机:提高利用率————自动执行作业
- 作业控制语言(JCL)
- 监控程序(Monitor)————批处理操作系统
- 所需的硬件支持
- 内存保护(保护监控程序)
- 计时器(防止一个作业独占系统)
- 特权指令(只能由监控程序执行)
- 中断(使操作系统放弃/获得控制权更加灵活)
![image]()
- 所需的硬件支持
- 第一个监控程序(第一个操作系统)————1950s中期,GE(美国通用电气公司)为IBM 701开发
![image]()
- 操作模式(由内存保护和特权指令引入)
- 用户态:不能访问受保护区域,不能执行特权命令
- 内核态:可访问受保护区域,能执行特权命令
- 单道程序批处理
- 使处理器必须等到输入/输出操作结束后才能继续
![image]()
- 使处理器必须等到输入/输出操作结束后才能继续
1.2.3多道程序批处理系统
- 动机:输入/输出速度太慢,需进一步提高CPU利用率
- 多道程序设计/多任务处理————1950's末为IBM 360/7094开发
- 多个作业任务同时进入
- 主存切换运行
![image]()
- 需要的硬件功能:
- 输入/输出中断
- 直接内存访问
- 需要的软件功能
- 内存管理
- 作业调度
![image]()
1.2.4分时系统
- 动机:满足用户与计算机交互的需要,减小响应时间
- 多个交互作业,多个用户分享处理器时间
- 分时技术
- 把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用
- 第一个分时系统:CTSS(兼容分时系统),1961年MIT为IBM 709研发
- 联机多用户的计算环境
- 多道批处理与分时系统的比较
1.2.5实时系统
- 用于专用系统,进行实时控制与实时信息处理,如工业、军事、金融、航天......
- 强调即时响应和高可靠性,在规定时间内完成对事件的处理为特征
- 当代的操作系统,通常同时具有分时、实时和多道批处理功能,被称为通用操作系统
1.3操作系统的主要理论模块
操作系统发展中的重要理论进展
- 进程
- 内存管理
- 信息保护和安全
- 进程调度和资源管理
1.3.1进程

- 动机:管理协调系统中“多道处理”的活动相当困难
- 进程:一个正在执行的程序
- 进程的三个组成部分:
- 一段可执行的程序
- 程序所需要的相关数据(变量、工作空间、缓存区等)
- 程序执行的上下文环境/程序状态
- 进程调度软件出错的原因:
- 不正确的同步(如不正确的信号机制)
- 失败的互斥(竞争共享资源)
- 不确定的程序操作(如共享内存的重写,程序的调度顺序可能影响程序的输出结果)
- 死锁(如两个进程都等待对方释放自己需要的资源)
- 进程被作为一种数据结构来实现
![image]()
1.3.2存储管理
- 动机
- 更好支持多道程序和模块化程序设计
- 直接使用物理内存有较大局限性
- 操作系统内存管理的基本职责
- 进程隔离(防止相互干涉各自的存储空间)
- 自动分配和管理(需要时动态分配,对程序员透明)
- 支持模块化程序设计(如面向对象)
- 保护和访问控制(访问共享存储空间可能引发问题)
- 长期存储(非易失,磁盘文件系统)
- 存储管理实现方法技术
- 文件系统:长期存储,访问/控制单位
- 虚拟存储器
- 允许程序从逻辑的角度访问存储器
- 把内存和外存结合起来管理,使用起来与使用内存一样方便
- 引入分页系统和从虚地址到实地址的动态映射硬件
![image]()
1.3.3信息保护与安全
- 动机:分时系统、计算机网络
- 四类相关问题
- 可用性:保护系统原子操作的整体性
- 保密性:保证用户的信息私密性
- 数据完整性:保护数据不被未授权操作修改
- 认证:用户身份的正确认证和消息/数据的合法性
1.3.4调度和资源管理
- 动机:管理并调度各种活动进程、使用各种可用资源,同时要提供公平性、有差别的响应性和有效性
- 三个因素
- 公平性(平等对待各类进程)
- 有差别的响应性(区分不同服务要求的不同作业类型)
- 有效性(在最大吞吐量、最小响应时间和尽可能多用户之间找到平衡)
- 多道程序设计的主要组件,操作系统研究的基本问题
![image]()
1.3.5系统结构
- 操作系统的结构及复杂性不断增长
- 四个问题:实现落后于需求、存在错误、性能不足和安全问题
- 操作系统的软件结构
- 模块化:合理划分模块、在模块间定义良好的接口
- 分层和信息抽象:系统定义为一系列的层,每一层实现操作系统所需功能的相关子集,它只依赖于下一层的功能。某层的修改不需要改变其他层
- 操作系统设计层次
![image]()
- 1~4:处理器硬件(不属于操作系统)
- 5~7:单处理器资源
- 8~13:外部对象
1.4现代操作系统的发展
影响现代操作系统发展的因素:
- 新硬件:多【核】处理器结构、高速增长的计算机速度、高速网络连接、容量不断增加的各种存储设备
- 新应用:人工智能、多媒体应用、互联网/Web访问、客户/服务器计算模式
- 新安全威胁:网络使安全问题更加突出(病毒、蠕虫、黑客技术)
操作系统的组织方法和设计要素(现代操作系统的特征)
- 微内核结构
- 内核
- 操作系统中实现基本功能的代码,它常驻内存并运行于特权方式
- 单体内核/宏内核
- 内核实现操作系统的所有基本功能(包括调度、文件系统、连网、设备驱动程序、内存管理等等)
- 一般用一个进程实现,内核代码共享同一个地址空间,每一模块可以调用任何其他模块和使用内核的所有核心数据
- 效率高,但难以修改和扩充
- 例子:Unix、Linux、Android(基于Linux)、D操作系统、Windows9x、Mac操作系统8.6以下
- 微内核:
- 内核只实现最基本的功能(包括地址空间、进程间通信、和基本调度)
- 更多的功能代码组织为多个进程,各自独立使用自己的地址空间,允许与非特权方式
- 客户/服务器模式,设计简单灵活,适用于嵌入式与分布式环境,但效率较低
- 例子:Mach、QNX
- 混合内核
- 微内核和宏内核的结合(可算作单体内核中的一类)
- 具有微内核结构,按宏内核实现
- 例子:WindowsNT(2000/XP/Vista/7/8)、BDS、XNU
- 不同内核类型操作系统的结构比较
![image]()
- 内核
- 多线程
- 进程
- 分派系统资源(CPU除外)的最小单位
- 由一个或多个线程实现其功能
- 线程
- 分派CPU的最小工作单位
- 多线程技术
- 把执行一个应用程序的进程划分为可以同时运行的多个线程
- 适用于执行许多本质上独立、不需要串行任务的应用程序
- 常用于基于C/S模式的服务器、如Web服务器、网络数据库服务器等
- 进程
- 对称多处理(SMP)
- 一个计算机
- 多个CPU
- 共享同一个主存和I/O设备
- 所有CPU都可以执行相同的功能
- 对称多处理的操作系统
- 可以调度进程和线程到任一个CPU
- 对称多处理的优势
- 性能
- 可靠性
- 增量扩展
- 可扩展性
- 分布式
- 分布式操作系统
- 分布式硬件环境(多个计算机,如机群)
- 提供统一的资源管理(单一主/辅存空间、一致访问方法)
- 例:分布式文件系统
- 分布式操作系统
- 面向对象设计
- 现代操作系统设计的一个主要方法
- 为小内核系统提供模块扩展性
- 方便分布式工具和分布式操作系统的开发
1.5多处理器和多核的操作系统设计考虑
- SMP的操作系统考虑
- SMP系统中的内核可在任意一个处理器上运行
- 一般每个处理器都从可用进程或线程池中进行自我调度
- SMP使操作系统复杂化,必须处理同时在执行的操作系统多个部分的资源共享与配套操作
- 关键设计问题:同时并发的进程和线程、调度、同步、内存管理、可靠性与容错度
- 多核的操作系统考虑
- 包括SMP的所有问题
- 多核出现的新问题:潜在的并行规模——单一芯片上的核数、共享与专用高速缓存的容量都在不断增加,我们现在已进入众核(many-core)时代
- 众核的多核系统的设计挑战——高效利用多核处理能力、聪明地有效管理丰富的片上(on-chip)资源
- 应用程序内的并行——将应用程序细分成多个可并行执行的任务,用多进程或多线程来执行
- 虚拟机途径——用多个虚拟机在各别的核上运行多个应用程序

















浙公网安备 33010602011771号