操作系统概述
- [1.1 操作系统的概念](#1.1 操作系统的概念)
-
- [1.1.1 操作系统定义------什么是OS?](#1.1.1 操作系统定义——什么是OS?)
- [1.1.2 操作系统作用------OS有什么用?](#1.1.2 操作系统作用——OS有什么用?)
- [1.1.3 操作系统地位------计算机系统中,OS处于什么地位?](#1.1.3 操作系统地位——计算机系统中,OS处于什么地位?)
- [1.1.4 为什么学操作系统?](#1.1.4 为什么学操作系统?)
- [1.2 操作系统的历史](#1.2 操作系统的历史)
- [1.3 操纵系统的特性](#1.3 操纵系统的特性)
-
- [1.3.1 程序并发性](#1.3.1 程序并发性)
- [1.3.2 资源共享性](#1.3.2 资源共享性)
- [1.3.3 虚拟](#1.3.3 虚拟)
- [1.3.4 异步](#1.3.4 异步)
- [1.4 操作系统的分类](#1.4 操作系统的分类)
- [1.5 操作系统的运行环境](#1.5 操作系统的运行环境)
-
- [1.5.1 定时装置](#1.5.1 定时装置)
- [1.5.2 系统栈](#1.5.2 系统栈)
- [1.5.3 处理机状态及状态转换](#1.5.3 处理机状态及状态转换)
- [1.5.4 特权指令与非特权指令](#1.5.4 特权指令与非特权指令)
- [1.5.5 地址映射机构](#1.5.5 地址映射机构)
- [1.5.6 存储保护设施](#1.5.6 存储保护设施)
- [1.5.7 中断装置](#1.5.7 中断装置)
- [1.5.8 通道与DMA控制器](#1.5.8 通道与DMA控制器)
- [1.6 操作系统的界面形式](#1.6 操作系统的界面形式)
-
- [1.6.1 交互终端命令(Command Line)](#1.6.1 交互终端命令(Command Line))
- [1.6.2 图形用户界面(GUI---Graphic User Interface)](#1.6.2 图形用户界面(GUI—Graphic User Interface))
- [1.6.3 作业控制语言(Job Control Language, JCL)](#1.6.3 作业控制语言(Job Control Language, JCL))
- [1.6.4 系统调用命令(System Call)](#1.6.4 系统调用命令(System Call))
- [1.7 操作系统的运行机理](#1.7 操作系统的运行机理)
1.1 操作系统的概念
1.1.1 操作系统定义------什么是OS?
操作系统是什么?简单说,它实质就是一个软件。我们知道,没有任何软件的计算机称为裸机。裸机由电子元件构成,就和废铜烂铁一样,不能用。只有有了操作系统,它才能使用。各种应用软件,如游戏,word,编程工具也不能直接安装在裸机上使用,必须建立在操作系统上才能使用。
定义1:操作系统是位于硬件层(HAL)之上、所有其它软件层之下的一个系统软件,是管理系统中各种软硬件资源、方便用户使用计算机系统的程序集合。
定义2:是计算机系统中的一个系统软件,它管理和控制计算机系统中的硬件以及软件资源,合理组织计算机工作流程,使用户能高效地利用计算机,在用户和计算机之间起到接口的作用。
1.1.2 操作系统作用------OS有什么用?
管理系统中的软硬件资源
从资源管理 的观点,OS是计算机系统资源的管理者,它负责管理和分配系统中的各种硬件和软件资源,以保证系统的各种资源得以有效利用。
------ 计算机提供的资源:CPU 、内存、设备、文件(本质是信息,指的是数据和程序,以文件形式存在)
OS提供有效的管理:
• 处理机管理:用于分配和控制处理机。以后详细讲,这里不详细说
• 存储器管理:主要负责内存的分配和回收
• I/O设备管理:负责I/O设备的分配和操纵
• 文件管理:负责文件的存取、共享和保护
为用户提供良好的界面
从用户 的观点, OS为用户提供了一个友好的界面,使用户无须关心计算机内部的实现细节,从而更加方便灵活地使用计算机。
------ 命令方式、API、GUI (Graphic User Interface)
1.1.3 操作系统地位------计算机系统中,OS处于什么地位?
硬件抽象层(HAL)之上,所有其它软件层之下
注意,上图所示的层次关系具有穿透性:高层软件可调用所有低于所在层次的软件,并可与硬件直接打交道。

系统库(lib)可调用操作系统,执行硬件指令。
应用程序可以调用lib和操作系统,执行硬件指令。
操作系统的地位:
操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的第一次扩充。 OS在计算机系统中占据着特殊重要的地位,其它所有软件都依赖于它的支持,它是与硬件关系最密切的系统软件。
1.1.4 为什么学操作系统?
操作系统非常重要。我们应该树立一个观念,操作系统课程是针对所有类型计算机而言的(从大型到微型计算机系统)
之所以说它重要,是因为操作系统是进行软件开发的基础,是计算机学科,尤其是软件工程专业方向必备的知识和技能。在软件开发中,需要了解操作系统的工作原理和过程,在编写的软件中要用到硬件资源时,你会通过学习到操作系统中硬件管理的知识和调用来操作硬件。也就是说将来深入编程,能够熟练的和操作系统打交道。
生活中经常用到而没有意识到的操作系统:嵌入式操作系统,如手机,PDA等。
功利一点看:考研一般要考它...
1.2 操作系统的历史
1.2.1 操作系统的产生
手工操作阶段
就是无操作系统时代,人在计算机中工作。
在手工操作阶段,典型的作业处理步骤如下:
(1) 将程序和数据通过手工操作记录在穿孔纸带上;
(2) 将程序纸带放到光电输入机上,再通过控制台开关启动光电机将程序输入内存;
(3) 通过控制台开关启动程序由第一条指令开始执行;
(4) 运行结果在电传打印机上输出。
手工操作方式的缺点:
(1) 用户在其作业处理的整个过程中独享系统的全部资源;
(2) 手工操作所需时间很长。 (人机矛盾)
批处理阶段
缩短手工操作时间,使作业到作业之间的过渡摆脱人的干预, 实现自动化,提高了效率。成批处理经历了两个阶段:
(1) 联机批处理
(2) 脱机批处理。
联机/脱机指:I/O设备是否和主机相连
联机批处理(On-line Batch Processing)

工作原理:操作员将若干作业合成一批,将其卡片依次放到读卡机上,监督程序Monitor通过内存将这批作业传送到磁带机上大量作业在磁带机上排队等待处理。输入完毕,监督程序开始处理这一批作业。它自动将第一个作业读入内存,并对其进行汇编(或编译)、连接、执行、输出。第一个作业处理完立即开始处理第二个作业,如此重复,直至所有作业处理完,再处理第二批作业。
联机批处理的优点:
• 作业自动转换,大大缩短了手工操作时间。
• 出现了Monitor及相应软件的支持。
联机批处理的缺点:
作业由读卡机到磁带机的传输需要处理机完成,由于设备的传输速度远低于处理机的速度,在此传输过程中处理机仍会浪费较多时间。即I/O设备与CPU直接相连,CPU(主机)浪费。实际上还是处理机利用monitor程序来处理I/O。
为克服联机批处理的缺点, 引入了脱机批处理。基本思想是把输入/输出操作交给一个功能较为单纯的卫星机去做,使主机从繁琐的输入输出操作中解脱出来。
脱机批处理(Off-line Batch Processing)
为什么会产生脱机技术?
主要是解决CPU和外围设备之间速度不匹配的矛盾,CPU快,外围设备慢,读写盘都是机械方式慢。因此把外围设备的输入输出处理和主机脱离,这样使得主机就不用等待外围设备的输入输出。

基本原理:待处理的作业由卫星机负责经读卡机传送到输入磁带上,主机从输入磁带读入作业、加以处理,并把处理结果送到输出磁带上,最后由卫星机负责将输出磁带上的结果在打印机上输出。
脱机批处理的优点:
• 卫星机与主机分工明确,并行工作,
• 提高了CPU的利用率。
脱机批处理的缺点:
• 单任务系统
• 人工拆装磁带
批处理系统是操作系统的雏形。
执行系统阶段
60年代初,硬件的重要进展:通道、中断技术
通道(channel):
通道,也称I/O处理机,它具有自己的指令系统和运控部件,可接受处理机的委托执行通道程序,完成I/O操作。通道的I/O操作可与处理机的计算工作完全并行,并在I/O操作完成时向处理机发出中断请求。
中断(Interrupt):
中断是指当主机接到某种外部信号(如I/O设备完成信号)时,马上暂停原来的工作,转去处理这一事件,处理完毕再回到原来的断点继续工作。

假脱机(Spooling):
作业由读卡机到存储区的传输以及运行结果由存储区到打印机的传输由通道完成,这种方式既非联机,也非脱机(也不是依靠卫星机),称为"假脱机"或"伪脱机"。
优点:通道取代卫星机,免去了手工装卸磁带的麻烦。
执行系统阶段,Monitor常驻内存,是OS的初级阶段。
1.2.2 操作系统的完善
多道批处理系统
早期批处理系统,无论On-line还是Off-line,作业都一道一道顺序执行,内存中任意时间内仅有一道作业。为了提高效率,引入了多道程序设计技术,形成了多道批处理系统。
工作流程:用户提交的作业都先放在外存上并排成一个后备队列,然后由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存。当一道作业因等待I/O传输完成等原因暂时不能运行时,系统可将CPU资源分配给另一个可运行的作业。
多道系统的基本原理:本质上是同时把若干道程序放入内存,并使它们交替的执行。内存中同时存放几道相互独立的程序。
多道的特点:从它的定义中,我们就可以知道它的特点
多道:内存中同时存放几道相互独立的程序。
宏观并行:多个作业调入内存,同时占有资源各自运行,但都未完成。
微观串行:轮流占有处理机,交替执行。
单道和多道的比较:
在单道批处理中,当作业完成,而下一个作业还没被调入内存时,CPU空闲。
在多道批处理,充分利用了CPU。本质上是同时把若干道程序放入内存,并使它们交替的执行。这样始终使CPU处于忙状态,要比单道批处理复杂的多。
优点:资源利用率高;系统吞叶量(单位时间完成作业量)大。
缺点:作业的平均周转时间长;无交互能力。
分时系统
多道批处理系统属于高级脱机处理方式,无交互能力,非常不利于程序的动态调试。为此出现了分时系统,分时系统与多道批处理系统有着截然不同的性能。
分时系统:是指在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户共享主机中的资源,每个用户都可通过自己的终端以交互方式使用计算机。分时系统便于程序的动态修改和调试。
分时系统与多道批处理系统相比,具有完全不同的特征:
(1) 多路性:一个主机与多个终端相连,系统按分时原则为每个用户服务。宏观上,多个用户同时工作,共享系统资源;微观上,每个用户轮流运行一个时间片。
(2) 交互性:以对话的方式为用户服务。
(3) 独占性:每个终端用户仿佛拥有一台虚拟机。
多道批处理系统和分时系统的出现标志OS已进入完善阶段
实时处理系统
实时系统是指系统能即时响应外部事件的请求,在规定时间内完成对事件的处理,并控制所有实时任务协调一致地运行。它分为实时信息处理系统和实时控制系统两大类。
实时信息处理系统由一台或多台主机通过通信线路连接成百上千个远程终端,计算机接收从远程终端发来的服务请求,根据用户提出的问题,对信息进行检索和处理,并在很短时间内为用户做出正确的回答。如飞机订票系统。
通用操作系统
将多道批处理、分时和实时等功能结合在一起构造出的多功能的操作系统,称为通用操作系统。
1.2.3 操作系统的发展
目前,较优秀的实用操作系统:UNIX(美国Bell Labs)、Windows(美国微软)、Linux(自由软件)。
近30年来, OS取得了很大发展,主要表现在:
• 硬件体系结构由集中向分散发展,出现计算机网络,为此网络操作系统和分布式操作系统应运而生。
• 微处理机的发展使家庭和商用的微型机得到了普及。为方便非计算机专业人员使用,OS提供了友好的操作界面。
• 在科学和军事领域,大型计算任务要求极强的计算处理能力,多处理机并行成为必然,由此产生并行操作系统。
• 随着处理机芯片和各种存储介质在各种控制领域的广泛应用,嵌入式和智能卡操作系统应运而生。为降低开发代价,尝试从不同应用中抽取具有共性的东西,并做成很小的操作系统核心,由此产生了微内核操作系统体系结构。
常见操作系统:
• 网络操作系统
• 分布式操作系统
• 多处理机操作系统
• 单用户操作系统
• 面向对象操作系统
• 嵌入式操作系统
• 智能卡操作系统
1.3 操纵系统的特性
1.3.1 程序并发性
程序并发指计算机系统中同时存在多个程序,宏观上,这些程序同时向前推进。
并发 :指在计算机系统中同时存在着多道运行的程序(进程)。
宏观上:多道程序同时在执行
微观上:任何时刻只有一道程序在执行,即微观上多道程序在CPU上轮流(交替)执行(单机)
并行(parallel): 与并发相似,指多道程序在同一时刻执行,但需多个硬件支持。
现在来看,在单处理机系统中,由于一个时刻仅能执行一道程序,因此微观上,这些程序是在交替执行(也就是宏观同时,微观分时)。
并发与并行的区别:
程序并行 要求微观上的同时,即在绝对同一时刻有多个程序同时向前推进;
程序并发并不要求微观上的同时,只需要在宏观上看来多个程序都在向前推进。
注意:
(1) 在单处理机操作系统中,通常使用并发这个术语,尽管处理机与设备之间、设备与设备之间可以并行工作。
(2) 并发是操作系统最重要的特征,其他特征都是以并发为前提。
1.3.2 资源共享性
资源共享是指操作系统程序与多个用户程序共用系统中的各种资源,这种共享是在操作系统的控制下实现的。
资源包括:中央处理器,内外存储器,外部设备等。
共享有两种形式:互斥共享和同时共享。
互斥共享:系统中有一些资源,当一个进程正在访问该资源时,其他进程必须等待,直到该进程访问完并释放这些资源时,其他进程才能访问这些资源。这就是互斥共享,互斥共享的资源叫临界资源。如:打印机等物理设备或者表格就是临界资源,它们要求互斥共享。
同时共享:系统中有一类资源,允许在一段时间内,由多个进程同时对其访问。这就是同时共享,本质还是宏观上时同时,微观上是交替分时的。如,磁盘,同时可以多个进程访问磁盘。
⭐注意:并发和共享是OS的两个最基本的特征,它们互为存在条件。
这是因为:
(1) 只有进程的并发执行,才可能要求资源共享。
(2) 也只有资源能够合理的实现共享,进程才能并发执行
1.3.3 虚拟
虚拟(virtual)的本质含义是把物理上的一个变成逻辑上的多个。也就是把一个物理实体映射为若干个对应的逻辑实体------分时或分空间。
物理上是实际存在的;逻辑上是虚拟的。
如:多道分时技术能把一台物理CPU虚拟为多台逻辑上的CPU。
还有虚拟存储器技术和虚拟设备技术,这个以后都将讲到。
1.3.4 异步
概念:有些课本叫做不确定性或随机性。是指操作系统控制下的多个作业的运行顺序和每个作业的运行时间是不确定的,也就是进程在执行中,其执行时间、顺序、向前推进的速度和完成的时间等都是不可预知的。因此先进入内存的作业可能比后进入的作业后完成。
原因:造成不确定性的原因,并发进程中资源限制等原因。
例如,在单处理机环境下,由于系统中只有一个处理机,因此每次只允许一个进程占有其执行,其余进程只能等待,造成异步,这样先得到处理机或其他资源的进程先完成。
1.4 操作系统的分类
多道批处理操作系统
(batch processing system)
多道批处理系统的工作原理:

作业(Job):用户程序+数据+作业说明书(JCL编写,作业控制语言)
输入井:用于保存已经输入、尚未处理的作业。外存
输出井:用于保存处理完毕、尚未输出的结果。外存
结果:程序运行结果+记帐信息。
Spooling 假脱机技术,虚拟设备技术。就是用一道程序来模拟外围设备控制机。
批作业的处理步骤:
(1) 用户将作业交给机房;
(2) 操作员在适当的时刻将作业放到某台输入机上并启动其工作, 通道负责将作业传输到输入井中;
(3) 执行某种作业调度算法把作业从输入井读入内存,此时作业以"进程"为单位在内存中运行, 运行结束后, 其结果被写入输出井中;
(4) 最后再由通道负责将结果在输出机上输出。
设置输入井和输出井的目的:
(1)协调I/O设备速度与处理机速度之间的差异;
(2)为作业调度提供条件。如果没有输入井, 系统只能按照自然次序处理作业, 设置输入井后, 系统可以根据调度需要在输入井中选择进入内存的作业, 使得内存中运行的作业搭配合理。
主机中作业合理搭配的目标:
目标1:提高资源利用率(eg. 计算型+I/O型)
目标2:提高系统吞吐量(throughput)
多道批处理系统的特点:
多道:内存中同时存在多个正在处理的作业,
成批:作业分批进入系统,作业与作业之间的
过渡由操作系统控制,无需用户干预。
分时操作系统
(time-sharing system)
在分时系统中, 一个主机同多个交互终端相连。
分时系统为终端用户提供一组交互终端命令, 它是用户与操作系统之间的界面。用户进入系统后, 可在终端上键入终端命令, 操作系统接收该命令后执行一段系统程序, 完成用户交给的任务, 然后给出一个回答, 用户根据回答确定下一个将要键入的命令, 如此直至用户完成其任务。 (界面:交互式命令、GUI )
分时系统采取分时的方法为多个终端用户提供服务。 它将时间划分为若干个片段, 称作时间片, 并以时间片为基本单位轮流地为各个交互终端用户服务。由于时间片通常很小, 如十几毫秒或几十毫秒, 系统为所有用户服务一次仅需较少的时间。例如对于一个拥有50个终端的系统来说, 假设时间片长度为40毫秒, 一个终端每隔两秒钟左
分时系统具有如下三个重要特性:
(1) 多路性:一个主机与多个终端相连;
(2) 交互性:系统以对话的方式为用户服务;
(3) 独占性:每个终端用户仿佛独占整个计算机系统,即拥有一台完全属于自己的虚拟机。
典型系统:Multics (MIT)、UNIX (Bell Labs)
实时操作系统
(real-time system)
实时系统按其应用范围可分为两大类:
1、实时控制
例如,工业控制,军事控制,医疗控制,.......
这类系统都有一个被控对象,如图所示:
2、实时信息处理
例如,航班订票,联机情报检索,......
这类系统的一般原理与分时系统相似,不过相连终端多为远程终端。
实时系统的两个基本特性:
(1)响应及时
(2)可靠性高
通用操作系统
(multi-purpose system)
同时具有实时、分时、批处理功能的OS
优先级:实时任务 > 分时任务> 批处理任务
目标:
提高处理能力;
扩展应用领域。
常见模式:
(1)分时(前台)+批处理(后台) (eg. GCOS-8 美Honeywell公司)
(2)实时(前台)+批处理(后台)
单用户操作系统
(single user system)
单用户操作系统:
为个人微型计算机所配置的操作系统,即同一时刻仅有一个用户使用的系统。
如:MS-DOS、Windows、CP/M
应用领域:台式机、笔记本、......
特点:单用户,多进程,多线程
不同的程序,不同的进程;相同的程序, 不同的线程
网络操作系统
(network operating system)
NOS: 用于实现网络通讯和网络资源管理的操作系统。
HOST:网络中的主机以及相连的外设。
在网络操作系统中,不同HOST的类型可能不同,不同HOST上配备的NOS的界面也可能不同。
网络操作系统的目标:
(1)相互通讯、资源共享、
(2)提供网络服务,如 database server,ftp server,e-mail server,telnet server,etc
分布式操作系统
(distributed operating system)
分布式操作系统分为两类: 建立在多处理机系统基础之上的称为紧耦合分布式系统;建立在计算机网络基础之上的称为松散耦合分布式系统。
-
紧耦合 (tightly coupled)
由多机系统发展而来(多CPU)
有公共内存
多处理机操作系统
-
松散耦合 (loosely coupled)
由计算机网络发展而来(多Host)
无公共内存,无公共时钟
分布式操作系统的特征:
(1) 统一的操作系统。在DOS中,不同HOST上配置的DOS统一、界面相同。
(2) 资源的进一步共享。在DOS中,作业可由一台HOST任意迁移到另一台HOST上处理,实现CPU的共享。
(3) 可靠性。构成DOS的不同HOST地位等同,任何一个HOST的失效都不会影响整个系统。
(4) 透明性。在DOS中,操作系统掩盖了不同HOST地理位置上的差异。
多处理机操作系统
(multi-processor system)
多处理机系统:具有公共内存的多CPU系统。
对称多处理机系统(SMP):多CPU系统中的多个CPU型号和地位相同,没有主从关系。
多处理机操作系统:有效管理和使用多个CPU的操作系统,也叫并行操作系统 (单独一门课)。
(复杂:多CPU的并发控制)
现代操作系统UNIX, Linux, Windows 都增加了多CPU管理的功能。
嵌入式操作系统
(embedded operating system)
嵌入在掌上电脑、通讯设备、车载系统、信息家电等非计算机类设施上的操作系统。
嵌入式操作系统与一般操作系统的明显差别:
(1) 嵌入式操作系统规模一般较小
(2) 应用领域差别大。
嵌入式操作系统的特点:
微内核结构, 其中只包含绝对必要的操作系统功能, 其他功能则作为应用服务程序置于核心之上。
目前,微内核一般包括如下功能:
处理机调度、基本内存管理、通讯机制、电源管理
嵌入式操作系统具有微小、实时、专业、可靠、易裁减等优点。代表性的嵌入式操作系统有Win CE(微软的Vinus计划)、Palm OS、国内的Hopen(女娲计划)等。
智能卡操作系统
(smart-card operating system)
智能卡上包含一个CPU芯片,CPU的计算能力和存储容量都有严格限制。
面向Java的智能卡:在智能卡的ROM中保存一个Java虚拟机(JVM)解释程序,可将Java applet下载到卡上并由JVM解释执行。
有些智能卡支持多个applet并发执行。
1.5 操作系统的运行环境
1.5.1 定时装置
为实现系统管理和维护,硬件必须提供定时装置,即实时时钟。
硬件时钟通常有两种:绝对时钟和相对时钟。
- 绝对时钟:记载实际时间,不发中断。
时间表示形式为:年、月、日、时、分、秒。
时间值保存于硬件寄存器中,开机时由电源供电计时,关机时由机内电池供电计时,其值可由程序设定和修改,但一般通过特权指令完成。 当然,程序可以读取它的值。
操作系统根据绝对时钟的值记录作业进入系统时间和处理时间、文件的修改和存取时间、资源占用时间、日志记录时间等。
- 间隔时钟:定时发生中断。
也称闹钟,它每隔固定时间,如10ms,发生一次时钟中断。时钟中断发生后,OS获得系统的控制权,以便运行系统管理和实现程序并发。
除时钟外还有其它事件可引起中断,但那些事件是否发生、何时发生不确定,只有时钟中断最忠实可靠。间隔时钟是现代操作系统(多道程序设计)的基础。
利用间隔时钟可以实现逻辑时钟。例如,要实现一个50ms的逻辑时钟,可以设置一个初值为5的变量,每次时钟中断将其减1,当减至0时即达到50ms。
1.5.2 系统栈
系统栈是内存中操作系统空间的一个固定区域。(在操作系统空间)
系统栈的主要用途:
(1) 中断响应时保存中断现场。对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出;
(2) 保存操作系统子程序间相互调用的参数、返回值、返回点以及子程序的局部变量。
⭐注意:
(1) 每个运行程序都有一个对应的系统栈
(2) 进程切换的同时伴随系统栈的切换
(3) 但硬件只有一个系统栈指针作用。
1.5.3 处理机状态及状态转换
处理机状态也称机器状态。
**处理机状态有两种:管态和目态。**它由程序状态字PSW中的一位标识。
-
管态(supervisor mode)
也称系统态、核心态,是操作系统运行时所处的状态。机器处于管态时可以执行硬件提供的全部指令,包括特权指令和非特权指令。
由于利用特权指令可以修改PSW,而机器状态位是PSW的一部分,因而在管态下可以通过修改PSW来改变机器状态,使之由管态转换为目态。
-
目态 (object mode)
也称用户态,是一般用户程序运行时所处的状态。处理机处于目态时只能执行非特权指令。
由于"置程序状态字"为特权指令,目态程序不能执行它,从而不能将运行状态改为管态,这可防止用户有意或无意地侵入系统,从而起到保护系统的作用。
管态与目态之间的状态转换
在系统运行过程中,处理机的状态处于动态变化之中,时而运行于目态,时而运行于管态。
(1) 管态 → 目态
管态到目态的转换由修改程序状态字 来实现。
由于操作系统运行于管态,用户程序运行于目态,因而该状态转换伴随着由操作系统程序到用户程序的转换。
(2) 目态 → 管态
处理机状态由目态转为管态的唯一途径是中断。中断发生时,中断向量中的PSW应标识处于管态,这一标识由操作系统初始化程序设置。
用户程序在目态下运行时不能直接使用I/O指令等特权指令。只有当用户程序执行到访管指令产生一次中断后,使机器在原来的目态下执行用户程序变成在管态下执行操作系统的系统调用程序。所以从目态转换成管态的唯一途径是中断。 产生中断意味着当前程序不能继续执行,处理机需分配执行中断服务例程,而分配CPU则是管态才能执行的
访管指令的操作原理:
• 当源程序中有需要操作系统服务的要求时,编译程序就会在由源程序转换成的目标程序中安排一条"访管指令"并设置一些参数。当目标程序执行时,中央处理器若取到了"访管指令"就产生一个中断事件,中断装置就会把中央处理器转换成管态,并让操作系统处理该中断事件。
• 操作系统分析访管指令中的参数,然后让相应的"系统调用"子程序为用户服务。系统调用功能完成后,操作系统把中央处理器的管态改为目态,并返回到用户程序。
• 从程序调用的角度来看,用户应用程序中要调用一些子程序。子程序可以分为用户自己编写的子程序和软件提供的子程序,对后者的访问即被称为访问系统程序(访管)指令,又称为陷阱(TRAP)指令。
• 访管指令并不是特权指令。所谓特权指令,是指用于操作系统或其他系统软件的指令,一般不提供给用户使用。
1.5.4 特权指令与非特权指令
现代计算机的指令系统由特权指令集和非特权指令集两部分组成,它们的使用与系统状态有关。
-
特权指令(privileged instruction)
特权指令:只有在管态才能执行的指令。
特权指令的执行不仅影响运行程序本身,也影响其他程 序和OS。例如,开关中断、置程序状态字、修改地址映射寄存器、停机等。
注意:一般只有OS能执行特权指令,用户程序不能执行。
-
非特权指令(non-privileged instruction)
非特权指令:在管态和目态下均可执行的指令。
非特权指令的执行只与运行程序本身有关,不影响其它程序和OS。例如数据传送指令、算术运算指令等。
1.5.5 地址映射机构
在多道程序系统中,内存中同时存在多个程序,一个程序在内存中的存放位置是随机确定的,因此程序不能采用物理地址,只能采用逻辑地址。
为使每个程序的每个基本单位都能从0开始编址,硬件需要提供地址映射机构,它负责将运行程序产生的逻辑地址变换为内存物理地址。
地址映射机构在不同硬件环境中不尽相同。
1.5.6 存储保护设施
在多道程序系统中,一个程序有意或无意产生的错误地址可能会侵犯其它程序空间甚至操作系统空间;一个程序对公共存储区域可能试图执行非法操作(越权),这些都可能影响其他程序甚至整个系统。为防止这些情况的发生,硬件必须提供存储保护设施。
存储保护设施的作用:进行地址越界检查和越权检查(对共享区域),防止应用程序侵犯操作系统空间或其它应用程序空间。
1.5.7 中断装置
中断装置:发现并响应中断的硬件机构。
中断装置具有两个功能:
(1) 发现中断:中断发生时能识别,有多个中断事件同时发生时,能按优先级别响应最高者。
(2) 响应中断:先将当前进程的中断向量(PSW和PC)压入系统栈,再根据中断源到指定内存单元将新的中断向量取来并送到中断向量寄存器中, 从而转到对应的中断处理程序。
1.5.8 通道与DMA控制器
-
通道:
负责I/O操作的处理机,具有自己的指令系统和运控部件,可以执行通道程序,完成CPU委托的I/O操作任务。
-
DMA (Direct Memory Access, 直接内存访问)
DMA是与通道相似的I/O方式,DMA控制器接受CPU的委托完成数据在内存与块型设备之间的传输。与通道相比,DMA没有独立的指令系统,只能进行简单的块传输。
1.6 操作系统的界面形式
从虚拟机的观点看, OS是对计算机硬件的第一级扩充, 配有OS的计算机在功能等方面与裸机相比大大地增强了。在大多数情况下, 用户通过OS与机器硬件打交道, 而不直接地使用机器硬件。
操作系统为用户提供三种界面形式:
1.交互终端命令(或图形用户界面)
2.作业控制语言
3.系统调用命令
1.6.1 交互终端命令(Command Line)
这是分时系统具有的界面形式。系统为交互终端用户提供一组交互式命令,交互终端命令的一般形式为:"命令名,选项,参数"。
交互终端命令界面由命令解释程序提供。命令解释程序通常属于操作系统内核,但UNIX系统的交互命令解释程序由shell提供,而shell并不属于系统核心,而是运行于核心之外的目态程序,它通过系统调用与核心打交道,完成命令要求的动作。

1.6.2 图形用户界面(GUI---Graphic User Interface)
考虑非计算机专业人员使用计算机系统的方便性, 现代操作系统都提供了图形用户界面(GUI), GUI本质上也属于交互式界面,只不过界面由命令行转变为图形提示和鼠标点击。
图形界面一般由视窗、图标、菜单、对话框等基本元素以及对基本元素所能进行的操作构成。有些系统如Windows中,仍保持一个行式命令的界面,不过该界面实际上是作为一个特殊的视窗实现的。
1.6.3 作业控制语言(Job Control Language, JCL)
JCL是批处理系统的界面形式。系统为用户提供一种作业控制语言。当欲提交批作业时,用户先用这种语言书写一个作业说明书, 以OS能识别的形式描述用户作业的处理步骤, 再将此说明书与程序、数据一道提交给系统, 操作系统按照作业说明书所规定的步骤一步一步地处理作业。
不同的操作系统具有不同的作业控制语言,作业控制语言一般包含几十个作业控制命令。如,作业标识语句、作业步语句、资源描述语句、Goto语句等。
1.6.4 系统调用命令(System Call)
如高级语言形式fd = open(file_name,mode)
系统调用命令也称应用程序界面(API),它是在用户程序级别上与操作系统打交道的方式。操作系统为用户提供一组系统调用命令, 用户可将这些系统调用命令写在程序中, 当用户程序在运行过程中执行到这些系统调用命令时, 将发生自愿性中断, 进入操作系统, 操作系统根据不同的系统调用命令转到相应的处理程序。
几乎所有类型的操作系统都有这种界面。
系统调用命令通常可分为如下几类:
(1) 与文件相关的系统调用命令, 如建立文件、撤消文件、打开文件、关闭文件、读写文件等;
(2) 与进程相关的系统调用命令, 如创建子进程、撤销子进程、跟踪子进程等;
(3) 与进程通讯相关的系统调用命令, 如发送消息、接收消息、发送信件、接收信件等;
(4) 与资源相关的系统调用命令, 如申请资源、释放资源等。
应当指出, 用户与操作系统之间的三种界面形式是操作系统所提供的。对于不同的操作系统, 这三种界面形式不尽相同。
1.7 操作系统的运行机理
操作系统是中断驱动的,考虑系统中并发执行的两个程序P1和P2,假若时刻t1程序P1执行,时刻t2程序P2执行,t1<t2, 则在时刻(t1,t2)之间一定发生过中断,即中断是程序切换的必要条件。
实际上,程序P1不可能将CPU的使用权直接交给程序P2,将处理机的使用权由P1转交给P2只能由操作系统完成,而操作系统要完成CPU的重新分配必须首先获得CPU的使用权。→目态到管态的唯一途径是中断
操作系统如何取代P1获得CPU的使用权?
唯一的途径是通过中断。
中断将引出新的PSW并导致系统由目态转到管态,即进入操作系统。操作系统在执行完中断例程之后,也可能继续执行P1,也可能决定执行P2,这与CPU的调度原则有关。在后一种情况下,操作系统将保存P1的状态信息,然后恢复P2的状态信息并通过置PSW使系统转到目态运行P2。
多道程序运行机理如图所示:
说明:引起中断的事件有些与运行程序有关,如访管、地址越界、非法指令、溢出等;有些与运行进程无关,如系统时钟、I/O设备完成信号等。