一、计算机系统概论
(一)计算机的发展和应用
1.计算机发展
1981年开始进入网络。
2.计算机应用
科学计算(天气预报)、数据处理(物流)、实时控制(物流、电力)、计算机辅助、人工智能(指纹)、远程教育、电子商务
(二)计算机系统的组成
1.硬件(好比人的躯体)
输入设备:Input Device,输入程序和原始数据。eg:字符输入设备(键盘、光笔)、图形输入设备(扫描仪)、语音输入设备。
输出设备:Output Device,输出处理结果及程序。eg:数据(显示器)、字符、表格(打印机)、图形(绘图仪)。
存储器:Memory,存放数据和程序。eg:内存:主存储器和高速缓冲存储器,由半导体存储器构成,CPU可以直接访问;外存:辅助存储器,CPU不可以直接访问。
运算器:ALU(Arithmetic Logic Unit,运算逻辑单元),对数据(主要是二进制数据)进行算术运算(加、减、乘、除)和逻辑运算(与、或、非、移位)。
控制器:Controller,控制计算机各部件协调工作,包含顺序控制、操作控制、时间控制。
2.软件(好比人的灵魂)
(1)系统软件
操作系统:系统软件核心,主要负责管理和控制硬件资源、软件资源和程序运行。
五大职能:
IO:输入和输出
进程调度:无论在批处理系统还是分时系统中,用户进程一般都是多于处理机器数,就会出现争夺处理机器的现象(系统进程也需要处理器来进程处理),此时就需要进程调度按照一定的策略来动态的把处理机分配给处于序列对中的某一进程使之执行。
并发处理:保证一个用户的操作不会对另一个用户的操作产生不合理的影响。
内存管理:程序在运行时需要使用和分配计算机内存,目的是为了更高效、更快的分配内存,并在适当时的释放和回收资源。
文件管理:对文件存储器和存储空间进行了组织、分配、回收。负责文件的存储、检索、共享和保护。
语言处理程序:由于计算机只能识别、处理由二进制表示的机器语言,所有其他语言编写的都必须翻译为机器语言,才能由计算机去执行和处理。语言处理程序就是来完成这种翻译工作。
翻译方式:
解释:对源程序边解释边执行。
编译:将源程序完全翻译成机器语言后执行。
数据库管理系统:(DBMS:Database Managment System)主要用户信息处理、情报检索和各种管理系统中,极大的方便了用户根据需要创建数据库,查询、显示、修改数据库的内容,打印各种表格等。eg:mySql
分布式软件系统:主要包括分布式操作系统、分布式编译系统、分布式数据库系统、分布式算法及软件包等,主要用于分布式计算环境、管理分布式计算资源、控制分布式程序的运行、提供分布式程序的开发与设计工具等。
通俗的讲:就是多台相连的计算机各自承担同一工作任务的不同部分,在人的控制下,同时运行,共同完成一项任务。
eg:银行系统,总行和各个分行处于不同的城市和城市的各个地区,在业务上他们需要处理各自的数据,也需要彼此之间的交流和处理,这就需要分布式的系统。
网络软件系统:包括网络操作系统、网络协议、通信软件、网络应用程序等,支持网络活动和数据通信。人类借助计算机网络这个平台实现远程教育、网络聊天、视频点播、电子邮件、电子商务等。
各种服务程序:服务程序是为方便用户使用和维护计算机所编制的程序。这类程序包含的内容很广泛,如装入程序、编辑程序、调试程序、诊断程序等,一些通用的应用软件也可以作为服务程序,如文字处理程序、表格处理程序、图形处理软件等。
(2)应用软件
用户为解决某个应用领域中的各类问题而编写的开发程序。
3.计算机系统的层次结构
为了使计算机硬件和软件之间、系统与使用者之间更好的协调、配合,以便构成合理、高效的计算机系统,因此提出了计算机系统层次结构:
微程序设计层:此层可进行微程序设计,由机器硬件直接执行微指令编写的微程序。(微程序-微指令-微操作-机器指令-ASCII等)
指令系统层:此层可进行机器语言程序设计,该程序由“微程序”负责解释执行。
指令系统:计算机硬件的指令系统,也叫机器语言。他是软件和硬件的主要界面。
操作系统层:由操作系统程序实现。操作系统程序是机器指令和广义指令组成。
操作系统:用来管理计算机硬件和软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。
机器指令:CPU能直接识别并执行的指令,它的表现形式是二进制编码。
广义指令:对操作系统定义和解释的软件指令。
汇编语言层:是各种CPU提供的机器指令助记符的集合。
是一种用于电子计算机、微处理器、单片机或其他可编辑器件的低级语言,在不同的设备中,汇编语言对应着不同的机器语言指令集。一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可以在不同平台之间进行移植。
使用场景:底层硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
高级语言层:进行高级语言程序设计,面向用户。
(三)计算机系统结构