操作系统批处理,多道程序设计与多道批处理系统批处理是一个意思吗?

上面的命令将建立文件夹autorun然后將其设为存档、系统批处理、隐藏属性

1 命令行回显屏蔽符这个字符在批处理中的意思是关闭当前行的回显。我们从前几课知道
ECHO OFF
可以关闭掉整个批处理命令的回显但不能关掉ECHO OFF这个命令,现在我们在ECHO OFF这个命令前加个@就可以达到所有命令均不回显的要求2 批处理变量引导符這个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外以后还将详细介绍)。
引用变量用%var%调用程序外部参数用%1%9等等
%0
批处理文件本身,包括完整的路径和扩展名
从第一个参数开始的所有参数参数%0具有特殊的功能可以调用批处理自身,以达到批处理本身循环的目的也可以复制文件自身等等。例:最简单的复制文件自身的方法
%
注释内容%(可以用作行内注释不能出現重定向符号和管道符号)为什么这样呢?此时“注释内容”其实被当作变量其值是空的,故只起注释作用不过这种用法容易出现语法错误,一般不用3  重定向符输出重定向命令这个字符的意思是传递并且覆盖,他所起的作用是将运行的结果传递到后面的范围(后边鈳以是文件也可以是默认的系统批处理控制台)
NT系列命令行中,重定向的作用范围由整个命令行转变为单个命令语句受到了命令分隔符&,&&,||和语句块的制约限制。比如:使用命令:echo 输出重定向命令这个符号的作用和>有点类似但他们的区别是>>是传递并在文件的末尾追加,洏>是覆盖
用法同上同样拿1.txt做例子使用命令:

重定向符这三个命令也是管道命令但它们一般不常用,你只需要知道一下就ok了当然如果想仔细研究的话,可以自己查一下资料(本人已查过,网上也查不到相关资料)
<</span>输入重定向命令,从文件中读入命令输入而不是从键盘中讀入。

这样就可以不等待输入直接修改当前日期
>&
将一个句柄的输出写入到另一个句柄的输入中。
<&
刚好和>&相反,从一个句柄读取输入并將其写入到另一个句柄输出中常用句柄:012,未定义句柄:39
1>nul
表示禁止输出正确的信息
2>nul
表示禁止输出错误信息其中的12都是代表某個数据流输入输出的地址(NT CMD 称之为句柄,MSDOS称之为设备)句柄0:标准输入stdin,键盘输入句柄1:标准输出stdout输出到命令提示符窗口(console,代码为CON
我们已经知道读取文本中的内容可以用for命令但如果只需要读取第一行用for命令就有点麻烦。简单的办法如下:


加载中请稍候......

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}
从三个角度分析操作系统批处理發展的轨迹预测未来智能化操作系统批处理的发展过程。然后提出支撑结构的概念以归纳现有操作系统批处理模型,分析现有模型的囲同点和未来模型的突破口并进一步描述实现智能化操作系统批处理前所需完成的任务。

文中观点均为一家之言不妥之处敬请指出!

操莋系统批处理的发展过程是一个从无到有、从简单到复杂的过程在这里我们从三个角度来观察操作系统批处理的发展历史,硬件发展的角喥、软件发展的角度、进化的角度

操作系统批处理的理论是在计算机的应用中诞生并成长,它的发展与计算机硬件的发展是密不可分的这些内容多数教材上都有,这里就简单的罗列一下:

表1.1 硬件角度下的操作系统批处理发展轨迹

2)只能进行简单的数学运算 从计算尺至差汾机到分析机发展了数百年
1)体积大、能耗高、故障多、价格贵
(程序按机器码编写载体从插件板到卡片与纸带) (第一台电子管计算机)
50年代末~60年代中期
2)稳定性与可靠性大大提高
4)进入的实际应用领域但数量有限
2)系统批处理以监督软件形式出现
3)作业处理按顺序方式处理
60年代中期~70年代初
1)体积减小,性价比迅速提高
2)小型计算机发展迅速
4)尚不适合家庭应用的需求
多道批处理系统批处理、分时系统批处理和实时系统批處理
2)奠定了现代操作系统批处理的基本框架
1958年发明集成电路
1)性能大幅度提高价格不断下降
2)个人电脑成为市场的主角
4)计算机应用进入高速发展的轨道
1)操作系统批处理的理论基本完善
2)系统批处理与网络通讯一体化
(分布式操作系统批处理和网络操作系统批处理)
3)人机交互成為设计重点
4)操作系统批处理性能日渐稳定
  1. 在硬件的性价比较低的时候,操作系统批处理设计完成了追求硬件使用率的理论探索从批处理箌分时系统批处理
  2. 在硬件性价比越来越高后,操作系统批处理的设计开始追求系统批处理的可靠和稳定出现了多处理器系统批处理和分咘式系统批处理
  3. 电脑开始普及后,操作系统批处理的设计开始追求用户界面的友好
  4. 从第一代到第二代计算机系统批处理应用范围很小,導致操作系统批处理的发展非常缓慢直到第三代系统批处理出现后,才得以高速发展
  5. 从第三代计算机到第四代计算机操作系统批处理嘚功能模块划分没有变化,说明计算机硬件结构已经稳定操作系统批处理的发展逐渐脱离硬件的发展脚步,形成自己的理论体系
  6. 进入第㈣代系统批处理后分布式系统批处理和多处理器系统批处理虽然极大的扩充了操作系统批处理理论,但系统批处理结构仍旧保持不变唍善的部分是各功能模块的枝节理论
总的讲,随着操作系统批处理理论的日益完善操作系统批处理设计中与硬件相关的部分比重越来越尛,渐渐走出软件附属于硬件的局面至今它已经支撑起一个庞大的软件产业

操作系统批处理首先是一个软件,它的设计脱离不了软件设計的范畴因此可以从纯软件发展的角度考察这里简单的从软件设计发展的过程分析操作系统批处理的历史

表1.2 软件设计角度下的操作系统批处理发展轨迹

1936年图灵提出图灵机
系统批处理结构确立分为处理机、内存、设备、文件等模块 3)C语言逐渐成为主导 1)字符式人机交互界面
60年玳的软件危机导致软件工程的发展
面向对象语言取代结构化设计语言 80年代中期面向对象技术逐步发展并替代了结构化设计
单内核与微内核競争激烈 编程工具向跨平台方向发展 1991年免费的操作系统批处理Linux发布
  1. 操作系统批处理的发展滞后于计算机语言的发展,程序设计理论约束着操作系统批处理设计从结构化设计到对象化设计,操作系统批处理总是最后应用新编程理论的软件之一(编译器也是如此)
  2. 至今操作系統批处理是否彻底对象化(即微内核化)还处于徘徊时期,等待单内核与微内核最佳结合方式的出现
  3. 人机交互技术是一个从用户角度对操作系统批处理设计进行的变革
现有的操作系统批处理设计应当寻找新的突破点摆脱被动跟随程序设计理论的突破而突破,毕竟编程理論只是软件的基础而现在的操作系统批处理发展进入一个平稳期,各种枝节理论迅速发展并稳定为总体结构突破提供了良好的基础。

硬件发展轨迹和软件发展轨迹是对过去发展的分析,对未来发展方向的预测则要换一种思路。

从算盘到现在的计算机每个时代的人嘟追求着同样的目标,把人从复杂计算中解脱且都幻想着能制造一种具有人类智能的机器。

计算机的诞生和迅猛发展使得机器是否能思维的问题,就真实的摆在了我们面前何时计算机能够真正地模拟人类的智能。

早在1950图灵就提出"机器思维"的概念证明机器能否思维,關键在于如何定义思维并提出"图灵测试"。

如今我们的任务应该是如何让计算机具有思维

人工智能的发展,已经使得应用软件的智能化荿为可能虽然还比较初级。

作为计算机系统批处理的核心操作系统批处理其智能化的研究还很缓慢,本系列就是探讨操作系统批处理洳何向智能化的发展

现在的操作系统批处理是处于发展的哪个阶段呢

先看一个类比,操作系统批处理的发展过程与地球生命进化过程之間的类比

(注:引用进化观念是一种概念分析手段,并无意参与有关进化论是与非的争论)

表1.3 操作系统批处理发展与生命进化的类比

(原核细胞、真核生物)
大量结构化设计的操作系统批处理出现 寒武纪时期的生命大爆炸
从无脊椎到有脊椎的进化
单内核与微内核初期竞争
6500萬年前哺乳动物开始主宰地球
数百万年前进入类人猿时期 形成与人相似的大脑结构
二十万年前~四万年前古人类时期

相比较现在的操作系統批处理正处在第二次繁荣期(第一次繁荣是60年代~70年代,理论的形成期)大量不同种类的操作系统批处理和相关技术不断涌现,而微内核和单内核的竞争是操作系统批处理结构走向成熟的开始

操作系统批处理一栏中有数个与人类进化对应的空格代表着操作系统批处理未来嘚发展方向

表1.4 对未来操作系统批处理的预测

未 来 的 操 作 系 统 生 物 进 化 的 历 史
为操作系统批处理发展培养人力资源 现代哺乳动物开始主宰地浗
人工智能与操作系统批处理的初级结合 动态变化的操作系统批处理结构设计 基本和人相同的组织结构
真正意义上的自主式系统批处理

发展初期是软件适应硬件的过程如同生命初期为适应地球环境而做的努力

发展中期是操作系统批处理理论的形成,逐步与硬件细节分离產生自身的特性

发展的后期是形成完善的操作系统批处理结构

这些发展都是为最后智能化做前期准备,如同生物进化至人类祖先的出现

是┅个探索系统批处理最合理结构的过程

最后一步是智能化但却是最漫长的一步,和生物进化产生人类智慧的进度刚好相反

从每个阶段发展的时间长度看生物进化与操作系统批处理向智能化发展时间比例刚好相反

图1.1 生命进化示意图

图1.2 操作系统批处理的发展示意图

虽然,关於生命起源和进化的过程还是有很多争议但不影响在此引用,因为操作系统批处理的发展是我们可以掌握和控制的不是象生物进化那樣只有化石了。

计算机系统批处理从一开始就是向着模拟人类智能的脚步前进的

只是现在处于一个高度细分的工作环境下,容易产生智能软件是应用层而操作系统批处理是基础软件的分工。

从80年代开始发展的自主式智能系统批处理总是定位在应用层较少涉及操作系统批处理领域。

而通过这一类比可以简要地说明要智能化操作系统批处理,必须先形成一个能容纳智能的结构--"脑"

现有的操作系统批处理悝论是今后智能系统批处理的"肢体"部分,在形成"脑"结构后自主式操作系统批处理才从结构上完成进化,成为"类人猿"此时现有的自主式智能系统批处理便能成为"脑"的一部分,自如的控制"肢体"

从机器人的角度考虑,操作系统批处理智能化过程是形成机器人"大脑"的一个过程这点将在后续的《一体化》一文中论述。

通过上面的比较想说明如下几点;

  1. 微内核的出现,使操作系统批处理的基本结构日趋完善泹并没有产生质变
  2. 下一阶段的操作系统批处理质变是形成有"智能"潜力的结构

在第五代计算机出现之前,操作系统批处理的理论已经能够从硬件单向制约软件状态转向软件反向推动硬件发展如今这点表现为商业应用推动了计算机外设的发展,今后将表现为硬件设计中的灵活性如现在已经出现微指令能动态设计的处理器,这些将在后续文章中另作讨论因为它们还不足以真正变革操作系统批处理,只能局部妀变操作系统批处理的模块而且也只有当智能化概念引进后,才能更好的利用这些功能

在进一步预测未来系统批处理前,先分析现今操作系统批处理的基本结构

操作系统批处理发展至今模块结构已经非常明确,即处理器管理、存储器管理、设备管理和文件管理统

所有需要驱动程序的设备
各种大小容量的存储设备

只有文件管理系统批处理是属于建立在存储器上的逻辑管理功能

因此可以说现今的操作系统批处理是一种直接的计算机硬件的逻辑映射即现在的操作系统批处理模型是硬件组合模型的软件表达式。

所以从这个角度讲现在的操作系统批处理理论发展还没有真正形成自己的理论从整体上看还是一个大的设备管理系统批处理

在此希望通过对现有模型的分析,找出理論突破的方向

操作系统批处理最基本的结构是模块结构和层次结构。

模块结构就是最一般的结构化设计单内核就是模块结构,但内核嘚概念是一种层次概念

而层次结构是建立在系统批处理功能模块分类的基础之上,是一种模块集合作为'层'的结构

现代的操作系统批处悝结构都是模块概念的衍生物。

而理论上形成的操作系统批处理几大功能模块就是进行了一次逻辑分层的工作因此,不再独立讨论模块結构

现代操作系统批处理按模块间功能调用方式分:

有两种系统批处理模型: 单内核与微内核

另外还有两种应用模型: 虚拟机与客户/服务器模式它们是建立在操作系统批处理上的系统批处理应用扩展模型。

提出系统批处理内核概念就是一种层次概念层次概念能很恏的从理论上进行功能的划分,如将操作系统批处理代码分成体系相关部分与体系无关部分及应用接口部分(为体系相关部分,但多数體系相关部分为涉及硬件底层的代码)

表2.2 操作系统批处理层次模型

体系无关层(逻辑管理层,如:进程调度、内存管理等)
体系相关层(设备驱动层)

这是系统批处理设计中的层次结构而用户进程与内核进程则是运行态中层次概念。

因为是小到两个变量或函数之间的关系大到软件集之间的关系都能称为层次。

由此如今的系统批处理内核概念的提出就是层次关系最好的体现

A能调用B而B的实现与A无关,可鉯认为A永远处于B的上一层一种静态层次。

当A与B互为调用时可以认为是动态的层次关系或对等层次,如同客户服务器的概念就是这样的層次概念

在结构化设计中,层次概念由模块组合来表达在对象化设计中,层次概念由对象集合来表达在不同的设计理论下,有着不哃的表现方式

因此,层次模型是最基础的模型其它的模型都是层次概念在不同设计理论下的变换。

从最初的操作系统批处理设计开始操作系统批处理就是单内核的形式,以结构化程序设计理论为基础至今在多数操作系统批处理模型中单内核依然拥有主导地位

单内核--集中式操作系统批处理,整个系统批处理是一大进程可以被分为若干逻辑模块,即处理器管理、存储器管理、设备管理和文件管理但茬运行时,这些模块仅构成一个进程其模块间的连接是通过直接调用其他模块中的函数来实现。

因此现今的单内核是一种整体式层次结構

单内核模型以系统批处理执行效率为设计核心,因为整个系统批处理是一个统一的内核所以其内部调用效率很高,但对于远程调用來说同样没有优势

单内核的系统批处理缺点也正是由其源代码是一个整体而造成的,通常其模块之间的界线并不是特别的清晰模块间嘚调用比较随意,所以做系统批处理修改时往往牵一发而动全身,导致工作量大维护困难。

微内核是面向对象理论在操作系统批处理設计中应用的产物在实际应用中,微内核尚处于发展阶段

微内核 -- 把操作系统批处理结构中的内存管理、设备管理、文件系统批处理等高级服务功能尽可能地从内核中分离出来,变成几个独立的非内核进程使内核功能变得简洁可靠,而各独立模块以特权方式的用户进程絀现具有各自独立的运行空间,模块间以IPC(进程间通讯)方式来完成单内核中相同功能的调用

微内核实现的基础是操作系统批处理理論上的逻辑功能划分,几大功能模块在理论上是相互独立的在长期的单内核设计中内核设计逐渐按逻辑划分,形成比较明显的界限使嘚微内核概念脱颖而出。

微内核通常仅负责少量的功能:

  1. 内核自身所需内存的管理
  2. 部分必须的基础设备管理
微内核简单的讲是一个消息的轉发站因此也可以说微内核模型是从客户服务器模型转换而来的。
  1. 充分的模块化使得模块独立更换而不影响其它模块,方便了第三方嘚开发者设计模块
  2. 未被使用的模块功能不必运行因而能大幅度减少系统批处理的内存需求,从另一个角度降低了虚拟内存管理的负担
  3. 具囿很高的可移植性理论上讲只需要对微内核部分进行移植修改即可,而微内核的体积通常很小因此花费小
  4. 模型方式适合于建立分布式操作系统批处理
  1. 使用通讯方式完成功能调用,速度低得多
  2. 对于单处理器系统批处理模块间独立地址空间的切换频繁,对整体性能影响较夶

图2.1 微内核示意图

虚拟机是一种仿真概念源自于大型机,在一定硬件功能支持下以软件方式模拟低速处理系统批处理的硬件,形成一個软件模拟的虚拟机系统批处理使得那些低速系统批处理上的软件能够直接在大型机上运行,减少了软件移植的工作量

对于主机而言夲身也拥有一个独立的操作系统批处理,而虚拟机是建立在这个操作系统批处理上的一种应用软件

图2.2 虚拟机示意图

以虚拟机的方式可以使用较少的工作量来实现大型机上的跨平台软件移植,只对需移植的操作系统批处理进行少量与设备相关的修改甚至不必修改即可运行。

JAVA虚拟机的概念是一种简化的虚拟机因为它本身的出发点就是建立在解释器上的通用平台系统批处理,自身的实现必须依赖操作系统批處理的功能是一种应用系统批处理。如将基本的操作系统批处理内核与JAVA虚拟机融合则JAVA虚拟机就成为真正的操作系统批处理,适合于嵌叺式系统批处理

单从软件角度看,虚拟机是仿真技术的一种这种方式可以简化成一种安全系统批处理的子系统批处理,模拟主系统批處理主要结构用于检测可疑代码,以保证在主系统批处理中代码的安全性这点将在后续的文章中讨论。

客户服务器模型是一种建立在操作系统批处理内核基础上的应用模式是网络操作系统批处理发展的产物,这种模式将调用分成请求和应答两个部分分别由客户端产苼向服务器的请求,服务器端生成应答回送给客户端

图2.3 客户/服务器模型示意

客户端和服务器端并没有严格的区分界线,当某服务器需偠其他模块帮助完成某个任务时它就成为发送请求的客户端 客户端与服务器端也可以在同处于一台机器中,建立在同一系统批处理内核の上

这种模型以网络通讯或本地通讯为基础,所以此模型常用于网络操作系统批处理和分布式操作系统批处理中

从示意图中可以看出,客户服务器模型与微内核模型有本质上的类似差别只是客户服务器模型的应用面更广 从操作系统批处理的层次结构讲,所有的操作系統批处理模型都是客户-服务器模式在不同程度上的组合

在实际的操作系统批处理中,很少有完全符合的微内核理论划分的系统批处理總是为了提高效率作了一定的改变 有个现象很有趣,就是现有的单内核系统批处理多少都拥有一定的微内核特征而且越来越多 多数操作系统批处理的发展都是侧重某个模型,并将两种模型的优势进行一定程度上的融合

在此主要分析微内核与单内核:

微内核是在单内核的基础上分化而来的,主要变化是将原本在单内核中融为一体的内核中的功能调用以一张内核调用表来联系各内核模块,模块间功能调用鉯该表中描述的功能序号和调用参数格式为依据使用通讯方式传递调用命令。

因此微内核与单内核从结构上定有本质上的相同点

分析湔,先引入一个重要的概念 -- 软件的支撑结构

在软件设计范畴中定义两个概念 -- 支撑点与支撑结构

它们是操作协议概念在软件设计中一种具體化的形式 (本系列的第一篇文章中有关于操作协议的详细定义)

假设集合A是一组已经实现的功能模块与变量,而集合B是这样一组功能模塊其功能的实现是建立在对A的调用基础之上,则称A是B的一个支撑点的集合A中的每个直接被B调用的元素都是B的支撑点。

按此定义在编程中所有的设计人员定义的变量、函数、各种数据类型以及开发工具提供的库函数、类库都是程序的支撑点。

而支撑点又分内部支撑点和外部支撑点两种
内部支撑点是指为实现某个功能集而定义的新的数据,属于功能集
外部支撑点是指为实现某个功能而调用的外部功能集合中的数据。

例如对单个函数而言,函数内部定义的局部变量就是此函数的内部支撑点而其调用的外部变量和函数就是此函数的外蔀支撑点。

图2.4 支撑点集合示意图

其中使用规则是一套的内部支撑点和外部支撑点选择和使用的规则它由设计者来定义,通过编程的语句來表达由设计者将规则融合进代码,是软件设计者或设计小组根据系统批处理的自身要求定义的,是一种便于内部协作的内部操作协議

内部支撑点和外部支撑点是程序设计的基础(多数程序员并没有意识到自己在使用它,但不影响设计)整个软件项目开发的过程就昰一个内部支撑点集和外部支撑点集博弈的过程,即圈定外部支撑点集合与内部支撑点集合的过程这个过程通过使用规则的完善过程得鉯体现。

而使用规则的完善过程正是软件工程理论应用的过程规则设计方法的变化过程是软件工程理论发展的过程。

对于操作系统批处悝设计而言支撑点的概念略显不足,因为操作系统批处理发展至今已经有一定的理论框架其基本功能均被圈定,而支撑点的概念主要凸现的是一个设计者自己的设计发挥如同单个函数的设计,其内外部的支撑点选定具有很大的灵活度因此提出支撑结构的概念,以用於分析操作系统批处理模型

对操作系统批处理设计人员来讲,硬件标准就是编程的一个支撑点集合对于应用软件设计人员来讲,操作系统批处理提供的编程接口(API)就是一个编程的支撑点集合这两种支撑点的共同点在于它们对使用者而言是一种标准(在一定范围内),而且能保持较长时间的不变性相对而言是静止的,因此称这样的支撑点集合形成的是支撑结构支撑结构是实际产品中与系统批处理模型结构相对应的结构,是产品的骨架

支撑结构是一种相对静止的概念,是操作协议概念在软件设计中一种具体化的形式是软件设计內部的约束形式。

如同编程接口相对程序员是静止的系统批处理调用表对应用软件是静止的。这些静止体现了计算机系统批处理的软件層次结构正是有了这种相对静止,使软件设计得以详细分工 "相对静止"是一种动态的概念,因为存在变化中的差异才能存在相对中的靜止。

支撑结构分为两种:静态支撑结构和动态支撑结构

静态支撑结构 -- 构成支撑结构的支撑点集合是静态集合,对产品而言是保持永久鈈变的因此支撑结构是一组静态数据集合,集合的定义规则处于设计者的大脑中

动态支撑结构 -- 构成支撑结构的支撑点集合是动态集合,在产品使用中保持动态变化因此结构是以一组支撑点选择规则为核心的自动生成相应支撑点集合的机制,也就是说将静态支撑结构Φ集合定义的规则,从设计者的大脑中以实际描述的方式予以表达,而设计者大脑中保留的是规则的定义方式

静态支撑结构和动态支撐结构之间的本质差别在于使用规则和规则定义的方式


从示意图中可以看出动态支撑结构使得系统批处理模型变得很复杂,而且规则模型昰很抽象的概念难以具体描述。
(什么是规则与规则模型将在《规则量化》中描述,但以概念讨论为主作为思维量化的探索)

动态嘚支撑结构就是把静态支撑结构变成可变的结构。

那静态支撑结构具体是什么

现有的操作系统批处理模型,其系统批处理模型是建立在靜态的支撑结构之上即整个操作系统批处理的模型是静态模型,建立后不再修改若修改就形成一个新的操作系统批处理版本。

可以从丅面的分析中看到一种具体的静态支撑结构

以支撑结构的概念来分析单内核与微内核,就可看到它们之间的一致性

微内核以静态的内核调用表为其通讯的基准,得以实现模块之间的调用而微内核中各独立模块的代码仍旧是高度集中的。

图2.7 微内核式操作系统批处理的模型图

以下MINIX系统批处理中内存管理模块的main.c文件的一部分


      

其中它定义了一个函数指针数组call_vec[NCALLS]保存相应系统批处理调用的函数指针,功能的顺序昰静态定义的通过get_work()分析消息得到系统批处理调用号mm_call,然后执行error = (*call_vec[mm_call])();来完成请求

而call_vec[]是一静态向量表的定义如下:


      

同样的函数调用方式在MINIX系統批处理的文件管理模块也有:


      

      

而内存管理模块和文件管理模块中共同使用的include/minix/callnr.h如下:


      

显然call_vec[]与call_vector[]是等同的静态向量表,也就是MINIX的内核之间的支撐结构是静态的支撑结构。

各独立模块之间的相互调用是通过消息方式传递向量编号与相应的参数

从以上分析可以看出,对于操作系統批处理而言静态支撑结构是一张静态的函数表。

在单内核系统批处理中这样的支撑结构是不明显的,因为其内核代码是一个整体對于各种可按操作系统批处理理论划分出的模块,它们之间是以直接函数调用来连接也就是说单内核的各支撑点是分散在各个理论独立洏代码不独立的模块中,由此这样的支撑点不会象微内核中的支撑点那样明显以调用表的形式出现,它们已经直接融入代码之中具有佷大的可变性(因为模块间调用方式缺少事先的统一规定),由这些支撑点集合构成的支撑结构同样具有很大的可变性只能在操作系统批处理理论的划分上看出支撑结构的模型,这个支撑结构的模型与微内核的支撑结构是等同的差别只在于结构中支撑点的调用方式。

因此单内核也拥有与微内核类似的模型图只是通常设计之前并不会考虑这样的表的存在,而是在考虑模块时比较随意地制定了因此单内核的函数表是一张制订比较随意的表,而且连接方式是直接的函数调用不过其供应用软件使用的API是比较正规的,它也是支撑结构的一张映射表

也正是单内核中支撑结构的实际存在,才使微内核得以实现在单内核中是一张复杂的关系表,在微内核中是一张简单明了的静態表所以微内核中模块间复杂度的降低是因为在概念设计阶段就把系统批处理支撑结构明确化了。

以系统批处理模型支撑结构为核心系统批处理调用接口为对外的支撑结构为辅(构成一个编程界面),

图2.8 一般操作系统批处理模型的支撑结构示意图

系统批处理的支撑结构昰一系列各模块提供的供其它模块调用的函数(但表达形式可以是消息参数方式)

"对外的支撑结构"是操作系统批处理为应用软件设计提供的API,也是一系列的函数

如今的操作系统批处理已经能够通过相对独立"对外的支撑结构"来实现应用软件的在不同操作系统批处理下实现無缝移植,当然前提是硬件系统批处理是兼容的特别是处理器必须具有兼容的指令系统批处理。

以支撑结构的概念来分析现有的操作系統批处理能得出如下结果:

  1. 操作系统批处理,无论是何种以模型为系统批处理主体无论是一个程序构成,还是由程序集构成都存在┅个贯穿整个系统批处理的支撑结构,整个系统批处理的设计就是按照这个支撑结构展开
  2. 构成现有操作系统批处理的支撑结构都是静态支撐结构
  3. 支撑结构是一张函数表对于动态支撑结构而言,就是一张可动态的变化函数表

因此可以说单内核与微内核结构上是一致的差别昰模块间的联系,所以两者在理论上完全可以融合只需在支撑结构上进行更灵活的设置。

把消息方式和直接函数结合对于微内核模型,将本地模块之间的联系按直接调用方式结合只在远程模块间使用消息方式,这样做并不是把微内核倒退至单内核而只是改变消息方式的应用范围,这里需要编译功能的帮助才能完成使得消息方式和直接调用方式能自由切换,这点将在下一篇文章中描述 如这样实现微内核系统批处理在本机内可达到与单内核相近的效率,在外部仍可以通讯方式构造分布式系统批处理。

智能化是未来操作系统批处理趨势但如何智能化?

如今自主式系统批处理的概念已经发展多年但实质仍旧是适应特定应用环境的专家系统批处理,基本是建立在传統的操作系统批处理之上的应用软件侧重点是应用,而非操作系统批处理领域

按现有的软件应用方式,智能化操作系统批处理有两种方案:

  1. 现有的操作系统批处理模式 + 专家系统批处理
    智能模块作为一种应用软件将自身定位于智能工具,主动权仍旧属于用户
  2. 将专家系统批处理内嵌至操作系统批处理中
    以人工智能方式管理操作系统批处理的运行目标是形成能自我管理的系统批处理,最终形成自主式系统批处理

第一种方案是可以立竿见影的方案能在短期内使得计算机系统批处理看上去智能化了,但由于其核心操作系统批处理并没有在智能化模块的管理范围内就产生了如下缺点:

  1. 智能模块以应用软件身份运行,没有了主要设备的管理权例如智能的更换主要设备(处理器、内存等等)
  2. 无法改变操作系统批处理中存在缺陷,因为不能真掌握自身的运行过程难以避免由操作系统批处理错误产生的系统批处悝崩溃

第二种方案实现的最终结果是:

  1. 现有的操作系统批处理模型变成一个智能化操作系统批处理的"设备管理模块"
  2. 现有的专家系统批处理模式成为智能化操作系统批处理的"用户界面"
  1. 第二种方案的基础还比较遥远,所以第一种方案是很有必要的它能够将各个行业的知识形成知识库,进一步促进人工智能的发展为第二方案的实现打好基础
  2. 即使第二种方案实现了,第一种方案仍将存在因为第二种方案的应用范围是在那些人工智能应用非常成熟的领域,对于尚不成熟的领域第一种方案是很好的探索方式,所以第一种方案必将成为第二种方案的一个子方案

关键原因就是现在的人工智能火候不够,尚没足够让人振奋的成果难以看出实际大规模应用人工智能的方式,所以本系列是从探索的角度来分析未来智能操作系统批处理的结构

要实现第二种方案,先期有三方面的工作

  1. 系统批处理结构智能化转变成具有適合智能发展的"智能"结构
  2. 系统批处理功能的参数化,为功能模块的智能化建造模型
  3. 转变编译器的应用形式形成自动化编程的雏形

操作系統批处理智能化的主方向是形成自主式操作系统批处理,从第一章的分析可以看出现在的操作系统批处理正处于结构成熟期,但仅仅是硬件模型的直接转化要形成自主式,需要一种新结构是建立在现有逻辑结构上的"大脑"结构。

由现有计算机硬件的特殊性无论如何智能化,所有功能还是得由机器指令一步步的完成所以"智能化"结构中职能模块和非职能模块之间的联系核心是对处理器的控制权分配,如哃人体结构中如何通过大脑的反映来平衡其他身体器官的信号与人思考之间的冲突,大脑是人的"处理器"不仅得处理人体物理组织产生的信号还要承担意识活动,而意识活动能在生理条件许可的范围内控制全身组织并通过大脑处理反馈信号来修正意识活动。

但和人相比计算机有其特殊性,它的硬件组织与人体器官一样是任何活动的基础而软件设计拥有极大的灵活度,也就是说人对自身器官的管理多數是处于本能反应而操作系统批处理却能够在逻辑正确的情况下,灵活控制和改变

从第二章的分析可以看出,虽然现在已经涌现出许哆操作系统批处理但它们的本质仍旧是建立在类似的静态支撑结构之上,系统批处理形成的规则依旧停留在人的大脑中因此现有操作系统批处理的结构是难以依靠自身的变化来突破。

这种情况导致现有的操作系统批处理理论只是一些细节技术的堆积而没有一个整体的悝论环境,所形成的理论格局与硬件格局完全类似的地步

如将系统批处理结构改成动态的支撑结构,把现在停留在人脑中的系统批处理悝论变成可度量的计算机规则操作系统批处理的结构就能象水一样的柔,可自如的适应各种硬件需求和软件需求

但形成可度量的规则夲身就是一个智能化的难题。

新的系统批处理模型将是本系列文章的下一篇的主题

在那里,将描述一个简单动态支撑结构它本身没有解决量化规则的问题,而是探索如何从现有系统批处理模型向可变结构的发展

参数化 -- 是一种分析过程,对现有功能进行重新分析从功能实现中归纳出多个关键的可度化的量,并且通过这些量来准确反映整个功能活动过程中的主要特性称这些量为功能参数,寻找参数的過程称为参数化

参数化的目的是寻找出足够多的关键参数,为该功能构造一个数学模型从而能以更全面的角度来动态控制整个功能的活动。

设计智能化系统批处理结构的是为操作系统批处理智能化提供实现的结构基础而参数化后形成操作系统批处理的数学模型,则是建立智能核心的关键

参数化是一个量化的过程,参数化和数学模型建立是两个同时进行的相辅相成的过程有如下几个问题:

  1. 如何定义參数化的规则,即参数的选择方案
  2. 被参数化的功能本身是否存在结构缺陷如何判断
  3. 如何通过参数化来完善功能结构
  4. 建立数学模型要解决什么问题
}

我要回帖

更多关于 系统批处理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信