计算机技术主要分为硬件,软件,计算机作为一个完整系统所运用的技术。主要有系统结构技术、系统管理技术、系统维护技术和系统应用技术等。
①系统结构技术
它的作用是使计算机系统获得良好的解题效率和合理的性能价格比。电子器件的进步,微程序设计和固体工程技术的进步,虚拟存储器技术以及操作系统和程序语言等方面的发展,均对计算机系统结构技术产生重大影响。
它已成为计算机硬件、固件、软件紧密结合,并涉及电气工程、微电子工程和计算机科学理论等多学科的技术。现代计算机的系统结构技术主要有两个方面:一为从程序设计者所见的系统结构,它是系统的概念性结构与功能,关系到软件设计的特性;其二为从硬件设计者所见的系统结构,实际上是计算机的组成或实现,主要着眼于性能价格比的合理化。
但50年代以来,程序设计者所见的系统结构变化不大,传统计算机的计算机技术硬件组成与高级语言之间的严重脱节,给软件的可靠性、源程序编译效率,以及系统的解题效率等方面带来不利的影响,这是计算机系统结构技术需要解决的重要课题。以提高系统运算速度为主要目的而发展起来的并行处理技术,是70年代以来系统组成技术的一个重要努力方向(见并行处理计算机系统)。
70年代出现的数据流计算机系统结构思想,把传统计算机的指令控制流控制方法改变为数据控制流的控制方法。从而有可能自动免除运算相关性的障碍,达到高度平行的目的。由于器件价格大幅度下降,为某种特殊用途专门设计的系统,可以显著提高性能价格比,如数据库计算机,图像处理计算机等。
②系统管理技术
计算机系统管理自动化是由操作系统实现的。操作系统的基本目的在于最有效地利用计算机的软件、硬件资源,以提高机器的吞吐能力、解题时效,便利操作使用,改善系统的可靠性,降低算题费用等。
操作系统的基本功能,是对计算机系统的各种资源以至用户程序施行有效的管理、调度和指挥,主要为作业管理、文件管理、数据管理、处理器管理、输入输出管理、存储空间管理、人-机通信管理、终端网络管理、系统故障管理、系统再组合以及对其他软件的管理等。
此外还负责对诸用户的数据和程序实施保护和保密,以及收费计算等。操作系统技术正向提高通用性、可扩展性、可移植性及工作效率、降低辅助时间等方面改进。
③系统维护技术
计算机系统实现自动维护和诊断的技术。实施维护诊断自动化的主要软件为功能检查程序和自动诊断程序。功能检查程序针对计算机系统各种部件各自的全部微观功能,以严格的数据图形或动作重试进行考查测试并比较其结果的正误,确定部件工作是否正常。
自动诊断根据部件的具体逻辑,以特定的算法生成大量的测试数据和故障字典,利用诊断机或其他特设硬件作为“硬核”,对故障部件有关的测试路径进行布数启动,并回收测试结果。对有故障者查询故障字典以确定故障部位。自动诊断目前尚只能解决单个坏死故障。由于受到电路本身和测试算法等的限制,诊断的覆盖面一般在90%左右,故障定位范围约在1~3个插件之内(见特征分析仪)。
④系统应用技术
计算机系统的应用十分广泛。程序设计自动化和软件工程技术是与应用有普遍关系的两个方面。程序设计自动化,即用计算机自动设计程序,是使计算机得以推广的必要条件。
早期的计算机靠人工以机器指令编写程序,费时费力,容易出错,阅读和调试修改均十分困难。50年代初期开始使用的汇编语言,与机器指令一一对应以记忆码和符号地址替代机器指令的操作码和地址码,再通过翻译器产生机器指令,有效地改善了程序设计的条件,虽然它是低级语言,但因可人工编写出高质量的程序而仍保有其生命力。
50年代中期出现的高级程序设计语言,可根据课题算法的规律与特点,定义严格的语言和描述方法,使设计者可以用语言形式编制出课题的源程序,然后通过编译程序,自动编出以机器指令形式表达的目的程序,大大提高了程序设计的劳动生产率。高级程序设计语言已多达数百种,其中主要者有BASIC、FORTRAN、ALGOL、COBOL、PASCAL等。由于语言繁多又互不相通,程序移植困难,造成很大浪费。
因此,人们对创造统一语言的问题相当重视,美国ADA语言就是一例。接近自然语言的算法语言也在探索之中。软件生产工程化对计算机技术的发展具有重大意义。软件生产方式比较落后,以人工为主,自动化程度较差。
设计、修改、维护费用昂贵,产品错误率较高,以致发生所谓“软件危机”。因此,在60年代末提出了“软件工程”,即将软件生产视为一种工程或工业,使软件生产采取与硬件相类似的形式,创立软件设计、调试、维护、生产组织管理等的科学方法,制定软件标准,研制软件生产的工具等。软件工程的主要内容包括软件开发的方法论和软件开发的支援系统。方法论研究程序设计的原理、原则和技术,借以生产出价格合理、可靠和易读的程序。支援系统则主要对软件生产过程各阶段提出支持工具,以提高软件生产的效率与质量。软件工程已受到很大重视并获得较普遍的推广。