第一章 操作系统引论
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机地工作和资源分配,以提供给用户和其他软件方便的接口和环境,是计算机系统最基本的系统软件。
1.1 操作系统的目标和作用
-
操作系统的主要目标:
-
方便性
-
有效性:提高系统资源的利用率,提高系统吞吐量。
-
可扩充性
-
开放性
-
-
操作系统作用:
- OS作为用户与计算机硬件系统之间的接口:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。通过命令方式,系统调用方式和图标一窗口方式实现与操作系统的通信,并取得它的服务。
- OS作为计算机系统资源的管理者:计算机系统含有多种硬件和软件资源,可分为四类:处理机、存储器、I/O设备以及文件(数据和程序),对这四类资源进行有效的管理。
- 处理机管理用于分配和控制处理机。
- 存储器管理负责内存的分配和回收。
- I/O设配管理负责I/O设备的分配(回收)和操纵。
- 文件管理用于实现对文件的存取、共享和保护。
- OS实现了对计算机资源的抽象:OS是铺设在计算机硬件上的多层软件的集合,不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。
1.2 操作系统的发展过程及分类
- 人工操作方式
- 缺点:
- 用户独占全机,一台计算机资源的全部资源由上机用户所独占。
- CPU等待人工操作。输入输出纸带花销时间过多,而计算机运算花销时间短。
- 缺点:
- 批处理阶段
- 单批道处理系统(引入脱机输入输出技术)
- 优点:解决人机矛盾和CPU与I/O设备速读不匹配矛盾。
- 缺点:不能充分利用系统资源。
- 多道批处理系统(操作系统开始出现)
- 优点:多道程序并发执行,资源利用率高。系统吞吐量大。
- 缺点:不提供人机交互功能。平均周转时间长。
- 单批道处理系统(引入脱机输入输出技术)
- 分时操作系统
- 引入时间片的概念,系统规定每个作业每次只能运行一个时间片,然后就停止该作业的运行,并立即调度下一个作业运行。
- 分时系统的特征:
- 多路性:系统运行将多台终端同时连接在一台主机上,并按分时原则为每个用户服务。
- 独立性:每个用户在各自的终端上进行操作,彼此之间互不干扰。
- 及时性:用户的请求能在很短时间内获得响应。
- 交互性:用户可通过终端与系统进行广泛的人机对话。
- 优点:提供人机交互功能。
- 缺点:不能优先处理紧急任务。
- 实时操作系统
- 硬实时系统:必须在绝对严格的规定时间内完成处理。
- 软实时系统:能接受偶尔违反时间规定。
- 优点:能优先处理紧急任务。
1.3 操作系统的基本特性
-
并发:
- 并行性:指两个或多个事件在同一时刻发生。
- 并发性:指两个或多个事件在同一时间间隔内发生。分时交替执行。
- 进程是指系统中能够独立运行并作为资源分配的基本单位,是由一组机器指令、数据和堆栈组成的,是一个能独立运行的活动实体。多个进程之间可以并发执行和交换信息。
-
共享:
- 资源共享(资源复用),是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 互斥共享方式:规定在一段时间内,只允许一个进程访问该资源。
- 同时访问方式:允许子啊一段时间内又多个进程“同时”对它们进行访问,在微观上,这些进程对该资源的访问是交替进行的。
并发和共享式多用户OS的两个最基本的特征。它们互为存在条件。即一方面资源共享是以进程的并发执行为条件,如系统不允许并发执行也就不存在资源共享问题;另一方面,如系统不能对资源共享实施有效管理,以协调好诸进程对共享资源的访问,也必然会影响到诸进程间并发执行的程度,甚至根本无法并发执行。
- 虚拟:
- “虚拟”技术通过“空分复用”或“时分复用”技术,将一个物理信道变为若干条逻辑信道。通过虚拟技术将一个物理实体变为若干个逻辑上的对应物,前者是实际存在的,后者是虚假的。
- 时分复用技术:通过利用处理机的空闲事件运行其他程序,提高了处理机的利用率。
- 空分复用技术:通过利用存储器的空闲事件分区域存放和运行其他的多道程序,以此来提高内存的利用率。
- 异步:
- 在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。
- 只有系统拥有并发性,才有可能导致异步性。
1.4 操作系统的主要功能
- 处理机管理功能
- 进程控制:为作业创建进程,撤销(终止)已结束的进程,以及控制进程在运行过程中的状态转换。
- 进程同步:为多个进程(含线程)的运行继续协调,常用协调方式两种:进程互斥方式、进程同步方式。
- 进程通信:实现相互合作进程之间的信息交换。
- 调度:传统OS中,包括作业调度和进程调度。
- 作业调度:从后备队列中按一定算法选择除若干个作业,为它们分配运行所需的资源,将这些作业调入内存后,分别为它们创建进程,使它们都成为可能获得处理机的就绪进程,并将它们插入就绪队列中。
- 进程调度:从进程的就绪队列中按照一定的算法选出一个进程,将处理机分配给他,并为它设置运行现场,使其投入执行。
- 存储器管理功能
- 内存分配
- 为每道进程分配内存空间,提高存储器利用率,减少不可用的内存空间,允许正在运行的程序申请附加的内存空间,适应程序和数据动态增长的需要。
- 静态分配方式:作业在装入时内存空间确定好,运行期间不允许再申请新的内存空间,不允许作业在内存中“移动”。
- 动态分配方式:每个作业的内存空间再装入时确定,但允许该作业在运行过程中继续申请新的附加内存空间,适应程序和数据动态增长的需要。
- 内存保护
- 确保每道用户程序都仅在自己的内存空间运行,彼此互不干扰。
- 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中去执行。
- 地址映射
- 内存扩充:借助虚拟存储技术,从逻辑上扩充内存容量。
- 内存分配
- 设备管理功能
- 完成用户进程提出的I/O请求,为用户进程分配所需的I/O设配,并完成指定的I/O操作。
- 提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设配。
- 文件管理功能
- 文件存储空间管理:为每个文件分配必要的外存空间,提高外存利用率,进而提高文件系统的存、取速度。
- 目录管理:为每个文件建立一个目录项,并对众多的目录项加以有效的组织,一是想方便的按名存取。
- 文件的读/写管理和保护:根据用户的请求,从外存中读取数据,或将数据写入外存。在文件系统提供有效的存取控制功能:防止未经核准的用户存储文件,防止冒名顶替存取文件,防止以不确定的方式使用文件。
1.5 OS结构设计
-
分层结构
- 特性:内核分多层,每层可单向调用更低一层提供的接口。
- 优点:便于调试和验证,自底向上逐层调试验证;易扩充和易维护,各层之间调用接口清晰固定。
- 缺点:仅可调用相邻低层,安逸合理定义各层边界;效率低,不可跨层调用,系统调用执行时间长。
-
模块化
- 特性:将内核划分为多个模块,各模块之间相互协作。内核=主模块+可加载内核模块。主模块只负责核心功能,如进程调度、内存管理。可加载内核模块可以动态加载新模块到内核,而无需重新编译整个内核。
- 优点:模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发。支持动态加载新内核模块,增强OS适应性。任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高。
- 缺点:模块间的接口定义未必合理、使用;模块间相互依赖,更难调试和验证。
-
宏内核
- 特性:所有系统功能都放在内核里
- 优点:性能高,内核内部各种功能都可以直接相互调用。
- 缺点:内核庞大功能复杂,难以维护;大内核中某个功能模块出错,就可能导致整个系统崩溃。
-
微内核
-
特性:只把中断、原语、进程
-
优点:内核小功能少,易于维护,内核可靠性高;内核外的某个功能模块出错不会导致整个系统崩溃。
-
缺点:性能低,需要频繁的切换用户态/核心态,用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信。
-
-
外核
- 特性:内核负责进程调度,进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全。
- 优点:外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源。减少了虚拟硬件资源的“映射层”,提升效率。
- 缺点:降低了系统的一致性,使系统变得更加复杂。