计算机软件的体系结构

“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”

这句话几乎概括了计算机系统软件体系结构的设计要点,整个体系结构从上到下都是按照严格的层次结构设计的。不仅是计算机系统软件整个体系是这样的,体系里面的每个组件比如操作系统本身,很多应用程序、软件系统甚至很多硬件结构都是按照这种层次的结构组织和设计的。系统软件体系结构中,各种软件的位置如图所示。

每个层次之间都要相互通信,既然需要通信就必须有一个通信协议,我们一般将其称为接口(Interface),接口的下面那层是借口的提供者,由它定义接口;接口的上面那层是接口的使用者,它使用接口来实现所需要的功能。在层次体系中,接口是被精心设计过的,尽量保持稳定不变,那么理论上层次之间只要遵循这个接口,任何一个层都可以被修改或是替换。除了硬件和应用程序,其他都是所谓的中间层,每个中间层都是对它下面的那层的包装和扩展。使得应用程序和硬件之间保持相对的独立,比如硬件和操作系统都在日新月异的发展,但是最初为80386芯片和DOS系统设计的软件在最新的多核处理器Windows Vista下还是能够运行的,这方面硬件和操作系统本身保持了向后兼容性,另一方面不得不归功于这种层次结构的设计方式。

最近流行的虚拟机技术更是在硬件和操作系统之间增加了一层虚拟层,使得一个计算机上可以同时运行多个操作系统。这也是层次结构带来的好处,在尽可能少改变甚至不改变其他层的情况下,新增加一个层次就可以提供前所未有的功能。

我们的软件体系中,位于最上层的是应用程序,比如我们平时用的网络浏览器、Email客户端、多媒体播放器、图片浏览器等。从整个层次结构上来看,开发工具与应用程序是属于同一个层次的,因为它们都是用一个接口,那就是操作系统应用程序编程接口(API)。应用程序接口的提供者是运行库,什么样的运行库提供什么样的API,比如Linux下的Glibc库提供的POSIX的API;Windows的运行库提供的Windows API。

运行库使用操作系统提供的系统调用接口(System call Interface),系统调用接口在实现中往往以软件中断的方式提供,比如Linux使用0x80号中断作为系统调用接口,Windows使用0x2E号中断作为系统调用接口。

操作系统内核层对硬件层来是硬件接口的使用者,而硬件是接口的定义者,硬件的接口定义决定了操作系统内核,具体来讲就是驱动程序如何操作硬件,如何与硬件进行通信。这种接口往往叫做硬件规格,硬件的厂商提供硬件规格,操作系统和驱动程序的开发者通过阅读硬件规格文档所规定的各种硬件编程接口标准来编写操作系统和驱动程序。

时间: 2024-10-28 01:41:21

计算机软件的体系结构的相关文章

软件体系结构原理、方法与实践总结

第1章:软件体系结构概论 什么是软件危机,软件危机的具体表现有哪些? 软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象. 软件危机的表现: 软件成本日益增长,开发进度难以控制,软件质量差,软件维护困难 产生软件危机的原因,如何克服软件危机? 产生软件危机的原因有用户需求不明确,缺乏正确的理论指导,软件规模越来越大,软件复杂度越来越高. 人们面临的不光是技术问题,更重要的是管理问题.要提高软件开发效率,提高软件产品质量,必须采用工程

中国计算机软件设计师考试大纲 2008-10-12 21:51 鹤影314 | 五级

中国计算机软件设计师考试大纲 一.考试说明 1.考试要求: (1) 掌握数据表示.算术和逻辑运算: (2) 掌握相关的应用数学.离散数学的基础知识: (3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理: (4) 掌握操作系统.程序设计语言的基础知识,了解编译程序的基本知识: (5) 熟练掌握常用数据结构和常用算法: (6) 熟悉数据库.网络和多媒体的基础知识: (7) 掌握C程序设计语言,以及C++.Java.Visual.Basic.Visual C++中的一种程序设计语言: (8)

软件体系结构-实验一 - 林毓锋 -130242014068

实验一-132042014068-林毓锋 课程    软件体系结构     实验名称  实验一.软件设计的网络支持环境              第      页 1.概念理解 (1) 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件.数据构件和连接构件.处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来. (2) A."软件开发知识半衰期"是指一个在软件领域很有学问或有丰富专业知识的人,如果不再学习,在一定时间后进入知识半衰

软件架构(体系结构,Architecture)和软件框架

软件架构(architecture)是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计. 软件体系结构是构建计算机软件实践的基础.与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件架构以作为满足不同客户需求的实际系统设计方案的基础.从和目的.主题.材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟.一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计.软件架构师定义和设计软件的模块化,模块之间

283.软件体系结构描述

4.6 使用“4+1”模型描述软件体系结构 对于同一座建筑,住户.建筑师.内部装修人员和电气工程师有各自的视角.这些视角反映了建筑物的不同方面,但它们彼此都有内在的联系,而且合起来形成了建筑物的总体结构. 软件体系结构反映了软件系统的总的结构,它和建筑物一样,存在不同的角度来反映系统的体系结构. 当面对一个复杂的系统时,必须从多个角度来考虑问题.在处理体系结构时我们通常只考虑系统功能方面的需求,而实际上除了功能,物理分布.过程通信和同步等也必须在体系结构一级加以考虑.这些来自不同方面的需求就形成

测试计算机软件发展历史

1.1    计算机软件发展历史 1.1.1 软件测试是伴随着软件的产生而产生的.早期的软件开发过程中,那时软件规模都很小.复杂程度低,软件开发的过程混乱无序.相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作.对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试. 到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化.高复杂度,软件的质量越来越重要.这个时候,一些软件测试的基础

[Nhibernate]Nhibernate系列之体系结构

引言 在项目中也有用到过nhibernate但对nhibernate的认识,也存留在会用的阶段,从没深入的学习过,决定对nhibernate做一个系统的学习. ORM 对象-关系映射(OBJECT/RELATION MAPPING,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统.对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据

探讨Java虚拟机之虚拟机体系结构

自工作以上,程序因为代码越写越多,变得越来越臃肿,效率也会变得越来越低,于是我总喜欢不断去优化程序结构外,内存优化和性能调优. 要对Java程序进行内存优化和性能调优,需要了解虚拟机的内部原理,了解Java虚拟机的好处除了上述提及两点好处.从更深一点的技术层面上看,了解Java虚拟机的规范和实现,将更加有助于我们编写高效.稳定的Java代码.比如,假如了解Java虚拟机的内存模型,了解虚拟机的内存回收机制,那么我们就不会过分依赖它,而会在需要的时候显式的"释放内存"(Java代码不能显

正交软件体系结构

正交软件体系结构由组织层和线索的构件构成.其中,层是由一组具有相同抽象级别的构件构成:线索是子系统的特例,它由完全不同层次功能的构件组成(通过相互调用来关联),每一条线索完成整个系统中相对独立的一部分功能.每一条线索的实现与其他线索的实现无关或关联很少,在同一层中构件之间是不存在相互调用的.正交软件体系结构的特征如下: (1)正交软件体系结构由完成不同功能的n(n>1)个线索(子系统)组成. (2)系统具有m(m>1)个不同抽象级别的层. (3)线索之间是相互独立的(正交的). (4)系统有一