第一章 概论
《Operating System Internals and Design Principles》
《Applied Operating System Concepts》
操作系统——裸机上的第一层软件,它是对硬件系统功能的首次扩充,填补人与机器之间的鸿沟。
1.1 操作系统与计算机同在
1.2 对操作系统的认识
对操作系统的认识有两方面:
1. 从用户的观点来看操作系统
>虚拟机的观点
>用户环境的观点
2. 从系统设计者(系统分析员)的观点来看操作系统
>资源管理的观点
>作业(任务)组织的观点
虚拟机观点:
该观点认为,操作系统是建立在计算机硬件平台上的虚拟机器,它为应用软件提供了许多比计算机硬件功能更强或计算机硬件所没有的功能。
操作系统在虚拟机中充当管理员和协调员的角色,管理计算机的软硬件资源,并协调多任务,多进程的运行。
用户环境的观点:命令接口+程序接口
命令接口
用户可通过该接口向作业发出命令以控制作业的运行。可分为联机用户接口和脱机用户接口。
(1)联机用户接口
这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。
>字符形式:较灵活但因繁琐而难记
>菜单形式:试图在字符终端上提供友好的用户界面
>图形形式:直观易记但不灵活
(2)脱机用户接口
用户用JCL(Job Control Language)把需要对作业进行的控制和干预,事先写在作业说明书上,然后将作业连同作业说明书一起提供给系统。当系统调度到该作业运行时,再调度命令解释程序,对作业说明书上的命令,逐条的解释执行。该接口即为批处理接口。 .sh .bat
程序接口
·该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的唯一途径。
·它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。
·不同的系统其调用形式不同。
资源管理观点:
·该观点认为,操纵系统是计算机系统中各类资源的管理者,它负责分配、回收以及控制系统中的各种软硬件资源。
——监视资源
——分配/回收资源
——保护资源
·跟踪资源的使用状况、满足资源请求、提高资源利用率,以及协调各程序和用户资源的使用冲突。
作业组织观点:
·该观点认为,操作系统是计算机系统工作流程的组织者,它负责协调在系统中运行的各个应用软件的运行次序。
·用于巨型机和大型服务器上,以批处理方式提交作业,请求主机逐个运行。
·主机操作系统负责组织、协调各个作业的运行,报告执行结果或错误信息。
·减少人工干预,提高了系统效率。
1.3 操作系统的主要功能
·操作系统具有六方面的功能
1. 进程管理
2. 存储器管理
3. 设备管理
4. 文件管理
5. 作业管理
6. 操作系统安全
一、进程管理功能
·进程管理的主要功能:按照一定的算法把处理机分配给进程/线程,并对其进行有效的管理和控制。
·进程控制、进程同步、进程通信、进程调度
1. 进程控制
进程控制的主要功能是为作业创建进程、撤销已结束的进程、以及控制进程在运行过程中的状态转换。
2. 进程同步
进程同步是为多个进程的运行进行协调。同步机制。
·两种协调方式
(1)进程互斥方式:指进程(线程)在对临界资源进行访问时,应采用互斥方式。
(2)进程同步方式:指进程相互合作去完成共同的任务时,诸进程之间的协调。
·实现进程同步采用信号量机制。
3. 进程通信
——进程之间的信息交换。
当相互合作的进程(线程)处于同一计算机系统时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(message)挂到目标进程的消息队列上,以后由目标进程利用接受命令从其消息队列中取出消息。
间接通信方式:将消息置于中间实体中(邮箱)。
4. 进程调度
作业调度+进程调度
从进程的就绪队列中,按照一定的算法,选出一新进程,把处理机分配给它,使进程投入执行。
二、存储器管理功能
·存储器管理的主要任务:为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。
·内存分配、内存保护、地址映射、内存扩充
1. 内存分配
·内存分配有两种方式:
(1)静态分配方式 每个作业运行之前分配好内存空间,在作业的整个运行期间不再改变。
(2)动态分配方式 每个作业在运行前或运行中,均可申请新的附加存储空间,以适应程序和数据的动态增长。
·内存分配机制中的结构和功能
(1)内存分配的数据结构,该结构用于记录内存空间的使用情况。
(2)内存分配功能,为用户程序分配内存空间。
(3)内存回收功能,当用户不再需要内存时,系统回收内存的功能。
2. 内存保护
·内存保护的主要任务: 确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。
·内存保护机制: 设置两个界限寄存器,越界检查都由硬件实现。
3. 地址映射
在硬件的支持下完成。
·地址空间——目标程序或装入程序限定的空间,称为“地址空间”。单元的编号称为逻辑地址,又称为相对地址。
·内存空间——由内存中的一系列单元所限定的地址范围称为“内存空间”。其中的地址称为“物理地址”。
·地址映射——运行时,将地址空间中的逻辑地址转换成内存空间中与之对应的物理地址称为地址映射。
4. 内存扩充
·借助于虚拟存储技术,从逻辑上取扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多。
·扩充内存必须具有内存扩充机制
(1)请求调入功能
在程序运行过程中,若所需的程序和数据尚未装入内存,可由OS从磁盘中将所需部分调入内存,继续运行。
(2)置换功能
将内存中的一部分暂时不用的程序和数据调出到磁盘上,然后再将所需调入的部分装入内存。
三、设备管理功能
·设备管理的主要任务:完成用户进程提出的IO请求;为用户进程分配其所需的IO设备;提高CPU和IO设备的利用率;提高IO速度;方便用户使用IO设备。
·设备处理程序、设备分配/回收、缓冲管理、设备独立性、虚拟设备。
1. 设备处理程序,又称设备驱动程序。其基本任务:用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出IO命令,要求它完成指定的IO操作。
2. 设备分配的基本任务,是根据用户进程的IO请求,按照某种设备分配策略,为之分配所需的设备。不同的设备类型(独占/共享)采用不同的设备分配方式。
设备控制表/控制器控制表
3. 缓冲管理:有效的缓和CPU和IO设备速度不匹配的矛盾,提高CPU的利用率,不同系统采用不同的缓冲技术。
4.设备独立:应用程序独立于物理设备,用户编写的程序与实际使用的物理设备无关。
5.虚拟设备
四、文件管理功能
·文件管理的主要任务:对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。
·文件管理的主要功能
1. 文件存储空间的管理
对诸多文件及文件的存储空间实施统一的管理。 离散分配方式
基于数据结构对存储空间进行分配和回收的功能。 盘块 512B~4KB
2. 目录管理
为每个文件建立目录项,并对众多目录项加以有效的组织与管理(例如,按名存取,文件共享,文件检索)。
3. 文件的读/写管理和共享与保护
(1)文件的读/写管理:根据用户的请求,从外存中读取数据或将数据写入外存。
(2)文件保护。读写操作不会同时进行--合用一个读写指针。
1.4 操作系统的服务
人们希望操作系统提供的服务有三种:
1. 操作系统能提供的服务。(功能性需求)
>通过命令接口和程序接口来实现。
2. 操作系统在提供这些服务时,需要满足的限制条件。(非功能性需求)
>硬件资源的能力,操作系统的类型(实时系统、分时系统)
3. 操作系统具有适应某些变化的能力。(非功能性需求)
>Performance or Efficiency--maximum throughout, minimize response time
>Fairness Reliability Security Scalability Extensibility Portability
第一类服务需求是后两类服务需求赖以存在的基础,称之为操作系统的功能性需求。
后两类服务称为操作系统的非功能性需求。
1.5 操作系统的基本特征
·现代OS的四个基本特征:并发、共享、虚拟、异步。
·并发是最重要的特征,其它特征都以并发为前提。
进程又称任务。
一、并发
·并发——并行性和并发性,并发执行的过程。
Parallelism:并行性指两个或多个事件在同一时刻发生。
Concurrency:并发性指两个或多个时间在同一时间间隔内发生。
·任务共行
——从宏观上看,任务共行是指系统中有多个任务同时运行。
——从微观上看,任务共行是指
单处理机系统中的任务并发(Task Concurrency):多个任务在单个处理机上交替运行;
多处理机系统中的任务并行(Task Parallelism):多个任务在多个处理机上同时运行。
二、共享
·所谓共享是指系统中的资源可供内存中多个并发执行的进行共同使用。
1. 互斥共享方式
如打印机。
——把在一段时间内只允许一个进程访问的资源,称为临界资源。
——系统中的临界资源可以供给多个进程使用,但一次仅允许一个进程使用,称为互斥共享方式。
2. 同步访问方式
如磁盘
——从宏观上看,资源共享是指多个任务可以同时使用系统中的软硬件资源。
——从微观上看,资源共享是指多个任务可以交替互斥的使用系统中的某个资源,例如磁盘。
三、虚拟
·所谓虚拟是指通过某种技术把一个物理实体变为若干逻辑上的对应物。
·虚拟处理机:分时实现
·虚拟设备:SPOOLING技术
·虚拟存储器:虚拟存储管理实现
四、异步
1.执行结果不确定;
2.异步性——指进程以异步的方式执行,进程以人们不可预知的速度向前推进。
1.6 操作系统的形成与发展
·操作系统发展的原因:
1.硬件升级和新型硬件的出现,OS都应能适应。
2.新的服务:为适应用户的要求或系统管理员的需要,需要扩展操作系统以提供新的服务。
3.纠正错误:任何一个操作系统都有错误,在使用一段时间后发现了错误就需要进行纠错。当然,纠错本身可能会产生新的错误。
4.计算机体系结构的不断发展。
·根据计算机采用的电子器件来划分
1.电子管计算机
2.晶体管计算机 批处理操作系统
3.集成电路计算机 IC Integrated Circuit “多道程序”“分时系统”
4.大规模集成电路计算机 GUI Windows
5.智能计算机
6.生物计算机
·体积大小、处理能力强弱标准划分
1.微型计算机——功能多样的个人计算机;
2.小型计算机——功能较强,可以同时执行多个任务;
3.大中型计算机——功能强大的通用数字电子计算机;
4.超级计算机——运算速度最快、存储容量最大、功能最完善。
·现代计算机发展趋势
1.微型化
2.巨型化
3.网络化
4.多媒体化
5.智能化
1.7 操作系统的分类
·人工操作
·脱机输入输出
·单道批处理系统
·多道批处理系统
·分时系统
·实时系统
无操作系统时的计算机系统
1、人工操作方式
一台计算机的所有资源由用户独占,降低了计算机资源的利用率,人工操作慢,出现了严重的人机矛盾。
2、脱机输入输出方式
·在外围计算机的控制下,实现输入输出
·主要解决了CPU与设备之间不匹配的矛盾
一、单道批处理系统
1、在内存中仅存一道作业运行,运行结束或出错,才自动调另一道作业运行。
2、单道批处理系统主要特征:自动性、顺序性、单道性。
3、单道批处理系统主要优点:减少人工操作,解决了作业的自动连续。
4、单道批处理系统主要缺点:平均周转时间长,没有交互能力。
二、多道批处理系统
·多道程序的概念:在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行。
·多道批处理系统主要特征:多道性、无序性、调度性(进程调度和作业调度)。
·多道批处理系统主要优点:提高CPU、内存和IO设备的利用率。
·多道批处理系统主要缺点:平均周转时间长,没有交互能力。
三、分时系统
·分时系统的产生:用户需要——人机交互、共享主机、便于用户上机。
·分时系统实现的方法:
简单分时系统
具有“前台”和“后台”的分时系统
多道分时系统
·分时系统中的关键问题
——及时接收:实现多个用户的信息及时接收;
——及时处理:及时控制作业的运行。
·分时系统的特征:
——多路性:多个用户分时使用一台计算机;
——独立性:独立运行,不混淆,不破坏;
——及时性:系统能在很短的时间的到回答;
——交互性:能实现人机对话。
·影响响应时间的若干因素
改善响应时间的方法:
采用重入码减少信息的对换量;
采用虚拟存储技术,减少信息对换量。
四、实时系统
·所谓实时系统:是计算机及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行。
·实时系统分两类:
实时控制系统;实时信息处理系统。
·实时系统的特征
——多路性:能对多个对象进行控制;
——独立性:独立运行,不混淆,不破坏;
——交互性:仅限于访问系统中某些特定的专用服务程序;
——可靠性:高可靠性,应具有过载防护能力;
——及时性:不同的系统要求不一样,控制对象必须在截止时间内完成。
1.8 操作系统的体系结构
·操作系统中增加了越来越多的功能,并且随着底层硬件更高的性能,更加通用,操作系统的大小和复杂性也随着增加。
·为了控制该软件的复杂性,在开发OS时,先后引入了分解、模块化、抽象、隐蔽等方法。开发方法的不断发展,促进了OS结构的更新换代。
无结构-->模块化结构-->层次结构--> 微内核 面向对象 客户/服务器结构
1.模块化OS结构
·使用分块结构的系统包含若干module(模块),其中每一块实现一组基本概念以及与其相关的基本属性。
·块与块之间的相互联系:所有各块的实现均可以任意引用其它各块所提供的概念及属性。
·模块化OS的优缺点:
优点:
(1)提高了OS设计的正确性,可理解性,可维护性;
(2)增强了OS的可适应性;
(3)加速了OS的开发过程。
缺点:
(1)对模块的划分及对接口的规定要精确描述很困难;
(2)从功能观点来划分模块时,未能将共享资源和独占资源加以区别。
2.分层OS结构
使模块间调用的无序性变为有序性
·使用分层系统结构包含若干layer(层),其中,每一层实现一组基本概念以及与其相关的基本属性。
·层与层之间的相互关系
>所有各层的实现不依赖其以上各层所提供的概念及属性,只依赖于其直接下层所提供的概念及属性。
>每一层均对其上各层隐藏其下各层的存在。
依据总体功能设计和结构设计中的功能图和数据流图进行分层。
||——操作方式的实现(批处理/分时/实时)——||
||——系统调用(为进程提供服务)——||
||——与硬件相关的(中断,IO)放在底层——||
保证正确性
易维护
效率低
3.常见OS总体结构
双模式基础平台子系统总体结构风格:
双模式基础平台子系统其总体结构包含两个模式模块,它们分别在两种不同的CPU特权模式下运行:
注:习惯上,人们把双模式基础平台子系统的这两个模式模块分别称为核外子系统和核心子系统;
把核外子系统所使用的CPU模式称为 User Mode
把核心子系统所使用的CPU模式称为 Kernel Mode
双模式运行结构图
Apple | CP-M | 8bit |
IBM | PC-DOS | 16bit |
MS | MS-DOS | 16bit |
| Windows 3.0 | 多道批处理 |
| Windows 95 | 分时系统 |
| Windows NT 4.0 | 内存丢失 |
| Windows 2000 | 多处理器 |
Windows操作系统
·DOS(Disk Operating System)操作系统曾是著名的个人计算机操作系统,以Intel 80x86为处理器的16位机器上,是一种以字符为基础的、命令式的界面平台。
·MS-DOS和PC-DOS,前者是微软(MicroSoft)公司的产品,后者是IBM公司的产品。
·DOS操作系统家族已经完成了它们的历史使命,进入了IT博物馆。
·MicroSoft于1985年推出了一种采用图形用户界面(GUI--Graphic User Interface)的新颖的操作系统,称为视窗(Windows)操作系统。此后,Windows操作系统系列逐渐发展壮大,形成了具有多种分支、版本、语言的操作系统家族。
UNIX操作系统
·UNIX操作系统最早由美国电话与电报公司(AT&T)贝尔实验室研制。
·在1969年以来,广泛的配置于大、中、小型计算机上。
·随着微型机系统功能的增强,逐渐下移配置到个人计算机和微机工作站上。
·它的早期微机版本被称为XENIX系统,目前已将UNIX系统的4.x版本在微机上实现运行。
UNIX系统是一种开放式的操作系统
主要特点
·它是一个真正的多用户、多任务操作系统,也是一种著名的分时操作系统。
·具有短小精悍的系统内核和功能强大的核外程序,前者提供系统基本服务,后者则向用户提供大量的强功能服务。
·具有典型的树形结构文件系统,并可建立可拆卸的文件子系统(文件存储系统)。
·虽然用户操作界面多采用命令行方式,但其强有力的Shell编程环境,既成为命令解释工具,又成为一种编程语言。
LINUX操作系统
·Linux是Unix的变种,是一个源代码开放的,多用户操作系统。
·Linux支持多用户、多任务、分页式虚拟存储、动态链接库、动态调整文件系统缓冲区大小等功能。
·其网络功能非常强大,几乎能与当前绝大多数网络互连。
·Linux的结构属于整体式结构,由若干过程组成,过程之间可以相互调用。
·这样的结构使其子系统易于扩展,因此,Linux为众多开发者提供了自由灵活的设计环境,使它得以快速发展。
Linux的抽象结构
>用户进程
>系统调用接口:由若干指令构成,运行在内核模式,是Linux内核代码的一部分
>Linux内核:是OS的灵魂,负责管理文件、内存,启动运行程序,从网络接收/发送数据包
>硬件:CPU、硬盘、网络硬件等。
微内核:
尽可能减少内核的功能
微内核只包含基本的、共同的功能(进线程管理、低级存储器管理、中断和陷入的处理)
基于客户/服务器模式。
1.9 操作系统的硬件环境
1.9.1 中央处理器 CPU
总线
地址总线
数据总线
控制总线
8个32位通用寄存器
数据寄存器组
AX 累加器(Accumulator),是CPU中使用最多,功能最强,执行效率的寄存器.
BX 基地址寄存器(Base Register).
CX 计数寄存器(Count Register).
DX 数据寄存器(Data Register).
指示器变址寄存器组
SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。
BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;
SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;
DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针
指令指针寄存器:IP(Instruction Pointer),与CS配合使用,可跟踪程序的执行过程。
段寄存器组:
CS(Code Segment):代码段寄存器;
DS(Data Segment):数据段寄存器;
SS(Stack Segment):堆栈段寄存器;
ES(Extra Segment):附加段寄存器。
标志寄存器:FLAGS
SS:SP
CS:IP
DS:XXXX
段最大2^16=64k,1M内存最少16个段。
每个CPU都有自己的指令系统
组成:
运算器:算术逻辑单元
控制器:控制程序运行流程:取指、维护处理机状态、内存交互
寄存器:暂存数据、地址、指令
高速缓存:由控制器的内存管理单元MMU(memory management unit)管理
寄存器:
1、用户可见寄存器
数据寄存器(通用寄存器)
地址寄存器
条件码寄存器
2、控制和状态寄存器
程序计数器 PC program counter
指令寄存器 IR instruction register
程序状态字 PSW program status word
——处理机工作状态码:指明管态、目态
——条件码:反映指令执行后的结果特征
——中断屏蔽码:是否允许中断
指令周期:
读取指令
执行指令
5类指令
访问存储器指令
IO指令
算术逻辑指令
控制转移指令
处理机控制指令 改变处理机状态
多道程序设计中,分特权指令/非特权指令,仅由操作系统执行。
如果程序使用特权指令,将引起处理机状态切换到内核态,将处理权移交给操作系统中的一段特殊代码,这一过程称为陷入。
处理机状态:
管态 特权态 系统态
目态 普通态 用户态
1.9.2 存储体系
RAM random access memory
ROM read only memory
层次结构:程序的存储访问局部性原理
寄存器-->高速缓存-->内存-->硬盘-->光盘
存储分块
bit
Byte = 8bit 存储器最小编址单位
Word = 2Byte
Double Word = 4 Byte
存储器分块,以块(物理页)为单位进行管理 512B 1KB 4KB 8KB等
存储保护
界地址寄存器
下限寄存器+上限寄存器 或
基址寄存器+限长寄存器(指示存储区长度)
如越界,产生越界中断/存储保护中断
存储键
操作系统为进程和其可访问内存块赋予相同的存储保护键。
进程运行时,将存储键号放入PSW,每当访问内存,则进行匹配。
多级缓冲技术
缓解处理速度与传输速度不匹配的矛盾
1、处理机<-->内存
2、处理机<-->外设
2、外设<-->外设
1.9.3 中断
处理机对系统中或系统外发生的异步事件的响应,操作系统为中断事件驱动。
异步事件:无一定时序关系的随机发生的事件。(外设完成数据传输,实时设备异常等)
中断来源于:异步事件发生后,打断了处理机对当前程序的执行,转而处理此事件。处理完成后,再转回原程序的中断点继续执行。
最初,中断技术是向处理机报告“设备已完成操作”的一种手段,避免处理机不断测试设备状态而耗费大量处理机时间。
相关概念:
通常,中断是作为要打断处理机正常工作并要求其去处理某一事件的一种常用手段出现。
中断断点
中断时间/中断源 PC机中有256中不同的中断
中断字
中断请求
中断处理程序
中断返回
在中断断点处,中断源将中断字作为中断请求发送给处理机,处理机进行中断响应,运行中断处理程序后中断返回。
作用:充分发挥处理机使用效率,避免不断查询和等待,提高系统实时能力。
典型4种中断:
1、程序中断 除0、溢出、非法指令、数组越界
2、时钟中断
3、IO中断
4、硬件失效中断
中断:正常执行的程序被打断,完成中断处理后再恢复执行。
微机中:
可屏蔽中断(IO中断)
不可屏蔽中断(硬件中断)
程序错误中断(除0、溢出)
软件中断(Trap指令/中断指令)
IBM370中:
计算机故障中断 ( 电源故障、电路检验错、内存奇偶校验错)
IO中断
外部中断 (时钟中断、外设实时中断...)
程序中断 (除0、溢出、数组越界)
访管中断 (系统调用、访管指令/陷阱指令)
从被激发的方式:
强迫性中断:随机性较强 时钟中断、IO中断、控制台中断、硬件故障、程序性中断(非法指令)
自愿性中断:由访管指令引起,要求操作系统提供系统服务
异步中断 随机
同步中断 异常 位置确定
硬件中断
软件中断
中断系统:硬件+软件
硬件中断装置
软件中断处理程序
很多中断源可能同时发生,需由中断逻辑按中断优先级判定相应哪个中断请求。
每个中断源对应一个触发器来寄存中断信号,1为有中断信号。
触发器全体称为中断寄存器,每个触发器称为一个中断位。
处理机控制器中有一个中断扫描器,在每条指令周期的最后时刻扫描中断寄存器,若有中断,则将该触发器内容按规定编写入PSW的响应位,称为中断码。
多级中断和中断屏蔽
多级中断:有多根中断请求线(级)从不同设备连接到中断逻辑,具有相同特性和优先级的设备可连接到同一中断线(级)上。
中断优先级:同一优先级的多个中断请求
——固定优先级:近者优先
——轮转法
自愿访管中断不能被禁止
由PSW中的某些位决定被屏蔽的中断类。
向量中断:当处理机接收某优先级较高的中断请求时,该设备向处理机发送一个唯一性的“中断向量”以标识该设备。
中断向量在各计算机上实现方法差别比较大。
有的计算机,将内存最低的128个字作为中断向量表。
中断优先级由高到低:
机器故障
程序中断 和 访管中断
外部中断
IO中断
实时系统中,将重要意义的传感器发出的中断作为高优先级。
中断过程中又发生中断:
1、挂起,等本中断完成后再执行;
2、按优先级决定,若高于本中断,则挂起本中断,执行之。
时钟:硬件的时钟寄存器按时钟电路产生的脉冲+1/-1
操作系统会提供虚拟时钟(软件时钟)