《计算机操作系统(第三版)》(汤小丹)学习笔记
更多有趣的计算机知识和代码示例,可参考【Programming】
1、操作系统的目标和作用
计算机操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的核心程序,它作为用户与计算机硬件之间的桥梁,负责协调、管理和控制计算机系统的各种活动和资源。
操作系统(OS,Operating System)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
(1)OS 的定义
计算机操作系统是一种系统软件,它直接运行在计算机硬件之上,为上层应用程序提供基础服务,并管理计算机系统的各种资源,如处理器、内存、存储设备、输入输出设备等。 操作系统通过提供用户接口和一系列的服务,使得用户能够更加方便、高效地使用计算机。
(2)OS 的功能
处理器管理:

- 操作系统负责分配处理器时间,确保多个程序能够公平、高效地共享处理器资源。
- 通过调度算法,操作系统决定哪个程序在何时获得处理器时间,以优化系统性能。
内存管理:
- 操作系统管理计算机的内存资源,包括分配和回收内存空间。
- 它采用虚拟内存技术,将硬盘空间作为内存使用,以支持更大的程序和数据。
设备管理:
- 操作系统负责管理和控制计算机的各种设备,如打印机、显示器、键盘等。
- 它提供设备驱动程序,使得应用程序能够方便地与设备进行交互。
文件管理:
- 操作系统提供文件系统,用于组织、存储和检索文件。
- 它负责文件的创建、删除、修改和访问控制,确保文件的安全性和完整性。
用户接口:
- 操作系统提供用户接口,如命令行界面或图形用户界面,使得用户能够方便地与计算机进行交互。
- 通过用户接口,用户可以执行程序、管理文件、配置系统等。
(3)OS 的类型
批处理操作系统:
- 批处理操作系统用于处理大量批处理作业,如数据处理、科学计算等。
- 它自动地、顺序地执行作业,无需人工干预。
分时操作系统:
- 分时操作系统允许多个用户通过终端同时使用计算机。
- 它将处理器时间划分为多个时间片,轮流分配给各个用户,使得每个用户都感觉自己在独占计算机。
实时操作系统:
- 实时操作系统用于处理实时任务,如工业控制、航空航天等。
- 它要求系统对外部事件做出及时响应,并在严格的时间限制内完成任务。
网络操作系统:
- 网络操作系统用于管理网络资源,如服务器、工作站、网络设备等。
- 它提供网络通信、资源共享、安全管理等功能,支持多用户、多任务的网络环境。
分布式操作系统:
- 分布式操作系统用于管理分布式系统,如云计算、大数据等。
- 它将多个计算机连接成一个整体,提供统一的系统视图和资源管理,支持并行计算和分布式处理。
(4)OS 的重要性
提高系统效率
- 操作系统通过优化资源分配、减少系统开销、提高处理器利用率等手段,提高计算机系统的整体效率。
方便用户使用
- 操作系统提供用户接口和一系列的服务,使得用户能够更加方便、高效地使用计算机。
保障系统安全
- 操作系统提供安全管理功能,如用户认证、访问控制、数据加密等,确保计算机系统的安全性。
推动技术发展
- 操作系统作为计算机系统的核心软件,其发展和创新推动了计算机技术的不断进步和应用。
1.1、操作系统的目标
在计算机系统上配置操作系统的主要目标,首先与计算机系统的规模有关。
影响操作系统的主要目标的另一个重要因素是操作系统的应用环境。
(1)有效性
以前计算机、操作系统很贵,有效性很重要
有效性包含如下两方面的含义
- 提高系统资源利用率
- 提高系统的吞吐量(Throughput):吞吐量通常定义为系统在特定时间段内能够处理并完成的作业、请求或事务的总数。它反映了系统处理任务的能力,是评估系统性能的关键指标之一。
(2)方便性
配置 OS 后可使计算机系统更容易使用
计算机越来越便宜后,方便性慢慢变得更加被重视
eg:方便的图形用户界面
-
操作系统通过提供用户接口(如命令行界面或图形用户界面)和一系列的服务(如文件管理、程序执行等),使得用户能够更加方便、高效地使用计算机。
-
它隐藏了底层硬件的复杂性,使用户无需了解硬件的具体细节即可进行操作。
(3)可扩充性
OS 必须具有很好的可扩充性,放能适应计算机硬件、体系结构以及应用发展的要求
eg:多处理机系统、计算机网络、Internet 的发展,对 OS 提出了更新的要求
操作系统通过提供虚拟内存、进程管理、设备驱动等功能,扩充了计算机的功能,使得计算机能够处理更加复杂的任务。
eg 通过虚拟内存技术,操作系统可以将硬盘空间作为内存使用,从而支持更大的程序和数据
(4)开放性
Internet 的应用日益普及,使 OS 的应用环境已有单机封闭环境转向开发的网络环境。
开放性已成为 20 世纪 90 年代以后计算机技术的一个核心问题,也是一个新推出的系统或软件能否被广泛应用的至关重要的因素。
操作系统通过遵循国际标准(如POSIX标准),构筑了一个开放的环境,使得不同的硬件和软件能够相互兼容和协作。
这有助于推动计算机技术的发展和应用,促进软件产业的繁荣。
1.2、操作系统的作用
(1)OS 作为用户与计算机硬件系统之间的接口
OS 作为用户与计算机硬件系统之间的接口,为用户提供了一个方便、高效且安全的环境来操作计算机。
用户可通过以下三种方式使用计算机
命令行接口(CLI)
- OS 提供了命令行接口,允许用户通过输入命令来执行各种操作,如文件操作、进程管理、系统配置等。
- 命令行接口具有高效、灵活的特点,适合专业用户和高级用户。
图形用户界面(GUI)
- OS 还提供了图形用户界面,使得用户可以通过鼠标、键盘等输入设备以图形化的方式与计算机进行交互。
- 图形用户界面直观、易用,适合普通用户和初学者。
系统调用方式
- 系统调用是操作系统提供给用户程序(eg C 语言,编程接口)的一种接口,它允许用户程序请求操作系统内核执行某些特权操作,如文件操作、进程管理、内存管理等。
(2)OS 作为计算机系统资源的管理者
资源可以分为四类
- 处理器:分配和控制处理机,OS 负责将 CPU 时间分配给多个进程或线程,通过调度算法(如时间片轮转、优先级调度等)确保资源公平分配。
例如,在多任务操作系统中,OS 会在不同程序间快速切换,使用户感觉多个程序同时运行。 - 存储器:内存的分配与回收
- I/O 设备:I/O 设备的分配与操纵
- 文件管理:负责文件的存取、共享和保护
(3)OS 实现了对计算机资源的抽象
操作系统(OS)作为计算机系统的核心软件,不仅负责管理和分配硬件资源,还通过抽象技术将这些复杂的硬件资源转化为用户易于理解和使用的形式。这种抽象能力极大地简化了用户与计算机硬件之间的交互,提高了系统的易用性和可维护性。
eg:在裸机上铺设的 I/O 软件隐藏了对 I/O 设备操作的具体细节,向上提供了一组抽象的 I/O 设备。
抽象的意义与优势:简化用户操作、提高系统易用性、增强系统灵活性、保障系统安全性
OS 是铺设在计算机硬件上的多层系统软件,它们不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它们实现了对计算机硬件操作的多个层次的抽象。
eg:I/O 软件抽象的基础上,再来一个永远管理文件的软件
1.3、推动操作系统发展的主要动力
(1)不断提高计算机资源的利用率
(2)方便用户
图形用户界面,使小学生都能很快的学会上机操作
(3)器件的不断更新换代
(4)计算机体系结构的不断发展
eg:单处理机系统发展为多处理机系统、计算机网络的出现
其它动力
(1)安全需求提升:随着网络安全威胁的不断增加,用户对操作系统的安全性提出了更高的要求。
(2)开源文化助力:开源操作系统的兴起为操作系统的发展注入了新的活力。
(3)新兴技术挑战:云计算、物联网、大数据等新兴技术的发展对操作系统提出了新的挑战和要求。
2、操作系统的发展过程
2.1、无操作系统的计算机系统
穿孔纸带/卡片、磁带
2.1.1、人工操作方式
通过纸带操作电脑是早期计算机使用的一种输入方式,在计算机发展的初期(20世纪40年代至60年代),纸带(穿孔纸带)是主要的存储和输入介质。
纸带操作的具体步骤示例
- 编写程序:程序员使用编程语言编写程序,并在编码表上确定每个指令和数据的穿孔位置。
- 穿孔纸带:使用键盘穿孔机,将程序和数据输入,生成穿孔纸带。
- 准备计算机:启动计算机,确保其处于准备状态。
- 装载纸带:将纸带装入纸带阅读器,调整张力,确保纸带平整。
- 启动输入:操作员按下启动按钮,纸带开始移动,阅读器将数据输入计算机。
- 监控过程:操作员监控纸带阅读器,确保没有卡纸或错误。
- 处理数据:计算机执行程序,处理输入的数据。
- 输出结果:处理结果可以通过纸带打孔机输出到新的纸带上,或打印在纸上。
- 保存纸带:将输入和输出的纸带妥善保存,以备将来使用。
纸带的优点和局限性
优点:
- 成本低廉:纸带材料便宜,易于生产和存储。
- 可离线准备:数据和程序可以在计算机之外准备,节省计算机时间。
- 持久性:纸带可以长期保存,便于数据备份和传输。
局限性:
- 速度慢:纸带的读写速度远低于现代存储设备。
- 易损坏:纸带容易撕裂、污染或丢失,导致数据丢失。
- 容量有限:单条纸带的存储容量有限,处理大型程序或数据集时需要大量纸带。
纸带操作的历史意义
- 计算机普及的推动者:纸带作为早期计算机的主要输入介质,促进了计算机的广泛应用。
- 数据存储的先驱:纸带是早期数据存储和传输的重要手段,为后来的磁带、磁盘等存储介质奠定了基础。
- 技术演进的见证:纸带的使用反映了早期计算机技术的特点,如机械式输入、低容量存储等。
人工操作方式有以下两个缺点
- 用户独占全机
- CPU等待人工操作
2.1.2、脱机输入/输出方式
为了解决人机矛盾及 CPU 和 I/O 设备之间速度不匹配的矛盾,20 世纪 50 年代末出现了脱机输入/输出(Off-line Input/Output)技术
脱机输入/输出方式是早期计算机系统中采用的一种数据处理模式,其核心特点在于输入/输出操作与计算机主机的处理过程相分离,通过独立的设备或介质完成数据的准备和结果的存储。
脱机输入方式
数据准备:
- 穿孔纸带/卡片:操作员使用键盘穿孔机将数据和程序输入到纸带或卡片上,形成穿孔编码。
- 磁带:将数据录制到磁带上,通过磁带机进行读写。
数据传输:
- 纸带阅读器:将穿孔纸带上的数据读入计算机,主机在纸带阅读完成后开始处理。
- 磁带机:通过磁带机将数据加载到计算机内存中,主机在处理完当前任务后,再处理磁带上的数据。
优点:
- 提高主机利用率:输入过程不占用主机时间,主机可专注于数据处理。
- 数据可重复使用:纸带和磁带可长期保存,便于数据的重复输入和备份。
脱机输出方式
结果存储:
- 穿孔纸带/卡片:将处理结果以穿孔形式输出到纸带或卡片上,供后续分析或存档。
- 磁带:将结果录制到磁带上,便于大容量数据的存储和传输。
结果呈现:
- 打印机:将结果打印在纸张上,便于人工阅读和分发。
- 绘图仪:将图形结果绘制在图纸上,适用于工程和科学计算。
优点:
- 灵活性:输出方式多样,可根据需求选择合适的存储介质。
- 持久性:输出结果可长期保存,便于后续查阅和使用。
2.2、单道批处理系统
真空管->晶体管,第二代计算机
单道批处理系统(Simple Batch Processing System)是计算机操作系统发展初期的一种重要处理方式,它在提高计算机资源利用率和系统吞吐量方面发挥了关键作用。
定义:单道批处理系统是一种将多个作业(程序和数据)以批处理的方式依次输入计算机,每次只处理一个作业的系统。作业完成后,系统自动加载下一个作业进行处理。
背景:在计算机发展的早期,主机资源有限,处理速度较慢,且人工操作效率低下。为了提高主机的利用率,减少人工干预,单道批处理系统应运而生。
特点
(1)单道性
每次只处理一个作业,作业之间不能并行执行。
CPU在作业处理过程中,若遇到I/O操作,会处于空闲状态,等待I/O完成。
(2)自动性
作业的处理过程由系统自动完成,减少了人工干预。
作业之间的切换由系统控制,无需人工操作。
(3)顺序性
作业按提交顺序依次处理,先提交的作业先处理。
系统无法根据作业的优先级或紧急程度调整处理顺序。
(4)脱机输入/输出
输入和输出操作通常在主机之外完成,通过纸带、卡片等介质进行。
减少了主机在I/O操作上的等待时间,提高了主机的利用率。
2.3、多道批处理系统
晶体管->小规模集成电路,第三代计算机
IBM 第一台小规模集成电路计算机——360机,成功开发出一台机器中运行多道程序的操作系统 OS/360
多道批处理系统(Multi-programmed Batch Processing System)是一种能够并发执行多个作业的批处理操作系统。
2.3.1、多道程序设计的基本概念
定义:多道批处理系统允许内存中同时驻留多道程序,这些程序宏观上并行运行,微观上串行执行,即CPU在某一时刻只能执行其中一个程序,各个作业轮流使用CPU,交替执行。这种设计方式显著提高了计算机系统的资源利用率,特别是CPU的利用率,因为当一个程序在等待I/O操作或其他资源时,CPU可以切换到另一个程序继续执行,从而减少了CPU的空闲时间。
背景:多道批处理系统是在单道批处理系统的基础上发展起来的。单道批处理系统每次只处理一个作业,当作业进行I/O操作时,CPU只能处于等待状态,导致CPU利用率较低。为了提高CPU的利用率,引入了多道程序设计技术,形成了多道批处理系统。
工作原理
- 作业提交:用户提交的作业都存放在外存中,并形成一个队列,称为“后备队列”。
- 作业调度:作业调度程序按照一定的调度算法从后备队列中选择若干个作业调入内存。
- 并发执行:多个作业在内存中并发执行,共享CPU和外部设备等资源。当一个作业在等待I/O处理时,CPU可以调度另一个作业运行,从而显著提高CPU的利用率。
- 结果输出:作业完成后,处理结果通过输出设备输出。
特点
- 多道性:内存中可同时驻留多道程序,这些程序共享CPU和外部设备等资源。
- 无序性:多个作业完成的先后顺序与它们进入内存的顺序之间没有严格的对应关系,先进入内存的作业不一定先被调度。
- 调度性:多道批处理系统必须具有作业调度和进程调度功能。作业调度用于从后备作业队列中选择一个或多个作业装入内存,进程调度则用于从内存中选择一个或多个进程在CPU上运行。
- 复杂性:多道程序系统中的作业并发执行,需要解决处理器竞争、内存分配和保护、I/O设备分配、文件组织与管理、作业管理以及用户与系统接口等一系列问题。
2.3.2、多道批处理系统的优缺点
优点:
- 资源利用率高:通过并发执行多个作业,显著提高了CPU和其他系统资源的利用率。
- 系统吞吐量大:由于多个作业可以同时处理,系统的整体吞吐量得到了提升。
缺点:
- 平均周转时间长:由于作业需要排队等待处理,平均周转时间通常较长。
- 无交互能力:用户一旦提交作业,就无法直接干预其运行,这对程序的调试和修改极为不便。
(3)多道批处理系统需要解决的问题
- 处理机管理问题
- 内存管理问题
- I/O 设备管理问题
- 文件管理问题
- 作业管理问题</