文章目录
- 一、操作系统的基本概念
- 1.1操作系统的层次结构
- 1.2操作系统的运行视图
- 1.3操作系统的概念(定义)
- 1.4操作系统的功能和目标
- 1.4.1操作系统的功能和目标——作为系统资源的管理者
- 1.4.2操作系统的功能和目标——向上层提供方便易用的服务
- 1.4.2.1GUI:图形化用户接口(Graphical User Interface)
- 1.4.2.2命令接口
- 1.4.3操作系统的功能和目标——作为最接近硬件的层次
- 二、操作系统的四个特征
- 2.1操作系统的特征——并发
- 2.2操作系统的特征——共享
- 2.3操作系统的特征——虚拟
- 2.4操作系统的特征——异步
- 三、操作系统的发展与分类
- 3.1操作系统的产生
- 3.1.1手工操作阶段(20世纪40年代,无操作系统)
- 3.1.2批处理阶段(20世纪50年代,操作系统雏形)
- 3.1.2.1联机批处理
- 3.1.2.2脱机批处理
- 3.1.3执行系统阶段(20世纪60年代初)
- 3.2操作系统的完善
- 3.3操作系统的发展
- 3.4操作系统类型
- 3.4.1多道批处理操作系统(offline)
- 3.4.2 分时操作系统
- 3.4.3实时操作系统
- 3.4.3.1实时控制
- 3.4.3.2实时信息处理
- 3.4.4通用操作系统
- 3.4.5单用户操作系统
- 3.4.6网络操作系统
- 3.4.7分布式操作系统
- 3.4.8多处理机操作系统
- 3.4.9嵌入式操作系统
- 3.4.10多媒体操作系统
- 3.4.11智能卡操作系统
- 四、操作系统运行环境
- 4.1定时装置
- 4.1.1绝对时钟
- 4.1.2间隔时钟
- 4.2堆与栈
- 4.2.1堆
- 4.2.2用户栈
- 4.2.3系统栈
- 4.3寄存器
- 4.4特权指令与非特权指令
- 4.4.1特权指令
- 4.4.2非特权指令
- 4.5处理器状态及状态转换
- 4.5.1处理器状态
- 4.5.2状态转换
- 4.6地址映射机构
- 4.7存储保护设施
- 4.8中断装置
- 4.9通道与 DMA 控制器
- 4.10操作系统的界面形式
- 4.10.1交互终端命令
- 4.10.2图形用户界面
- 4.10.3触屏用户界面
- 4.10.4作业控制语言
- 4.10.5系统调用命令
- 4.11操作系统的运行机理
- 4.12研究操作系统的几种观点
- 4.12.1进程观点
- 4.12.2资源管理观点
- 4.12.3虚拟机观点
一、操作系统的基本概念
操作系统早就充斥于我们的生活中,从手机端的塞班、IOS、Android到电脑端的Unix,Windows、MacOS、Linux
1.1操作系统的层次结构
一台电脑的诞生~
Step1:厂家组装一台裸机
Step2:出售前安装操作系统
Step3:用户安装应用程序(eg: QQ)
Step4:使用QQ聊天
1.2操作系统的运行视图
- 系统库(lib)可调用操作系统,执行硬件指令
- 应用程序可以调用lib和操作系统,执行硬件指令
1.3操作系统的概念(定义)
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配:以提供给用户和其它软件方便的接口和环境:它是计算机系统中最基本的系统软件。
- 操作系统是系统资源的管理者
- 向上层提供方便易用的服务
- 是最接近硬件的一层软件
直观的例子:打开Windows 操作系统的“任务管理器”(快捷键: Ctr1+A1t+De1)
1.4操作系统的功能和目标
1.4.1操作系统的功能和目标——作为系统资源的管理者
我们通过一个运行QQ的例子,来解释上面的四种资源管理。
用QQ和朋友视频聊天的过程:
- Step1: 在各个文件夹中找到QQ安装的位置(如D:/Tencent/QQ/Bin)
- Step2: 双击打开QQ.exe
- Step3: QQ程序正常运行
- Step4: 开始和朋友视频聊天
补充知识:执行一个程序前需要将该程序放到内存中,才能被CPU处理
Step1:逐层打开文件夹,找到QQ.exe这个程序(可执行文件)的存放位置,这就是操作系统帮我们进行文件管理
Step2:需要把该程序的相关数据放入内存——存储器管理
Step3:对应的进程要被处理机(CPU)处理——处理机管理
Step4:需要将摄像头设备分配给进程——设备管理
1.4.2操作系统的功能和目标——向上层提供方便易用的服务
封装思想:操作系统把一些丑陋的硬件功能封装成简单易用的服务,使用户能更方便地使用计算机,用户无需关心底层硬件的原理,只需要对操作系统发出命令即可。
操作系统屏蔽底层复杂接口后,为上层提供了很多方便易用的服务。
1.4.2.1GUI:图形化用户接口(Graphical User Interface)
用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令、参数。
例子:在Windows操作系统中,删除一个文件只需要把文件“拖拽”到回收站即可。
1.4.2.2命令接口
而早期操作系统都是让用户通过命令接口来和操作系统进行交互。如:
- 联机命令接口
联机命令接口 = 交互式命令接口。特点:用户说一句,系统跟着做一句
实例(Windows系统) :
Step 1: win键+R
Step 2: 输入cmd,按回车,打开命令解释器
Step 3: 尝试使用time 命令。
- 脱机命令接口
脱机命令接口 = 批处理命令接口
实例(Windows系统)
使用windows系统的搜索功能,搜索D盘中的*. bat文件,用记事本任意打开-一个
- 程序接口
可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。
如:写C语言“Hello world"程序时,在printf函数的底层就使用到了操作系统提供的显式相关的“系统调用”
1.4.3操作系统的功能和目标——作为最接近硬件的层次
需要实现对硬件机器的拓展
没有任何软件支持的计算机成为裸机。在裸机上安装的操作系统,可以提供资源管理功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器
通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机。
类比汽车:
发动机——只会转:轮胎——只会滚;
在原始的硬件机器上覆盖一层传动系统——让发动机带着轮子转——使原始的硬件机器得到拓展
操作系统对硬件机器的拓展:将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能
二、操作系统的四个特征
2.1操作系统的特征——并发
并发:指两个或多个时间在同一时间间隔发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
常考易混概念——**并行:**指两个或多个事件在同一时刻发生。
并发 VS 并行
eg:假设小渣和老渣每人有两个女朋友。任务1:和一号约会:任务2:和二号约会…
操作系统的并发性指计算机系统中**“同时”运行着多个程序**,这些程序宏观上看是同时运行着的,而微观上看是交替运行的。
操作系统是伴随着”多道程序技术“而出现的。因此,操作系统和程序并发是一起诞生的。
注意(重要考点) :
单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。
比如Intel的第八代i3处理器就是4核CPU,意味着可以并行地执行4个程序。
即使是对于4核CPU来说,只要有4个以上的程序需要“同时”运行,那么并发性依然是必不可少的,因此并发性是操作系统一个最基本的特性。
2.2操作系统的特征——共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
共享方式有两种:
- 互斥共享方式(如对摄像头设备的共享使用)
- 系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
- 同时共享方式(如对硬盘资源的共享使用)
- 系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问
所谓的”同时“往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问的(即分时共享)
生活实例:
互斥共享方式:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。
同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据。微观上看,两个进程是交替着访问硬盘的。
并发和共享的关系
并发性指计算机系统中同时存在着多个运行着的程序。
共享性指系统中的资源可供内存中多个并发执行的进程共同使用。
通过上述例子来看并发和共享的关系:
使用QQ发送文件A,同时使用微信发送文件B。
-
两个进程正在并发执行**(并发性)**
- 如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义。
-
需要共享地访问硬盘资源**(共享性)**
- 如果失去共享性,则QQ和微信不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。
因而并发性和共享性二者互为存在条件。
2.3操作系统的特征——虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
我们不妨举一个例子:
前置知识:一个程序需要放入内存并给它分配CPU才能执行。
GTA5需要4GB的运行内存,QQ需要256MB的内存,迅雷需要256MB的内存,网易云音乐需要256MB的内…
我的电脑:4GB内存
问题:这些程序同时运行需要的内存远大于4GB,那么为什么它们还可以在我的电脑上同时运行呢?
答:这是虚拟存储器技术。实际只有4GB的内存,在用户看来似乎远远大于4GB
再看另一个例子:
某单核CPU的计算机中,用户打开了如下软件:
问题:既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?
答:这是虚拟处理器技术。实际上只有一个单核CPU,在用户看来似乎有6个CPU在同时为自己服务。
显然,如果失去了并发性,那么一个时间段内系统只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。
2.4操作系统的特征——异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
我们通过一个例子来理解异步性:
与一、二号的约会 = 两道并发执行的程序
老渣的心 = 有限的系统资源
由于并发执行的程序会争抢着使用系统资源,而系统中的资源优先,因此进程的执行不是一贯到底的,而是走走停停的,以不可预知速度向前推进。
如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才可能导致异步性。
重要考点:
理解并发和并行的区别
没有并发和共享,就谈不上虚拟和异步,因此并发和共享是操作系统的两个最基本的特征
三、操作系统的发展与分类
3.1操作系统的产生
3.1.1手工操作阶段(20世纪40年代,无操作系统)
作业处理步骤:
- (程序、数据)-> 穿孔机 -> 纸带:
- 穿孔纸带 -> 光电机 -> 机器内存
- 控制台开关启动的第一条指令
- (出错时显示地址,修改指令)
- (如有输入需要安装数据纸)
- 运行结果在电传打字机上输出
缺点:(1)资源独占(2)手工费时
如:
一个作业在1000次/s的机器上运行需要1hour,手动操作事件4min,手动时间与程序运行事件之比为1 : 15
如果计算机速度提高到600’000次/s,同样程序运行只需6s,而手动操作时间不变,手动操作与程序运行时间之比为40 : 1
3.1.2批处理阶段(20世纪50年代,操作系统雏形)
为了缩短手动操作的时间,人们自然会想到使作业到作业之间的过渡摆脱人为干预,实现自动化,如此便出现了批处理。批处理经历了两个阶段,即联机批处理阶段和脱机批处理阶段。
3.1.2.1联机批处理
5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20240317172127203.png&pos_id=img-9nEeJvuD-1710772115292)
早期批处理是联机的,步骤如下:
- 操作员将若干个作业合成一批,并将其卡片依次放到读卡机上
- 监督程序通过内存将这一批作业传送到磁带机上,输入完毕后监督程序开始处理这一批作业
- 它自动地将第一个作业读入内存,并对该作业的程序进行汇编或编译,然后将所产生的目标程序与所需要的例行子程序连接、装配在一起,继而执行该程序,计算完成之后输出结果
- 第一个作业处理完毕后立即开始处理第二个作业,如此往复
优点:摆脱了人工干预(作业过度没有人的干预,一个作业处理过程没有人的干预)
缺点:I/O操作慢,主机等待时间长,即作业由读卡机到磁带机的传输需要由处理器完成,由于设备的传输速度远远低于处理器的速度,在此传输过程中处理器仍然会浪费很多时间。
3.1.2.2脱机批处理
为了克服联机批处理的缺点,引入了脱机批处理。它的思想是把输入输出操作交给一个功能较为单纯的卫星机去做,把主机从烦琐、耗时的输入输出操作中解脱出来。
步骤如下:
- 待处理的作业由卫星机负责经读卡机传送到输入磁带上,一批作业输入完后操作员将磁带由卫星机卸下并安装到主机上
- 主机由输入磁带读入作业并加以处理,其结果送到输出磁带上
- 一批结果产生后操作员将输出磁带由主机卸下并安装到卫星机上
- 最后由卫星机负责将输出磁带上的结果送到打印机上输出
优点:脱机批处理减轻了主机的 I/O 负担,使其能专注于计算任务的处理。
缺点:需要一个专门的卫星机,并且磁带装卸需要人工完成。 批处理系统是操作系统的雏形。
批处理系统是操作系统的雏形,在此阶段,其它软件也有了相应的发展,如输入输出标准程序、高级语言编译程序、连接装配程序等。
3.1.3执行系统阶段(20世纪60年代初)
在 20 世纪 60 年代初期,硬件在两个方面取得了重要的进展。一是引入通道,二是出现通道中断主机功能。
通道又称 I/O处理机,是专门用于控制I/O设备的处理机。
它有如下功能:
- 它具有自己的指令系统和运算控制部件
- 与主机共享内存资源
- 可以接受主CPU的委托执行通道程序以完成输入输出操作
- 通道的输入输出操作可以同主CPU的计算工作完全并行执行
- 输入输出操作完成时向处理器发出中断请求
这样,作业由读卡机到磁带机的传输以及结果由磁带机到打印机的传输均可由通道完成,这既非联机方式, 也非脱机方式,称为“假脱机”(simultaneous peripheral operations on line,SPOOL)或“伪脱机”。通道取代了卫星机,也免去了手动装卸磁带的麻烦。
执行操作系统阶段是操作系统的初级阶段,它为操作系统的最终形成奠定基础。
3.2操作系统的完善
操作系统的形成到完善经历了以下几个主要发展过程:
- 多道批处理系统(60年代初期)
- 执行系统:单道作业,资源利用不充分;
- 多道批处理:主机中同时放多个作业,最大限度提高资源利用率
- 单道到多道:不是量的变化,是质的飞跃
- 带来问题:互斥、同步、通讯、死锁、饥饿、饿死
- 多道批处理出现,标志操作系统走向成熟
- 分时系统(60年代初期、中期)
- 程序员提出:联机操作的要求,对作业的执行进行动态控制
- 一台主机,多个终端,交互式工作,便于程序的动态修改和调试
- 实时系统(60年代中期)
- 背景:计算机应用领域扩大:(工业控制、医疗控制、航班订票等)
- 要求:满足时间约束条件
- 通用操作系统(60年代后期)
- 上述三类系统的结合,标志操作系统完善
3.3操作系统的发展
20 世纪六七十年代至今,人们已经成功地设计出许多优秀的实用操作系统,例如 Atlas(英国曼彻斯特大学)、XDS-940(美国加州大学伯克利分校)、THE(荷兰 E.W. Dijkstra)、RC-4000 (丹麦 P.B. Hansen)、CTSS(美国麻省理工学院)、Multics(美国麻省理工学院)、OS/360(美国IBM 公司)、VMS(美国DEC公司)、GCOS-8(美国Honeywell公司)、B7000 MCP(德国Broughs公司)、OS/2(美国IBM公司)、UNIX(美国贝尔实验室)、Windows(美国微软公司)、 Linux(自由软件)等。
50 多年来,操作系统在多方面取得了更大的发展,主要表现在以下几个方面:
- 计算机体系结构由集中向分散的发展,出现了计算机网络,由此产生网络操作系统和分布式操作系统
- 随着家用和商用微型计算机的普及,出现了单用户多任务的操作系统
- 大型计算任务要求计算机系统具有极强的计算和处理能力,产生了支持多处理器的并行操作系统
- 随着各种处理器芯片和存储介质在控制领域的广泛应用,出现了微内核(micro kernel)操作系统体系结构,产生了嵌入式和智能卡操作系统
- 伴随后摩尔时代的到来,提高单处理器速度已近极限,多核技术应运而生。新一代操作系统遇到的问题:多核的并发控制;多核下的进程调度。
3.4操作系统类型
3.4.1多道批处理操作系统(offline)
多道批处理操作系统(batch processing operating system)是以脱机操作为标志的操作系统,特别适合于处理运行时间比较长的程序,其工作原理如下图所示
在使用这种系统时,用户无法对其程序的运行状况施行交互性控制。
为此,用户需要用操作系统所提供的作业控制语言书写一份说明书,该说明书称为作业说明书,并将其与程序和数据一并交给系统。操作系统按照作业说明书所规定的步骤完成相应的计算任务。用户程序、数据以及作业说明书合称为作业。
批作业的处理步骤如下:
- 用户将作业(程序、数据、说明书)交给机房工作人员,操作员在适当的时刻将其放到某台输入机上并启动其工作
- 通道负责将作业传输到磁盘输入井中,以 后在适当的时刻经通道传输进入内存处理
- 此时作业以“进程”为单位在内存中运行,运行结束后,其结果经通道传输进入磁盘输出井中
- 最后,再由通道负责将结果在输出机上以用户可见的形式显示出来
SPOOLing(Simultaneous Peripheral Operation On-Line)
- 称为假脱机工作方式或排队转储技术
- 通过通道,把I/O工作脱机处理,但是在主机控制下运行,故称为假脱机技术
- 由专门负责I/O的常驻内存进程以及输入井、输出井组成
- 将独占设备改为共享设备,实现了虚拟设备功能
输入井和输出井分别为磁盘或磁鼓上的两个区域,输入井用于保存已经输入但尚未处理的作业;输出井用于保存处理完毕但尚未输出的结果。
设置输入井和输出井的目的:
- 协调输入输出设备速度与处理器速度之间的差异
- 为作业调度提供有利条件
主机中作业合理搭配:
目标1 :提高资源利用率(eg.计算型+IO型)
目标2:提高吞吐量(throughput)
多道批处理操作系统具有两个特性:
- 多道:内存中同时存在多个正在处理的作业,而且外存储器输入井中还有多个尚待处理的作业。
- 成批:作业逐批地进入系统,逐批地处理,逐批地离开系统。作业与作业之间的过渡 由操作系统控制,无须用户干预
3.4.2 分时操作系统
分时操作系统(time-sharing operating system)是以联机操作为标志的操作系统,特别适合于程序的动态调试和修改。
在一个分时系统中,一个主机同多个交互终端相连,这些终端既可能是本地的,也可能是 远程的。每个终端上可以有一个用户,系统以对话的方式与终端用户交互
界面1:交互式命令语言(eg. shell, command)<img
界面2:图形用户界面(GUI)
分时操作系统的特点
- **多路性:**一个主机与多个终端相连
- **交互性:**以对话的方式为用户服务
- **独占性:**每个终端用户仿佛拥有一台虚拟机
典型系统
CTSS(MIT)、Multics(MIT)、UNIX
3.4.3实时操作系统
所谓实时,是指系统能够对外部请求做出及时反应。实时操作系统(real-time operating system)按其应用范围可以分为实时控制和实时信息处理两大类别。
3.4.3.1实时控制
实时控制包括工业控制、宇航控制、医疗控制、铁路运输控制等。
由于被控制对象所产生的信号以及所接收的信号多为模拟量,信号由被控制对象传送到实时系统需要经过模数转换,信号由实时操作系统传送到被控制对象需要经过数模转换。
3.4.3.2实时信息处理
实时信息处理包括联机情报检索、图书管理、航班订票等。
特点:
- 响应及时(prompt response)
- 可靠性高(high reliability)
3.4.4通用操作系统
同时具有分时、实时和批处理功能的操作系统称为通用操作系统(general purpose operating system)。
目标
提高处理能力
扩展应用领域
在实际应用中,同时具有实时、分时、批处理 3 种功能的操作系统并不常见,通常为分时和批处理组合或者实时和批处理组合。常见模式:
分时(前台)+批处理(后台)(eg.DPS/8上的GCOS-8 )
实时(前台)+批处理(后台)
3.4.5单用户操作系统
单用户操作系统(single-user operating system)是为个人计算机所配置的操作系统。这类操作系统最主要的特点是单用户,即系统在同一段时间内仅为一个用户提供服务。
应用领域:
台式机,笔记本
特点
单用户,多进程,多线程
3.4.6网络操作系统
用于实现网络通信和网络资源管理的操作系统称为网络操作系统(network operating system,NOS)。
网络中的主机以及相连的外围设备称为 HOST,它们可能属于不同类型。各个 HOST 上配置有网络操作系统,它们的界面形式可能有所不同,各个结点具有自治性。
下图给出一个仅由 3 台 HOST 所构成的简单网络操作系统,其中虚线为通信线路,它们将网络中的 HOST 连接起来
建造网络操作系统主要有两个目的:
相互通信,处于不同 HOST 上的用户之间可以通过网络任意传递信息
共享资源,网络操作系统为资源共享提供了更大的潜力,一个用户不仅可以使用本地 HOST 上的资源,而且可以使用其他 HOST 上的资源
3.4.7分布式操作系统
分布式操作系统(distributed operating system,DOS)分为两类:一类建立在多机系统的基础之上,称为紧耦合(closely coupled)分布式系统;另一类建立在计算机网络的基础之上,称为**松散耦合(loosely coupled)**分布式系统。
分布式操作系统是网络操作系统的更高级形式,它保持网络操作系统所拥有的全部功能, 同时具备如下特征:
- **统一的操作系统。**对于网络操作系统来说,不同 HOST 上所配置的 NOS 其界面形式可 能是不同的;而在分布式操作系统中,所有 HOST 的 DOS 统一,其界面相同。
- **资源的进一步共享。**在网络操作系统中,由于各 HOST 上的操作系统不统一,因而一个计算任务不能由一台 HOST 任意迁移到另一台 HOST 上运行;而在分布式操作系统中,所有 HOST 的操作系统界面一致,作业可以由一台 HOST 任意迁移到另一台 HOST 上处理,即可实现处理器资源的共享,从而达到整个系统的负载平衡。
- **可靠性。**构成分布式系统的不同 HOST 处于等同的地位,即没有主从关系,任何一个 HOST 的失效都不会影响整个系统。
- **透明性。**网络用户能够感觉到本地 HOST 与非本地 HOST 在地理位置上的差异;而在 分布式系统中,所有 HOST 构成一个完整的、功能更加强大的计算机系统,操作系统掩盖了不 同 HOST 在地理位置上的差异。
如 Solaris MC。
3.4.8多处理机操作系统
具有公共内存和公共时钟的多CPU系统称为多处理机操作系统(multiprocessor operating system),也称为紧耦合系统。
多CPU 系统中的多个CPU若型号和地位相同,没有主从关系,**则称之为对称多处理(symmetric multiprocessing,SMP)**的。
对称多处理是多处理机操作系统的主要形式。
特点:进程与CPU多对多
新问题:
(1)调度问题; (2)并发控制问题
例子:UNIX、Linux、Windows
优点:
- 增加计算量
- 规模经济:节省资金 - 共享外设、存储器、电源
- 增加可靠性
3.4.9嵌入式操作系统
嵌入式操作系统即嵌入在掌上电脑、通讯设备、车载系统、信息家电等非计算机类设施上的操作系统。
特点
- 微内核结构( Micro-kernel ) ,许多操作系统功能(文件系统,设备驱动)以应用程序模式运行。
- 核心小(基本内存管理,CPU管理,通讯程序)
- 适应范围广,可靠性高,效率低
例子:Win.CE.NET(维纳斯,美国微软)、PalmOS、HOPEN(女娲,中科院钟锡昌)
嵌入式操作系统与一般操作系统相比在以下几方面具有比较明显的差别:
1.可裁减性 因为嵌入式操作系统的硬件配置和应用需求的差别很大,要求嵌入式操作系统必须具备比较好的适应性,即可裁减。在一些配置较高、功能要求较多的环境中,能够通过加载较多的模块来满足这种需求;而在配置较低、功能单一的环境中,系统必须能够通过裁减方式把一些不需要的模块裁减掉。
2.可移植性 在嵌入式开发中,存在多种多样的 CPU 和低层硬件环境,仅流行的 CPU 就会达到十几款, 在设计时必须充分考虑,通过一种可移植方案来实现不同硬件平台上的移植。例如,可以把硬件相关部分单独剥离出来,在一个相对独立的模块或源文件中实现,或者增加一个硬件抽象层来实现不同硬件的底层屏蔽。
3.可扩展性 这是指可以很容易地在嵌入式操作系统上扩展新的功能。例如,随着 Internet 的快速发展, 可以根据需要,在对嵌入式系统不做大量改动的情况下,增加 TCP/IP 协议功能和 HTTP 协议 解析功能。这样要求在进行嵌入式系统设计时,充分考虑功能之间的独立性,并为将来的扩展 预留接口。
3.4.10多媒体操作系统
多媒体操作系统是指除具有一般操作系统的功能外,还具有多媒体低层扩充模块,支持高层多媒体信息的采集、编辑、播放和传输等处理功能的系统.
注意
- 不是一种独立的操作系统类型
- 是现代操作系统的一种特性
- 目前许多操作系统开始支持多媒体
3.4.11智能卡操作系统
最小的操作系统当数智能卡操作系统(smart card operating system),这种如信用卡大小的设备上包含一个CPU芯片,但是对 CPU 的计算能力和存储容量都有严格的限制。最简单的系统只能执行单一功能,如电子支付,功能较强的系统可以完成多个功能,通常都属于个人私用系统。
有些智能卡是面向 Java 的,即在其智能卡的 ROM 中保存一个 Java 虚拟机(Java virtual machine,JVM)的解释程序,可以将 Java 小应用程序下载到智能卡上并由 JVM 解释执行。有些智能卡可以同时处理多个 Java 小应用程序,多任务调度成为必需的功能。资源管理和保护也是多个小应用程序并发执行的必要条件,这些功能必须由智能卡上的操作系统来提供。
四、操作系统运行环境
0240318222756805.png&pos_id=img-3BRihnmp-1710772115294)
4.1定时装置
为实现系统的管理和维护,硬件必须提供定时装置,也就是实时时钟。硬件时钟通常有两种,即绝对时钟和间隔时钟
4.1.1绝对时钟
绝对时钟类似于电子表,其时间表示形式为年:月:日:时:分:秒。绝对时钟的值保存于硬件寄存器中,开机时可由电源供电计时,关机时可由机内电池供电计时,其值可由程序设定和修改,但是一般通过特权指令完成。当然,程序也可以读取绝对时钟的值。
- 系统操作员可以修改
- 一般用户使用
4.1.2间隔时钟
间隔时钟也称为闹钟,它每隔固定的时间,如 10 ms,发生一次时钟中断。
- 间隔时钟是实现多道程序的基础——保证操作系统获得控制权
- 其它中断也进入操作系统,但是否发生,何时发生没有保障
- 利用间隔时钟还可以实现逻辑时钟,例如,要实现一个 50 ms 的逻辑时钟,可以设置一个初值为 5 的变量,每次时钟中断将变量值减 1,当其值减至 0 时即达到 50 ms
4.2堆与栈
在计算机学科领域中,“堆”和“栈”是两种不同的数据结构,用途截然不同,尽管用户 进程的“堆”和“栈”在物理上通常是相邻的。每个运行程序都有一个堆和两个栈(一个用户栈,一个系统栈)。
4.2.1堆
堆属于用户空间,用于保存程序中的动态变量。
堆空间由操作系统分给运行程序,为了节省空间又满足所有程序对于堆空间的需求,操作系统一般为运行程序分配一个基本大小的堆,如8KB,如果不够就发生中断,为其扩充堆空间。
4.2.2用户栈
用户栈属于用户空间,用途如下:
- 用于保存用户函数调用时的返回点、参数、局部变量、返回值。
- 传送调用操作系统时传给操作系统的参数:对于较小的数据可以通过寄存器传送,较长的参数,如文件名,寄存器放不下就只能通过用户栈来传送
4.2.3系统栈
系统栈也称核心栈,系统栈在逻辑上属于操作系统空间,用途如下:
- 保存操作系统子程序间相互调用的返回点、参数、局部变量、返回值,当然长度较小的参数和返回值也可以通过通用寄存器传递,这个用途与用户栈相似
- **中断响应时保存中断现场,包括 PSW 和 PC,以及中断处理过程中用到的寄存器值。**对于嵌套中断,被中断程序的现场信息依次压入 系统栈,中断返回时逆序弹出
4.3寄存器
硬件系统提供一套寄存器,由运行进程使用。这些寄存器简介如下:
-
程序状态字(program status word,PSW):如下图所示,IBM 360/370 程序状态字由 16 B 组成,表示当前程序的运行环境
-
指令计数器(PC),记载运行程序下一条指令的地址
-
栈指针 SP,管态与目态各一个,分别保存系统栈和用户栈的栈顶位置。
-
通用寄存器(regs),若干个,用于存数和计算,还可用来保存系统调用时传给操作系 统的参数,以及由操作系统传给用户的返回值。
-
浮点寄存器(fregs),若干个,作用同通用寄存器
-
地址映射寄存器,一般有一对,分别记录内存区域的起始地址和长度,分别称为基址寄存器(base)和限长寄存器(limit)。
4.4特权指令与非特权指令
4.4.1特权指令
只能在管态下才能执行的指令称为特权指令(privileged instruction),如开关中断、修改地址映射寄存器、置程序状态字、停机等。
4.4.2非特权指令
在管态和目态下均可执行的指令称为非特权指令(non-privileged instruction),这些指令的执行只与运行程序本身有关,不会影响其他程序和操作系统,例如数据传送指令、算术运算指令等
4.5处理器状态及状态转换
4.5.1处理器状态
为构造一个可靠的系统,硬件至少要区分两种状态:管态和目态,它由一位触发器标识, 通常属于程序状态字的一部分,即由程序状态字中的一位标识。
管态
管态(supervisor mode)也称为系统态(system mode)、核心态(kernel mode),是操作系统运行时所处的状态。
- 可以执行硬件所提供的全部指令,包括特权指令和非特权指令。
- 可以由管态转换为目态
目态
目态(object mode)也称为用户态(user mode),是一般用户程序运行时所处的状态。
- 只能执行硬件机器指令的一个子集,即非特权指令
- 目态下执行特权指令,硬件将产生中断,进入操作系统,特权指令的执行将被制止
- 不能将其运行状态转换为管态
现代计算机支持的保护级别多达 5 级,即 R0~R4,其中 R0 的权限最高,R4 的权限最低。不过目前建立在计算机上的操作系统都只用了 R0 和 R4 这两个状态,操作系统运行于 R0,用户程序运行于 R4。
4.5.2状态转换
目态到管态的转换
处理器状态由目态转换为管态的唯一途径是中断。中断发生时,中断向量中的处理器状态字应标识处于管态,这个标识一般是由操作系统初始化程序来设置的。
管态到目态的转换
管态到目态的转换可以通过**修改程序状态字(置 PSW)**来实现。
4.6地址映射机构
在多道程序系统中,内存中同时存在多个程序,一个程序在内存中的存放位置是随机确定的,而且通常可以改变,因此程序不能采用物理地址,而只能采用逻辑地址。为使每个程序的 基本单位都能从 0 开始编址,硬件需要提供地址映射机构,负责将运行程序所产生的逻辑地址转换为内存物理地址。地址映射机构在不同的硬件环境中不尽相同,它在较大程度上决定了存储管理方式。
4.7存储保护设施
一个程序有意或无意产生的错误地址可能会侵犯其他程序空间甚至操作系统空间,为防止这些情况的发生,硬件必须提供存储保护设施,当发生存储越界错误或非法存取错误时,硬件的存储保护设施能够立即发现,并触发中断进入管态加以制止。
4.8中断装置
发现并响应中断的硬件机构称为中断装置,中断装置具有以下两个功能:
- 发现中断:中断发生时能够识别。有多个中断事件同时发生时,按优先级别响应最 高者。
- 响应中断:将目前运行进程的中断向量 PSW 和 PC 压入系统栈,然后根据中断原因到 指定的内存单元将新的中断向量取出并送到寄存器中,从而控制转到相应的中断处理程序。
4.9通道与 DMA 控制器
通道是专门负责输入输出操作的处理器,具有自己的指令系统,可以执行通道程序,完成 CPU 委托的输入输出操作任务。通道使处理器从繁重的输入输出操作中解脱出来,同时了增加处理器与设备之间、设备与设备之间的并行度。
DMA(direct memory access,直接存储器存取)是与通道相似的输入输出方式,DMA 控制器接受 CPU 的委托完成数据在内存与块型设备之间的传输。
与通道相比,DMA 控制器相对简单,没有专门的指令系统,一般一次只能传输一个数据块
4.10操作系统的界面形式
4.10.1交互终端命令
交互终端命令(又称命令行,command line)是分时操作系统所具有的界面形式。
- 交互终端命令界面由命令解释程序提供,该程序通常属于操作系统内核,但是 UNIX 系统 的交互式命令解释程序由 shell(外壳)提供,而 shell 并不属于系统核心,而是运行于核心之外的目态程序,它通过系统调用与核心打交道,完成命令所要求的动作
- 交互终端命令的一般形式为“命令名 选项 参数”
4.10.2图形用户界面
现代操作系统都提供了**图形用户界面(GUI)**形式,GUI 在本质上也属于交互式界面形式,只不过界面由命令行转变为图 形提示和鼠标操作。
4.10.3触屏用户界面
由于感应式接触屏幕的出现和普及,在手机和平板电脑上出现了触屏界面形式。
4.10.4作业控制语言
这是批处理系统所具有的界面形式。系统为用户提供一种作业控制语言(job control language,JCL)。
前面提到过,多道批处理系统中用户欲提交批作业时,他使用这种语言书写作业说明书,然后将此说明书与程序、数据一道提交给 操作系统。作业控制语言是批处理系统中操作系统与用户之间的主要界面形式。
4.10.5系统调用命令
系统调用(system call)命令也称为应用程序接口(application program interface,API),这是在用户程序级别上与操作系统打交道的方式。几乎所有类型的操作系统都有这种接口。操作 系统为用户提供一组系统调用命令,用户可以将这些系统调用命令写在程序中。当用户程序在运行过程中执行到这些系统调用命令时,将发生自愿性中断,进入操作系统。操作系统将根据不同的系统调用命令转到相应的处理程序完成该调用命令所要求的服务。
4.11操作系统的运行机理
操作系统是中断驱动的,考虑一个系统中并发执行的两个程序 P1 和 P2,假设在时刻 t1 程序 P1执行,在时刻 t2程序 P2执行,t1 < t2,则在(t1, t2)之间一定发生过中断,即中断是程序切换的必要条件。
4.12研究操作系统的几种观点
4.12.1进程观点
进程观点将操作系统看成由若干个可以独立运行的程序和一个对这些程序进行协调管理的核心组成,这些运行的程序称为进程,每个进程完成某一特定任务。同时运行的进程之间可 能会发生相互作用,这些相互作用表现为互斥、同步、通信、死锁、饥饿等,这些都是操作系 统乃至并发程序设计中的核心问题。操作系统必须协调进程之间的相互作用,以使各个进程正常结束并得到正确的执行结果
4.12.2资源管理观点
计算机系统中配备有多种软硬件资源,如 CPU、内存、设备、文件等。这些资源通常是独占型的,即一次只能分配给一个请求者。并发执行的进程在运行过程中会使用这些资源,这些 使用命令可能发生冲突,例如两个进程同时申请某一独占型设备。为此,必须有一个协调者负责管理这些资源,这个管理者就是操作系统.
4.12.3虚拟机观点
这种观点认为操作系统是一个虚拟机,操作系统是硬件上运 行的第一层系统软件,它对硬件功能进行第一次扩充。扩充之后的计算机系统具有功能强大、 使用方便等特点.