Chinaunix首页 | 论坛 | 博客
  • 博客访问: 85045
  • 博文数量: 34
  • 博客积分: 1640
  • 博客等级: 上尉
  • 技术积分: 395
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-17 14:37
文章分类
文章存档

2008年(34)

我的朋友
最近访客

分类:

2008-04-17 15:47:29

当前的计算机主要分为三类:desktop computers, servers and embedded computers. 当然我用的最多的也就是desktop computer了。其实,生活中接触的embedded computers也应该不少,只是自己没有注意罢了。每一种Computers对硬件,可以在其上开发的软件,软件的性能,系统的安全性,容错性,等等很多特征都有不同的要求。现在自己接触的做多Desktop computers有什么特殊性呢?自己连这个最简单的东东都还没有弄明白,我怎么会明白其他更复杂的东西呢。。。。

一个计算机程序的性能是由多方面决定的,主要包括:Algorithm, Programming Language, Compiler, architecture, Processor and Memory system, I/O system (hardware and operating system)。平时自己注意的比较多的主要是算法。但是算法自己也没有完全掌握。为什么呢?还有其他因素可以影响到性能。比如你选择的编程语言,所使用的计算机也就是硬件。不同的编译器常常也会产生不同的程序性能。

对于软件,我们一般也可以分为两种:applications software和systems softwares。整个系统的结构应该是:systems softwares架于hardware之上,而applications software又架于systems software之上。常见的systems software主要有两种:operating system和compiler。

在计算机发展的初期,程序员编程主要是直接是使用机器码。显然,计算机硬件只可以执行机器码。很显然,使用机器码编程很困难。所以,接着就出现了符号语言也就是 assembly language。当我们利用assembly language编程之后,我们可以另外编写软件将这些assemly 符号转换成机器码。接着的发展步伐应该就是high-level programming languages, 如C,C++,Java等了。为了重用原有的assembly language的assembler,我们就需要程序将我们用高级语言所写的代码转化为assembly language的对应物,这也就是compiler的工作了。

 其实计算机所作的工作很简单,主要就是:inputing data, outputing data, storing data, and processing data。所有的计算机都有五个部分著称:input, output, memory, datapath, and control。后面的两个部分也就是通常所说的processor。

抽象的概念正是无处不在呀。通过抽象我们可以忽略我们不关心的事情,而专注于我们所在乎的。在计算机体系结构中,最重要的抽象就是Instruction Set Architecture。一个ISA包含了程序要所需要知道的如何使计算机工作的所有信息。也就是说ISA封装了硬件的实现细节,使我们程序员可以只关注与如何实现程序,而不用去考虑硬件的细节。另一个很重要的抽象也就是OS了。ISA独立了一定的硬件细节,OS有在ISA的基础之上,让我们更加独立了。另一个帮助我们独立的是Compiler,它是的我们使用的语言不是ISA,不是OS提供的接口,而是该编程语言所提供的命令及语法。当然这些语言所提供的命令和语法更加符合人类所使用的自然语言以及人类的思考方式。

在计算领域,无论是硬件还是软件都存在着很多的抽象。一种常见的抽象结构就是层级结构了。底层对上层隐藏了更多的细节信息。通过层级结构这种抽象大大降低了硬件开发以及软件开发的复杂度。因为有了这层抽象之后,不同的人员就可以专门从事自己关心的事情。在学习计算机的过程中,一定要学会利用抽象的观点来看点里面的概念。在软件领域中一个比较熟悉的抽象的例子应该是ADT了吧。现在面向对象程序设计这么流行,类不也就是一种抽象吗?

阅读(574) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~