参考书籍:
前言 | |
概念 | 操作系统( OS ),是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充 |
主要作用 | OS 的主要作用是,管理好这些硬件设备,提高硬件设备的利用率,提高系统的吞吐量,并为用户和应用程序提供一个简单的接口,方便用户使用 |
阐述 | OS 是现代计算机系统中最基本和最重要的系统软件,其他诸如编译程序 、数据库管理系统等系统软件,以及大量的应用软件,都直接依赖于 OS 的支持,取得 OS 所提供的服务。 事实上 OS 已成为现代计算机系统 、多处理机系统 、计算机网络中必须配置的系统软件 |
1.1 操作系统的目标和作用
操作系统的目标与应用环境有关;例如在查询系统中所用的 OS ,希望能够提供良好的人机交互性;对于应用于工业控制 、武器控制以及多媒体环境下的 OS ,要求其具有实时性;而对于微机上配置的 OS ,则更看着的是其使用是否方便。
1.1.1 操作系统的目标 | |
在计算机系统上配置操作系统,其主要目标是:方便性 、有效性 、可扩充性 、开放性 | |
1. 方便性 | 一个未配置 OS 的计算机系统是极难使用的 |
用户如果想直接在计算机硬件(裸机)上运行自己编写的程序,就必须用机器语言编写代码; 如果在计算机硬件上配置了 OS ,则 OS 可以使用编译命令把高级语言程序翻译成机器代码;或者用户可以直接通过 OS 提供的各种命令来操纵计算机系统,极大方便用户学习使用计算机系统 | |
2. 有效性 | 第一层含义:提高系统资源的利用率 未配置 OS 的计算机系统中,处理机 、I/O 设备等常处于空闲状态,各种资源无法充分利用,故提高系统资源利用率成为推动 OS 发展的最主要动力 |
第二层含义:提高系统的吞吐量 OS 可以通过合理地组织计算机的工作流程,加速程序运行,缩短程序运行周期,从而提高系统吞吐量 | |
方便性和有效性是设计 OS 时最重要的两个目标; 过去计算机系统比较昂贵,有效性更为重要,而随着硬件越来越便宜,使用计算机的方便性更受重视 | |
3. 可扩充性 | 为适应计算机硬件 、体系结构以及计算机应用发展的要求,OS 必须具有较好的可扩充性 |
可扩充性的好坏与 OS 的结构联系十分紧密,由此推动 OS 结构的发展;从早期的无结构发展成模块化结构,进而又发展成层次化结构,近年来 OS 已广泛采用了微内核结构。微内核结构能方便地增添新的功能和模块,以及对原有的功能和模块进行修改,具有良好的可扩充性 | |
4. 开放性 | 随着计算机应用的日益普及,计算机硬件和软件的兼容性问题便提上了日程;世界各国相应地制定了一系列的软 、硬件标准,使得不同厂家按照标准生产的软 、硬件都能在本国范围内很好地相互兼容,这无疑给用户带来了极大的便利,也给产品的推广 、应用铺平了道路;近年来,随着 Internet 的迅速发展,计算机 OS 的应用环境从单机环境变成了网络环境,OS 的应用环境就必须更为开放,进而对 OS 的开放性提出了更高的要求 |
所谓开放性,是指系统能遵循世界标准规范,特别是遵循开放系统互连 OSI 国际标准;事实上,凡遵循国际标准所开发的硬件和软件,都能彼此兼容,方便实现互连。 开放性已成为 20 世纪 90 年代以后,计算机技术的一个核心问题,也是衡量一个新推出的系统或软件能否北广泛应用的至关重要的因素 |
1.1.2 操作系统的作用
1.1.2 操作系统的作用 | |
操作系统在计算机系统中所起的作用,可以从用户 、资源管理以及资源抽象等多个不同的角度来进行分析和讨论 | |
1. OS 作为用户与计算机硬件系统之间的接口 | |
含义 | OS 作为用户与计算机硬件系统之间接口的含义是 :OS 处于用户与计算机硬件系统之间,用户通过 OS 来使用计算机系统;或者说,用户在 OS 帮助下能够方便 、快捷 、可靠地操作计算机硬件以及运行自己的程序 |
OS 作为接口 示意图 | 下图是 OS 作为接口的示意图;从图中可以看出,用户可以通过三种方式使用计算机 :命令行方式 、系统调用方式 、图标--窗口方式 ,来实现与 OS 的通信,并取得 OS 提供的服务 |
2. OS 作为计算机系统资源的管理者 | |
资源大类 | 在一个计算机系统中,通常都含有多种硬件和软件资源;归纳起来可将这些资源分为四大类 :处理机(CPU)、存储器 、I/O 设备 、文件(数据和程序) |
具体管理事宜 | 相应地,OS 的主要功能正是对这四大类资源进行有效的管理; i. 处理机管理,是用于分配和控制处理机 ii. 存储器管理,主要负责内存的分配与回收 iii. I/O 设备管理,负责 I/O 设备的分配(回收)与操纵 iv. 文件管理,实现对文件的存取 、共享 、保护 |
资源协调 | 可见,OS 的确是计算机系统资源的管理者; 值得进一步说明的是,当一台计算机系统同时供多个用户使用时,诸多用户对系统中的共享资源的需求(包括使用数量和占用时间)有可能发生冲突;为此,OS 必须对使用资源的请求进行授权,来协调各用户对共享资源的使用 |
3. OS 实现了对计算机资源的抽象 | |
I/O 抽象 | 对于一台完全没有软件的计算机系统(即裸机),由于其向用户提供的仅是硬件接口(物理接口),因此,用户必须对物理接口的实现细节有充分的了解,这就导致该物理机器难以广泛使用; 为了方便用户使用 I/O 设备,人们在裸机上覆盖一层 I/O 设备管理软件,由该 I/O 设备管理软件来实现对 I/O 设备操作的细节,并向上(上指的是用户)将 I/O 设备抽象为一组数据结构与一组 I/O 操作命令,如 read 、write 命令;这样的话,用户可利用这些数据结构与操作命令来进行数据的输入和输出,无需关心 I/O 是如何具体实现的。此时用户所看到的机器是一台比裸机功能更强 、使用更方便的机器;换句话说,在裸机上铺设的 I/O 软件,隐藏了 I/O 设备的具体细节,向上提供了一组抽象的 I/O 设备 |
虚拟机 | 通常,把覆盖了上述软件(对 I/O 来说,就是 I/O 设备管理软件)的机器(计算机系统)称为虚机器(扩充机器); 虚拟机向用户提供了一个对硬件操作的抽象模型,用户可利用该模型提供的接口使用计算机,无需了解物理接口的实现细节,从而使得用户更容易使用计算机硬件资源; 上述例子中,I/O 设备管理软件实现了对计算机硬件操作的第一个层次的抽象 |
文件抽象 | 同理,为了方便用户使用文件系统,又可在第一层软件(I/O 管理软件)上再覆盖一层用于文件管理的软件,由它来实现对文件操作的细节,并向上提供一组对文件进行读写操作的数据结构及命令;这样,用户可利用该软件提供的数据结构及命令,对文件进行读写; 此时,用户看到的是一台功能更强 、使用更方便的虚机器;文件管理软件实现了对硬件资源操作的第二个层次的抽象 以此类推,如果在文件管理软件上再覆盖一层面向用户的窗口软件,则用户便可在窗口环境下方便地使用计算机,从而形成一台功能更强的虚机器 |
总结 | 由此可知,OS 是铺设在计算机硬件上的多层软件的集合,这些软件集合不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型; 值得说明的是,不仅可在底层对一个硬件资源加以抽象,还可以在高层对已经抽象的资源模型再次进行抽象,成为更高层的抽象模型;随着抽象层次的提高,抽象接口所提供的功能就越强,用户使用起来也就越方便 |
1.1.3 推动操作系统发展的主要动力
1.1.3 推动操作系统发展的主要动力 | |
OS 自 20 世纪 50 年代诞生后,经历了由 | |
1. 不断提高计算机资源利用率 | |
2. 方便用户 | |
3. 器件的不断更新迭代 | |
4. 计算机体系结构的不断发展 | |
5. 不断提出新的应用需求 | |
1.2 操作系统的发展过程
前言 | |
在 20 世纪 50 年代中期,出现了第一个简单的批处理 OS ; | |
60 年代中期开发出多道程序批处理系统;不久又推出分时系统;与此同时,用于工业和武器控制的实时 OS 也相继问世 | |
20 世纪 70 到 90 年代,是 VLSI 和计算机体系结构大发展的年代,导致了微型机 、多处理机 、计算机网络的诞生和发展;与此相应地,也相继开发出了微机 OS 、多处理机 OS 和网络 OS ,并得到了极为迅猛的发展 |
1.2.1 未配置操作系统的计算机系统
1.2.1 未配置操作系统的计算机系统 | |
从 1945 年诞生的第一台计算机,到 50 年代中期的计算机,都属于第一代计算机;这时还未出现 OS ,对计算机的全部操作都是由用户采取人工操作的方式进行的 | |
1. 人工操作方式 | |
概念 (具体操作) | 早期的操作方式是 : 1. 程序员将事先已穿孔的纸带(或卡片),装入纸带(卡片)输入机 2. 启动输入机,将纸带(卡片)上的程序和数据输入计算机 3. 启动计算机运行 |
仅当程序运行完毕并取走计算结构后,才允许下一个用户上机 | |
缺点 | 1. 用户独占全机 :即一台计算机的全部资源由上机用户所独占 |
2. CPU 等待人工操作 :当用户进行装带(卡)、卸带(卡)等人工操作时,CPU 及内存等资源是空闲的 | |
总结 | 人工操作方式严重降低了计算机资源的利用率,即所谓的人机矛盾 虽然 CPU 的速度在迅速提高,但 I/O 设备的(读写)速度却提高缓慢,这使得 CPU 与 I/O 设备之间速度不匹配的矛盾更加突出; 为此,曾先后出现了通道技术 、缓冲技术,然而都未能很好地解决上述矛盾,直至后来引入脱机输入/输出技术,才获得了较为满意的结果 |
2. 脱机输入/输出(Off-Line I/O)方式 | |
背景 | 为了解决人机矛盾以及 CPU 和 I/O 设备之间速度不匹配的矛盾,20 世纪 50 年代末出现了脱机 I/O 技术 |
脱机 操作流程 | 脱机输入 : 1. 事先将装有用户程序和数据的纸带装入纸带(卡片)输入机 2. 在一台 "外围机" 的控制下,把纸带(卡片)上的数据(或程序)输入到磁带上 3. 当 CPU 需要这些程序和数据时,再从磁带上高速地调入内存 |
脱机输出 : 1. 当 CPU 需要输出时,可先由 CPU 把数据直接从内存中高速地输送到磁带上 2. 在另一台 "外围机" 的控制下,再将磁带上的结果输送到输出设备中 3. 输出设备将最终的结果进行输出 | |
脱机与联机 对比 | 由于程序和数据的输入和输出,都是在外围机的控制下完成的;或者说,都是在脱离主机的情况下进行的,所以称为脱机输入/输出方式 反之,在主机的直接控制下进行输入/输出的方式,称为联机输入/输出(On-Line I/O)方式 |
脱机 I/O 优点 | 1. 减少了 CPU 的空闲时间 装带 、卸带,以及将数据从低速 I/O 设备送到高速磁带上(或反向)的操作,都是在脱机情况下由外围机完成的,并不占用主机时间,从而有效地减少了 CPU 的空闲时间 |
2. 提高了 I/O 速度 当 CPU 在运行中需要输入数据时,是直接从高速的磁带上将数据输入到内存的,这样极大地提高了 I/O 速度,从而进一步减少了 CPU 的空闲时间 |
1.2.2 单道批处理系统
1.2.2 单道批处理系统 | |
20 世纪 50 年代中期出现了第二代晶体管计算机,此时计算机虽已具有推广应用的价值,但计算机系统仍然非常昂贵;为了能充分地提高计算机系统的利用率,应尽量保持系统的连续运行,即在处理完一个作业后,紧接着处理下一个作业,从而减少机器的空闲(等待)时间 | |
1. 单道批处理系统(Simple Batch Processing System)的处理过程 | |
批处理前提 | 为了实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在 Monitor 的控制下,确保这批作业能一个接一个地连续处理 |
批处理流程 | 1. 首先由监督程序将磁带上的第一个作业装入内存,并把(系统的)运行控制权交给该作业 |
2. 当第一个作业处理完成后,第一个作业把系统的运行控制权还给监督程序,再由监督程序把磁带上的第二个作业调入内存 | |
计算机系统就这样自动地,一个作业紧接一个作业地进行处理,直至磁带上的所有作业全部完成;这样便形成了早期的批处理系统 | |
单道批处理特点 | 虽然系统对作业的处理是成批进行的,但在内存中始终只保持一道作业,故称为 " 单道批处理系统 " |
单道批处理系统 处理流程示意图 | |
小结 | 单道批处理系统是在解决人机矛盾以及 CPU 与 I/O 设备速度不匹配矛盾的过程中形成的;也就是说,批处理系统旨在提高系统资源利用率和系统吞吐量;但是,这种单道批处理系统仍然不能充分地利用系统资源,所以如今已经很少使用了 |
2. 单道批处理系的缺点 | |