内容正文:
操作系统原理(第2版)
[图片]
1.1.3 操作系统的基本特征
不同类型的操作系统有各自的特征,但它们都具有并发性、共享性、虚拟性和不确定性等共同特征。
1.并发性
并发性是操作系统最重要的特征。并发性是指两个或两个以上的事件或活动在同一时间间隔内发生(注意,不是同一时刻)。也就是说,在计算机系统中同时存在多个进程,从宏观上看,这些进程是同时运行并向前推进着;从微观上讲,任何时刻只能有一个进程执行,如果在单CPU条件下,这些进程就是在CPU上交替执行。
操作系统的并发性能够有效地改善系统资源的利用率,提高系统的效率。
并发性带来的问题与解决方法
操作系统的并发性会使操作系统的设计和实现变得更加复杂。例如,以何种策略选择下一个可执行的进程?怎样从正在执行的进程切换到另一个等待执行的进程?如何将内存中各交替执行的进程隔离开来,使之互不干扰?怎样让多个交替执行的进程互通消息并协作完成任务?如何协调多个交替执行的进程对资源的竞争?多个交替执行的进程共享文件数据时,如何保证数据的一致性?
为了更好地解决这些问题,操作系统必须具有控制和管理进程并发执行的能力,必须提供某种机制和策略进行协调,从而使各并发进程能够有条不紊的向前推进(运行)并获得正确的运行结果。此外,操作系统要充分发挥系统的并行性,就要合理地组织计算机的工作流程,协调各类软、硬件资源的工作,充分提高资源的利用率。
2.共享性
共享性是操作系统的另一个重要特征。在内存中并发执行的多个进程可以共同使用系统中的资源(包括硬件资源和信息资源)。资源共享的方式可以分为以下两种。
(1)互斥使用方式:指当一个进程正在使用某种资源时,其他欲使用该资源的进程必须等待,仅当这个进程使用完该资源并释放后,才允许另一个进程使用这个资源,即它们只能互斥地共享该资源,因此这类资源也称互斥资源。系统中的有些资源,如打印机、磁带机的使用就只允许互斥使用。
(2)同时使用方式:系统中有些资源允许在同一段时间内被多个进程同时使用,这里的“同时”是宏观意义上的。典型的可供多个进程同时使用的资源是磁盘。
共享性和并发性是操作系统两个最基本的特征,它们互为依存。
3.虚拟性
虚拟性(Virtual)的本质含义是指将一个物理实体映射为多个逻辑实体。前者是实际存在的;后者是虚拟的,是一种感觉性的存在。例如,在单CPU系统中虽然只有一个CPU存在,且每一时刻只能执行一道程序,但操作系统采用了多道程序技术后,在一段时间间隔内,从宏观上看有多个程序在运行,给人的感觉好像是有多个CPU在支持每一道程序运行。这种情况就是将一个物理的CPU虚拟为多个逻辑的CPU。
4.不确定性
在多道程序设计环境下,不确定性表现在以下三个方面:
(1)在多道程序环境中,允许多个进程(程序)并发执行,但由于资源等因素的限制,每个进程的运行并不是“一气呵成”,而是以“走走停停”的方式执行。内存中的每个进程何时开始执行,何时暂停,以什么速度向前推进,每个进程需要多少时间才能完成都是不可预知的。
(2)并发程序的执行结果也可能不确定,在其他并发程序执行的影响下,对同一程序和同样的初始数据,其多次执行的结果可能不同。因此,在程序的并发执行中,操作系统必须解决这个问题,即保证在相同初始条件下,重复执行同一个程序时都不受运行环境的影响,而得到完全相同的结果。
(3)外部设备中断、I/O请求、程序运行时发生中断的时间等都是不可预测的。
1.2 操作系统的逻辑结构和运行模型
不言而喻,操作系统的重要性要远远大于用户程序。那么如何保证操作系统的重要性呢?通常的办法是采用内核态和用户态两种模式。
内核态是指操作系统程序运行的状态,在该状态下可以执行操作系统的所有指令(包括特权指令),并能够使用系统的全部资源。
用户态是指用户程序运行的状态,在该状态下所能执行的指令和访问的资源都将受到限制。
内核态和用户态各有优势:运行在内核态的程序可以访问的资源多,但可靠性、安全性要求高,维护管理比较复杂;用户态程序可以访问的资源有限,但可靠性、安全性要求低,编写程序和维护管理都比较简单。
内核态
访问的资源多
可靠性、安全性要求高
维护管理比较复杂
用户态
访问的资源有限
可靠性、安全性要求低
编程和维护比较简单
1.2.1 用户态和内核态的划分
1.2.2 操作系统的逻辑结构
1. 单内核结构
优