计算机系统的层次结构——Linux应用与开发技术笔记

Posted Z.Q.Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机系统的层次结构——Linux应用与开发技术笔记相关的知识,希望对你有一定的参考价值。

系列文章目录

计算机系统的层次结构——Linux应用与开发技术笔记(1)


文章目录


 一、前言

计算机系统是由软件和硬件组成的一个复杂的有机整体。把计算机系统按功能可以分为多级层次结构,这种层次划分有利于理解计算机系统的工作过程,明确软件、硬件在计算机系统中的地位和作用。


二、计算机系统分为哪几层

目前计算机系统一共被划分为6层,如下图所示

上图是业界普遍接受的计算机系统的层次结构,提供了一个计算机系统全方位的视图。图中每一层以一种不同的语言为特征,每一层都能以本层的语言进行程序设计,每一层也都对应计算机系统的不同用户。


三、各层次及其特征

第0层:数字逻辑层

电子工程师主要工作在这一层,使用数字系统设计的相关语言和工具来实现计算功能

数字系统设计的VHDL语言

这一层体现为实现计算机硬件的最重要的物质材料,即各种逻辑电路和连接线路,它们是组成计算机硬件的基础。


第1层:微体系结构层

设计计算机系统的架构师工作在这一层,用微指令编写微程序来实现上层机器指令的功能

微指令格式

这一层的语言是微指令集,架构师用微指令编写的微程序,由硬件直接执行。在执行一条机器指令时,微程序控制器从固化的控制存储器中依次取出该机器指令对应的多条微指令,产生一系列的操作控制信号,并由这些控制信号控制下层的逻辑部件按照一定的时间顺序有序地工作。


第2层:传统机器层

面向计算机体系结构设计者,这一层使用机器语言,是机器唯一能直接识别的语言,机器语言集合形成计算机的指令系统,程序员用指令系统编写的程序由第一层的微程序解释执行

应用8086CPU完成运算s=768+12288-1280,机器码如下:

101110000000000000000011

000001010000000000110000

001011010000000000000101

机器语言即一列二进制数字,0和1。计算机系统设计者首先要确定机器的体系结构,如机器的硬件包含哪些部件,采用什么样的连接结构和实现技术等。在这一层次上提供的是机器语言,也是机器唯一能直接识别的语言。其他各种语言的程序最终都必须翻译成机器语言程序,由机器通过其硬件实现相应的功能。机器语言的集合形成了该计算机的指令系统。


第3层:操作系统层

系统管理人员主要工作在这一层,使用操作系统提供的各种管理命令,如打开文件,读/写文件等,来完成管理功能。操作系统管理和统一调度计算:机系统中的软硬件资源,支撑着其他系统软件和应用软件,使计算机能够自动运行、发挥高效特性。

例如我们常用的Windows操作系统:

Win10桌面

第4层:汇编语言层

这一层给程序设计人员提供了汇编语言这种符号语言,以减少程序编写的复杂性。

例如一段C语言代码:

int x, y, z;

int main() {
    return 0;
}

使用汇编语言:

global main

main:
    mov eax, 0
    ret

section .data

x    dw    0
y    dw    0
z    dw    0

上层的高级语言首先被翻译成汇编语言,再进一步翻译成机器直接识别的机器语言,由操作系统调度执行。完成高级语言到汇编语言翻译的程序被称为编译器(编译程序),完成汇编语言到机器语言翻译的程序被称为汇编器(汇编程序)。


第5层:高级语言层

这一层由各种高级语言组成,如C、C++ Java、Python等。普通程序员主要工作在这一层,程序员为完成某一特定任务采用一种或多种高级编程语言编写程序。

例如一段C语言代码:

# include<stdio.h>
int  main()
{
    printf("Hello World!\\n");
    return 0;
}

一方面,所编写的这些高级语言程序提供给上层用户使用;另一方面,这些高级语言程序是通过编译或解释到第4层或第3层上来实现的。这一层不像第4层那样过分向指令系统靠拢,而是着重而向解决实际问题所用的算法,更多地考虑如何方便程序设计人员进行程序开发。


第6层:应用程序层

面向一般用户, 可运行各种应用程序,如字处理程序、制表程序、财务处理程序、游戏程序等。

例如我们使用的电脑里的各种应用程序:

不同系统,其应用程序文件具有不同的扩展名。

一般用户在使用计算机时所看见的就是这一层。对用户而言,其他较低的各层次可以是不可见的,也就是说,用户不必了解各底层是如何实现的。 


四、总结

        上述第0层至第2层主要由硬件实现,第3层至第6层主要由软件实现。计算机中的许多功能可以由硬件实现,也可以由软件实现,即从用户的角度来看它们在功能上是等价的,这称为软件和硬件逻辑功能的等价性。因此计算机系统的软硬件没有二个明确的分界面。但在设计计算机系统时,首先需要明确软硬件的功能分配及其界面,指令集就充当了这一分界面的角色。


有帮助可以点赞哦,谢谢大家的支持!

以上是关于计算机系统的层次结构——Linux应用与开发技术笔记的主要内容,如果未能解决你的问题,请参考以下文章

全国计算机等级三级Linux应用与开发技术考试-第1章-计算机体系结构与操作系统-练习题-简答题

指令集ISA简介(CISC和RISC阵营,X86ARMMIPS架构)——Linux应用与开发技术笔记

指令集ISA简介(CISC和RISC阵营,X86ARMMIPS架构)——Linux应用与开发技术笔记

数据库管理系统常见的数据模型有层次模型,网状模型和啥?

Linux文件系统层次结构标准

全国计算机等级三级Linux应用与开发技术考试-第1章-计算机体系结构与操作系统-练习题-选择题