计算机操作系统-汤小丹-慕课版-第一章
计算机操作系统 汤小丹 慕课版 第一章
章一:操作系统引论
- 操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,其主要作用是管理硬件设备,提高它们的利用率和系统吞吐量,并为用户和应用程序提供一个简单接口,以便用户和应用程序使用硬件设备。
- 操作系统是一组能有效组织和管理计算机硬件和软件资源,合理对各类作业进行调度,以及方便用户使用的程序的集合。
1.1操作系统的目标和作用
1.1.1操作系统的目标
- 方便性:直接通过OS命令操纵系统,方便用户
- 有效性:提高系统资源的利用率和系统的吞吐量
- 可扩充性:与OS结构有紧密联系
- 开放性:遵循开放系统互连OSI参考模型,软硬件彼此兼容
1.1.2操作系统的作用
用户与计算机硬件系统之间的接口
通过命令方式(UNIX、DOS)、系统调用方式(API)、图形/窗口方式(GUI)实现用户与OS通信
计算机系统资源的管理者
资源分类:处理机、存储器、I/O设备、信息(数据和程序)
实现对计算机资源的抽象
裸机(无硬件的计算机系统)+I/O软件 –> 扩充机器/虚拟机
1.1.3推动操作系统发展的主要动力
- 不断提高计算机资源的利用率
- 方便用户
- 器件的不断更新换代
- 计算机体系结构的不断发展
- 不断提出新的应用需求
1.2操作系统的发展过程
1.2.1未配置操作系统的计算机系统
- 人工操作方式
- 脱机I/O方式:I/O由外围机控制,脱离主机
1.2.2单道批处理系统
- 为实现对作业的连续处理,需要先把一批作业以脱机I/O方式输入到磁带上,并在系统中配上 监督程序, 在它的控制下,使这批作业能一个接一个地被连续处理。
- 目的:提高系统资源利用率和系统吞吐量
- 缺点:系统中资源得不到充分利用
1.2.3多批道处理系统
- 在多道程序设计系统中,用户提交的作业被先放在外存上,并排成一个队列,称为“后备队列”。然后由作业调度程序按照一定的算法,从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。
- 优点:1.资源利用率高 2.系统吞吐量大
- 缺点:1.平均周转时间长 2.无交互能力
多道批处理系统需要解决的问题
- 处理机争用问题
- 内存分配和保护问题
- I/O设备分配问题
- 文件的组织和管理问题
- 作业管理问题
- 用户与系统的接口问题
1.2.4分时系统
- 引入:满足人机交互和共享主机的需求。
- 关键问题: 用户与自己作业进行交互
- 及时接收:每个终端配置缓冲区
- 及时处理:作业直接进内存和轮转运行方式
- 特征:
- 多路性:允许将多台终端同时联接到一台主机上,并按分时原则服务
- 独立性:用户感觉是独占主机
- 及时性:用户请求很短时间内获得响应,通常1-3秒
- 交互性:用户通过终端和系统进行广泛的人机对话
1.2.5实时系统
指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 实时系统的类型:
- 工业(武器)控制系统:火炮的自动控制系统、飞机的自动驾驶系统、导弹的制导系统
- 信息查询系统:飞机或火车的订票系统
- 多媒体系统:播放视频、音频等
- 嵌入式系统:芯片嵌入到仪器和设备中
- 实时任务类型
- 周期性实时任务和非周期性实时任务
- 硬实时任务和软实时任务
(1)硬实时系统:必须在绝对严格的规定时间内完成处理。工业控制和武器控制
(2)软实时系统:能接受偶尔违反时间规定。信息查询系统和多媒体系统
- 实时系统与分时系统比较
- 多路性:信息查询和分时系统为多个终端用户服务;实时系统周期性对多路现场信息进行采集,并对多个对象或多个执行机构进行控制
- 独立性:信息查询系统中,每个终端用户与系统彼此独立,互不干扰;实时控制系统中,对信息的采集和对对象的控制,彼此互不干扰
- 及时性(实时快)
- 交互性:信息查询限于人访问特定专用服务程序;分时系统向终端用户提供数据处理、资源共享等服务;多媒体系统限于用户发送特定指令,系统立即相应
- 可靠性(实时高)
1.2.6微机操作系统
微机OS按运行方式分类:
- 单用户单任务OS: CP/M、MS-DOS
2.单用户多任务OS:早期的WIN
3.多用户多任务OS:UNIX OS
1.2.7嵌入式操作系统
- 嵌入式系统
为某个特定功能而设计的系统,或是具有附加机制的系统,或是其他部分的计算机硬件与软件的结合体。存在实时限制(相应速度、测量精度、持续时间等)决定了软件操作的时限。
- 嵌入式OS的特点
- 系统内核小
- 系统精简
- 实时性高
- 具有可配性
1.2.8网络操作系统
在计算机网络环境下对网络资源进行管理和控制,实现数据通信及对网络资源的共享,为用户提供网络资源接口的一组软件和规程的集合。
- 特征:
- 硬件独立性
- 接口一致性
- 资源透明性
- 系统可靠性
- 执行并行性
- 功能:
- 单处理机OS的全部功能
- 支持数据通信、应用互操作、网络管理等功能
1.2.9分布式操作系统
- 分布式系统:
基于软件实现的一种多处理机系统,是多个处理机通过通信线路互联而成的松散耦合系统。
- 分布式系统的主要特征:
- 分布性
- 透明性
- 同一性
- 全局性
- 分布式OS功能:
- 单机OS的主要功能
- 通信管理功能
- 资源管理功能
- 进程管理功能
1.3操作系统的基本特征
1.3.1 并发
- 并行:(时间点)两个或多个事件在同一时刻发生
- 并发:(时间段)两个或多个事件在同一时间间隔内发生
- 进程:(没引入线程前)能独立运行并能作为资源分配对象的基本单位,是一个独立运行的实体。
1.3.2 共享
OS环境下的资源共享 / 资源复用:系统中的资源可供内存中多个并发执行的进程共同使用。
- 互斥共享方式(临时资源):仅当A进程访问完,才允许另一进程对该资源进行访问,如打印机、磁带机
- 同时共享方式:允许在一段时间内由多个进程 “同时”对资源进行访问。这里所说的“同时”往往是宏观上的;而在微观上,这些进程对资源的访问是交替进行的。
1.3.3 虚拟
- 时分复用技术
- 虚拟处理机技术:采用多道程序设计技术,将一台物理上的处理机虚拟为多台逻辑上的处理机
- 虚拟设备技术:利用时分复用技术,将一台物理上的I/O设备虚拟为多台逻辑上的I/O设备
- 空分复用技术:虚拟存储技术,在逻辑上扩大存储器容量
1.3.4 异步
进程异步性:进程以人们不可预知的速度向前推进
1.4操作系统的运行环境
1.4.1硬件支持
- 打开计算机电源或重启计算机以便开始工作时,计算机先运行一个位于计算机硬件的初始程序或引导程序,改引导呈程序必须定位OS内核并将其加载到内存中。
- OS的内核:指OS一直运行在计算机上的程序。与硬件紧密相关,常驻内存。
- CPU只能从内存加载指令,要执行的程序必须位于内存。CPU通过内存指令对指定的内存地址进行操作。
1.4.2操作系统内核
功能:
- 支撑功能
- 中断处理
- 时钟管理
- 原语操作
原语:由若干条指令组成,用于完成一定功能的一个过程。
- 资源管理功能
- 进程管理
- 存储器管理
- 设备管理
1.4.3处理机的双重工作模式
区分为OS所执行的任务和为用户所执行的任务
- 内核态(0):管态,系统态
- 用户态(1):目态
切换:
- 计算机系统执行用户程序时,系统处于用户态。用户程序通过系统调用请求OS服务时,系统必须从用户态切换到内核态。
- 存在系统引导时,硬件从内核态开始工作,OS接着加载,然后在用户态下执行用户程序。一旦有中断或陷阱,硬件会从用户态切换到内核态。
保护手段:
- 特权指令:内核态下运行的指令,访问范围不受限
- 非特权指令:用户态下运行的指令,对内存访问范围局限于用户空间。防止应用程序的运行异常对系统造成破坏。
1.4.4中断与异常
- 中断:硬件通过系统总线发送信号到CPU来来触发
- 异常(陷阱):由软件引起,或源于出错,源于用户程序的特定请求。
1.5操作系统的主要功能
1.5.1 处理机管理功能
- 进程控制:创建进程,撤销(终止)已结束进程,控制进程状态转换
- 进程同步:进程互斥方式和进程同步方式(常用信号量机制)
- 进程通信:直接通信和间接通信
- 调度:作业调度和进程调度
1.5.2 存储器管理功能
- 内存分配与回收
- 内存保护
- 地址映射
- 内存扩充:请求调入和置换功能
1.5.3设备管理功能
- 缓冲管理:缓冲区机制:①单缓冲区 ②双缓冲区 ③公用缓冲池
- 设备分配
- 设备处理(设备驱动)
1.5.4文件管理功能
- 文件存储空间管理:设置相应的数据结构
- 目录管理:按名存取
- 文件的读/写管理和保护
1.5.5接口管理功能
- 用户接口
- 联机用户接口:命令行方式CLL
- 脱机用户接口:批命令方式,使用作业控制语言JCL,将命令事先写在作业说明书上
- 用户图形接口GUI
- 程序接口:每个系统调用一个能完成特定功能的子程序
1.5.6现代操作系统的新功能
- 保障系统安全:认证、密码、访问控制、反病毒技术
- 支持用户通过联网获取服务:网络通信、资源管理、应用互操作
- 可处理多媒体技术:接纳控制功能、实时调度、存储多媒体文件
1.6操作系统的结构
1.6.1简单模块
早期OS是为数众多的一组过程的集合,内部既复杂、又混乱,是无结构的,又称整体系统结构和简单结构。例:MS-DOS系统
1.6.2模块化结构
- 模块接口法:将OS按其功能精细化分为若干个具有一定独立性和大小的模块,规定好各模块间接口
- 模块独立性:内聚性和耦合度
- 模块-接口法的优缺点
- 优点:①提高了OS设计的正确性、可理解性和易维护性 ②增强了OS的可适应性 ③加速了OS的开发过程
- 缺点:①在OS设计时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。 ②模块化结构设计中,各模块的设计齐头并进,无法寻找一个可靠的决定顺序,造成各种决定的“无序性”,这将使程序人员很难做到“设计中的每一步决定”都是建立在可靠的基础上。
- 设计OS采用可加载的内核模块,内核中有一组核心组件,如:UNIX系统,Windows系统。核心思想:内核提供核心服务,其他服务可在内核运行时动态实现。
1.6.3分层式结构
将一个OS分为若干层次,每层又由若干模块组成,各层之间只存在着单向的依赖关系,即高层仅依赖于紧邻它的底层。
- 优点:①易保证系统的正确性 ②可保证系统的易维护性和可扩展性
- 缺点:系统效率较低
1.6.4微内核结构
- 微内核的OS:
- 足够小的内核
- 基于C/S模式
- 采用策略与机制分离原则
- 采用面向对象技术
- 基本功能:
- 进程(线程)管理
- 低级存储器管理
- 中断和陷入处理
- 优点:
- 增强了系统可扩展性
- 增强了系统可靠性
- 增强了系统的可移植性
- 提供了对分布式系统的支持
- 融入了面向对象技术
存在问题:
运行效率有所降低,主要原因:在完成一次客户对OS请求的服务请求时,需要利用消息实现多次交互,以及进行用户/内核模式和上下文的多次切换。
1.6.5外核结构
- 基本思想:内核不提供传统OS中的进程、虚拟存储器等抽象事务,而是专注于物理资源的隔离(保护)与复用。
- 基于外核结构的OS中,一个非常小的内核负责保护系统资源,而硬件资源的管理指责则委托给应用程序。
1.7操作系统的调用
1.7.1系统调用的基本概念
- 系统调用提供了用户程序和OS内核之间的接口
- 目的:使应用程序可以通过系统调用来间接调用OS中的相关过程,进而取得相应的服务。
- 本质:应用程序请求OS内核完成某一功能时的一种过程调用
- 与一般过程调用的差别:
- 运行在不同的系统状态:一般的过程调用运行在内核态或用户态;系统调用运行在内核态
- 状态的切换:一般的过程调用不涉及2 ;系统调用需要通过软中断由用户态切为内核态
- 返回问题:抢占式(剥夺)调度方式 的系统中,被调用过程完成后,要对系统中所有要求运行的进程做优先级分析
- 嵌套调用:系统调用深度有限制,一般的过程调用无
1.7.2系统调用的类型
- 进程控制类系统调用:
- 创建和终止进程
- 获得和设置进程属性
- 等待某事件出现
- 文件操纵类系统调用
- 创建和删除文件
- 打开和关闭文件
- 读和写文件
- 进程通信类系统调用
- 设备管理类系统调用
- 信息维护系统调用
1.8本章小结
- 本章介绍OS目标、作用、发展过程、基本特征、运行环境、主要功能、结构以及系统调用等内容。
参考教材:汤小丹;王红玲;姜华;汤子瀛,计算机操作系统(慕课版)