1:计算机系统
计算机主要由硬件和软件改成。
其中:硬件是计算机的实体例如:主机,外设
软件则是具有各类特殊功能的信息(程序)组成
软件主要由系统软件和应用软件构成:
系统软件 | 用于管理整个计算机系统 |
语言处理程序 | 帮助我们将高级语言转换成机器语言的工具(例:编译器) |
操作系统 | 提供人机交互,使得多个用户多个程序可在一台计算机上执行 |
服务性程序 | 例如:天河2计算机中引用的数据库 |
数据库管理系统 | 一种用于管理和操作数据库的软件系统。它提供了一组工具和功能,用于创建、访问、更新和管理数据库中的数据。例如MySQL,它是一个开源的关系型数据库管理系统 |
网络软件 | 程序员编写的程序要在网络上运行,离不开网络软件的底层支持 |
应用软件:日常生活使用到的各式各样的程序:微信,游戏
2:计算机系统的层次结构
•系统复杂性管理的方法-1
抽象
抽象-对于一个过程或者一件制品的某些细节有日的的隐藏,以便把其他方面、细节或者结构表达得更加清楚⋯-百度百科
抽象-指高级的模型,和低级的实体相对---维基百科
抽象-隐藏系统中不重要的细节。-David Harris
从程序员视角对计算机系统的层次进行抽象
可以分成
机器语言:
在实际机器上运行,指令由01串构成。
汇编语言:
由于机器语言的难以从正常人的逻辑去理解,人们进一步提出了汇编语言,将机器语言符号化,不直接使用01代码。
但机器无法直接识别汇编语言,这就需要将汇编语言转成机器语言,相当于在在其外层套上一层软件
高级语言:(例如C++,JAVA):
因为一条汇编指令对应一条机器指令,汇编语言虽然将机器语言符号化,但仍旧不符合我们日常的生活逻辑.为此我们需要在套上一层软件,进一步简化编程的难度。
微指令
在机器语言不断向上发展的过程中,它也在向下发展,对于一条机器语言的执行过程也是很复杂的,例如:将一条指令从存储器中取出,将该指令地址传个存储器,存储器读取数据,送给控制器进行译码等等,并且这些操作也有先后顺序,有些操作可以同步执行,有些只能等待其他指令结束后执行.
什么是微指令?
微指令是指CPU在执行指令时,将指令分解成若干个微操作,每个微操作对应一条微指令,微指令是CPU内部操作的最小单位。它的作用是将高级指令转化为底层的硬件操作,以便CPU能够执行。
如果在一个时间节点可以同时操作的机器指令,我们将其放到同一条微指令当中,有先后顺序的指令,将他们放到不同的微指令中,通过使用微指令来实现机器语言的操作
微指令有什么用?
例如,当CPU需要执行一条ADD指令时,它会将ADD指令分解成多个微操作,如读取寄存器、执行加法运算等,每个微操作对应一条微指令,CPU根据微指令的顺序执行这些微操作,最终完成ADD指令的执行。这样,CPU就能够高效地执行各种指令,提高计算机的运行效率
操作系统
用机器语言解释操作系统,可以管理软硬件内存。
将上述结构至上而下进行层次划分
软件层次:
虚拟机1:用编译程序翻译成汇编语言
虚拟机2:用汇编语言翻译成机器语言
虚拟机3:用机器语言解释操作系统
硬件层次:
实际机:用微指令解释机器指令
微程序机器:由硬件直接执行微指令