第3章 操作系统基本原理
操作系统是计算机系统中最重要、最基本的系统软件,它位于硬件和用户之间,向用户提供接口,方便用户使用计算机;且能够管理计算机软硬件资源。从资源管理的角度来看,操作系统是计算机系统中的资源管理器,负责对系统的软硬件资源实施有效的控制和管理,提高系统资源的利用率;从方便用户使用的角度来看,操作系统是一台虚拟机,它是计算机硬件的首次可扩充,隐藏了硬件操作的细节,使用户与硬件细节隔离,从而方便了用户使用。
3.1 操作系统概述
操作系统:操作系统是控制和管理计算机软硬件资源 ,以尽可能合理、有效的方法组织多个用户共享多种资源的的程序集合。它具有:
1. 并发性
2. 共享性
3. 虚拟性
4. 不确定性
操作系统的主要功能
1) 处理机管理。负责对处理机的分配和运行实施有效的管理(以进程为单位)。处理机管理可归结为进程管理。
2) 存储器管理。主要任务是堆内存进行分配、保护和扩充。
3) 设备管理。具有设备分配、设备传输控制和设备独立性等功能。
<1> 设备分配是指根据一定的原则对设备进行分配,为了使设备与主机并行工作,常采用缓冲技术和虚拟现实技术。
<1> 设备传输控制是指实现物理的输入输出(Input/Output,I/O)操作,即启动设备、中断处理、结束处理等。
<1> 设备独立性是指用户向系统申请的设备与实际操作的设备无关。
4) 文件管理。负责对文件存储空间进行管理,包括存储空间的分配和回收,目录管理、文件操作管理和文件保护等功能。
5) 用户接口。是为了用户能够灵活、方便的使用计算机和系统功能。它包括两大类,分别是程序接口和操作接口。
3.1.1 操作系统的类型
一般来说,操作系统可分为单用户操作系统、批处理系统、分时系统、实时系统、网络操作系统、分布式操作系统、并行操作系统和嵌入式操作系统等。
1. 单用户操作系统
基本特征是在一台处理机上只能支持一个用户程序的运行,系统的全部资源都提供给该用户使用。目前多数微机运行的操作系统都属于单用户操作系统。
2. 批处理系统(也称作业处理系统)
在批处理系统中,作业成批的装入计算机中,由操作系统在计算机的输入井将其组织好,按一定的算法选择其中的一个或多个作业,将其调入内存并使其运行。把结果放入磁盘输出井,由计算机统一输出后交给用户。
批处理系统中配置了一个监督程序,在该监督程序控制下,系统能够对一批作业自动进行处理。其基本特征是“批量”,将作业的吞吐量作为主要目标,同时兼顾作业的周转时间。
批处理系统又分单道批处理系统和多道批处理系统。
单道批处理系统在内存中只能存放一道作业,大大减少了人工操作的时间,提高了机器的利用率。但是,对于某些作业来说,当它发出I/O请求后,中央处理单元(Central Processing Unit, CPU)必须等待I/O的完成,而由于I/O设备的低速性,从而使CPU的利用率很低。为了改善CUP的利用率,引入了多道程序设计技术,就形成了多道批处理操作系统。
多道批处理操作系统中,内存中可同时有多道作业在运行,且作业可随时被调入系统,并存放在外存中形成作业队列。多道批处理系统具有资源利用率高和系统吞吐量大的优点,但它将用户和计算机操作员分开,使用户无法直接与自己的作业进行交互。另外,作业需要进行排队,依次处理,因此,作业的平均周转时间较长。
3. 分时操作系统
分时操作系统是为了解决批处理系统的缺点(无法进行人机交互),并使多个用户能同时使用自己的终端以交互方式使用计算机,共享主机的资源,为此,系统采用了分时技术,把CPU的时间划分为很短的时间片,轮流地分配给各个终端作业使用。这种操作系统就被成为分时操作系统,简称为分时系统。
在规定时间片内,作业没有执行完毕,,也必须将CPU交给下一个作业使用,并等待下一轮时间片继续执行。这样,系统才能够及时的响应每一个用户的请求。分时系统具有多路性、独立性、及时性、交互性和同时性等特征。
4. 网络操作系统
是指在计算机网络环境下,具有网络功能的操作系统。网络操作系统最主要的特点是网络中各种资源的共享,以及各台计算机之间的通信。
5. 分布式操作系统
分布式系统是由多台计算机组成的系统,系统中若干台计算机可以相互和做,共同完成同一个任务。在分布式系统中,任意两台计算机之间都可以利用通信交换信息,系统中的资源为所有用户共享。分布式系统的优点是各节点的自制性好、资源共享的透明性强、各节点具有协同性,其主要缺点是系统状态不精确、控制机构复杂、通信开销会引起性能下降。
分布式操作系统是网络操作系统的更高级形式,他保持了网络操作系统所拥有的全部功能,与网络操作系统的主要区别在于任务的分布性,即把一个大人物分解为若干个子任务,并被分配到不同的CPU上执行。
6. 嵌入式操作系统
嵌入式操作系统运行在嵌入式智能芯片环境中,对整个芯片和他所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制。嵌入式操作系统具有微型化、可定制、实时性、可靠性、易移植性等特点。
嵌入式实时操作系统是指系统能够及时响应外部事件的请求,在规定时间完成该事件的处理,控制所有史诗任务协调一致的运行。它的特点是及时性、支持多道程序设计、高可靠性和较强的过载防护能力。
3.1.2 操作系统的结构
从操作系统的结构来看,主要有整体结构、层次结构、客户/服务器结构和面向对象结构等。
1. 整体结构
整体结构也称为模块组合结构或无序结构,是基于结构化程序设计的一种软件设计方法,其主要设计思想和步骤如下:
1) 把模块作为操作系统的基本单位,按功能将系统分解为若干模块,每个模块具有独立功能,若干模块协作完成某个功能;明确各模块之间接口关系,各模块之间可以不加控制地自由调用(无序调用法);模块之间传递参数或返回结果时,其个数和方式也可根据需要随意约定;
2) 分别设计、编码、调试各个模块。
3) 将所有模块连接成一个完整的系统。
主要优点:
1)结构紧密、组合方便,灵活性大。
2) 系统效率较高。
3) 能加快操作系统研制过程。
主要缺点:模块独立性差,模块之间牵连甚多,形成了复杂的调用关系,甚至有很多循环利用,造成系统结构不清晰,正确性难以保证,可靠性降低,系统功能的增、删、改十分困难。
2. 层次结构
层次结构将系统划分为内核和若干模块(或进程),模块按功能分层,各层之间只能是单向依赖或单项调用关系(底层为高层服务),使系统结构清晰不构成循环调用。层次结构有全序和半序之分。每层中各模块之间保持独立,互相没有联系,这种层次结构就称为全序;如果某些层内支架你允许有相互调用或通信的关系,则这种层次结构就称为半序;
在层次结构中,外层功能是内层功能的扩充或延伸,内层功能为外层提供了支撑和基础。因此,整个系统的接口少且简单。整个系统的正确性和通过各层的正确性来保证,从而使系统的正确性大大提高。层次结构的另一个优点是增加、修改或替换一个层次不会影响其他层次,有利于系统的维护和扩展。层次结构的劣势是花费在通信上的开销较大,系统效率有所降低。
3. 客户/服务器结构
现代操作系统大多有两种工作状态(核心态和用户态)。一般应用程序工作在用户态,内核模块和操作系统核心在核心态。