计算机(computer)是能以人的几百万甚至几十亿倍速度进行计算井做出逻辑判断的设备。例如.今天的许多我的计算机每秒钟能够进行几亿次加法运算。操做台式计算器的人要几十年才能算出的数值,强大的我的计算机只要一秒钟便可计算完毕(注意:你怎么知道这我的加对了没有?你怎么知道计算机作得是否正确?)。现在.最快的超级计算机(supercomputer)每秒钟能够进行几干亿次加法运算,是成百上千的人花一全年时间才能完成的计算工做。每秒钟万亿条指令的计算机已经能在研究实验室中工做。程序员
计算机在一组指令控制下处理数据(data),这组指令称为计算机程序(computer programmer)。这些计算机程序指导计算机按顺序进行计算机程序(computer programmer)指定的一组操做。编程
构成计算机系统的各类设备(如键盘、屏幕、鼠标、磁盘、内存、光盘和处理器)称为硬件。计算机上运行的计算机程序称为软件。几年来,硬件成本已经大幅降低,使我的计算机更加平民化。可是,随着程序员开发了许多愈来愈强大、愈来愈复杂的应用程序,而软件开发技术却进步不大,于是使软件开发成本不断上升。本书介绍经过成熟的软件开发方法减小软件开发成本,即结构化编程、自上而下逐步完善、功能化以及面向对象编程。操作系统
无论外观如何不一样,每一个计算机均可以当作由六个单元(logical unit)或部分组成,即:设计
1.输入单元(iput unit),这是计算机的“接收”部分,从各类输入设备接收信息(数据和计 算机程序),并将这些信息放到其余单元中,使信息得以处理。现在大多数信息都是经过键 盘和鼠标设备输入计算机。未来大多数信息也许能够经过语音输入或扫描图形而得到。对象
2.输出单元(output unit),这是计算机的“发送”部分。将计算机处理过的信息送到不一样输出 设备中,向计算机外部提供所需的信息。现在计算机输出的大多数信息是经过屏幕显示、书 面打印或用于控制其余设备。ip
3.内存单元(memory unit),这是计算机中快速访问、低容量的“库存”部分。它保存经过输入单元输入的信息,以便在须要时当即提供这些信息进行处理。内存单元保存处理的信息, 直到输出单元将信息故到输出设备中。内存单元也称为内存或主内存(memory或primary memory)。内存
4.算术/逻辑单元(arithmetic and logic unit ALU)这是计算机的“生产”部分,负责进行加、减、乘、除等运算,包含判断机制例如可让计算机比较内存单元中的两个项目,肯定其是否相等。资源
5.中央处理单元(central processing unit CPU),这是计算机中的“管理”部分,是计算机的协调员,负责管理其余部分的操做。CPU告诉输入单元什么时候将信息读取到内存单元中,告诉ALU什么时候利用内存单元中的信息进行计算,告诉输出单元什么时候将内存单元中的信息发送到指定的输出设备中。开发
6.辅助存储单元(secondary storage unit),这是计算机长期的高容量“库存”部分,其余单元不是常用的程序或数据一般放在辅助存储单元(如磁盘)中,直到几小时、几天、几月 甚至几年后才须要。访问辅助存储单元中的信息要比访问主内存中的信息慢得多。辅助存储单元的单位成本比主内存的单位成本低得多。terminal
早期计算机一次只能完成一个任务或做业(task或job),这种计算机操做一般称为单用户批处理(batch processing)。计算机一次运行一个程序,成组或成批地处理数据。
在这些早期系统中,用户利用穿孔卡片将做业提交到计算机中心,一般要等待几小时或几天以后才能获得打印输出。
称为操做系统(operating system)的软件系统能够帮助用户更方便地使用计算机。早期操做系统能管理做业之间的顺利过渡,使得计算机操做员在做业之间切换的时间减到最少,从而增长计算机处理的工做量或吞吐量(throughput)。
随着计算机的功能愈来愈强大,单用户批处理机制显然不能有效地利用计算机资源,所以应该让许多任务或做业共享计算机资源,以达到更好地利用资源,这种方法称为多道程序设计(multiprogramming)。多道程序系统涉及多个做业在计算机上“同时”操做,计算机在竞争资源的做业之间共享资源。在早期多道程序操做系统中,用户仍是要经过穿孔卡片将做业提交到计算机中心,几小时或几天以后才能获得打印输出。
20世纪60年代,计算机界和大学的几个研究小组提出了分时(timesharing)操做系统。分时是多道程序的特殊状况,用户经过终端(terminal)访问计算机,终端是带有键盘和屏幕的典型设备。在典型的分时操做系统中,可能有几十甚至几百个用户同时共用计算机。
计算机实际上并非同时运行全部用户,而是运行一个用户的一小段做业,而后转入运行下一个用户的一小段做业。计算机的速度很是快,每秒钟能够为每一个用户服务屡次,使得用户的程序看上去是在同时运行。分时的好处之一是用户能当即收到响应,而没必要像原先的计算方式须要等待很长时间。