[架构之路-229]:计算机体硬件与系结构 - 计算机系统的矩阵知识体系结构

目录

一、纵向:目标系统的分层结构

1.1 目标系统的架构

1.2 网络协议栈

1.3 计算机程序语言分层

二、横向(构建目标系统的时间、开发阶段):软件工程

三、二维矩阵知识体系结构


一、纵向:目标系统的分层结构

1.1 目标系统的架构

[架构之路-106]:《软件架构设计:程序员向架构师转型必备》-16-常见的十余种软件分层架构_软件分层设计_文火冰糖的硅基工坊的博客-CSDN博客

计算机系统的分层知识体系是指计算机硬件和软件系统按功能和抽象程度的不同被划分为多个层次,每个层次负责不同的任务和功能。这种分层的设计有助于提高系统的可移植性、可扩展性和维护性,同时也方便不同层次的开发人员进行独立的开发和测试。

以下是计算机系统常见的分层知识体系:

  1. 硬件层:计算机系统的最底层是硬件层,包括处理器、内存、存储器、输入/输出设备等硬件组件。硬件层负责管理和控制硬件资源,并提供底层的执行能力。

  2. 网络/硬件驱动层:网络层位于硬件层和操作系统层之间,负责数据在不同计算机之间的传输和通信。网络层提供了数据传输的基本功能,包括数据的分组、路由选择、流量控制和错误检测等。它使用协议(如TCP/IP协议)来实现数据的可靠传输和通信。网络层实现了计算机之间的互联,使得计算机可以通过网络进行数据交换和通信。网络层的功能是支持应用程序的远程访问和数据传输。

  3. 操作系统层:操作系统层位于硬件层之上,负责管理计算机的资源和提供各种系统服务。它提供了进程管理、内存管理、文件系统管理、设备驱动程序等功能,以支持上层应用的运行。

  4. 中间件层:中间件层位于操作系统层之上,提供了更高级别的服务和功能,以方便应用程序的开发和部署。中间件层包括数据库系统、消息队列、Web服务器等,它们提供了不同的服务和接口,以满足应用程序的需求。

  5. 数据库层:数据库层位于中间件层和应用程序层之间,负责管理和组织数据。数据库系统提供了一种结构化的方式来存储和查询数据,以支持应用程序对数据的管理和访问。数据库系统具有数据持久性、数据一致性和数据安全性等特点。常见的数据库系统包括关系型数据库(如MySQL、Oracle)、非关系型数据库(如MongoDB、Redis)等。数据库层承担着数据的存储、查询、事务处理和并发控制等任务,为应用程序层提供数据支持。

  6. 应用程序层:应用程序层是计算机系统中最上层的层次,包括各种用户应用程序和应用软件。应用程序层通过中间件和操作系统层提供的服务来实现特定的功能,如办公软件、图像处理软件、游戏等。

整个计算机系统的分层知识体系可以用类似于金字塔形状的模型来表示,底层是硬件层,然后是操作系统层、中间件层和应用程序层。每个层次都依赖于下层提供的功能和服务,并为上层层次提供相应的接口和抽象。这种分层设计使得不同的开发人员可以专注于不同的层次进行开发,提高了系统的可维护性和可扩展性。

1.2 网络协议栈

在计算机系统的分层知识体系中,协议栈是一种按照不同层次组织的网络通信协议集合。

协议栈通过将通信功能和任务分解为多个层次,从而实现了对网络通信的有效管理和处理。

常见的协议栈是TCP/IP协议栈,它是互联网中最为广泛使用的网络通信协议栈。TCP/IP协议栈根据功能和抽象程度的不同分为多个层次,包括:

  1. 物理层:物理层负责传输和接收原始的比特流,使用物理媒介进行数据传输,如电缆、光纤等。

  2. 数据链路层:数据链路层通过帧的方式将比特流划分为数据包,并为其添加控制信息,以实现可靠地传输数据。在这个层次上,数据传输是局域网(LAN)内的直接通信。

  3. 网络层:网络层提供了数据包的路由和转发功能,负责确定数据从源到目的地的路径。它使用IP协议来处理网络地址和路由选择。

  4. 传输层:传输层提供端对端的通信服务,主要使用TCP协议和UDP协议。其中,TCP协议提供可靠的、面向连接的通信,而UDP协议提供不可靠的、面向无连接的通信。

  5. 应用层:应用层是最高层的协议层,包含各种应用程序和协议,如HTTP、FTP、SMTP等。应用层的协议负责处理特定应用领域的通信需求。

协议栈中的每个层次都有独立的功能和责任,下层向上层提供服务和接口,并通过协议交互来实现通信。上层向下层传递数据和请求,以使数据在网络中得到正确的处理和传输。协议栈的分层结构使得不同层次的协议能够独立进行开发、测试和升级,同时也提供了灵活性和可扩展性,以适应不同的应用场景和需求。

除了TCP/IP协议栈外,还有其他协议栈,如ISO/OSI七层模型、Ethernet协议栈等。不同的协议栈可能有不同的层次数量和名称,但都遵循类似的分层设计原则,以实现有效的通信和数据传输。

1.3 计算机程序语言分层

二、横向(构建目标系统的时间、开发阶段):软件工程

[架构之路-175]-《软考-系统分析师》-知识体系大全(图解)_文火冰糖的硅基工坊的博客-CSDN博客

软件工程是系统化、规范化地应用技术和方法,以开发高质量软件的学科和实践。软件开发过程是软件工程的核心,它描述了从需求分析到软件交付的全过程,并包括了软件设计、编码、测试、部署和维护等阶段。

常见的软件开发过程包括以下几个主要阶段:

  1. 需求分析:在需求分析阶段,开发团队与用户进行沟通和讨论,确保对用户需求和系统功能有清晰的理解。需求分析的目标是明确系统的功能需求、性能要求、用户界面等方面的需求。

  2. 软件设计:在软件设计阶段,根据需求分析的结果,设计软件系统的整体架构和模块的详细设计。软件设计包括系统结构设计、数据结构设计、算法设计等,旨在保证软件的可靠性、健壮性和可维护性。

  3. 编码与实现:在编码与实现阶段,开发团队根据软件设计的规范,将设计的模块实现为具体的编程代码。开发人员使用合适的编程语言和开发工具进行编码,并进行代码的单元测试。

  4. 软件测试:软件测试是为了评估软件是否满足预期需求和质量标准。测试可以分为单元测试、集成测试和系统测试等不同层次和类型。通过不同的测试手段,检验软件的功能正确性、性能、安全性和可靠性等方面。

  5. 软件部署与维护:在软件部署阶段,将已经测试通过的软件安装和部署到生产环境中。软件维护阶段则是在软件交付后,通过修复错误、改进功能、升级版本等方式来保障软件的运行和持续改进。

除了以上主要阶段,软件开发过程中还需要进行持续的需求管理、变更控制、配置管理、项目管理等工作,在整个开发过程中进行合理的管理和协调。

需要注意的是,不同的软件项目可能采用不同的开发方法和过程模型,如瀑布模型、敏捷开发、迭代开发等。具体的软件开发过程可根据项目的特定要求和团队的实际情况进行调整和选择。

三、二维矩阵知识体系结构

对于计算机二维知识体系结构,我们可以考虑以下两个维度:软件开发阶段维度和计算机分层维度。

  1. 软件开发阶段维度(人的维度、时间的维度):这个维度关注软件的开发生命周期,将软件开发过程划分为不同的阶段。常见的软件开发阶段包括需求分析、软件设计、编码与实现、软件测试和部署与维护。每个阶段都有不同的目标、方法和工具。

  2. 计算机分层维度(机器的维度、目标系统的维度):这个维度关注计算机系统的分层结构。常见的计算机分层模型是ISO/OSI七层模型和TCP/IP四层模型。ISO/OSI七层模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,它描述了计算机系统中各个层次的功能和协议。TCP/IP四层模型包括网络接口层、网络层、传输层和应用层,它是实际互联网中广泛使用的分层模型。

综合以上两个维度,我们可以构建如下的知识体系结构:

- 软件开发阶段维度- 需求分析- 软件设计- 编码与实现- 软件测试- 部署与维护- 计算机分层维度- 应用层- 表示层- 会话层- 传输层- 网络层- 数据链路层- 物理层

在实践中,我们需要学习和理解这两个维度的知识,掌握软件开发的各个阶段的技能和方法,并了解计算机系统中各层次的功能和协议。这有助于我们在实际的软件开发和计算机系统设计中应用相应的概念、技术和工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/94641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql主从复制和读写分离

在企业应用中,成熟的业务通常数据量都比较大 单台MySQL在安全性、高可用性和高并发方面都无法满足实际的需求 配置多台主从数据库服务器以实现读写分离 所以要做主从服务器,保证安全性 做一写一读服务器,将提升性能 1、什么是读写分离 …

隐私交易成新刚需,Unijoin 凭什么优势杀出重围?

随着区块链技术的普及和发展,全球加密货币用户在持续增长,根据火币研究院公布的数据,2022年全球加密用户已达到 3.2亿人,目前全球人口总数超过了 80亿,加密货币用户渗透率已达到了 4%。 尤其是在 2020 年开启的 DeFi 牛…

如何像人类一样写HTML之图像标签,超链接标签与多媒体标签

文章目录 前言一、图像标签1.1 什么是图像标签?2.2 如何使用图像标签? 二、超链接标签2.1 什么是超链接标签?2.2 如何使用超链接标签? 三、多媒体标签3.1 什么是多媒体标签?3.2 如何使用多媒体audio标签?3.…

【小沐学前端】Node.js实现基于Protobuf协议的UDP通信(UDP/TCP)

文章目录 1、简介1.1 node1.2 Protobuf 2、下载和安装2.1 node2.2 Protobuf2.2.1 安装2.2.2 工具 3、node 代码示例3.1 HTTP3.2 UDP单播3.4 UDP广播 4、Protobuf 代码示例4.1 例子: awesome.proto4.1.1 加载.proto文件方式4.1.2 加载.json文件方式4.1.3 加载.js文件方式 4.2 例…

多线程 - 单例模式

单例模式 ~~ 单例模式是常见的设计模式之一 什么是设计模式 你知道象棋,五子棋,围棋吗?如果,你想下好围棋,你就不得不了解一个东西,”棋谱”,设计模式好比围棋中的 “棋谱”. 在棋谱里面,大佬们,把一些常见的对局场景,都给推演出来了,照着棋谱来下棋,基本上棋力就不会差到哪…

Scala第十五章节

Scala第十五章节 1. 递归 2. 案例一: 求阶乘 3. 案例二: 斐波那契数列 4. 案例三: 打印目录文件 scala总目录 文档资料下载

机器学习必修课 - 如何处理缺失数据

运行环境:Google Colab 处理缺失数据可简单分为两种方法:1. 删除具有缺失值的列 2. 填充 !git clone https://github.com/JeffereyWu/Housing-prices-data.git下载数据集 import pandas as pd from sklearn.model_selection import train_test_split导…

竞赛 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列&#x…

C语言实例_调用SQLITE数据库完成数据增删改查

一、SQLite介绍 SQLite是一种轻量级的关系型数据库管理系统(RDBMS),它是一个开源的、零配置的、服务器端的、自包含的、零管理的、事务性的SQL数据库引擎。它被广泛应用于嵌入式设备、移动设备和桌面应用程序等领域。 SQLite的特点包括&…

SpringBoot快速入门

搭建SpringBoot工程,定义hello方法,返回“Hello SpringBoot” ②导入springboot工程需要继承的父工程;以及web开发的起步依赖。 ③编写Controller ④引导类就是SpringBoot项目的一个入口。 写注解写main方法调用run方法 快速构建SpringBoo…

MySQL体系结构和四层架构介绍

MySQL体系结构图如下: 四层介绍 1. 连接层: 它的主要功能是处理客户端与MySQL服务器之间的连接(比如Java应用程序通过JDBC连接MySQL)。当客户端应用程序连接到MySQL服务器时,连接层对用户进行身份验证、建立安全连接并管理会话状态。它还处理…

python获取时间戳

使用 datetime 库获取时间。 获取当前时间: import datetime print(datetime.datetime.now()) . 后面的是微秒,也是一个时间单位,1秒1000000微秒。 转为时间戳: import datetimedate datetime.datetime.now() timestamp date…

小谈设计模式(14)—建造者模式

小谈设计模式(14)—建造者模式 专栏介绍专栏地址专栏介绍 建造者模式角色分类产品(Product)抽象建造者(Builder)具体建造者(Concrete Builder)指挥者(Director&#xff0…

电脑通过串口助手和51单片机串口通讯

今天有时间把电脑和51单片机之间的串口通讯搞定了,电脑发送的串口数据,单片机能够正常接收并显示到oled屏幕上,特此记录一下,防止后面自己忘记了怎么搞得了。 先来两个图片看看结果吧! 下面是串口3.c的文件全部内容&a…

Spring Cloud Zuul 基本原理

Spring Cloud Zuul 底层是基于Servlet实现的,核心是通过一系列的ZuulFilter来完成请求的转发。 1、核心组件注册 1.1. EnableZuulProxy注解 启用Zuul作为微服务网关,需要在Application应用类加上EnableZuulProxy注解,而该注解核心是利用Im…

@SpringBootApplication注解的理解——如何排除自动装配 分布式情况下如何自动加载 nacos是怎么被发现的

前言 spring作为主流的 Java Web 开发的开源框架,是Java 世界最为成功的框架,持续不断深入认识spring框架是Java程序员不变的追求。 本篇博客介绍SpringBootApplicant注解的自动加载相关内容 其他相关的Spring博客文章列表如下: Spring基…

2023 年热门的大型语言模型 (LLMs)汇总【更新至9月26】

一、全景地图 整理了一张大语言模型的血缘图谱,如下图所示: 图中的大语言模型,都是自己做过评测的,主观了点,但是原汁原味,有好的可以推荐给我。 二、ChatGPT系列 ChaTGP是商业版本大语言模型的正统&…

逆强化学习

1.逆强化学习的理论框架 1.teacher的行为被定义成best 2.学习的网络有两个,actor和reward 3.每次迭代中通过比较actor与teacher的行为来更新reward function,基于新的reward function来更新actor使得actor获得的reward最大。 loss的设计相当于一个排序问…

visual studio禁用qt-vsaddin插件更新

visual studio里qt-vsaddin插件默认是自动更新的,由于qt-vsaddin插件新版本的操作方式与老版本相差较大,且新版本不稳定,容易出Bug,所以需要禁用其自动更新,步骤如下:     点击VS2019菜单栏上的【扩展】–…

基于Java的毕业设计选题管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…