第1章操作系统概述1第1章操作系统概述在现代计算机系统中,如果不安装操作系统,很难想象还会有谁使用计算机。操作系统是计算机系统中重要的系统软件,是整个计算机系统的控制中心。操作系统不仅将裸机改造成为功能强、服务质量高、使用方便灵活、运行安全可靠的虚拟机来为用户提供使用计算机系统的良好环境,而且采用合理有效的方法组织多个用户共享计算机系统中的各种资源,最大限度地提高系统资源的利用率。1.1什么是操作系统操作系统是配置在计算机硬件平台上的第一层软件,是一组系统软件。一个新的操作系统往往融合了计算机发展中的一些传统的技术和新的研究成果。在计算机系统中,处理机、内存、磁盘、终端、网卡等硬件资源通过主板连接构成了看得见摸得着的计算机硬件系统。为了能使这些硬件资源高效地、尽可能并行地供用户程序使用,为了给用户提供通用的使用这些硬件的方法,必须为计算机配备操作系统软件。操作系统的工作就是管理计算机的硬件资源和软件资源,并组织用户尽可能方便地使用这些资源。操作系统是软硬资源的控制中心,它以尽量合理有效的方法组织用户共享计算机的各种资源。为了使读者对操作系统有更清楚地了解,我们从系统软件、资源管理器和接口三个方面介绍操作系统。1.1.1操作系统是最重要的系统软件计算机系统可以看成是由硬件和软件按层次结构组成的系统,如图1.1所示。硬件系统是指构成计算机系统所必须配置的硬件设备。现代计算机系统一般都包含一个或多个处理器、内存、磁盘驱动器、光盘驱动器、打印机、时钟、鼠标、键盘,显示器、网络接口以及其它输入/输出设备。计算机硬件系统构成了图1.1计算机系统组成应用程序语言处理程序操作系统硬件系统教学要点本章主要介绍操作系统的基本概念、操作系统的发展历史、操作系统的功能和主要特征以及常用的操作系统。读者应重点掌握操作系统基本概念、操作系统的功能,并对操作系统的发展历史有一定的了解,进而对现在流行的操作系统及其发展方向能有深刻的认识。第1章操作系统概述2计算机本身和用户作业赖以活动的物质基础。只有硬件系统而无软件系统的计算机称为裸机。用户直接使用裸机不仅不方便,而且将严重降低系统效率。软件系统是一个为计算机系统配置的程序和数据的集合。软件系统又有应用软件和系统软件之分。应用软件是为解决某一具体应用问题而开发的软件,如:财务软件、字处理软件等;系统软件是专门为计算机系统所配置的,如操作系统、各种语言处理程序等。操作系统是以硬件为基础的系统软件,是硬件层的第一次扩充,在这一层上实现了操作系统的全部功能,并提供了相应的接口。其它各软件层都是在操作系统的基础上开发出来的。语言处理程序层包括各种程序设计语言的编译程序以及动态调试程序等实用性程序。语言处理程序层是操作系统层的扩充,而应用程序层是语言处理程序层的进一步扩充。在应用程序层,用户可以使用各种程序设计语言,在操作系统的支持下,编写并运行满足用户需要的各种应用程序。由此可见,操作系统是计算机系统中最重要的系统软件。1.1.2操作系统是资源管理器计算机系统的资源包括硬件资源和软件资源。站在资源管理的角度,把计算机系统资源分为四大类:处理机、存储器、输入/输出设备和信息,前三类为硬件资源,最后一类为软件资源。操作系统的任务就是使整个计算机系统的资源得到充分有效的利用,并且在相互竞争的程序之间合理有序地控制系统资源的分配,从而实现对计算机系统工作流程的控制。作为资源管理器,操作系统要完成以下工作:①跟踪资源状态。时刻维护系统资源的全局信息,掌握系统资源的种类和数量、已分配和未分配的情况。②分配资源。处理对资源的使用请求,协调请求中的冲突,确定资源分配算法。当有多个用户争用某个资源时,进行裁决。同时,根据资源分配的条件、原则和环境决定是立即分配还是暂缓分配。③回收资源。用户程序在资源使用完毕之后要释放资源。此时,资源管理器应及时回收资源,以便下次重新分配。④保护资源。资源管理器负责对资源进行保护,防止资源被有意或无意地破坏。系统资源的使用方法和管理策略决定了操作系统的规模、类型、功能与实现方法,基于这一点,可以把操作系统看成是由一组资源管理器(即资源管理程序)组成的。根据资源的分类情况,可以为操作系统建立相应的四类管理器:处理机管理、存储器管理、输入/输出设备管理和信息管理(通常指文件系统)。因此说,操作系统是资源管理器。1.1.3操作系统是用户(应用程序)与计算机硬件系统之间的接口在计算机系统组成的四个层次中,硬件是最低层。操作系统处于用户与计算机系统硬件之间,用户通过操作系统来使用计算机。对多数计算机而言,在机器语言级的体系结构(包括指令系统、存储组织、I/O和总线结构)上编程是相当困难的,尤其是输入/输出操作。为了让用户和程序员在使用计算机时不涉及硬件细节,使程序员与硬件细节独立开来,需要建立一种高度抽象。这种抽象就是为用户提供一台等价的扩展计算机,这样的计算机称为虚拟计算机,简称虚拟机。操作系统作为虚拟机为用户使用计算机提供了方便,用户第1章操作系统概述3可不必了解计算机硬件工作的细节,通过操作系统来使用计算机,操作系统就成了用户和计算机之间的接口。用户可通过三种方式使用计算机:①命令方式。用户可通过键盘输入由操作系统提供的一组命令,来直接操纵计算机系统;②系统调用方式。用户可在自己的应用程序中,通过调用操作系统提供的一组系统调用,来操纵计算机系统;③图形、窗口方式。用户通过屏幕上的窗口和图标,来操纵计算机系统和运行自己的程序。有了这几种方式,用户就可以不涉及硬件的实现细节,方便而有效地取得操作系统为用户所提供的各种服务,合理地组织计算机工作流程。所以说,操作系统是用户与计算机硬件系统之间的接口。综上所述,我们来给操作系统下个定义:操作系统是一组控制和管理计算机系统的硬件和软件资源,合理地组织计算机工作流程并为用户使用计算机提供方便的程序和数据的集合。在计算机系统中设置操作系统的目的在于提高计算机系统的效率,增强系统的处理能力,提高系统资源的利用率,方便用户使用计算机。1.2操作系统的发展历史1.2.1手工操作阶段在计算机刚刚出现时,由于计算机的存储容量小,运算速度慢,输入/输出设备只有纸带输入机、卡片阅读机、打印机和控制台。人们使用这样的计算机只能采用人工操作方式,根本没有操作系统。在人工操作情况下,用户一个挨一个地轮流使用计算机。每个用户的使用过程大致如下:先把手工编写的程序(机器语言编写的程序)穿成纸带(或卡片)装上输入机,然后经人工操作把程序和数据输入计算机,接着通过控制台开关启动程序运行。待计算完毕,用户拿走打印结果,并卸下纸带(或卡片)。在这个过程中需要人工装纸带、人工控制程序运行、人工卸纸带,进行一系列的“人工干预”。这种由一道程序独占机器的情况,在计算机运算速度较慢的时候是可以容忍的,因为此时计算所需的时间相对而言较长,人工操作时间所占比例还不算很大。随着计算机技术的发展,计算机的速度、容量、外设的功能和种类等方面都有了很大的发展。比如,计算机的速度就有了几十倍、上百倍的提高,故使手工操作的慢速度和计算机运算的高速度之间形成了一对矛盾,即所谓人―机矛盾。随着计算机速度的提高,人―机矛盾已到了不可容忍的地步。为了解决这一矛盾,只有设法去掉人工干预,实现作业的自动过渡,这样就出现了批处理技术。由于当时软件发展处于初级阶段,用于管理的软件还没有产生,因此所有的运行管理和具体操作都由用户自己承担。为了实现作业建立和作业过渡的自动化引入了批量监督程序(常驻内存的核心代码),每一种语言翻译程序(汇编语言或高级语言的编译程序),或实用程序(如链接程序)都作为监督程序的子例程。1.2.2联机批处理系统监督程序的工作对象是以作业流形式提供的。每个用户需要计算机解决的计算工作均第1章操作系统概述4组织成一个作业。每个作业有一个和程序分开的说明文件,即作业说明书,它提供了用户标识、用户要使用的编译程序以及所需要的系统资源等基本信息。每个作业还包含一个程序和一些原始数据,最后是该作业的终止信息。终止信息给监督程序一个信号,表示此作业已经结束,应为下一个用户作业做好服务准备。各用户把自己的作业交给机房,由操作员把一批作业装到输入设备上(如果输入设备是纸带输入机,则这一批作业在一盘纸带上。若输入设备是读卡机,则该批作业在一叠卡片上),然后在监督程序控制下送到外部存储器,如磁带、磁鼓或磁盘上。为了执行一个作业,批处理监督程序将解释这个作业的说明书,若系统资源能满足其要求,则将该作业调入内存,并从外部存储器(如磁带)上输入所需要的编译程序。编译程序将用户源程序翻译成目标代码,然后由链接装配程序把编译后的目标代码及其所需的子程序装配成一个可执行的程序,接着开始执行。计算完成后输出该作业的计算结果。只有一个作业处理完毕后,监督程序才可以自动地调度下一个作业进行处理,依次重复上述过程,直到该批作业全部处理完毕。在这种批处理系统中,作业的输入/输出是联机的,也就是说作业从输入机到磁带,由磁带调入内存,以及结果的输出打印都是由CPU直接控制的。随着CPU速度的不断提高,CPU和输入/输出设备之间的速度差距就形成了一对矛盾。因为在进行输入/输出时,CPU是空闲的,高速的CPU要等待慢速的输入/输出设备的工作,不能发挥CPU应有的效率。1.2.3脱机批处理系统为了克服联机批处理存在的缺点,在批处理系统中引入了脱机输入/输出技术,从而形成了脱机批处理系统。脱机批处理系统由主机和卫星机组成,卫星机又称外围计算机,它不与主机直接连接,只与外部设备打交道。作业通过卫星机输入到磁带上,当主机需要输入作业时,就把输入带同主机连上。主机从输入带上把作业调入内存,并予以执行。作业完成后,主机负责把结果记录到输出带上,再由卫星机负责把输出带上的信息打印输出。这样,主机摆脱了慢速的输入/输出工作,可以较充分地发挥它的高速计算能力。同时,由于主机和卫星机可以并行操作,因此脱机批处理系统与早期联机批处理系统相比大大提高了系统的处理能力。批处理系统是在解决人―机矛盾以及高速度的CPU和低速度的I/O设备间矛盾的过程中发展起来的。它的出现改善了CPU和外设的使用情况,实现了作业的自动定序、自动过渡,从而使整个计算机系统的处理能力得以提高。但仍存在着许多缺陷,如卫星机与主机之间的磁带装卸仍需人工完成,操作员需要监督机器的状态等等。如果一个程序进入死循环,系统就会踏步不前,只有当操作员提出请求,要求终止该作业,删除它并重新启动,系统才能恢复正常运行。当目标程序执行一条引起停机的非法指令时,机器就会错误地停止运行。此时,只有操作员进行干预,即在控制台上按启动按钮后,程序才会重新启动运行。并且,由于系统没有任何保护自己的措施,无法防止用户程序破坏监督程序和系统程序。系统保护的问题亟待解决。1.2.4执行系统60年代初期,计算机硬件获得了两方面的发展,一是通道的引入,二是中断技术的出第1章操作系统概述5现,这两项重大成果使操作系统进入执行系统阶段。通道是一种输入/输出专用处理机,它能控制一台或多台外设工作,负责外部设备与内存之间的信息传输。它一旦被启动,就能独立于CPU运行,这样就可使CPU和通道并行操作,而且CPU和各种外部设备也能并行操作。中断是指当CPU接到外部硬件(如I/O设备)发来的信号时,马上停止原来的工作,转去处理这一事件,在处理完了以后,CPU又回到原来的工作点继续工作。借助于通道、中断技术,输入/输出工作可以在CPU控制之下完成。这时,原有的监督程序不仅要负责调度作业自动地运行,而且还要提供输入/输出控制功能(即用户不能直接使用启动外设的指令,它的输入/输出请求必须通过系统去执行),它比原有的功能增强了。这个扩展后的监督程序常驻内存,称为执行系统。执行系统比脱机处理前进了一步,它节省了卫星机,降低了成本,而且同样能支持主机和通道、主机和外设的并行操作。在执行系统中用户程序的输入/输出工作是委托给执行系统实现的,由执行系统检查其命令的合法性,提高了系统的安全性,可以避免由于不合法的输入/输出命令造成对系统的威胁。批处理系统和执行系统的普及,发