在巴黎,我对当地人讲法语,他们只是瞪着眼看我,我从来没能让这些白痴理解他们自己的语言
——马克吐温。
一、程序的概念
一个典型的应用程序,如字处理程序或大型数据库,可以由数百万行代码组成,并依靠软件来实现异常复杂的功能。众所周知,计算机只能执行极为简单的低级指令,从复杂的应用程序到简单的指令需要经过几个软件层次,才能将复杂的高层操作逐步解释或翻译成简单的计算机指令。
下图给出了浙西软件的层次结构,外层是应用软件,中心是硬件,系统软件在中间层。系统软件有很多种,但是对于现代计算机系统来说必须的有两种:1,操作系统,2编译器。
操作系统是用户程序和硬件之间的接口,为用户提供各种服务和监控功能。操作系统最为重要的作用是:
1,提供基本的输入、输出操作。
2.、分配内存和外存
3、为多个应用程序 提供共享的计算机资源的服务。
编译程序完成另外一个重要的任务,把高级语言编写的程序翻译成硬件能执行的指令,这个翻译过程相当复杂。
二、高级语言相对于汇编和机器语言的有点。
1),可以是程序员用更自然的语言思考,使用英语和数字符号标识,形成的程言开起来更像自然语言而不是密码表。而且它可以根据用途进行设计。
2)、高级语言可以用跟少的代码行数表达设计意图,提高了程序员的效率。简明性是高级怨言相对于汇编语言的最大优势。
3)、采用高级怨言编写的程序提高了程序对于计算机的独立性,因为编译程序可以把高级语言编写的程序翻译成任何计算机的二进制元指令。
高级怨言的这些好处,使其直到今天仍被广泛应用。
计算机的基本组成部分:
1)输入部件
2)输出部件
3)存储器
4)运算器
5)控制器
其中运算器与控制器可以统称为控制器。这些组成部分与硬件技术无关,你总能把任何计算机中的任何部件归为以上五中之一。处理器从存储器中得到指令和数据,输入部件向存储器中写入数据,输出部件从存储器中读取数据,控制器,想运算器、存储器、输入/输出部件发送指令信息。
软件和硬件描述上有一个共同点:越是深入,展示的信息就愈多,反过来,将底层的信息隐藏起来,就可以在高层次描述上采用较简介的模型。使用“分层”或者“抽象”的方法,是设计复杂计算机系统的一种主要技术。
最重要的抽象之一是硬件和底层软件之间的接口指令集体系结构。计算机体系结构包含了程序员正确编写二进制机器语言所需的一切东西,如指令、I/O设备,等等。一般来说,操作系统需要封装 I/O 操作、存储器分配和其它低级的系统功能细节,以便程序员无须在这些细节上分心。提供给应用程序员的基本指令集和操作系统接口合成为 应用二进制接口
计算机体系机构可以让计算机设计者独立的讨论功能,而不需要考虑具体的硬件。 计算机设计者将体系结构与体系结构的实现分开考虑也是沿用同样的思路:硬件的实现方式必须依照体系结构的抽象。
无论硬件还是软件都可以分成多个层次,每个较低的层次把细节对上层隐藏起来。硬件设计者和软件设计者都用这种抽象原则应对计算机体系的复杂性。
数据
1、内存(DRAM,主存储器)
1),易失性,一旦断电所有数据丢失,无法找回。
2)、速度快,访问任何位置的数据所用时间基本一样,50-70毫秒,是磁盘(硬盘)的100000-1000000倍
3)、价格是硬盘的30——100倍
2、磁盘(硬盘,二级存储器)
1)采用了机械部件,访问数据速度慢,5-20毫秒。磁盘尺寸越大,性能越高。
2),数据非易失性,第一在断电后保存,采用磁介质。
3)价格便宜,
3 闪存(二级存储器)
1) 采用半导体材料,性能高于磁盘100—1000倍
2)数据非易失性,但是有写入次数100000—1000000次后老化损坏的特性。
3) 价格比硬盘GB贵6-10倍
4 光盘
光盘的工作原理与磁盘不同,CD通过在光盘表面烧制小坑(直径约1微米)的方法记录数据,通过激光照射表面,检测反射光线判断该处是一个坑还是平面。DVD采用同样的技术,不过激光可以聚焦多层,并大大减小坑的直径来提高容量。