第一章操作系统引论计算机操作系统原理--汤子瀛第一章操作系统引论第一章操作系统引论1.1操作系统的目标和作用1.2操作系统的发展过程1.3操作系统的基本特性1.4操作系统的主要功能1.5操作系统的结构设计第一章操作系统引论1.1操作系统的目标和作用1.1.1操作系统的目标目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重。通常在计算机硬件上配置的OS,其目1.方便性2.有效性3.可扩充性4.开放性第一章操作系统引论1.1.2操作系统的作用1.OS作为用户与计算机硬件系统之间的接口OS作为用户与计算机硬件系统之间接口的含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。或者说,用户在OS帮助下,能够方便、快捷、安全、可靠地操纵计算机硬件和运行自己的程序。应注意,OS是一个系统软件,因而这种接口是软件接口。第一章操作系统引论图1-1OS作为接口的示意图用户应用程序系统调用命令图标、窗口操作系统计算机硬件第一章操作系统引论(1)命令方式。这是指由OS提供了一组联机命令(语言),用户可通过键盘输入有关命令,来直接操纵计算机系统。(2)系统调用方式。OS提供了一组系统调用,用户可在自己的应用程序中通过相应的系统调用,来操纵计算机。(3)图形、窗口方式。用户通过屏幕上的窗口和图标来操纵计算机系统和运行自己的程序。第一章操作系统引论2.OS作为计算机系统资源的管理者在一个计算机系统中,通常都含有各种各样的硬件和软件资源。归纳起来可将资源分为四类:处理器、存储器、I/O设备以及信息(数据和程序)。相应地,OS的主要功能也正是针对这四类资源进行有效的管理,即:处理机管理,用于分配和控制处理机;存储器管理,主要负责内存的分配与回收;I/O设备管理,负责I/O设备的分配与操纵;文件管理,负责文件的存取、共享和保护。可见,OS确是计算机系统资源的管理者。事实上,当今世界上广为流行的一个关于OS作用的观点,正是把OS作为计算机系统的资源管理者。第一章操作系统引论3.OS对于一台完全无软件的计算机系统(即裸机),即使其功能再强,也必定是难于使用的。如果我们在裸机上覆盖上一层I/O设备管理软件,用户便可利用它所提供的I/O命令,来进行数据输入和打印输出。此时用户所看到的机器,将是一台比裸机功能更强、使用更方便的机器。通常把覆盖了软件的机器称为扩充机器或虚机器。如果我们又在第一层软件上再覆盖上一层文件管理软件,则用户可利用该软件提供的文件存取命令,来进行文件的存取。此时,用户所看到的是台功能更强的虚机器。如果我们又在文件管理软件上再覆盖一层面向用户的窗口软件,则用户便可在窗口环境下方便地使用计算机,形成一台功能更强的虚机器。第一章操作系统引论1.1.3推动操作系统发展的主要动力1.不断提高计算机资源利用率2.3.器件的不断更新换代4.计算机体系结构的不断发展第一章操作系统引论1.2操作系统的发展过程1.2.1无操作系统的计算机系统1.人工操作方式从第一台计算机诞生(1945年)到50年代中期的计算机,属于第一代,这时还未出现OS。这时的计算机操作是由用户(即程序员)采用人工操作方式直接使用计算机硬件系统,即由程序员将事先已穿孔(对应于程序和数据)的纸带(或卡片)装入纸带输入机(或卡片输入机),再启动它们将程序和数据输入计算机,然后启动计算机运行。当程序运行完毕并取走计算结果后,才让下一个用户上机。这种人工操作方式有以下两方面的缺点:(1)用户独占全机。(2)CPU等待人工操作。第一章操作系统引论2.脱机输入/输出(Off-LineI/O)这种脱机I/O(1)减少了CPU的空闲时间。(2)提高I/O速度。输入设备外围机磁盘主机外围机输出设备图1-2脱机I/O示意图第一章操作系统引论1.2.2单道批处理系统1.单道批处理系统(SimpleBatchProcessingSystem)的处理过程图1-3单道批处理系统的处理流程把下一个作业的源程序转换为目标程序源程序有错吗?否装配目标程序还有下一个作业?是否停止运行目标程序是开始第一章操作系统引论2.单道批处理系统是最早出现的一种OS,严格地说,它只能算作是OS的前身而并非是现在人们所理解的OS。尽管如此,该系统比起人工操作方式的系统已有很大进步。(1)自动性。(2)顺序性。(3)单道性。第一章操作系统引论1.2.3多道批处理系统1.多道程序设计的基本概念在单道批处理系统中,内存中仅有一道作业,它无法充分利用系统中的所有资源,致使系统性能较差。为了进一步提高资源的利用率和系统吞吐量,在60年代中期又引入了多道程序设计技术,由此而形成了多道批处理系统(MultiprogrammedBatchProcessingSystem)。在该系统中,用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源。第一章操作系统引论在OS(1)提高CPU的利用率。当内存中仅有一道程序时,每逢该程序在运行中发出I/O请求后,CPU空闲,必须在其I/O完成后才继续运行;尤其因I/O设备的低速性,更使CPU的利用率显著降低。图1-4(a)示出了单道程序的运行情况,从图可以看出:在t2~t3、t6~t7时间间隔内CPU空闲。在引入多道程序设计技术后,由于同时在内存中装有若干道程序,并使它们交替地运行,这样,当正在运行的程序因I/O而暂停执行时,系统可调度另一道程序运行,从而保持了CPU处于忙碌状态。第一章操作系统引论图1-4单道和多道程序运行情况t1t2t3t4t5t6t7t8结束中断I/O完成启动I/OI/O中断请求I/O完成启动I/OI/O中断请求用户程序监督程序I/O操作(a)单道程序运行情况程序A程序AI/O请求程序AI/O完成程序B程序BI/O请求程序C程序CI/O请求程序D程序DI/O请求CI/O完成C再被调度程序BI/O完成程序A再被调度程序A程序B程序C程序D调度程序(b)四道程序运行情况A完成结束中断第一章操作系统引论(2)可提高内存和I/O设备利用率。为了能运行较大的作业,通常内存都具有较大容量,但由于80%以上的作业都属于中小型,因此在单道程序环境下,也必定造成内存的浪费。类似地,对于系统中所配置的多种类型的I/O设备,在单道程序环境下也不能充分利用。如果允许在内存中装入多道程序,并允许它们并发执行,则无疑会大大提高内存和I/O设备的利用率。(3)增加系统吞吐量。在保持CPU、I/O设备不断忙碌的同时,也必然会大幅度地提高系统的吞吐量,从而降低作业加工所需的费用。第一章操作系统引论2.多道批处理系统的特征(1)多道性。(2)无序性。(3)调度性。第一章操作系统引论3.多道批处理系统的优缺点(1)资源利用率高。(2)系统吞吐量大。(3)平均周转时间长。(4)无交互能力。第一章操作系统引论4.多道批处理系统需要解决的问题(1)处理机管理问题。(2)内存管理问题。(3)I/O设备管理问题。(4)文件管理问题。(5)作业管理问题。第一章操作系统引论1.2.4分时系统1.分时系统(Time-SharingSystem)如果说,推动多道批处理系统形成和发展的主要动力,是提高资源利用率和系统吞吐量,那么,推动分时系统形成和发展的主要动力,则是用户的需求。或者说,分时系统是为了满足用户需求所形成的一种新型OS。它与多道批处理系统之间,有着截然不同的性能差别。用户的需求具体表(1)人—机交互。(2)共享主机。(3)便于用户上机。第一章操作系统引论2.分时系统实现中的关键问题为实现分时系统,其中,最关键的问题是如何使用户能与自己的作业进行交互,即当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,再将结果返回给用户。此后,用户可继续键入下一条命令,此即人—机交互。应强调指出,即使有多个用户同时通过自己的键盘键入命令,(1)及时接收。(2)及时处理。第一章操作系统引论3.分时系统的特征(1)多路性。(2)独立性。(3)及时性。(4)交互性。第一章操作系统引论1.2.5实时系统所谓“实时”,是表示“及时”,而实时系统(Real-TimeSystem)是指系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。1.应用需求(1)实时控制。(2)实时信息处理。第一章操作系统引论2.实时任务1)(1)周期性实时任务。(2)非周期性实时任务。外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间(Deadline)。它又可分为:①开始截止时间——任务在某时间以前必须开始执行;②完成截止时间——任务在某时间以前必须完成。第一章操作系统引论2)(1)硬实时任务(hardreal-timetask)。系统必须满足任务对截止时间的要求,否则可能出现难以预测的结果。(2)软实时任务(Softreal-timetask)。它也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。第一章操作系统引论3.实时系统与分时系统特征的比较(1)多路性。(2)独立性。(3)及时性。(4)交互性。(5)可靠性。第一章操作系统引论1.3操作系统的基本特性1.3.1并发(Concurrence)并行性和并发性是既相似又有区别的两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可同时执行。第一章操作系统引论1.3.2共享(Sharing)在操作系统环境下,所谓共享是指系统中的资源可供内存中多个并发执行的进程(线程)共同使用。由于资源属性的不同,进程对资源共享的方式也不同,目前主要有以下两种资源共享方式。第一章操作系统引论1.互斥共享方式系统中的某些资源,如打印机、磁带机,虽然它们可以提供给多个进程(线程)使用,但为使所打印或记录的结果不致造成混淆,应规定在一段时间内只允许一个进程(线程)访问该资源。为此,当一个进程A要访问某资源时,必须先提出请求,如果此时该资源空闲,系统便可将之分配给请求进程A使用,此后若再有其它进程也要访问该资源时(只要A未用完)则必须等待。仅当A进程访问完并释放该资源后,才允许另一进程对该资源进行访问。我们把这种资源共享方式称为互斥式共享,而把在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。计算机系统中的大多数物理设备,以及某些软件中所用的栈、变量和表格,都属于临界资源,它们要求被互斥地共享。第一章操作系统引论2.同时访问方式系统中还有另一类资源,允许在一段时间内由多个进程“同时”对它们进行访问。这里所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问。典型的可供多个进程“同时”访问的资源是磁盘设备,一些用重入码编写的文件,也可以被“同时”共享,即若干个用户同时访问该文件。并发和共享是操作系统的两个最基本的特征,它们又是互为存在的条件。一方面,资源共享是以程序(进程)的并发执行为条件的,若系统不允许程序并发执行,自然不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,协调好诸进程对共享资源的访问,也必然影响到程序并发执行的程度,甚至根本无法并发执行。第一章操作系统引论1.3.3虚拟(Virtual)操作系统中的所谓“虚拟”,是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。物理实体(前者)是实的,即实际存在的;而后者是虚的,是用户感觉上的东西。相应地,用于实现虚拟的技术,称为虚拟技术。在OS中利用了多种虚拟技术,分别用来实现虚拟处理机、虚拟内存、虚拟外部设备和虚拟信道等。第一章操作系统引论