操作系统概述
一、什么是操作系统
其实现在并无精确定义
不同的观点:
用户角度:操作系统是用户使用计算机的界面,提供用户与计算机硬件之间的接口,一般可以分为三种:命令方式,系统调用,图形界面。
软件角度:操作系统是程序和数据结构的集合,它是直接和硬件相邻的第一层软件,是由大量极其复杂的系统程序和众多的数据结构集成的。
系统观点:操作系统是对计算机进行资源管理的,这些资源包括硬件和软件。操作系统向用户提供了高级而调用简单的服务,掩盖了绝大部分硬件设备复杂的特性和差异,使得用户可以免除大量的乏味的杂务,而把精力集中在自己所要处理的任务上。
…………
教材中的定义:
操作系统是控制和管理计算机硬件和软件资源、合理地组织和管理计算机的工作流程以方便用户使用的程序的集合。
计算机系统的结构:
OS的地位
*位于硬件(裸机)之上,所有其他软件之下。它是对硬件系统功能的首次扩充。
引入操作系统的目标(特性)
*方便:提供一个用户与计算机硬件之间的接口,使计算机更易于操作。
*有效:以更有效的方式使用计算机软硬件资源。
*改善性能:合理的组织计算机系统的工作流程,以改善系统性能。
提供扩展能力:支持可扩展的体系结构,可以方便的引进新的功能,支持可移植性和护操作性。
并发:
*并发性:指两个或者多个事件在同一时间间隔内发生。
*并行性:指两个或多个事件在同一时刻发生(同时发生)
共享:
*系统中有限的资源不再为某个用户独占,而是可共多个用户共享。共享的方式:
1)互斥共享:一段事件内某一资源只允许一个用户使用,当使用完后,其他用户才能使用。例如:打印机、扫描仪等。
2)非互斥共享:一个资源在一段时间内可以供多个用户“同时”使用。依旧是:宏观上的并行,微观上的串行。例如CPU、内存等。
虚拟:
*一个物理实体映射为若干个对应的逻辑实体–分时或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。
不确定性:
*操作系统的不确定性也称为异步性,指在并发环境下程序的执行顺序、开始时间和执行时间是不确定性(不可准确预知)。
*特点:在相同的环境下,无论程序执行的顺序如何,何时开始执行,也无论执行多少时间,只要输入相同,则结果总是相同。
*多道程序设计技术,极大的提高了CPU的利用率
多道程序设计技术的出现给系统的管理提出了挑战,例如:内存管理问题、处理机等资源共享问题、文件检索和存储问题等。为了解决这些问题,系统中必须设置一套管理软件以方便用户使用,于是便形成了操作系统。因此我们说:多道程序设计技术是操作系统形成的标志。
批处理系统
*单道批处理系统:早期的操作系统类型,作业排好队,一个一个运行,一次运行一个。
*多道批处理系统:内存中可以同时存入多个作业运行,作业的执行需要调度,有了进程的概念。如:UNIX
*远程批处理系统:依靠网络进行,可以远程批处理作业,是分布式系统的基本条件。
*优点:系统吞吐量大,资源利用率高。
*缺点:无实时交互能力、作业周转时间长(作业必须一次运行完)
初级单道批处理系统
目标:为了解决人工操作(无操作系统)严重降低了计算机资源的利用率的问题,即解决CPU等待人工操作和高速CPU与低速I/O间矛盾等问题。
脱机输入输出技术:该技术利用一台外围机,脱离主机先将低速输入设备(如纸带机)的数据,输入到较高速大容量的输入设备上。
多道批处理系统:
目标:为了进一步提高资源利用率,在硬件采用通道和中断技术支持并行操作的情况下,引入了多道程序设计技术,由此引入多道批处理系统。
SPOOLing技术(假脱机I/O或联机I/O):
在现代批处理系统中引入缓冲技术,在外存设置输入缓冲区(输入井)和输出缓冲区(输出井)。同时又引入SPOOLing技术,SPOOLing是在联机情况下实现的同时与外围设备联机操作的技术。
分时系统
*“分时”的定义:指把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片。
典型的分时系统:
早期:CTSS,MULTICS
现代:Windows,UNIX,Linux
响应时间是分时系统的重要指标,它是用户发出终端命令到系统做出响应的时间间隔。系统的响应时间主要是根据用户所能接受的等待时间确定的。假设分时系统中用户数为n,每个用户的运行时间片为q,则系统的响应时间为T=n*q。每个用户分到的时间片q由两部分组成,用于对换时间S和用于真正处理时间T。
实时操作系统
*概念:在限定的时间内对输入进行快速处理并作出响应的计算机处理系统。主要用于过程控制、事务处理等有实时要求的领域。其主要特征是实时性和可靠性。
*实时系统与分时系统的区别
设计目标不同:实时系统多是专用系统,分时系统通常是通用系统。
交互性强弱不同:实时系统大都是特殊的专用系统,外界操作是严格控制的,因此交互性弱。分时系统一般都是通用型很强的系统,允许系统和用户之间有较强的绘画能力,交互性强。
响应时间长短不同:实时系统以控制过程中信息处理能接受的延迟为标准。分时系统以人能接受的等待时间为标准。
实时系统分类:
—实时控制系统:
此类实时控制系统主要用于生产过程的自动控制,实验数据自动采集,武器的控制、包括火炮自动控制、飞机自动驾驶、导弹的制导系统。
—实时信息处理系统
这类系统主要用于实时信息处理,像飞机订票系统、情报检索系统。
网络操作系统:
是使网络上各计算机能方便地进行网络通信、有效地共享网络资源,为网络用户提供所需各种服务地软件和有关规程地集合。
分布式操作系统:
分布式操作系统是建立在网络操作系统之上,对用户屏蔽了系统资源的分布而形成的一个逻辑整体系统的操作系统
并行操作系统:任务并行处理的系统。
嵌入式操作系统:
嵌入式操作系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。简单的说,嵌入式系统集系统的应用软件与硬件于一体,类似于PC中BIOS的工作方式,其软件代码小、自动化程度高、响应速度快,特别适合于要求实时和多任务的体系。
应用:几乎包括了生活中所有的电器设备,典型的如手机、PDA、汽车、微波炉、数码相机、电梯、工业自动化设备等。
特点
*嵌入式系统通常是面向特定应用的。它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
*嵌入式系统是将先进技术(计算机技术、半导体技术,电子技术)与各个行业的具体应用相结合后的产物。
*嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余。
*嵌入式系统中地软件一般都固化在存储器芯片或单片机本身中。
*嵌入式系统本身不具备自举开发能力,用户通常不能对其中的程序功能进行修改,必须有一套开发工具和环境支持。
层次结构观点
*将系统按照层次结构划分为若干层。某一层次上代码只能调用低层次上的代码,使模块间的调用有序化。系统每加一层,就构成一个比原来功能更强的虚拟机。第一个按照这种思想构造的系统是THE系统(简单的批处理系统)。
优点:
*功能明确,调用关系清晰(高层次对低层次单向依赖),有利于保证设计和实现的正确性。
*低层和高层可分别实现(便于扩充);高层错误不会影响到低层;避免递归调用(不会死锁)。
缺点:
降低了运行效率,各系统对具体划分多少层次有不同的看法。
功能观点:模块接口法
*整个系统分成若干功能各异的模块,模块预先定义有接口,各模块之间只能通过这些接口进行通信。模块可以自由调用。典型的操作系统:UNIX
优点:
灵活性强;
运行效率高;
开发过程快。
缺点:
*功能划分和模块接口难以保证正确和合理,连接上有一定困难;
*模块之间的依赖关系复杂,降低了模块之间的相对独立性,可能会造成循环依赖–不利于修改(高耦合性)。
虚拟机:
将整个系统在逻辑上虚拟为若干个相同的机器
典型操作系统:IBM:VM/370(1979年) 其实是对硬件的精确复制,每台虚拟机和裸机完全相同,可以运行不同的操作系统。
技术支持:
*分时系统
*多道程序设计技术
资源管理观点:
*计算机系统中有五大资源:作业、处理机、存储器、外部设备、硬盘信息(文件)。它们共同构成了操作系统本身和用户工作的物质基础和环境。
实质上是将操作系统看成计算机系统的资源管理程序。包括五大部分:
1.作业管理
2.处理机管理(进程管理)
3.存储管理
4.设备管理
5.文件系统管理
微内核:
基本思想:将更多操作系统功能放在核心之外,作为独立的服务进程运行;内核保持尽量小,只实现操作系统的基本功能,称为微内核。其典型应用为客户机/服务器模式
优点:
*良好的扩充性:只需添加支持新功能的服务进程即可
*可靠性好:模块相互隔离,调用关系明确,执行转移不易混乱。
便于网络服务,实现分布式处理:以同样的调用形式,在下层可通过核心中的网络传送到远方服务器上
缺点:
消息传递比直接调用效率要低一些(但可以通过提高硬件性能来补偿。
单内核:
*基本思想:将核心分为若干个模块,模块间的通信通过调用其他模块中的函数实现。
优点:
*运行效率较高
*组织方式相对也比较简单
缺点:
内核移植比较困难
混合结构
*事实上,现在的操作系统多采用单内核和微内核的混合结构,以便取长补短。
例如:Linux的内核从总体上来说是一个单内核结构,但是设计时也引入了许多微内核的设计和实现方法。现在系统的可移植性是非常重要的,因此微内核模型将是未来的发展趋势之一。