引言
大多数读者都会 Windows、Linux、FreeBSD或OS X 等某个操作系统有些体验,但是表面现象是会骗人的。用户与之交互的程序,基于文本的通常是 shell,基于图标的则称为:图形化用户界面,实际上他们并不是操作系统的一部分,尽管这些程序使用操作系统来完成工作。
1.1操作系统的目标和作用
1.1.1操作系统的目标
在计算机系统上配置操作系统,其主要目标是:方便性、有效性、可扩充性和开放性。
1.1.2 操作系统的作用
操作系统在计算机系统中起的作用,可以从:用户、资源管理以及资源抽象等多个不同的角度来进行分析和讨论。
1.方便OS作为用户与计算机硬件系统之间的接口
OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。换个活法可以说:用户在OS的帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序图1-1是OS作为接口的示意图。
由图1-1 我们可以看出,用户一共有三种方式来使用计算机:命令方式、系统调用和图表——窗口方式来实现与操作系统的通信,并取得它的服务。
2.方便OS作为计算机系统资源的管理者
一个计算机系统通常都含有多种硬件和软件资源。归纳起来可以将这些资源分为四类:处理机、存储器、I/O设备、文件(数据和程序),而OS的主要功能也正是对着四类资源进行有效的管理。
处理机管理:用于分配和控制处理机。
存储器管理:主要负责内存的分配与回收
I/O设备管理:负责I/O 设备的分配(回收)与操纵
文件管理:用于实现对文件的存取、共享和保护。
可见,OS的确是计算机系统资源的管理者。
当一台计算机系统同时供多个用户使用时,诸多用户对系统中共享资源的需求(包括数量和事件)有可能发生冲突。为此,操作系统必须对使用资源的请求进行授权,一协调诸多用户对共享资源的使用。
3.OS实现了对计算机资源的使用
对于一台完全没有软件的计算机系统(也就是裸机),因为它向用户提供仅仅是硬件接口,因此,用户必须对物理接口的实现细节有充分的了解,这一步导致了物理机难于广泛使用。
为了方便用户使用 I/O 设备,在裸机上覆盖上一层 I/O 设备管理软件。如图1-2所示。
由它(图1-2)来实现对 I/O设备操作的细节,并向上将 I/O 设备抽象为一组 数据结构以及一组 I/O 操作命令,如 read、write命令。
通常把覆盖了上述软件的机器称为扩充机器或者虚机器。它向用户提供了一个对硬件操作的抽象模型。用户可利用该模型提供的接口使用计算机,不需要去了解物理接口实现的细节,从而使用户更容易地使用计算机硬件资源。---->I/O设备管理软件实现了对计算机硬件操作的第一个层次的抽象。
同理,为了方便用户使用文件系统,又可以在 I/O 设备管理软件上在覆盖一层用于文件管理的软件。由它来实现对文件操作的细节,并向上层提供一组实现对文件进行存取操作的数据结构及命令。这样,用户可以利用该软件提供的数据结构及命令对文件进行存取。---->那么 文件管理软件实现了对硬件资源操作的第二个层次的抽象。
如果,我们再在文件管理软件上在覆盖一层面向用户的窗口软件,使得用户能够在窗口环境下方便的使用计算机,从而形成一台功能更强的虚机器。
由此可知,OS是铺设在计算机硬件上的多层软件的集合,他们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。值得说明的是,不仅可在底层对一个硬件资源加以抽象,还可以在高层对该资源底层已抽象的模型再次进行抽象,称为更高层的抽象模型。随着抽象层次的提高,抽象接口所提供的功能就越强,用户使用起来也就越方便。
1.1.3推动操作系统发展的主要动力
1. 不断提高计算机资源利用率 2. 方便用户 3. 器件的不断更新换代 4. 计算机体系结构的不断发展 5. 不断提出新的应用需求
1.2 操作系统的发展过程
1. 人工操作方式 两个缺点: (1)用户独占全机,即一台计算机的全部资源由上机用户所独占。 (2)CPU等待人工操作。当用户进行装带、卸带等人工操作时,CPU及内存等资源是空闲的。 人工操作方式严重降低了计算机资源的利用率,这就是人机矛盾。 虽然CPU的速度在不断提高,但是 I/O设备的速度却提高缓慢,这使得 CPU 与 I/O 设备之间速度不匹配的矛盾更加突出。 为此,曾先后出现了如:通道基础、缓冲技术,然而都未能很好地解决上所述矛盾,直至后来引入脱机输入/输出技术,才获得了相对较为满意的结果。 2. 脱机输入/输出方式 为了解决人机矛盾及CPU和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了脱机I/O技术。 该技术是事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。 当CPU需要这些程序和数据时,再从磁带上高速地调入内存。 类似地,当CPU需要输出时,可先由CPU把数据直接从内存高速地输送到磁带上,然后在另一台外围机的控制下,再将磁带上的结果通过相应的输出设备输出。 图1-3示出了脱机输入/输出过程。由于程序和数据的输 入和输出都是在外围机的控制下完成的,或者说,它们是在脱离主机的情况下进行的,故称为脱机输入/输出方式。 反之,把在主机的直接控制下进行输入/输出的方式称为联机输入/输出(On-Line I/O)方式。
主要优点: (1)减少了CPU的空闲时间。装带,卸带,以及将数据从低速 I/O设备送到高速磁带上的操作。 都是在脱机情况下由外围机完成的,并不占用主机时间,从而有效地减少 CPU的空闲时间。 (2)提高了 I/O 速度。当CPU在运行中需要输入数据时,是直接从高速的磁带上将数据输入到内的。 极大的提高了 I/O 速度,从而进一步减少了 CPU的空闲时间。
1.2.2单道批处理系统
- 单道批处理系统的处理过程:
首先由监督程序将磁带上的第一个作业装入内存,并把运行控制权交给该作业;当该作业处理完成时,又把控制权交还给监督程序,再由监督程序把磁带上的第二个作业调入内存。计算机系统就这样自动地一个作业紧接一个作业地进行处理,直至磁带上的所有作业全部完成,这样便形成了早期的批处理系统。虽然系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称为单道批处理系统。图1-4示出了单道批处理系统的处理流程。
由删除不难看出,单道批处理系统是在==解决人际矛盾和 CPU与 I/O 设备速度不匹配矛盾的过程中形成的。换言之,批处理系统旨在提高系统资源的利用率和系统吞吐量。单这种单道批处理系统仍然不能充分地利用系统资源,所以目前已经用的很少了。
单道批处理系统的缺点
单道批处理系统最主要的缺点是,系统中的资源得不到充分的利用。这是因为在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等待状态,必须在其
I/O完成后才继续运行。又因I/O设备的低速性,更使CPU的利用率显著降低。图1-5示
出了单道程序的运行情况,从图可以看出:在t2——》t3、t6——》t7时间间隔内CPU空闲。
为了能在系统中运行较大的作业,通常在计算机中都配置了较大容量的内存,但实际情况是有80%以上的作业都属于中小型,因此在单道程序环境下,也必定造成内存的浪费。类似地,为了满足各种类型的作业需要,在系统中将会配置多种类型的I/O设备。显然在单道程序环境下也不能充分利用系统资源。
1.2.3 多道批处理系统
多道程序设计的基本概念
为了进一步提高资源的利用率和系统吞吐量在该系统中,用户所提交的作业先存放在外存上,并排成一个队列,该队列称为后背队列,然后由作业调度程序按一定的算法,从后背队列中选择若干个作业调入内存,使他们共享CPU和系统中的各种资源。
由于同时在内存中装有若干道程序,这样便可以在运行程序A时,利用其因I/O操作而暂停执行时的CPU空档时间,再调度另一道程序B运行,同样可以利用程序B在I/O操作时的CPU空档时间,再调度程字C运行,使多道程序交替地运行,这样便可以保持CPU处于忙碌状态。图1-6示出了四道程序时的运行情况。
2. 多道批处理系统的优缺点
(1)资源利用率高。引入多道批处理能使多道程序交替运行,以保持CPU处于忙碌状态;在内存中装入多道程序可提高内存的利用率;此外还可以提高IO设备的利用率。
(2)系统吞吐量大。能提高系统吞吐量的主要原因可归结为:
①CPU和其它资源保持“忙碌”状态;
②仅当作业完成时或运行不下去时才进行切换,系统开销小。
(3)平均周转时间长。由于作业要排队依次进行处理,因而作业的周转时间较长,通常需几个小时,甚至几天。
(4)无交互能力。用户一旦把作业提交给系统后,直至作业完成,用户都不能与自己的作业进行交互,使得修改和调试程序极不方便。
多道批处理系统需要解决的问题
(1)处理机争用问题。既要能满足各道程序运行的需要,又要能提高处理机的利用率。
(2)内存分配和保护问题。系统应能为每道程序分配必要的内存空间,使它们“各得其所”,且不会因某道程序出现异常情况而破坏其它程序。
(3) I/O 设备分配问题。系统应采取适当的策略来分配系统中的I/O设备,以达到既能方便用户对设备的使用,又能提高设备利用率的目的。
(4)文件的组织和管理问题。系统应能有效地组织存放在系统中的大量的程序和数据,使它们既便于用户使用,又能保证数据的安全性。
(5)作业管理问题。系统中存在着各种作业(应用程序),系统应能对系统中所有的作业进行合理的组织,以满足这些作业用户的不同要求。
(6)用户与系统的接口问题。为使用户能方便的使用操作系统,OS还应提供用户与OS之间的接口。
为此,应在计算机系统中增加一组软件,用以对上述问题进行妥善、有效的处理。这组软件应包括:能有效地组织和管理四大资源的软件、合理地对各类作业进行调度和控制它们运行的软件,以及方便用户使用计算机的软件。正是这样一组软件构成了操作系统。
据此,我们可以把操作系统定义为:操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
===第一章操作系统引论======(2)https://developer.aliyun.com/article/1415704?spm=a2c6h.13148508.setting.22.6e1a4f0eQzpjQW