一、基础知识
1.操作系统的基本概念
1)操作系统的概念:
-
控制和管理整个计算机系统的硬件与软件资源
-
合理地组织、调度计算机的工作与资源
-
为用户和其他软件方便提供方便接口与环境的程序集合
2)操作系统的特征:
①并发
-
两个或多个事件在同一时间间隔内发生
-
使得系统具有处理和调度多个程序同时指向的能力
-
操作系统的并发是通过分时实现的
-
注意:并发是指在一个时间段,并行是在同一时刻,并行是指系统同时执行或操作(硬件支持:多流水线或者多处理机)
②共享
- 互斥共享方式
- 例如打印机、磁带,同一时刻只能供一个进程对资源进行访问
- 这种资源称作:临界资源或者独占资源
- 同时访问方式
- 一段时间内允许多个进程对资源进行访问
- 典型代表:磁盘设备 重入码编写的文件
③虚拟
- 一个物理上的实体变为若干逻辑上的对应物,这种技术也被称为虚拟技术
- 虚拟处理器:采用多道程序开发的方式,让每个终端用户感觉到有多个处理器 (时分复用技术)
- 虚拟存储器:将物理存储变为虚拟存储器,逻辑上扩充存储器用量 (空分复用技术)
- 也可以将一台IO设备虚拟为多态逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备
④异步
- 多道程序走走停停,进程以不可预知的速度向前推进
3)操作系统的目标和功能
①管理功能
- 处理机管理
- 管理处理机的分配与运行,解决冲突问题,可以理解为对进程的管理
- 进程管理:进程控制 进程同步 进程通信 死锁处理 处理机调度
- 存储器管理
- 为了提高多道程序运行效率,方便用户使用
- 内存分配、地址映射、内存保护、共享和内存扩充
- 文件管理
- 操作系统负责管理文件的系统称为文件系统
- 文件存储空间的管理 目录管理 文件读写管理和保护
- 设备管理
- 完成用户的IO请求,方便用户使用设备,提高设备的利用率
- 缓冲管理 设备分配 设备处理 虚拟设备
②接口功能
- 命令接口
- 联机控制方式:交互式命令接口,适用于分时或者实时系统,就像人与机器对话一样
- 脱机控制方式:又称批处理系统,提交一组作业,系统进行处理,用户不能干预作业的运行
- 程序接口
- 有一组系统调用命令组成(也称作系统调用或者广义指令)
- 例如:图形用户界面(GUI)
③操作系统用作扩充机器
- 操作系统提供了资源管理功能和方便用户使用的各种服务功能,将机器改造为功能更强的机器
- 覆盖了软件的机器称为扩充机器,又称之为虚拟机。
④封装思想
- 操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可。
2.操作系统的发展与分类
1)手工操作阶段
- 程序的装入、运行、结果的输出都需要人为的干预
- 缺点
- 资源利用率低
- CPU利用不充分
2)批处理阶段
为了解决人机矛盾以及CPU和I/O设备之间速度不匹配的矛盾
①单道批处理
- 内存中始终保存一道作业,作业成批进行
- 特点
- 自动性:一批作业自动执行不需要人工干预
- 顺序性:各道作业依次执行
- 单道性:仅有一道程序执行
- 优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
- 缺点
- 高速CPU等待I/O设备的完成
- 内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序
②多道批处理
- 允许多个程序在CPU中交替运行,程序共享各种硬件和软件资源
- 特点
- 多道:计算机中同时存放多道相互独立的程序
- 宏观上并行:多道程序都会开始运行,但都没有运行完毕
- 微观上串行:多道程序轮流占有CPU,交替执行
- 优点
- 资源利用率高
- 多到程序并发执行,共享计算机资源
- CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大
- 缺点
- 设计复杂,要考虑各种资源调度问题
- 响应时间过长,没有人机交互功能
3)分时操作系统
-
将处理器运行时间划分为时间片,将时间片分配给不同作业/用户从未占用处理机
-
特点
- 同时性:允许多个终端用户使用同一台计算机
- 交互性:方便进行人机对话,用户采用人机对话方式控制程序运行
- 独立性:多个用户彼此之间独立的操作,互不干扰
- 及时性:用户请求能再很短时间内获得相应
4)实时操作系统
- 保证在规定时间内完成某项任务
- 特点
- 及时性:规定时间内完成规定任务
- 可靠性:输出的结果正确,系统运行时确保稳定
5)分布式计算机系统
- 网络操作系统将多个计算机有机的结合在一起
- 任意两台计算机之间没有主从之分,互相交换信息,并行工作、协同完成
3.操作系统的运行环境
1)程序运行
程序运行的过程其实就是CPU执行一条一条的机器指令的过程
2)操作系统的运行机制
①CPU执行的两种性质程序
- 操作系统内核程序
- 用户自编程序
②内核
- 时钟管理:操作系统对用户提供标准时间,根据时钟对进程进行管理,实现进程切换
- 中断机制:初衷是为了提高多道程序运行环境中的CPU利用率,保护和恢复中断现场的信息,转移控制权到相关程序
- 原语
- 处于系统的最底层,最接近硬件
- 运行具有原子性,即只能一气呵成
- 系统控制的数据结构及处理
- 进程管理:进程状态管理、进程调度和分派、创建和撤销进程控制
- 存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序
- 设备管理:缓冲区管理,设备分配和回收
3)终端与异常
①为了进行核心态和用户态两种状态的切换,引入了中断机制
- 核心态可以执行用户态无法执行的特权指令
- 访管指令是在用户态使用,将用户态转换为核心态,所以访管指令不是特权指令
②“中断”是让操作系统内核夺回CPU使用权的唯一途径
③中断(外中断)
- 来自于CPU指令之外的事件发生
- I/O中断:输入输出已经完成
- 时钟中断:固定时间片已到,让处理机处理
④异常(内中断)
- 源自于CPU执行指令内部的事件
- 陷入指令:用户自行设置,执行陷入后,用户态转换为核心态
- 异常不能被屏蔽
⑤系统调用
- 用户在程序中调用操作系统提供的一些子功能
- 设备功能:完成设备的请求或者释放,设备启动等功能
- 文件管理:完成文件的读、写、创建以及删除功能
- 进程控制:完成进行的创建、撤销、阻塞以及唤醒功能
- 进程通信:完成进程之间的消息传递和信号传递功能
- 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及始址等功能
4)用户态与内核态
- 处于内核态时,说明此事正在运行的是内核程序,此时可以执行特权指令
- 处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令
- 别名:内核态=核心态=管态;用户态=目态
5)内核态、用户态的切换
- 内核态—>用户态:执行一条特权指令----修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权
- 用户态—>内核态:由“中断”引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权
4.大内核与微内核
1)大内核
- 将操作系统的主要功能模块进行集中,从而用以提供高性能的系统服务
- 优点:各个管理模块之间共享信息,能够有效利用相互之间的有效特性,所以有着巨大的性能优势
- 缺点:层次交互关系复杂,层次接口难以定义,层次之间界限模糊
2)微内核
-
背景:随着计算机体系结构的不断发展,操作系统提供的服务越来越多,接口形式越来越复杂
-
将内核中最基本的功能(如:进程管理)保留在内核,将不需要在核心态执行的功能转义到用户态执行,降低内核设计的复杂性
-
优点:
- 有效的分离内核与服务、服务与服务、使得他们之间的接口更加的清晰,维护的代价大大降低
- 各部分可以独立的优化和演进
-
缺点:性能问题;需要频繁的在核心态和用户态之间进行切换
二、课后习题
1.设计现代OS的主要目标是什么?
- 有效性
- 方便性
- 可扩充性
- 开放性
2.OS的作用可表现在哪几个方面?
- OS作为用户与计算机硬件系统之间的接口
- OS作为计算机系统资源的管理者
- OS实现了对计算机资源的抽象
3.为什么说操作系统实现了对计算机资源的抽象?
OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;
在第一层软件上再覆盖文件管理系统,实现了对硬件资源操作的第二层次抽象。
OS通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。
4.说明推动多道批处理系统形成和发展的主要动力是什么?
主要动力来源于四个方面的社会需求与技术发展
- 不断提高计算机资源的利用率
- 方便用户
- 器件的不断更新迭代
- 计算机体系结构的不断发展
5.何为脱机I/O和联机I/O?
脱机I/O是指事先将装有用户程序和数据的纸袋或卡片装入纸袋输入机或卡片机,在外围机的控制下,把纸袋或卡片上的数据或程序输入到磁带上。该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。
而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。
6.说明推动分时系统形成和发展的主要动力是什么?
拖动分时系统形成和发展的主要动力是更好地满足用户的需要。
主要表现在:CPU的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。
7.实现分时系统的关键问题是什么?应如何解决?
关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。
解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。针对及时处理问题,应使所有的用户作业都直接进入内存,并且为每个作业分配一个时间片,允许作业只在自己的时间片内允许,这样在不长的时间内,能使每个作业都运行一次。
8.为什么要引入实时OS?
实时操作系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。引入实时OS是为了满足应用的需求,更好地满足实时控制领域和实时信息处理领域的需要
9.什么是硬实时任务和软实时任务?举例说明
硬实时任务是指系统必须满足任务对截至时间的要求,否则可能出现难以预测的结果。
举例来说,运载火箭的控制等。
软实时任务是指它的截至时间并不严格,偶尔错过了任务的截止时间,对系统产生的影响不大。
举例:网页内容的更新、火车售票系统。
10.从交互性、及时性以及可靠性方面,将分时系统不实时系统进行比较。
- 及时性:实时信息处理系统对实时性的要求与分时系统类似,都是以人所能接受的等待时间来确定;而实时控制系统的及时性,是以控制对象所要求的开始截至时间或完成截止时间来确定的,一般为秒级到毫秒级,甚至有的要低于100微秒。
- 交互性:实时信息处理系统具有交互性,但人与系统的交互仅限于访问系统中某些特定的专用服务程序。不像分时系统那样能向终端用户提供数据和资源共享等服务。
- 可靠性:分时系统也要求系统可靠,但相比之下,实时系统则要求系统具有高度的可靠性。因为任务差错都可能带来巨大的经济损失,甚至是灾难性后果,所以在实时系统中,往往都采取了多级容错措施保障系统的安全性及数据的安全性。
11.OS有哪几大特征?其最基本的特征是什么?
并发性、共享性、虚拟性、异步性
最基本的特征是并发性
12.在多道程序技术的OS环境下的资源共享与一般情况下的资源共享有何不同?对独占资源应采取何种共享方式?
一般情况下的共享与操作系统下的共享其含义并不完全相同。前者只是说明某种资源能被大家使用,如图书馆中的图书能提供给大家借阅,但并未限定借阅者必须再同一时间(间隔)和同一地点阅读,又如,学校中的计算机机房供全校学生上机,或者说,全校学生共享该学校机房中的计算机设备,虽然所有班级的上级地点是相同的,但各班的上级时间并不相同。对于这样的资源共享方式,只要通过适当的安排,用户之间并不会产生对资源的竞争,因此资源管理是比较简单的。
而在OS环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。这里在宏观上既限定了时间(进程在内存期间),也限定了地点(内存)。对于这种资源共享方式,其管理就要复杂得多。因为系统中的资源少于多道程序需求的总和,会形成它们对共享资源的争夺。所以,系统必须独占资源采用互斥共享方式。
13.什么是时分复用技术?举例说明它能提高资源利用率的根本原因是什么。
时分复用技术:将资源在不同的时间片内分配给各进程以使该资源被重复利用,从而提高资源的利用率。如采用时分复用技术的虚拟处理机,能够在不同的时间片内处理多个用户的请求。从而使得用户感觉自己独占主机,而处理机在这期间也被充分的利用。
14.是什么原因使操作系统具有异步性特征?
操作系统的异步性体现在三个方面:一是进程的异步性,进程以人民不可预知的速度向前推进,二是程序的不可再现性,即程序执行的结果有时是不确定的,三是程序执行时间的不可预知性,即每个程序何时执行,执行顺序以及完成时间是不确定的。
15.处理机管理有哪些主要功能?其主要任务是什么?
处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;
进程管理:为作业创建进程,撤销已结束进程,控制进程在运行过程中的状态转换。
进程同步:为多个进程(含线程)的运行进行协调。
通信:用来实现在相互合作的进程之间的信息交换。
处理机调度:
- 作业调度:从后备队里按照一定的算法,选出若干个作业,为他们分配运行所需的资源(首选是分配内存)。
- 进程调度:从进程的就绪队列中,按照一定算法选出一个进程,把处理机分配给它,并设置运行现场,使进程投入执行。
16.内存管理有哪些主要功能?其主要任务是什么?
内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充
内存分配:为每道程序分配内存
内存保护:确保每道用户程序都只在自己的内存空间运行,彼此互不干扰
地址映射:将地址空间的逻辑地址转换为内存空间对应的物理地址
内存扩充:用于实现请求调用功能,置换功能等。
17.设备管理有哪些主要功能?其主要任务是什么?
主要功能:缓冲管理、设备分配和设备处理以及虚拟设备等
主要任务:
- 完成用户提出的I/O请求,为用户分配I/O设备;
- 提高CPU和I/O设备的利用率;
- 提高I/O速度;
- 以及方便用户使用I/O设备。
18.文件管理有哪些主要功能?其主要任务是什么?
文件管理主要功能:文件存储空间的管理、目录管理、文件的读/写管理和保护。
文件管理的主要任务:管理用户文件和系统文件,方便用户使用,保证文件安全性。
19.说明推动传统OS演变为现代OS的主要因素是什么?
- 系统安全
- 网络的功能和服务
- 支持多媒体
20.什么是微内核OS
- 足够小的内核
- 基于客户/服务器模式
- 应用机制与策略分离原理
- 采用面向对象技术
21.微内核操作系统具有哪些优点?
- 提高了系统的可扩展性
- 增强了系统的可靠性
- 可移植性
- 提供了对分布式系统的支持
- 融入了面向对象技术
22.现代操作系统较之传统操作系统又增加了哪些功能和特征?
- 进程(线程)管理
- 低级存储器管理
- 中断和陷入处理
23.在微内核OS中,为什么要采用客户/服务器模式?
C/S模式具有独特的优点:
- 数据的分布处理和存储
- 便于集中管理
- 灵活性与可扩充性
- 易于改变应用软件
24.在基于微内核结构的OS中,应用了哪些新技术?
在基于微内核结构的OS中,采用面向对象的程序设计技术。
25.何谓微内核技术?在微内核中通常提供了哪些功能?
把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的内核,用它来完成操作系统最基本的核心功能,称这种技术为微内核技术。在微内核中通常提供了进程(线程管理)、低级存储器管理、中断和陷入处理等功能
三、疑难点
1.并行性与并发性的区别和联系
并行性和并发性是既相似又有区别的两个概念。并行性是指两个或多个事件在同一时刻发生,并发性是指两个或多个事件在同一时间间隔内发生。
在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但在单处理器系统中每个时刻却仅有一道程序执行,因此微观上这些程序只能分时地交替执行。若在计算机系统中有多个处理器,则这些可以并发执行的程序便被分配到多个处理器上,实现并行执行,即利用每个处理器来处理一个可并发执行的程序。
2.特权指令和非特权指令
所谓特权指令,是指有特殊权限的指令,由于这类指令的权限最大,使用不当将导致整个系统崩溃,如清内存、置时钟、分配系统资源、修改虚存的段表或页表、修改用户的访问权限等。若所有的程序都能使用这些指令,则系统一天死机n次不足为奇。为保证系统安全,这类指令只能用于操作系统或其他系统软件,不直接提供给用户使用。因此,特权指令必须在核心态执行。实际上,CPU在核心态下可以执行指令系统的全集。形象地说,特权指令是那些儿童不宜的东西,而非特权指令是老少皆宜的东西。
为了防止用户程序中使用特权指令,用户态下只能使用非特权指令,核心态下可以使用全部指令。在用户态下使用特权指令时。将产生中断以阻止用户使用特权指令。所以把用户程序放在用户态下运行,而操作系统中必须使用特权指令的那些部分程序在核心态下运行,保证了计算机系统的安全可靠。从用户态转换为核心态的唯一途径是中断或异常。
3.访管指令与访管中断
访管指令是一条可以在用户态下执行的指令。在用户程序中,因要求操作系统提供服务而有意识地使用访管指令,从而产生一种中断事件(自愿中断),将操作系统转换为核心态,称为访管中断。访管中断由访管指令产生,程序员使用访管指令向操作系统请求服务。
为什么要在程序中引入访管指令呢?这是因为用户程序只能在用户态下运行。若用户程序想要完成在用户态下无法完成的工作,该怎么办?解决这个问题要靠访管指令。访管指令本身不是特权指令,其基本功能是让程序拥有“自愿进管”的手段,从而引起访管中断。
处于用户态的用户程序使用访管指令时,系统根据访管指令的操作数执行访管中断处理程序,访管中断处理程序将系统调用的操作数和参数转到相应的例行子程序。完成服务功能后,退出中断,返回到用户程序断点继续执行。