操作系统0-绪论
绪论
操作系统
操作系统:控制应用程序执行的程序,是应用程序和硬件之间的接口;
本课程默认单核单CPU;
操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的 **程序的集合 **;
- 内存管理;
- 处理机管理;
- 作业管理;
- I/O设备管理;
- 文件管理;
操作系统的设计目标
- 便利性:使计算机易于使用;
- 有效性:允许以更有效的方式使用计算机资源;
- 扩展能力:不妨碍服务的情况下,有效的开发测试和引进新功能;
操作系统的位置
作为用户/计算机接口
操作系统的服务
- 程序开发:提供一系列工具和服务(如编辑器和调试器)
- 程序运行:为用户处理调度问题,如加载到内存、初始化I/O 设备等
- I/O 设备访问:提供统一接口,隐藏具体的 I/O 操作指令
- 文件访问控制:屏蔽存储介质细节
- 系统访问:提供接口,防止未授权访问行为
- 错误检测和响应:软、硬件错误
- 日志:收集资源的利用率信息、监控性能特性
操作系统:资源管理者
- 资源管理者:控制数据的移动,存储和管理;
- 控制机制的特殊性:os同为一种程序,但是会转交控制权,必须依赖处理器才能恢复控制;
操作系统的发展过程
硬件升级+新设备出现+错误修复
串行处理
- 无操作系统;
- 操控控制台(显示灯,触发器,输入设备,打印机…)运行程序;
- 程序通过输入设备载入计算机;
- 用户按顺序访问计算机;
- 调度慢,启动时间长;
简单批处理
- 采用监控程序:对一批作业自动处理,内存中只能存在一道作业,作业自动续接,内存保护,定时器防止作业独占系统,拥有特权指令,允许中断;
- 处理器常处于空闲状态(I/O设备速度比处理器慢许多);
- 拥有内核模式和用户模式
多批道处理系统
- 内存存放多个作业;
- 多个作业并发运行(并发:在某一时间切片内有多个作业运行,但某一时刻只有一个作业),可以显著提高系统资源的利用率;
- 作业调度系统负责作业的调度;
- 硬件支持:I/O中断,直接存储器访问;
- 多道性,调度性,无序性,无交互能力;
分时系统
- 采用多道程序处理多个作业,多个用户共享处理器,多个用户通过不同的终端同时访问系统;
- 多路性,独立性,及时性,交互性;
实时系统
系统能够(及时 即时 )响应外部事件请求 在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 软实时系统:各个任务运行得越快越好,并不要求限定某一任务必须在多长时间内完成。
- 硬实时系统:各任务不仅要执行无误而且要做到准时。
- 实时性、可靠性、多路性、独立性、交互性;
操作系统的主要功能
进程
进程:一个正在 执行 的程序,计算机中正在 运行 的程序的一个实例,可分配给处理器并由处理器 执行 的一个实体;
- 一段可执行的程序
- 程序所需要的相关数据(变量、工作空间、缓冲区等)
- 程序的执行上下文(进程状态):操作系统用来 管理和控制进程所需的所有数据
设计协调不同活动的系统软件非常困难,为了解决上述问题,需要一种系统级的方法来监控和控制处理器上各种程序的执行;
以下是可能出现的问题:
- 不正确 的同步
- 失败的互斥
- 不确定的程序操作
- 死锁
下图是一种典型的进程实现方法:
内存管理
操作系统进行存储管理的任务如下:
- 进程隔离:每个进程拥有独立的地址空间,互不干扰;
- 自动分配和管理:动态分配,对程序员透明;
- 支持模块化:动态加载,销毁程序员定义的模块;
- 保护和访问控制:一个程序的存储空间不能被其他程序任意访问;
- 永久存储:关机后依然存储信息;
操作系统的存储管理由 文件系统和 虚拟内存 实现;
文件系统
文件是一个有名称的对象,是访问控制和保护的基本单元;
文件系统实现了长期存储;
虚拟内存
内存:一系列长度固定的帧组成,每个帧的大小与页面大小相同。对需要执行的程序,它的所有或部分页面必须在内存中;
磁盘:辅存(磁盘)可以容纳很多长度固定的页。用户程序由很多页组成,所有程序和操作系统的页都以文件的形式保存在磁盘上。
- 程序以 逻辑方式 访问存储器;
- 多作业同驻留内存;
- 每个作业部分驻留(主要);
- 换入,换出机制;
虚拟内存寻址如下:
信息保护和安全
操作系统的典型安全问题:
- 可用性:保护系统不被中断运行
- 保密性:保证用户不能读取未授权访问的数据
- 数据完整性:保护数据不被未授权修改
- 可靠性:涉及用户身份的正确认证和消息或数据的合法性
调度和资源管理
操作系统的一个关键任务是管理各种可用资源(如内存空间、I/O设备和处理器等),并调度各种活动进程使用这些资源
- 公平性:所有参与竞争某一特定资源的进程都能几乎相等且公平地访问资源
- 有差别的响应性:区分进程类型且可动态调整
- 有效性:最大化吞吐量(并发)和最小化响应时间,需要找到平衡点以折中处理矛盾需求
操作系统的目标和功能
处理机管理
处理机管理的主要任务是对处理机进行分配,并对其运行进行有
效的控制和管理;在多道程序环境下,处理机的分配和运行都是以进程为基本单位,因而对处理机的管理可归结为对进程的管理;
- 进程控制:为作业创建进程,撤销已结束的进程,以及控制进程在运行过程中的状态转换;
- 进程同步:对诸进程的运行进行协调,包括进程互斥与进程同步
- 进程通信:实现相互合作进程之间的信息交换,包括直接通信与间接通信;
- 调度:按照一定的算法对作业与进程进行调度。
存储器管理
存储器管理的主要任务是为多道程序的运行提供良好的环境,方
便用户使用存储器,提高存储器的利用率,以及从逻辑上来扩充
内存。- 内存分配:为每道作业分配内存空间,使它们“各得其所”,提高存储器利用率,减少不可用的内存空间。
- 内存保护:确保每道用户程序都在自己的内存空间中运行,互不干扰;
- 地址映射:将地址空间中的逻辑地址转换为内存空间中对应的物理地址;
- 内存扩充:借助虚拟技术,从逻辑上扩充内存容量;
设备管理
设备管理的主要任务,是完成用户提出的I/O请求,为用户分配
I/O设备;提高CPU和I/O设备利用率;提高I/O速度以及方便用户
使用I/O设备;- 缓冲管理:管理好各种类型的缓冲区,以缓和CPU与I/O速度不匹配的矛盾,提高CPU和I/O设备的利用率。
- 设备分配:为用户分配其所需的设备。
- 设备处理又称设备驱动程序,实现CPU与设备控制器之间的通信。
文件管理
文件管理的主要任务,是完成实现文件的虚拟存取和高速存取,
方便用户访问文件、保存文件并维护其内容的完整性。- 文件存储空间的管理:为每个文件分配必要的外存空间,提高外存的利用率,并能有助于提高文件系统的运行速度。
- 目录管理:为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现方便的按名存取。
- 文件的读/写管理和保护
命令接口
为了方便用户对计算机系统的使用与编程,操作系统向用户提供
了用户与操作系统的接口,简称用户接口- 命令接口:
- 用户利用这些操作命令来组织和控制作业的执行
- 按作业控制方式的不同,可以将命令接口分为联机命令
接口和脱机命令接口
- 程序接口
- 程序接口由一组系统调用命令组成
- 这组系统调用命令向系统提出各种服务请求,如使用各种外部设备,进行有关磁盘文件的操作,申请分配和收
回内存以及其他各种控制要求。
- 命令接口:
操作系统的基本特征
并发性
- 在多道程序环境下,同一时刻只能有一条指令执行;
- 但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的;
- 可以让CPU、I/O设备并行工作,提高资源利用率;
共享性
- 系统中的资源可供内存中多个并发执行的进程共同使用
- 临界资源:在一段时间内,只允许一个进程访问,必须互斥访问共享,比如打印机
- 非临界资源:在一段时间内,允许多个进程访问,允许同时访问共享,比如磁盘
虚拟性
- 通过某种技术把一个物理实体变为若干个逻辑上的对应物
- 时分复用:虚拟处理机,虚拟设备
- 空分复用:虚拟磁盘,虚拟内存
异步性
- 多道程序环境下,程序执行过程是异步的,这意味着何时执行,执行顺序,完成运行时间都将带来不确定性
- 不确定性不是指程序的执行结果
操作系统的体系结构
- 无结构
- 存在于早期的操作系统,侧重于功能实现和效率提高;
- 难以调试与维护,扩展性差;
- 模块化结构
- 按功能划分若干个模块,模块之间通过接口交互;
- 衡量标准:内聚性,耦合度;
- OS设计正确性高,易于理解和维护;
- 接口间调用关系变得复杂可能导致耦合度降低,模块之间存在复杂的依赖关系
- 分层式结构
- 按功能图的调用顺序等原则划分为若干层;每层只能使用其下层提供的服务;每层对其上层隐藏其下层的存在;
- 易于保证系统的正确性,易于维护理解和维护,易于扩充;
- 微内核结构
- 机制,策略分离:基于优先级的进程调度中,选择进程,为之分配处理机,属于机制;为每个进程设置优先级属于策略;
- 微内核基本功能:进程管理,低级存储器管理,中断和陷入处理;
- 优点:提高了可扩展性,可靠性,可移植性,提供了分布式系统的支持;
- 缺点:运行效率有所降低,因为消息传递机制和模式切换会带来开销;