Transcript 第1章

第一章 操作系统引论
教材:
《计算机操作系统(第三版)》
汤小丹、汤子瀛等编
西安电子科大出版社
参考教材:
《操作系统概念(第六版)》
Abraham Baer Galvin, Greg Gagne著,
郑扣根译
高等教育出版社
第一章 操作系统引论
第一章
引论
1.1
操作系统的目标和作用
1.2
操作系统的发展过程
1.3
操作系统的基本特性
1.4
操作系统的主要功能
1.5
操作系统的结构设计
第一章 操作系统引论
• 计算机系统由软硬件组成,
• 操作系统是用户和硬件系统之间的接口
• 其他的系统软件和应用软件都必须依赖
它的支持。
第一章 操作系统引论
1.1 操作系统的目标和作用
1.1.1 操作系统的目标
目前存在着多种类型的OS,不同类型的OS,其
目标各有所侧重。通常的OS,有以下几个目标:
1. 方便性(机器语言难使用, OS可编译)
2. 有效性 (改善资源的利用率及提高系统呑吐量)
3. 可扩充性 (层次化和模块化使之可扩充)
4. 开放性 (遵循同一标准,软硬件兼容)
第一章 操作系统引论
1.1.2 操作系统的作用
1.OS作为用户与计算机硬件系统之间的接口:
OS处于用户与计算机硬件系统之间,
用户通过OS来使用计算机系统。
OS是一个系统软件,因而这种接口是软件接口。
第一章 操作系统引论
用
户
应用程序
系统调用
命令 图标、窗口
操作系统
计算机硬件
图 1-1 OS作为接口的示意图
第一章 操作系统引论
(1) 命令方式。这是指由OS提供了一组联机命令
(语言), 用户可通过键盘输入有关命令,来直接操纵
计算机系统。
(2) 系统调用方式。OS提供了一组系统调用,用户
可在自己的应用程序中通过相应的系统调用,来操纵
计算机。
(3) 图形、窗口方式。用户通过屏幕上的窗口和图
标来操纵计算机系统和运行自己的程序。
第一章 操作系统引论
2. OS作为计算机系统资源的管理者
计算机系统资源分为四类:处理器、存储器、 I/O
设备以及信息(数据和程序)。
•处理机管理, 用于分配和控制处理机;
•存储器管理,主要负责内存的分配与回收;
•I/O设备管理,负责I/O设备的分配与操纵;
•文件管理,负责文件的存取、共享和保护。
第一章 操作系统引论
3. OS用作扩充机器
•裸机:一台完全无软件的计算机系统。
•扩充机器或虚机器:覆盖了软件的机器。
•若在裸机上覆盖上一层I/O设备管理软件,可用来进行数据
输入和打印输出。
•若再覆盖上一层文件管理软件,可用来进行文件的存取。
•若再覆盖一层面向用户的窗口软件,则用户便可在窗口环
境下方便地使用计算机,形成一台功能更强的虚机器。
第一章 操作系统引论
1.1.3 推动操作系统发展的主要动力
1. 不断提高计算机资源利用率(批处理)
2. 方便用户( 分时系统)
3. 器件的不断更新换代 (8位-16位-32位)
4. 计算机体系结构的不断发展 (单CPU到多
CPU)
第一章 操作系统引论
1.2 操作系统的发展过程
1.2.1 无操作系统的计算机系统
1. 人工操作方式
•穿孔--输入计算机--运行--输出结果
这种人工操作方式有以下两方面的缺点:
(1) 用户独占全机。
(2) CPU等待人工操作。
第一章 操作系统引论
2. 脱机输入/输出(Off-Line I/O)方式
这种脱机I/O方式的主要优点如下:
(1) 减少了CPU的空闲时间。
(2) 提高I/O速度。
输入设备
磁盘
-
图
1
2
脱
机
外围机
主机
I/O
示
意
图
外围机
输出设备
第一章 操作系统引论
1.2.2 单道批处理系统
1. 单道批处理系统(Simple Batch Processing System)的处理过程
监
督
程
序
调
度
一
批
程
序
开始
还有下
一个作业?
是
把下一个作业的源
程序转换为目标程
序
否
停止
是
源程序
有错吗?
否
运
行
目标程序
装
配
目标程序
图 1-3 单道批处理系统的处理流程
第一章 操作系统引论
2. 单道批处理系统的特征
单道批处理系统并非是现在人们所理解的OS。但比
起人工操作方式的系统已有很大进步。
该系统的主要特征如下:
(1) 自动性。
(2) 顺序性。
(3) 单道性。
第一章 操作系统引论
1.2.3 多道批处理系统
1. 多道程序设计的基本概念
•用户所提交的作业都先存放在外存上并排成一个队列,
称为“后备队列”;
•然后,由作业调度程序按一定的算法从后备队列中选择
若干个作业调入内存,使它们共享CPU和系统中的各种资
源。
第一章 操作系统引论
多道程序设计技术的好处:
(1) 提高CPU的利用率。
•内存中若干道程序交替地运行。
• 当运行的程序因I/O而暂停执行时,系统可调度另
一道程序运行。
•保持了CPU处于忙碌状态。
第一章 操作系统引论
用户程序
I/O 中断请求
启动 I/O
监督程序
I/O 中断请求
I/O 完成
启动 I/O
结束中断
结束中断
I/O 操作
t1
t2
t3
t4
I/O 完成
t5 t6
t7 t8
(a) 单道程序运行情况
程序A I/O 请求
³ÌÐò A
³ÌÐò B
³ÌÐò C
³ÌÐò D
程序A I/O 完成 程序A再被调度
³ÌÐò A
A完成
程序B I/O 请求
³ÌÐò B
程序C I/O 请求
³ÌÐò C
程序B I/O 完成
C I/O 完成 C ÔÙ±»µ÷¶È
程序D I/O 请求
³ÌÐò D
µ÷¶È³ÌÐò
(b) ËĵÀ³ÌÐòÔËÐÐÇ é¿ö
图 1-4 单道和多道程序运行情况
第一章 操作系统引论
(2) 可提高内存和I/O设备利用率。
(3) 增加系统吞吐量。
第一章 操作系统引论
2. 多道批处理系统的特征
(1) 多道性。
(2) 无序性。
(3) 调度性。 (作业调度,进程调度)
第一章 操作系统引论
3. 多道批处理系统的优缺点
(1) 资源利用率高。
(2) 系统吞吐量大。
(3) 平均周转时间长。
(4) 无交互能力。
第一章 操作系统引论
4. 多道批处理系统需要解决的问题
(1) 处理机管理问题(CPU分配及提高利用率)
(2) 内存管理问题。 (内存分配和安全)
(3) I/O设备管理问题。(方便使用和利用率)
(4) 文件管理问题。(文件的组织,安全,一致)
(5) 作业管理问题。(组织作业,计算型,IO型)
第一章 操作系统引论
1.2.4 分时系统
1. 分时系统(Time-Sharing System)的产生
•“用户的需求”是分时系统发展的动力。
•用户的需求具体表现在以下几个方面:
(1) 人—机交互。(如调试程序)
(2) 共享主机。
(3) 便于用户上机。 (终端直接连入)
第一章 操作系统引论
2. 分时系统实现中的关键问题
(1) 及时接收。(多路连接,缓冲区)
(2) 及时处理。(时间片)
第一章 操作系统引论
3. 分时系统的特征
(1) 多路性。(宏观上共享,微观上轮转)
(2) 独立性。 (一个用户一个终端)
(3) 及时性。 (每个用户能获及时响应)
(4) 交互性。
第一章 操作系统引论
1.2.5 实时系统
实时系统(Real-Time System)是指系统能及时(或即时)
响应外部事件的请求,在规定的时间内完成对该事件的处理
1. 应用需求
(1) 实时控制。(如生产控制、导弹制导、
飞机自动驾驶)
(2) 实时信息处理。(如:火车票订票系统)
第一章 操作系统引论
根据对截止时间的要求来划分
(1) 硬实时任务。系统必须满足任务对截止时间的要
求,否则可能出现难以预测的结果。
(2) 软实时任务。它也联系着一个截止时间, 但并
不严格,若偶尔错过了任务的截止时间, 对系统产生的
影响也不会太大。
第一章 操作系统引论
1.3 操作系统的特征
1.3.1 并发(Concurrence)
并行性是指两个或多个事件在同一时刻发生;
多处理机上,多个程序被分配到多个处理机上,实现并
行执行
并发性是指两个或多个事件在同一时间间隔内发生。
单处理器上,宏观上有多个程序在同时运行,微观上只
能分时地交替执行
第一章 操作系统引论
1.3.2 共享(Sharing)
共享是指系统中的资源可供内存中多个并发执行的
进程(线程)共同使用。
1. 互斥共享方式
临界资源或独占资源:在一段时间内只允许一个进
程访问的资源(如打印机、磁带机)
2. 同时访问方式
允许多个进程“同时”对它们进行访问。宏观上同
时,在微观上,交替访问。(磁盘、文件)
第一章 操作系统引论
并发和共享关系:
一方面,有并发才有共享
另一方面,若系统不能协调好诸进程对共享资源的
访问,也必然影响到程序并发执行的程度,甚至根本无
法并发执行。
第一章 操作系统引论
1.3.3 虚拟(Virtual)
“虚拟”,是指通过某种技术把一个物理实体变为
若干个逻辑上的对应物。
虚拟处理器:处理机同时为多个用户服务,使每个终端
用户都认为是有一个CPU在专门为他服务。
虚拟存储器:通过虚拟存储器技术,用户所感觉到的内
存容量比实际内存容量大得多。
虚拟设备:通过虚拟设备技术,将一台物理I/O设备虚
拟为多台逻辑上的I/O设备,并允许每个用户占用一台
逻辑上的I/O设备。(如打印机)
第一章 操作系统引论
1.3.4 异步性(Asynchronism)
多道作业并发运行,何时暂停、何时完成无法预知,
但同一环境下运行结果是一致的。
(无法预知的原因:临界资源、IO型和计算型等)
第一章 操作系统引论
1.4 操作系统的主要功能
1.4.1 处理机管理功能
1. 进程控制
•为作业创建进程、撤消已结束的进程,以及控制进程
在运行过程中的状态转换。
• 在现代OS中,还应具有为一个进程创建若干个线程的
功能和撤消(终止)已完成任务的线程的功能。
第一章 操作系统引论
2. 进程同步
•
进程同步的主要任务是协调多个进程(含线程)的运行。
•
两种协调方式:
① 进程互斥:是指诸进程(线程)互斥地访问临界资源;
② 进程同步:同步机构协调合作完成共同任务的进
程(线程)的执行次序。
•
最简单进程互斥的机制,是为每一个临界资源配置一把
锁W,当锁打开时,允许访问;而当锁关上时,则禁止访问。
第一章 操作系统引论
3. 进程通信
进程通信:实现在相互合作的进程之间的信息交换。
如,有三个相互合作的进程,它们是输入进程、计算进程和打印进程)
直接通信:处于同一计算机系统相互合作的进程(线程)间
的通信方式。
源进程将消息(message)挂到目标进程的消息队列上,目标
进程从其消息队列中取出消息。
第一章 操作系统引论
4. 调度
在后备队列上等待的每个作业,通常都要经过调度才能
执行。
作业调度,是从后备队列中按照一定的算法,选择出若干
个作业,为它们分配其必需的资源(首先是分配内存)。
进程调度,是从进程的就绪队列中选出一新进程,把处理
机分配给它,并为它设置运行现场, 使进程投入执行。
在多线程OS中,通常是把线程作为独立运行和分配处理
机的基本单位。
第一章 操作系统引论
1.4.2 存储器管理功能
1. 内存分配
静态分配:内存空间是在作业装入时确定的,不允许增加
或“移动”;
动态分配:内存空间,也是在装入时确定的,但允许申请
附加内存空间 和也允许“移动”。
第一章 操作系统引论
实现内存分配应具有的结构和功能:
① 内存分配数据结构:用于记录内存空间的使用
情况,作为内存分配的依据;
② 内存分配功能:系统按照一定的内存分配算法,
为用户程序分配内存空间;
③ 内存回收功能:系统对于用户不再需要的内存,
通过用户的释放请求,去完成系统的回收功能。
第一章 操作系统引论
2. 内存保护
内存保护:确保每道用户程序都只在自己的内存空间内
运行,彼此互不干扰。
一种比较简单的内存保护机制:设置两个界限寄存器。
须对访问的地址进行越界检查,越界则停止程序执行。
第一章 操作系统引论
3. 地址映射
“逻辑地址”或“相对地址”:一般应用程序地址都是从
“0”开始的,程序中的其它地址都是相对于起始地址计算
的; 这些地址称为“逻辑地址”或“相对地址”。
“物理地址”:由内存中的一系列单元所限定的地址范围
称为“内存空间”, 其中的地址称为“物理地址”。
地址映射功能:将地址空间中的 逻辑地址 转换为内存空间
中与之对应的物理地址。该功能应在硬件的支持下完成。
第一章 操作系统引论
4. 内存扩充(虚拟存储技术)
从逻辑上去扩充内存容量
内存扩充的功能:
(1) 请求调入功能。 装入部分程序和数据便可运行,需
要时再请求调入
(2) 置换功能。内存不够时,需调出暂时不用的程序,
将需要的程序调入内存
第一章 操作系统引论
1.4.3 设备管理功能
设备管理的主要任务
•响应用户进程提出的I/O请求;
• 为用户进程分配其所需的I/O设备;
•提高CPU和I/O设备的利用率;
•提高I/O速度;
•方便用户使用I/O设备。
第一章 操作系统引论
1. 缓冲管理
缓和CPU和I/O设备速度不匹配的矛盾,
提高CPU的利用率,进而提高系统吞吐量。
单缓冲机制、双缓冲机制,公用缓冲池机制。
第一章 操作系统引论
2. 设备分配
设备分配:根据用户进程的I/O请求、系统的现有资源情况
以及按照某种设备分配策略,为之分配其所需的设备。
设备控制表、控制器控制表等数据结构,用于记录设备及
控制器的标识符和状态。
设备使用完后,还应立即由系统回收。
第一章 操作系统引论
3. 设备处理
设备处理程序又称为设备驱动程序:用于实现CPU和设
备控制器之间的通信
处理过程是:
•设备处理程序首先检查I/O请求的合法性,
•了解设备状态。
•向设备控制器发出I/O命令,
•启动I/O设备去完成指定的I/O操作。
第一章 操作系统引论
1.4.4 文件管理功能
1. 文件存储空间的管理
由文件系统对文件及文件的存储空间,实施统一的管理。
主要任务:为每个文件分配必要的外存空间,提高外存的利用
率,并提高文件系统的运行速度。
系统还应具有对存储空间进行分配和回收的功能。
采用离散分配方式,并以块为基本分配单位。盘块的大小
通常为512 B~8 KB。
第一章 操作系统引论
2. 目录管理
目录管理:为每个文件建立其目录项,并对众多的目录
项加以有效的组织,以实现方便的按名存取。
目录管理还应能实现文件共享,能提供快速的目录查询
手段,以提高对文件的检索速度。
第一章 操作系统引论
3. 文件的读/写管理和保护
(1) 文件的读/写管理。该功能是根据用户的请求,从外
存中读取数据;或将数据写入外存。
文件名--目录--获得文件在外存中的位置--利用
文件读(写)指针,对文件进行读(写)。
(2) 文件保护。
① 防止未经核准的用户存取文件;
② 防止冒名顶替存取文件;
③ 防止以不正确的方式使用文件。
第一章 操作系统引论
1.4.5 用户接口
1. 命令接口
(1) 联机用户接口。这是为联机用户提供的,它由一组
键盘操作命令及命令解释程序所组成。
用户可通过先后键入不同命令的方式,来实现对作业的
控制,直至作业完成。
(2) 脱机用户接口。该接口是为批处理作业的用户提供
的,故也称为批处理用户接口。
第一章 操作系统引论
2. 程序接口
由一组系统调用组成,每一个系统调用都是一个能完
成特定功能的子程序,每当应用程序要求OS提供某种服务
(功能)时,便调用具有相应功能的系统调用。
•早期-用汇编语言编写系统调用;
•在高级语言以及C语言中提供了库函数;
•在近几年的操作系统中用C语言编制的程序中,可直
接使用系统调用。
第一章 操作系统引论
3. 图形接口
图形用户接口:采用了图形化的操作界面,和各种图标(icon)
来将系统的各项功能、各种应用程序和文件,直观、逼真
地表示出来。
用户可用鼠标或通过菜单和对话框,来完成对应用程序和
文件的操作。
第一章 操作系统引论
1.5 操作系统的结构设计
1. 无结构操作系统
在早期开发操作系统时,设计者只是把他的注意力放
在功能的实现和获得高的效率上,缺乏首尾一致的设计思
想。
各过程之间相互调用,系统庞大又杂乱,调试困难;
另一方面也使程序难以阅读和理解,难维护。
第一章 操作系统引论
2. 模块化OS结构
1) 模块化结构
将OS按其功能划分为若干个具有一定独立性和大小的
模块。
每个模块具有某方面的管理功能,如进程管理模块,各
模块之间能通过接口实现交互;
然后再进一步将各模块细分为若干个具有一定管理功能
的子模块。
第一章 操作系统引论
操作系统
模块
进程管理
存储器管理
文件管理
子模块
进程控制
…
进程调度
内存分配
内存保护
图 1-5 模块化操作系统结构
磁盘管理
目录管理
第一章 操作系统引论
2) 模块化OS的优点
•
提高了OS设计的正确性、 可理解性和可维护性。
•
增强了OS的可适应性。
•
加速了OS的开发过程。
3)缺点:
•
对模块的划分及对接口的规定并不精确,这将使在把这些
模块装配成OS时发生困难;
•
从功能观点来划分模块时,未能将共享资源和独占资源加
以区别;
第一章 操作系统引论
3. 分层式OS结构
1) 有序分层的基本概念
从物理机器上面先添加一层具有一定功能的软件A1
A2,……,最后构成一个能满足需要的OS。
分层式结构设计的基本原则是:每一层都仅使用
其底层所提供的功能和服务,这样可使系统的调试和
验证都变得容易。
第一章 操作系统引论
2) 层次的设置
(1) 程序嵌套。 通常OS的每个功能的实现, 并非是
只用一个程序便能完成的,而是要经由若干个软件层才
有可能完成。
例如,作业调度模块须调用进程控制模块,作业调度
模块又应在更高层。
第一章 操作系统引论
(2) 运行频率。在分层结构中,各层次软件的运行
速度是不同的,随着层次的增高,其相应软件的运行速
度就随之下降。
应该将那些经常活跃的模块放在最接近硬件的A1层,
如时钟管理、进程调度,通常都放在A1层。
第一章 操作系统引论
(3) 公用模块。应把供多种资源管理程序调用的公用
模块, 设置在最低层。
(4) 用户接口。 “用户与OS的接口” 应设置在OS
的最高层,直接提供给用户使用。